49 txs
50 calls
constructor
constructor(address _receiving_account, address _1xmmAddress, uint256 _presaleStartTime, uint256 _presaleEndTime, uint32 _initial1XMMPrice_USD)
functions
actualEndTime
viewfunction actualEndTime() view returns (uint256)
authorizedTokens
viewfunction authorizedTokens() view returns (address[])
availableForSale
viewfunction availableForSale() view returns (uint256)
DAI
viewfunction DAI() view returns (address)
getExpectedAmountOf1XMM
viewfunction getExpectedAmountOf1XMM(address token, uint256 amount) view returns (uint256)
getPrice
viewfunction getPrice(address token) view returns (uint64)
Initial1XMMPrice_USD
viewfunction Initial1XMMPrice_USD() view returns (uint32)
isActive
viewfunction isActive() view returns (bool)
isAuthorized
viewfunction isAuthorized() view returns (bool)
isAuthorized
viewfunction isAuthorized(address user) view returns (bool)
ONEXMM
viewfunction ONEXMM() view returns (address)
owner
viewfunction owner() view returns (address)
presaleEndTime
viewfunction presaleEndTime() view returns (uint256)
presaleStartTime
viewfunction presaleStartTime() view returns (uint256)
receivingAccount
viewfunction receivingAccount() view returns (address)
USDC
viewfunction USDC() view returns (address)
USDT
viewfunction USDT() view returns (address)
WETH
viewfunction WETH() view returns (address)
addAuthorizedToken
nonpayablefunction addAuthorizedToken(address token, uint8 decimals, uint64 price)
addAuthorizedUser
nonpayablefunction addAuthorizedUser(address user)
addAuthorizedUsers
nonpayablefunction addAuthorizedUsers(address[] users)
endPresale
nonpayablefunction endPresale()
exchangeETH
payablefunction exchangeETH() payable
exchangeToken
nonpayablefunction exchangeToken(address token, uint256 amount)
lockAmount
nonpayablefunction lockAmount(address beneficiary, uint256 amount1XMM)
setPrice
nonpayablefunction setPrice(address token, uint64 price)
transfer
nonpayablefunction transfer(address to, uint8 tokenType, uint256 amount, uint256 amount1XMM) returns (bool)
transferAuthorizedTokensToReceivingAccount
nonpayablefunction transferAuthorizedTokensToReceivingAccount(address token)
transferETHToReceivingAccount
payablefunction transferETHToReceivingAccount(uint256 value) payable
transferRemainingTokens
nonpayablefunction transferRemainingTokens()
unlockAmount
nonpayablefunction unlockAmount(address forBeneficiary, uint256 amount1XMM)
events
AuthorizedUserAdded
event AuthorizedUserAdded(address indexed user)
ETHWithdrawal
event ETHWithdrawal(uint256 balanceBefore, uint256 balanceAfter)
TokenWithdrawal
event TokenWithdrawal(address indexed token, uint256 balanceBefore, uint256 balanceAfter)
TONTradeExecuted
event TONTradeExecuted(address indexed to, uint8 fromToken, uint256 fromAmount, uint256 amount1XMM)
TONTradeFailed
event TONTradeFailed(address indexed to, uint8 fromToken, uint256 fromAmount, uint256 amount1XMM)
TradeExecuted
event TradeExecuted(address indexed to, address fromToken, uint256 fromAmount, uint256 amount1XMM)
errors
ETHBalanceError
error ETHBalanceError(uint256 balance, uint256 value)
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
TransferFailed
error TransferFailed(address to, address token, uint256 amount, uint256 onexmmAmount)
TransferForTONFailed
error TransferForTONFailed(address to, uint8 token, uint256 amount, uint256 onexmmAmount)
creation bytecode
0x6101c060405273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc260e05273dac17f958d2ee523a2206206994597c13d831ec76101005273a0b86991c6218b36c1d19d4a2e9eb0ce3606eb4861012052736b175474e89094c44da98b954eedeac495271d0f6101405234801561007457600080fd5b50604051612c9c380380612c9c833981016040819052610093916105ad565b336080526001600160a01b0384811660a08190526101605260e05181166000908152600260205260408082208054600160ff19918216811790925561010051851684528284208054821683179055610120518516845282842080548216831790556101405190941683529082208054909316179091558490829061011961271080610629565b63ffffffff16905060008263ffffffff1682610135919061064f565b9050600063ffffffff841661014c8461099261068c565b610156919061064f565b90506040518060400160405280826001600160401b03168152602001601260ff168152506003600060e0516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a81548160ff021916908360ff1602179055509050506040518060400160405280836001600160401b03168152602001600660ff1681525060036000610100516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a81548160ff021916908360ff1602179055509050506040518060400160405280836001600160401b03168152602001600660ff1681525060036000610120516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a81548160ff021916908360ff1602179055509050506040518060400160405280836001600160401b03168152602001601260ff1681525060036000610140516001600160a01b03166001600160a01b0316815260200190815260200160002060008201518160000160006101000a8154816001600160401b0302191690836001600160401b0316021790555060208201518160000160086101000a81548160ff021916908360ff1602179055509050508363ffffffff1660c08163ffffffff1681525050600160e0519080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506001610100519080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506001610120519080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506001610140519080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055505050505050846001600160a01b0316610180816001600160a01b0316815250508183106105795760405162461bcd60e51b815260206004820152601560248201527f496e76616c69642070726573616c652074696d65730000000000000000000000604482015260640160405180910390fd5b506004919091556101a0819052600555506106ae9050565b80516001600160a01b03811681146105a857600080fd5b919050565b600080600080600060a086880312156105c557600080fd5b6105ce86610591565b94506105dc60208701610591565b604087015160608801516080890151929650909450925063ffffffff8116811461060557600080fd5b809150509295509295909350565b634e487b7160e01b600052601160045260246000fd5b63ffffffff818116838216029081169081811461064857610648610613565b5092915050565b60006001600160401b0383168061067657634e487b7160e01b600052601260045260246000fd5b6001600160401b03929092169190910492915050565b6001600160401b03818116838216029081169081811461064857610648610613565b60805160a05160c05160e05161010051610120516101405161016051610180516101a0516124a86107f460003960006102d20152600081816105b001528181610b2301528181610bf30152818161111a0152611627015260008181610dba01528181611b9e0152611d3701526000818161060401526107570152600081816103ef015261071901526000818161051401526106dc0152600081816104cb01528181610ad0015281816112c0015281816112f601528181611af40152611c23015260008181610457015281816107c4015261197e0152600081816102860152610de90152600081816104230152818161069301528181610842015281816108d601528181610b5501528181610c8401528181610d7b01528181610e960152818161146f01528181611575015281816116a30152818161187d0152611a8201526124a86000f3fe6080604052600436106101dc5760003560e01c80638fc03d1211610102578063d6034e1f11610095578063e0bab4c411610064578063e0bab4c4146105f2578063e69f30eb14610626578063f8a0f45c14610646578063fe9fbb801461066857600080fd5b8063d6034e1f1461055e578063da4e67f71461057e578063e0486c391461059e578063e08d7ac8146105d257600080fd5b8063bbc33aa5116100d1578063bbc33aa5146104ed578063c54e44eb14610502578063cf3cb33f14610536578063cfa5f02a1461055657600080fd5b80638fc03d1214610445578063a43be57b1461048e578063a82524b2146104a3578063ad5c4648146104b957600080fd5b806341976e091161017a57806363cc4aa21161014957806363cc4aa2146103b2578063881e7277146103c757806389a30271146103dd5780638da5cb5b1461041157600080fd5b806341976e09146103225780634e8401111461035a57806357e6c2f41461036d57806359b1924d1461039257600080fd5b806322f3e2d4116101b657806322f3e2d41461024a57806323bd513d14610274578063249b7c19146102c05780633d11e10f1461030257600080fd5b8063159fa034146101e8578063177d2a741461020a57806322e2b31f1461022a57600080fd5b366101e357005b600080fd5b3480156101f457600080fd5b50610208610203366004611ef2565b610688565b005b34801561021657600080fd5b50610208610225366004611f25565b610837565b34801561023657600080fd5b50610208610245366004611f40565b6108cb565b34801561025657600080fd5b5061025f6109dc565b60405190151581526020015b60405180910390f35b34801561028057600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b03909116815260200161026b565b3480156102cc57600080fd5b506102f47f000000000000000000000000000000000000000000000000000000000000000081565b60405190815260200161026b565b34801561030e57600080fd5b506102f461031d366004611f40565b6109f6565b34801561032e57600080fd5b5061034261033d366004611f25565b610a73565b6040516001600160401b03909116815260200161026b565b610208610368366004611f6a565b610b18565b34801561037957600080fd5b503360009081526020819052604090205460ff1661025f565b34801561039e57600080fd5b506102086103ad366004611f40565b610c79565b3480156103be57600080fd5b50610208610d70565b3480156103d357600080fd5b506102f460055481565b3480156103e957600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b34801561041d57600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b34801561045157600080fd5b506104797f000000000000000000000000000000000000000000000000000000000000000081565b60405163ffffffff909116815260200161026b565b34801561049a57600080fd5b50610208610e8b565b3480156104af57600080fd5b506102f460045481565b3480156104c557600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b3480156104f957600080fd5b506102f4610ed9565b34801561050e57600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b34801561054257600080fd5b50610208610551366004611f40565b610ef0565b6102086111ea565b34801561056a57600080fd5b50610208610579366004611f99565b611464565b34801561058a57600080fd5b50610208610599366004611f25565b61151f565b3480156105aa57600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b3480156105de57600080fd5b5061025f6105ed366004612077565b611696565b3480156105fe57600080fd5b506102a87f000000000000000000000000000000000000000000000000000000000000000081565b34801561063257600080fd5b506102086106413660046120b9565b611872565b34801561065257600080fd5b5061065b611a13565b60405161026b91906120fc565b34801561067457600080fd5b5061025f610683366004611f25565b611a75565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146106d95760405162461bcd60e51b81526004016106d090612148565b60405180910390fd5b817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b03161415801561074e57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b801561078c57507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316816001600160a01b031614155b6107bd5760405162461bcd60e51b8152602060048201526002602482015261453360f01b60448201526064016106d0565b63ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166107f06127108461217a565b6107fa91906121b2565b6001600160a01b03939093166000908152600360205260409020805467ffffffffffffffff19166001600160401b03909416939093179092555050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461087f5760405162461bcd60e51b81526004016106d090612148565b6001600160a01b038116600081815260208190526040808220805460ff19166001179055517f7e07c71a6d7714652e08d641a843dff01e823c8eeed08945be844015fe3353939190a250565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109135760405162461bcd60e51b81526004016106d090612148565b60045442118015610925575060055442105b6109415760405162461bcd60e51b81526004016106d0906121e0565b6001600160a01b0382166000908152600660205260409020548111156109925760405162461bcd60e51b81526004016106d0906020808252600490820152634531303360e01b604082015260600190565b6001600160a01b038216600090815260066020526040812080548392906109ba9084906121fe565b9250508190555080600760008282546109d391906121fe565b90915550505050565b600060045442101580156109f1575060055442105b905090565b6000826001600160a01b0381161580610a2757506001600160a01b03811660009081526002602052604090205460ff165b610a435760405162461bcd60e51b81526004016106d090612211565b6000610a4d610ed9565b90506000610a5b8686611ae2565b905080821015610a685750805b9250505b5092915050565b6000816001600160a01b0381161580610aa457506001600160a01b03811660009081526002602052604090205460ff165b610ac05760405162461bcd60e51b81526004016106d090612211565b6001600160a01b038316610af2577f000000000000000000000000000000000000000000000000000000000000000092505b50506001600160a01b03166000908152600360205260409020546001600160401b031690565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480610b775750336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016145b610ba85760405162461bcd60e51b8152602060048201526002602482015261229b60f11b60448201526064016106d0565b47801580610bb4575081155b80610bbe57508082115b15610be6576040516331f64c7d60e01b815260048101829052602481018390526044016106d0565b6040516001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169083156108fc029084906000818181858888f19350505050158015610c3c573d6000803e3d6000fd5b50604080518281524760208201527f2ea8148ea8a42d08fa94c0105144704784c146cc5480bee45abd0546a77b93af910160405180910390a15050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610cc15760405162461bcd60e51b81526004016106d090612148565b60045442118015610cd3575060055442105b610cef5760405162461bcd60e51b81526004016106d0906121e0565b80610cf8610ed9565b1015610d2f5760405162461bcd60e51b81526004016106d0906020808252600490820152634531303160e01b604082015260600190565b6001600160a01b03821660009081526006602052604081208054839290610d5790849061222d565b9250508190555080600760008282546109d3919061222d565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610db85760405162461bcd60e51b81526004016106d090612148565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663a9059cbb7f0000000000000000000000000000000000000000000000000000000000000000610e10610ed9565b6040516001600160e01b031960e085901b1681526001600160a01b03909216600483015260248201526044016020604051808303816000875af1158015610e5b573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610e7f9190612240565b50610e8942600555565b565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610ed35760405162461bcd60e51b81526004016106d090612148565b42600555565b6000600754610ee6611b86565b6109f191906121fe565b60045442118015610f02575060055442105b610f1e5760405162461bcd60e51b81526004016106d0906121e0565b816001600160a01b0381161580610f4d57506001600160a01b03811660009081526002602052604090205460ff165b610f695760405162461bcd60e51b81526004016106d090612211565b3360009081526020819052604090205460ff16610fb35760405162461bcd60e51b815260206004820152600860248201526727379030baba341760c11b60448201526064016106d0565b6000610fbd610ed9565b9050600083118015610fcf5750600081115b6110095760405162461bcd60e51b815260206004820152600b60248201526a4e6f207175616e7469747960a81b60448201526064016106d0565b604051636eb1769f60e11b815233600482015230602482015284906000906001600160a01b0383169063dd62ed3e90604401602060405180830381865afa158015611058573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061107c9190612262565b9050848110156110c75760405162461bcd60e51b8152602060048201526016602482015275496e73756666696369656e7420616c6c6f77616e636560501b60448201526064016106d0565b60006110d38787611ae2565b9050808410156110ed576110e78785611c11565b95508390505b60006110fb8433308a611cb1565b905080801561110f575061110f3383611d0e565b156111a85761113f847f000000000000000000000000000000000000000000000000000000000000000089611dad565b611147610ed9565b6000036111575761115742600555565b604080516001600160a01b038a1681526020810189905290810183905233907f54424bcd37c121359634358c4b6124e821af711811c1ad2fb8f96b94b046338c9060600160405180910390a26111e0565b6040516340f907c360e11b81523360048201526001600160a01b038916602482015260448101889052606481018390526084016106d0565b5050505050505050565b600454421180156111fc575060055442105b6112185760405162461bcd60e51b81526004016106d0906121e0565b3360009081526020819052604090205460ff166112625760405162461bcd60e51b815260206004820152600860248201526727379030baba341760c11b60448201526064016106d0565b34600061126d610ed9565b905060008211801561127f5750600081115b6112b95760405162461bcd60e51b815260206004820152600b60248201526a4e6f207175616e7469747960a81b60448201526064016106d0565b60006112e57f000000000000000000000000000000000000000000000000000000000000000084611ae2565b90506000818310156113255761131b7f000000000000000000000000000000000000000000000000000000000000000084611c11565b9350829150600190505b61132f3383611d0e565b1561142e5761133c610ed9565b60000361134c5761134c42600555565b60408051600081526020810186905290810183905233907f54424bcd37c121359634358c4b6124e821af711811c1ad2fb8f96b94b046338c9060600160405180910390a28015611429576000336113a386346121fe565b604051600081818185875af1925050503d80600081146113df576040519150601f19603f3d011682016040523d82523d6000602084013e6113e4565b606091505b50509050806114275760405162461bcd60e51b815260206004820152600f60248201526e151c985b9cd9995c8819985a5b1959608a1b60448201526064016106d0565b505b61145e565b6040516340f907c360e11b81523360048201526000602482015260448101859052606481018390526084016106d0565b50505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146114ac5760405162461bcd60e51b81526004016106d090612148565b60005b81518161ffff16101561151b576001600080848461ffff16815181106114d7576114d761227b565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061151381612291565b9150506114af565b5050565b806001600160a01b038116158061154e57506001600160a01b03811660009081526002602052604090205460ff165b61156a5760405162461bcd60e51b81526004016106d090612211565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115b25760405162461bcd60e51b81526004016106d090612148565b6040516370a0823160e01b815230600482015282906000906001600160a01b038316906370a0823190602401602060405180830381865afa1580156115fb573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061161f9190612262565b905061164c827f000000000000000000000000000000000000000000000000000000000000000083611dad565b60408051828152600060208201526001600160a01b038616917f2befdba0c314e4dff34a5e39aba1ecf86630fd6f687ed18e3ad17743945c6535910160405180910390a250505050565b6000336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146116e05760405162461bcd60e51b81526004016106d090612148565b600454421180156116f2575060055442105b61170e5760405162461bcd60e51b81526004016106d0906121e0565b6001600160a01b03851660009081526006602052604090205482111561175f5760405162461bcd60e51b81526004016106d0906020808252600490820152632298981960e11b604082015260600190565b600061176b8684611d0e565b905080156117db5761177d86846108cb565b856001600160a01b03167f45ef3a8de2dda84bd6dcfa67871d642693b200d34d5d6198820cfa9bae2f779e8660ff1660028111156117bd576117bd6122b2565b86866040516117ce939291906122ea565b60405180910390a2611869565b856001600160a01b03167f55123358ae98a382db694ef9d8513ed905342c541efb723e672a19ac719974a18660ff16600281111561181b5761181b6122b2565b868660405161182c939291906122ea565b60405180910390a2858560ff16600281111561184a5761184a6122b2565b858560405163012b8f5760e51b81526004016106d09493929190612309565b95945050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146118ba5760405162461bcd60e51b81526004016106d090612148565b6001600160a01b03831660009081526002602052604090205460ff16156119085760405162461bcd60e51b8152602060048201526002602482015261229960f11b60448201526064016106d0565b6001600160a01b038316600081815260026020526040808220805460ff191660019081179091558054808201825592527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf690910180546001600160a01b03191690921790915580518082019091528063ffffffff7f0000000000000000000000000000000000000000000000000000000000000000166119aa6127108561217a565b6119b491906121b2565b6001600160401b03908116825260ff9485166020928301526001600160a01b0390951660009081526003825260409020825181549390920151909416600160401b0268ffffffffffffffffff1990921694169390931792909217905550565b60606001805480602002602001604051908101604052809291908181526020018280548015611a6b57602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311611a4d575b5050505050905090565b6000336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611abf5760405162461bcd60e51b81526004016106d090612148565b506001600160a01b03811660009081526020819052604090205460ff165b919050565b60006001600160a01b038316611b16577f000000000000000000000000000000000000000000000000000000000000000092505b6001600160a01b03831660009081526003602052604081208054909190611b4890600160401b900460ff166012612338565b611b5390600a612438565b8254611b68906001600160401b031686612447565b611b729190612447565b9050610a686127108261245e565b92915050565b6040516370a0823160e01b81523060048201526000907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316906370a0823190602401602060405180830381865afa158015611bed573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109f19190612262565b60006001600160a01b038316611c45577f000000000000000000000000000000000000000000000000000000000000000092505b6001600160a01b038316600090815260036020526040812080549091906001600160401b0316611c7761271086612447565b611c81919061245e565b8254909150611c9c90601290600160401b900460ff16612338565b611ca790600a612438565b610a689082612447565b604080516001600160a01b0385811660248301528416604482015260648082018490528251808303909101815260849091019091526020810180516001600160e01b03166323b872dd60e01b179052600090611869908690611e04565b60405163a9059cbb60e01b81526001600160a01b038381166004830152602482018390526000917f00000000000000000000000000000000000000000000000000000000000000009091169063a9059cbb906044016020604051808303816000875af1158015611d82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611da69190612240565b9392505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b179052611dff908490611e53565b505050565b6000806000806020600086516020880160008a5af192503d91506000519050828015611e4957508115611e3a5780600114611e49565b6000866001600160a01b03163b115b9695505050505050565b600080602060008451602086016000885af180611e76576040513d6000823e3d81fd5b50506000513d91508115611e8e578060011415611e9b565b6001600160a01b0384163b155b1561145e57604051635274afe760e01b81526001600160a01b03851660048201526024016106d0565b80356001600160a01b0381168114611add57600080fd5b80356001600160401b0381168114611add57600080fd5b60008060408385031215611f0557600080fd5b611f0e83611ec4565b9150611f1c60208401611edb565b90509250929050565b600060208284031215611f3757600080fd5b611da682611ec4565b60008060408385031215611f5357600080fd5b611f5c83611ec4565b946020939093013593505050565b600060208284031215611f7c57600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b600060208284031215611fab57600080fd5b81356001600160401b03811115611fc157600080fd5b8201601f81018413611fd257600080fd5b80356001600160401b03811115611feb57611feb611f83565b8060051b604051601f19603f83011681018181106001600160401b038211171561201757612017611f83565b60405291825260208184018101929081018784111561203557600080fd5b6020850194505b8385101561205b5761204d85611ec4565b81526020948501940161203c565b509695505050505050565b803560ff81168114611add57600080fd5b6000806000806080858703121561208d57600080fd5b61209685611ec4565b93506120a460208601612066565b93969395505050506040820135916060013590565b6000806000606084860312156120ce57600080fd5b6120d784611ec4565b92506120e560208501612066565b91506120f360408501611edb565b90509250925092565b602080825282518282018190526000918401906040840190835b8181101561213d5783516001600160a01b0316835260209384019390920191600101612116565b509095945050505050565b602080825260029082015261045360f41b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b6001600160401b038181168382160290811690818114610a6c57610a6c612164565b634e487b7160e01b600052601260045260246000fd5b60006001600160401b038316806121cb576121cb61219c565b806001600160401b0384160491505092915050565b6020808252600490820152630453130360e41b604082015260600190565b81810381811115611b8057611b80612164565b602080825260029082015261453160f01b604082015260600190565b80820180821115611b8057611b80612164565b60006020828403121561225257600080fd5b81518015158114611da657600080fd5b60006020828403121561227457600080fd5b5051919050565b634e487b7160e01b600052603260045260246000fd5b600061ffff821661ffff81036122a9576122a9612164565b60010192915050565b634e487b7160e01b600052602160045260246000fd5b600381106122e657634e487b7160e01b600052602160045260246000fd5b9052565b606081016122f882866122c8565b602082019390935260400152919050565b6001600160a01b03851681526080810161232660208301866122c8565b60408201939093526060015292915050565b60ff8281168282160390811115611b8057611b80612164565b6001815b600184111561238c5780850481111561237057612370612164565b600184161561237e57908102905b60019390931c928002612355565b935093915050565b6000826123a357506001611b80565b816123b057506000611b80565b81600181146123c657600281146123d0576123ec565b6001915050611b80565b60ff8411156123e1576123e1612164565b50506001821b611b80565b5060208310610133831016604e8410600b841016171561240f575081810a611b80565b61241c6000198484612351565b806000190482111561243057612430612164565b029392505050565b6000611da660ff841683612394565b8082028115828204841417611b8057611b80612164565b60008261246d5761246d61219c565b50049056fea26469706673582212202fb92cae60a5d2e0a22aebc7c6277da1dc5bf0129772a55b190d1e1a3eaa1d3964736f6c634300081e003300000000000000000000000010163f09e2198b5e80dfdc33312348400bff9203000000000000000000000000958d200a49f4765f771c61d2649965e26277fb6400000000000000000000000000000000000000000000000000000000689a21900000000000000000000000000000000000000000000000000000000068c300100000000000000000000000000000000000000000000000000000000000000064