Overview
ETH Balance
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Admin | 121656379 | 697 days ago | IN | 0 ETH | 0.000004520813 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 121656276 | 697 days ago | Contract Creation | 0 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
Contract ABI
API[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"JobDoesNotExist","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"},{"indexed":false,"internalType":"bytes","name":"payload","type":"bytes"}],"name":"AvailableOperatorJob","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"CrossChainMessageSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"FailedOperatorJob","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"jobHash","type":"bytes32"},{"indexed":false,"internalType":"address","name":"operator","type":"address"}],"name":"FinishedOperatorJob","type":"event"},{"stateMutability":"payable","type":"fallback"},{"inputs":[],"name":"admin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"target","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"adminCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"bondUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"crossChainMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"deleteFailedJob","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"jobHashes","type":"bytes32[]"}],"name":"deleteMultipleFailedJobs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32[]","name":"jobHashes","type":"bytes32[]"}],"name":"deleteMultipleOperatorJobs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"deleteOperatorJob","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"executeJob","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"failedJobExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAdmin","outputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedAmount","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedPod","outputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"getBondedPodIndex","outputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBridge","outputs":[{"internalType":"address","name":"bridge","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHolograph","outputs":[{"internalType":"address","name":"holograph","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInterfaces","outputs":[{"internalType":"address","name":"interfaces","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"getJobDetails","outputs":[{"components":[{"internalType":"uint8","name":"pod","type":"uint8"},{"internalType":"uint16","name":"blockTimes","type":"uint16"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint40","name":"startBlock","type":"uint40"},{"internalType":"uint64","name":"startTimestamp","type":"uint64"},{"internalType":"uint16[5]","name":"fallbackOperators","type":"uint16[5]"}],"internalType":"struct OperatorJob","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"getMessageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMessagingModule","outputs":[{"internalType":"address","name":"messagingModule","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getMinGasPrice","outputs":[{"internalType":"uint256","name":"minGasPrice","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodBondAmounts","outputs":[{"internalType":"uint256","name":"base","type":"uint256"},{"internalType":"uint256","name":"current","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"},{"internalType":"uint256","name":"index","type":"uint256"},{"internalType":"uint256","name":"length","type":"uint256"}],"name":"getPodOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodOperators","outputs":[{"internalType":"address[]","name":"operators","type":"address[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"pod","type":"uint256"}],"name":"getPodOperatorsLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRegistry","outputs":[{"internalType":"address","name":"registry","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTotalPods","outputs":[{"internalType":"uint256","name":"totalPods","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getUtilityToken","outputs":[{"internalType":"address","name":"utilityToken","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"initPayload","type":"bytes"}],"name":"init","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"jobEstimator","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"bytes","name":"payload","type":"bytes"}],"name":"nonRevertingBridgeCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"jobHash","type":"bytes32"}],"name":"operatorJobExists","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"gasLimit","type":"uint256"},{"internalType":"uint256","name":"gasPrice","type":"uint256"},{"internalType":"uint32","name":"toChain","type":"uint32"},{"internalType":"address","name":"msgSender","type":"address"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"address","name":"holographableContract","type":"address"},{"internalType":"bytes","name":"bridgeOutPayload","type":"bytes"}],"name":"send","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"adminAddress","type":"address"}],"name":"setAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"bridge","type":"address"}],"name":"setBridge","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"holograph","type":"address"}],"name":"setHolograph","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"interfaces","type":"address"}],"name":"setInterfaces","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"messagingModule","type":"address"}],"name":"setMessagingModule","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"minGasPrice","type":"uint256"}],"name":"setMinGasPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"registry","type":"address"}],"name":"setRegistry","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"utilityToken","type":"address"}],"name":"setUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"topupUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"unbondUtilityToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]Contract Creation Code
608060405234801561001057600080fd5b506146ab806100206000396000f3fe6080604052600436106102df5760003560e01c80636c8bcdb61161018457806390ac1866116100d6578063bf64a82d1161008a578063ebac15f911610064578063ebac15f91461094c578063f851a44014610980578063ff1370d91461099557600080fd5b8063bf64a82d14610904578063d2197bd314610917578063da8292d91461092c57600080fd5b8063a91ee0dc116100bb578063a91ee0dc146108b1578063abd51ebe146108d1578063b24b2afc146108f157600080fd5b806390ac18661461084e57806391e0d46b1461086e57600080fd5b8063778fd1d1116101385780638dd14802116101125780638dd14802146107cb5780639013ae08146107eb578063905eceed1461080b57600080fd5b8063778fd1d1146107785780637868674d1461078b5780638b432e4e146107ab57600080fd5b8063700b4ba211610169578063700b4ba2146106f5578063704b6c0214610715578063761b48ec1461073557600080fd5b80636c8bcdb6146106a15780636e9960c3146106c157600080fd5b80632ff96b3c1161023d578063493b07ef116101f1578063612a3372116101cb578063612a33721461063e57806368cf69831461065e578063696af2bf1461068e57600080fd5b8063493b07ef146105845780634ddf47d4146105b95780635ab1bd531461060a57600080fd5b8063409aad6911610222578063409aad69146105095780634827ae0c1461051c57806348dfc8b71461055057600080fd5b80632ff96b3c146104b55780633fb58819146104d557600080fd5b806321cb8f371161029457806325d5cac81161027957806325d5cac81461044857806327aa01f5146104685780632b4a75b41461049557600080fd5b806321cb8f3714610413578063254e10621461043557600080fd5b80630b239c4e116102c55780630b239c4e146103845780630fffbaf3146103b257806311a33bda146103e657600080fd5b8062626679146102eb57806301bed9781461034557600080fd5b366102e657005b600080fd5b3480156102f757600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561035157600080fd5b50610374610360366004613ac7565b600090815260076020526040902054151590565b604051901515815260200161033c565b34801561039057600080fd5b506103a461039f366004613ac7565b6109d0565b60405190815260200161033c565b3480156103be57600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95461031b565b3480156103f257600080fd5b50610406610401366004613ac7565b610a73565b60405161033c9190613ae0565b34801561041f57600080fd5b5061043361042e366004613b9f565b610b4c565b005b610433610443366004613c14565b610d30565b34801561045457600080fd5b50610433610463366004613c56565b6111ca565b34801561047457600080fd5b50610488610483366004613c73565b6112a4565b60405161033c9190613c9f565b3480156104a157600080fd5b506104336104b0366004613c56565b611467565b3480156104c157600080fd5b506104336104d0366004613d77565b611541565b3480156104e157600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0546103a4565b610433610517366004613e2f565b6116f2565b34801561052857600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5461031b565b34801561055c57600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5461031b565b34801561059057600080fd5b506105a461059f366004613ac7565b611cd5565b6040805192835260208301919091520161033c565b3480156105c557600080fd5b506105d96105d4366004613ec7565b611d07565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161033c565b34801561061657600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75461031b565b34801561064a57600080fd5b50610433610659366004613f7a565b611f8f565b34801561066a57600080fd5b50610374610679366004613ac7565b60009081526008602052604090205460ff1690565b61043361069c366004613fb3565b612346565b3480156106ad57600080fd5b506104336106bc366004613ac7565b6123f7565b3480156106cd57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95461031b565b34801561070157600080fd5b50610433610710366004613d77565b612508565b34801561072157600080fd5b50610433610730366004613c56565b612653565b34801561074157600080fd5b506103a4610750366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b610433610786366004613c14565b61272d565b34801561079757600080fd5b506104886107a6366004613ac7565b6127b5565b3480156107b757600080fd5b506104336107c6366004614008565b6128b8565b3480156107d757600080fd5b506104336107e6366004613c56565b612e22565b3480156107f757600080fd5b50610433610806366004613c56565b612efc565b34801561081757600080fd5b506103a4610826366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561085a57600080fd5b50610433610869366004613ac7565b612fd6565b34801561087a57600080fd5b506103a4610889366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156108bd57600080fd5b506104336108cc366004613c56565b6130b0565b3480156108dd57600080fd5b506104336108ec366004613ac7565b61318a565b6103a46108ff366004613c14565b6132c1565b610433610912366004613fb3565b61331b565b34801561092357600080fd5b50600b546103a4565b34801561093857600080fd5b50610433610947366004613c56565b6133f6565b34801561095857600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488275461031b565b34801561098c57600080fd5b5061031b6134d0565b3480156109a157600080fd5b506109b56109b036600461403d565b6134ff565b6040805193845260208401929092529082015260600161033c565b600b54600090821115610a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b610a516001846140d6565b81548110610a6157610a616140ed565b60009182526020909120015492915050565b610a7b61393d565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610a3b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061411c565b610d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610a3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610e367f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610e4c92919061413e565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610ec17f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610f4491838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610f9157610f9161414e565b0690506000600b8281548110610fa957610fa96140ed565b6000918252602082200154915087610fd057818481610fca57610fca61414e565b06610fd3565b60005b9050600b8381548110610fe857610fe86140ed565b906000526020600020018181548110611003576110036140ed565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556110728382613544565b60018211156110a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b6060896110bd576110b888856005613802565b6110c0565b60005b901b60708a6110da576110d589866004613802565b6110dd565b60005b901b60808b6110f7576110f28a876003613802565b6110fa565b60005b901b60908c6111145761110f8b886002613802565b611117565b60005b901b60a08d6111315761112c8c896001613802565b611134565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c6040516111b5939291906141c6565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b54606090841115611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610a3b565b8361131d816141e9565b9450506000600b8581548110611335576113356140ed565b60009182526020909120015490508061134e848661421e565b11156113615761135e84826140d6565b92505b8267ffffffffffffffff81111561137a5761137a613cf9565b6040519080825280602002602001820160405280156113a3578160200160208202803683370190505b50915060005b8381101561145e57600b86815481106113c4576113c46140ed565b9060005260206000200181866113da919061421e565b815481106113ea576113ea6140ed565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281518110611427576114276140ed565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061145681614236565b9150506113a9565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60005b8151811015610d2c5760086000838381518110611619576116196140ed565b60209081029190910181015182528101919091526040016000205460ff1661168a5781818151811061164d5761164d6140ed565b60200260200101516040517f5f5889c9000000000000000000000000000000000000000000000000000000008152600401610a3b91815260200190565b600860008383815181106116a0576116a06140ed565b602090810291909101810151825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055806116ea81614236565b9150506115fa565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610a3b565b60006117d27f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b815260040161181795949392919061426e565b602060405180830381865afa158015611834573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185891906142a5565b905060006118847fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76118c77fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193591906142be565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa15801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b391906142db565b9050348210611a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610a3b565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f19350505050158015611a61573d6000803e3d6000fd5b5060007f16f1be700000000000000000000000000000000000000000000000000000000088611aae7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c91906142be565b898560008860018d8d604051602401611b3d999897969594939291906142f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935251909250611bcf9183918f918f9101614397565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef611c2585346140d6565b8e8e8e8e611c338a346140d6565b886040518863ffffffff1660e01b8152600401611c55969594939291906143be565b6000604051808303818588803b158015611c6e57600080fd5b505af1158015611c82573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b78180519060200120604051611cbf91815260200190565b60405180910390a1505050505050505050505050565b600080611ceb611ce66001856140d6565b613822565b9150611d00611cfb6001856140d6565b613845565b9050915091565b6000611d317f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610a3b565b60008060008060008087806020019051810190611db5919061444e565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611f0b91600b9190613979565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611f6260017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040812054900361201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610a3b565b3373ffffffffffffffffffffffffffffffffffffffff8316146121ac5761204382613903565b6120a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610a3b565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f91906142db565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610a3b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c9092529091205461221e906121f3906001906140d6565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613544565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af11580156122b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122db919061411c565b612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b505050565b3330146123af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610a3b565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061043357600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60008181526007602052604081205490036124f7576040517f5f5889c900000000000000000000000000000000000000000000000000000000815260048101829052602401610a3b565b600090815260076020526040812055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60005b8151811015610d2c57600760008383815181106125e0576125e06140ed565b60200260200101518152602001908152602001600020546000036126105781818151811061164d5761164d6140ed565b60076000838381518110612626576126266140ed565b6020026020010151815260200190815260200160002060009055808061264b90614236565b9150506125c1565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f484f4c4f47524150483a20657865637574654a6f622069732063757272656e7460448201527f6c792064697361626c65640000000000000000000000000000000000000000006064820152608401610a3b565b600b54606090821115612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610a3b565b600b6128316001846140d6565b81548110612841576128416140ed565b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156128ac57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612881575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205415801561290e575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610a3b565b61297d83613903565b15612a8657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0991906142db565b73ffffffffffffffffffffffffffffffffffffffff1603612a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610a3b565b6000612a9460018303613845565b905082811115612b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610a3b565b600b54821115612b6f57600b545b82811015612b6d5760408051602081019091526000808252600b80546001818101835591909252612b64927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990920191906139d0565b50600101612b0e565b505b61ffff8016600b6001840381548110612b8a57612b8a6140ed565b60009182526020909120015410612bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610a3b565b600b6001830381548110612c1357612c136140ed565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501908110612ca657612ca66140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e905220839055612d177fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015612d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db6919061411c565b612e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461308c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60008181526008602052604090205460ff1661328b576040517f5f5889c900000000000000000000000000000000000000000000000000000000815260048101829052602401610a3b565b600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af160018103613310573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146133d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b808260003760008082600034875af13d6000803e8080156133f1573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146134ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b60006134fa7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e8080156133f1573d6000f35b8015610d2c576000600b838154811061355f5761355f6140ed565b90600052602060002001828154811061357a5761357a6140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b8054919350600191869081106135d2576135d26140ed565b60009182526020909120015403905082811461371857600b84815481106135fb576135fb6140ed565b906000526020600020018181548110613616576136166140ed565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff909216918690811061364f5761364f6140ed565b90600052602060002001848154811061366a5761366a6140ed565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b87815481106136ca576136ca6140ed565b9060005260206000200186815481106136e5576136e56140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b848154811061372b5761372b6140ed565b906000526020600020018181548110613746576137466140ed565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b80548590811061378b5761378b6140ed565b906000526020600020018054806137a4576137a4614506565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b60008243839003408501816138195761381961414e565b06949350505050565b6000600154826002546138359190614655565b61383f9190614661565b92915050565b600080600154836002546138599190614655565b6138639190614661565b600b5490915083106138755792915050565b6000613882846002614655565b60035461388f91906144cb565b90506000600b85815481106138a6576138a66140ed565b6000918252602090912001549050818111156138fa576138c682826140d6565b9050600454816138d691906144cb565b6005546138e390856144cb565b6138ed9190614661565b6138f7908461421e565b92505b50909392505050565b6000813f801580159061393657507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613974613a56565b905290565b8280548282559060005260206000209081019282156139c0579160200282015b828111156139c05782516139b090839060016139d0565b5091602001919060010190613999565b506139cc929150613a74565b5090565b828054828255906000526020600020908101928215613a4a579160200282015b82811115613a4a57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906139f0565b506139cc929150613a91565b6040518060a001604052806005906020820280368337509192915050565b808211156139cc576000613a888282613aa6565b50600101613a74565b5b808211156139cc5760008155600101613a92565b5080546000825590600052602060002090810190613ac49190613a91565b50565b600060208284031215613ad957600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b6005811015613b72578351831682529284019290840190600101613b53565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613ac457600080fd5b60008060408385031215613bb257600080fd5b8235613bbd81613b7d565b946020939093013593505050565b60008083601f840112613bdd57600080fd5b50813567ffffffffffffffff811115613bf557600080fd5b602083019150836020828501011115613c0d57600080fd5b9250929050565b60008060208385031215613c2757600080fd5b823567ffffffffffffffff811115613c3e57600080fd5b613c4a85828601613bcb565b90969095509350505050565b600060208284031215613c6857600080fd5b813561393681613b7d565b600080600060608486031215613c8857600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015613ced57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101613cbb565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613d6f57613d6f613cf9565b604052919050565b60006020808385031215613d8a57600080fd5b823567ffffffffffffffff80821115613da257600080fd5b818501915085601f830112613db657600080fd5b813581811115613dc857613dc8613cf9565b8060051b9150613dd9848301613d28565b8181529183018401918481019088841115613df357600080fd5b938501935b83851015613e1157843582529385019390850190613df8565b98975050505050505050565b63ffffffff81168114613ac457600080fd5b60008060008060008060008060e0898b031215613e4b57600080fd5b88359750602089013596506040890135613e6481613e1d565b95506060890135613e7481613b7d565b94506080890135935060a0890135613e8b81613b7d565b925060c089013567ffffffffffffffff811115613ea757600080fd5b613eb38b828c01613bcb565b999c989b5096995094979396929594505050565b60006020808385031215613eda57600080fd5b823567ffffffffffffffff80821115613ef257600080fd5b818501915085601f830112613f0657600080fd5b813581811115613f1857613f18613cf9565b613f48847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613d28565b91508082528684828501011115613f5e57600080fd5b8084840185840137600090820190930192909252509392505050565b60008060408385031215613f8d57600080fd5b8235613f9881613b7d565b91506020830135613fa881613b7d565b809150509250929050565b600080600060408486031215613fc857600080fd5b8335613fd381613b7d565b9250602084013567ffffffffffffffff811115613fef57600080fd5b613ffb86828701613bcb565b9497909650939450505050565b60008060006060848603121561401d57600080fd5b833561402881613b7d565b95602085013595506040909401359392505050565b60008060008060006080868803121561405557600080fd5b853561406081613e1d565b94506020860135935060408601359250606086013567ffffffffffffffff81111561408a57600080fd5b61409688828901613bcb565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156140e8576140e86140a7565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561412e57600080fd5b8151801515811461393657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006141e060408301848661417d565b95945050505050565b6000816141f8576141f86140a7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008219821115614231576142316140a7565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614267576142676140a7565b5060010190565b63ffffffff8616815284602082015283604082015260806060820152600061429a60808301848661417d565b979650505050505050565b6000602082840312156142b757600080fd5b5051919050565b6000602082840312156142d057600080fd5b815161393681613e1d565b6000602082840312156142ed57600080fd5b815161393681613b7d565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e084015261435b818401858761417d565b9c9b505050505050505050505050565b60005b8381101561438657818101518382015260200161436e565b83811115612e1c5750506000910152565b600084516143a981846020890161436b565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c08401526144178160e085016020870161436b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c0878903121561446757600080fd5b865161447281613b7d565b602088015190965061448381613b7d565b604088015190955061449481613b7d565b60608801519094506144a581613b7d565b60808801519093506144b681613b7d565b8092505060a087015190509295509295509295565b600082614501577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b8085111561458e57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614574576145746140a7565b8085161561458157918102915b93841c939080029061453a565b509250929050565b6000826145a55750600161383f565b816145b25750600061383f565b81600181146145c857600281146145d2576145ee565b600191505061383f565b60ff8411156145e3576145e36140a7565b50506001821b61383f565b5060208310610133831016604e8410600b8410161715614611575081810a61383f565b61461b8383614535565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561464d5761464d6140a7565b029392505050565b60006139368383614596565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614699576146996140a7565b50029056fea164736f6c634300080d000a
Deployed Bytecode
0x6080604052600436106102df5760003560e01c80636c8bcdb61161018457806390ac1866116100d6578063bf64a82d1161008a578063ebac15f911610064578063ebac15f91461094c578063f851a44014610980578063ff1370d91461099557600080fd5b8063bf64a82d14610904578063d2197bd314610917578063da8292d91461092c57600080fd5b8063a91ee0dc116100bb578063a91ee0dc146108b1578063abd51ebe146108d1578063b24b2afc146108f157600080fd5b806390ac18661461084e57806391e0d46b1461086e57600080fd5b8063778fd1d1116101385780638dd14802116101125780638dd14802146107cb5780639013ae08146107eb578063905eceed1461080b57600080fd5b8063778fd1d1146107785780637868674d1461078b5780638b432e4e146107ab57600080fd5b8063700b4ba211610169578063700b4ba2146106f5578063704b6c0214610715578063761b48ec1461073557600080fd5b80636c8bcdb6146106a15780636e9960c3146106c157600080fd5b80632ff96b3c1161023d578063493b07ef116101f1578063612a3372116101cb578063612a33721461063e57806368cf69831461065e578063696af2bf1461068e57600080fd5b8063493b07ef146105845780634ddf47d4146105b95780635ab1bd531461060a57600080fd5b8063409aad6911610222578063409aad69146105095780634827ae0c1461051c57806348dfc8b71461055057600080fd5b80632ff96b3c146104b55780633fb58819146104d557600080fd5b806321cb8f371161029457806325d5cac81161027957806325d5cac81461044857806327aa01f5146104685780632b4a75b41461049557600080fd5b806321cb8f3714610413578063254e10621461043557600080fd5b80630b239c4e116102c55780630b239c4e146103845780630fffbaf3146103b257806311a33bda146103e657600080fd5b8062626679146102eb57806301bed9781461034557600080fd5b366102e657005b600080fd5b3480156102f757600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801561035157600080fd5b50610374610360366004613ac7565b600090815260076020526040902054151590565b604051901515815260200161033c565b34801561039057600080fd5b506103a461039f366004613ac7565b6109d0565b60405190815260200161033c565b3480156103be57600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95461031b565b3480156103f257600080fd5b50610406610401366004613ac7565b610a73565b60405161033c9190613ae0565b34801561041f57600080fd5b5061043361042e366004613b9f565b610b4c565b005b610433610443366004613c14565b610d30565b34801561045457600080fd5b50610433610463366004613c56565b6111ca565b34801561047457600080fd5b50610488610483366004613c73565b6112a4565b60405161033c9190613c9f565b3480156104a157600080fd5b506104336104b0366004613c56565b611467565b3480156104c157600080fd5b506104336104d0366004613d77565b611541565b3480156104e157600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0546103a4565b610433610517366004613e2f565b6116f2565b34801561052857600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5461031b565b34801561055c57600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5461031b565b34801561059057600080fd5b506105a461059f366004613ac7565b611cd5565b6040805192835260208301919091520161033c565b3480156105c557600080fd5b506105d96105d4366004613ec7565b611d07565b6040517fffffffff00000000000000000000000000000000000000000000000000000000909116815260200161033c565b34801561061657600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75461031b565b34801561064a57600080fd5b50610433610659366004613f7a565b611f8f565b34801561066a57600080fd5b50610374610679366004613ac7565b60009081526008602052604090205460ff1690565b61043361069c366004613fb3565b612346565b3480156106ad57600080fd5b506104336106bc366004613ac7565b6123f7565b3480156106cd57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95461031b565b34801561070157600080fd5b50610433610710366004613d77565b612508565b34801561072157600080fd5b50610433610730366004613c56565b612653565b34801561074157600080fd5b506103a4610750366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b610433610786366004613c14565b61272d565b34801561079757600080fd5b506104886107a6366004613ac7565b6127b5565b3480156107b757600080fd5b506104336107c6366004614008565b6128b8565b3480156107d757600080fd5b506104336107e6366004613c56565b612e22565b3480156107f757600080fd5b50610433610806366004613c56565b612efc565b34801561081757600080fd5b506103a4610826366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561085a57600080fd5b50610433610869366004613ac7565b612fd6565b34801561087a57600080fd5b506103a4610889366004613c56565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156108bd57600080fd5b506104336108cc366004613c56565b6130b0565b3480156108dd57600080fd5b506104336108ec366004613ac7565b61318a565b6103a46108ff366004613c14565b6132c1565b610433610912366004613fb3565b61331b565b34801561092357600080fd5b50600b546103a4565b34801561093857600080fd5b50610433610947366004613c56565b6133f6565b34801561095857600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488275461031b565b34801561098c57600080fd5b5061031b6134d0565b3480156109a157600080fd5b506109b56109b036600461403d565b6134ff565b6040805193845260208401929092529082015260600161033c565b600b54600090821115610a44576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b610a516001846140d6565b81548110610a6157610a616140ed565b60009182526020909120015492915050565b610a7b61393d565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610bda576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610a3b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610ca2573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610cc6919061411c565b610d2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610de6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610a3b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610e367f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610e4c92919061413e565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610ec17f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610f4491838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610f9157610f9161414e565b0690506000600b8281548110610fa957610fa96140ed565b6000918252602082200154915087610fd057818481610fca57610fca61414e565b06610fd3565b60005b9050600b8381548110610fe857610fe86140ed565b906000526020600020018181548110611003576110036140ed565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9092169190911790556110728382613544565b60018211156110a1577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b6060896110bd576110b888856005613802565b6110c0565b60005b901b60708a6110da576110d589866004613802565b6110dd565b60005b901b60808b6110f7576110f28a876003613802565b6110fa565b60005b901b60908c6111145761110f8b886002613802565b611117565b60005b901b60a08d6111315761112c8c896001613802565b611134565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c6040516111b5939291906141c6565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611280576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b54606090841115611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610a3b565b8361131d816141e9565b9450506000600b8581548110611335576113356140ed565b60009182526020909120015490508061134e848661421e565b11156113615761135e84826140d6565b92505b8267ffffffffffffffff81111561137a5761137a613cf9565b6040519080825280602002602001820160405280156113a3578160200160208202803683370190505b50915060005b8381101561145e57600b86815481106113c4576113c46140ed565b9060005260206000200181866113da919061421e565b815481106113ea576113ea6140ed565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16838281518110611427576114276140ed565b73ffffffffffffffffffffffffffffffffffffffff909216602092830291909101909101528061145681614236565b9150506113a9565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461151d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146115f7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60005b8151811015610d2c5760086000838381518110611619576116196140ed565b60209081029190910181015182528101919091526040016000205460ff1661168a5781818151811061164d5761164d6140ed565b60200260200101516040517f5f5889c9000000000000000000000000000000000000000000000000000000008152600401610a3b91815260200190565b600860008383815181106116a0576116a06140ed565b602090810291909101810151825281019190915260400160002080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055806116ea81614236565b9150506115fa565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610a3b565b60006117d27f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b815260040161181795949392919061426e565b602060405180830381865afa158015611834573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061185891906142a5565b905060006118847fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76118c77fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611911573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193591906142be565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa15801561198f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906119b391906142db565b9050348210611a1e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610a3b565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f19350505050158015611a61573d6000803e3d6000fd5b5060007f16f1be700000000000000000000000000000000000000000000000000000000088611aae7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611af8573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b1c91906142be565b898560008860018d8d604051602401611b3d999897969594939291906142f8565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009095169490941790935251909250611bcf9183918f918f9101614397565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef611c2585346140d6565b8e8e8e8e611c338a346140d6565b886040518863ffffffff1660e01b8152600401611c55969594939291906143be565b6000604051808303818588803b158015611c6e57600080fd5b505af1158015611c82573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b78180519060200120604051611cbf91815260200190565b60405180910390a1505050505050505050505050565b600080611ceb611ce66001856140d6565b613822565b9150611d00611cfb6001856140d6565b613845565b9050915091565b6000611d317f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611d98576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610a3b565b60008060008060008087806020019051810190611db5919061444e565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611f0b91600b9190613979565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611f6260017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c6020526040812054900361201d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610a3b565b3373ffffffffffffffffffffffffffffffffffffffff8316146121ac5761204382613903565b6120a9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610a3b565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa15801561210b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061212f91906142db565b73ffffffffffffffffffffffffffffffffffffffff16146121ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610a3b565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c9092529091205461221e906121f3906001906140d6565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613544565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af11580156122b7573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122db919061411c565b612341576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b505050565b3330146123af576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610a3b565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061043357600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146124ad576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60008181526007602052604081205490036124f7576040517f5f5889c900000000000000000000000000000000000000000000000000000000815260048101829052602401610a3b565b600090815260076020526040812055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146125be576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60005b8151811015610d2c57600760008383815181106125e0576125e06140ed565b60200260200101518152602001908152602001600020546000036126105781818151811061164d5761164d6140ed565b60076000838381518110612626576126266140ed565b6020026020010151815260200190815260200160002060009055808061264b90614236565b9150506125c1565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612709576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f484f4c4f47524150483a20657865637574654a6f622069732063757272656e7460448201527f6c792064697361626c65640000000000000000000000000000000000000000006064820152608401610a3b565b600b54606090821115612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610a3b565b600b6128316001846140d6565b81548110612841576128416140ed565b906000526020600020018054806020026020016040519081016040528092919081815260200182805480156128ac57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612881575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c602052604090205415801561290e575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b612974576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610a3b565b61297d83613903565b15612a8657600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129e5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a0991906142db565b73ffffffffffffffffffffffffffffffffffffffff1603612a86576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610a3b565b6000612a9460018303613845565b905082811115612b00576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610a3b565b600b54821115612b6f57600b545b82811015612b6d5760408051602081019091526000808252600b80546001818101835591909252612b64927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db990920191906139d0565b50600101612b0e565b505b61ffff8016600b6001840381548110612b8a57612b8a6140ed565b60009182526020909120015410612bfd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610a3b565b600b6001830381548110612c1357612c136140ed565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8501908110612ca657612ca66140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e905220839055612d177fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015612d92573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612db6919061411c565b612e1c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610a3b565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612ed8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614612fb2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461308c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613166576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613240576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b60008181526008602052604090205460ff1661328b576040517f5f5889c900000000000000000000000000000000000000000000000000000000815260048101829052602401610a3b565b600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af160018103613310573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146133d1576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b808260003760008082600034875af13d6000803e8080156133f1573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146134ac576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610a3b565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b60006134fa7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e8080156133f1573d6000f35b8015610d2c576000600b838154811061355f5761355f6140ed565b90600052602060002001828154811061357a5761357a6140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b8054919350600191869081106135d2576135d26140ed565b60009182526020909120015403905082811461371857600b84815481106135fb576135fb6140ed565b906000526020600020018181548110613616576136166140ed565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff909216918690811061364f5761364f6140ed565b90600052602060002001848154811061366a5761366a6140ed565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b87815481106136ca576136ca6140ed565b9060005260206000200186815481106136e5576136e56140ed565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b848154811061372b5761372b6140ed565b906000526020600020018181548110613746576137466140ed565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b80548590811061378b5761378b6140ed565b906000526020600020018054806137a4576137a4614506565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b60008243839003408501816138195761381961414e565b06949350505050565b6000600154826002546138359190614655565b61383f9190614661565b92915050565b600080600154836002546138599190614655565b6138639190614661565b600b5490915083106138755792915050565b6000613882846002614655565b60035461388f91906144cb565b90506000600b85815481106138a6576138a66140ed565b6000918252602090912001549050818111156138fa576138c682826140d6565b9050600454816138d691906144cb565b6005546138e390856144cb565b6138ed9190614661565b6138f7908461421e565b92505b50909392505050565b6000813f801580159061393657507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613974613a56565b905290565b8280548282559060005260206000209081019282156139c0579160200282015b828111156139c05782516139b090839060016139d0565b5091602001919060010190613999565b506139cc929150613a74565b5090565b828054828255906000526020600020908101928215613a4a579160200282015b82811115613a4a57825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9091161782556020909201916001909101906139f0565b506139cc929150613a91565b6040518060a001604052806005906020820280368337509192915050565b808211156139cc576000613a888282613aa6565b50600101613a74565b5b808211156139cc5760008155600101613a92565b5080546000825590600052602060002090810190613ac49190613a91565b50565b600060208284031215613ad957600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b6005811015613b72578351831682529284019290840190600101613b53565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff81168114613ac457600080fd5b60008060408385031215613bb257600080fd5b8235613bbd81613b7d565b946020939093013593505050565b60008083601f840112613bdd57600080fd5b50813567ffffffffffffffff811115613bf557600080fd5b602083019150836020828501011115613c0d57600080fd5b9250929050565b60008060208385031215613c2757600080fd5b823567ffffffffffffffff811115613c3e57600080fd5b613c4a85828601613bcb565b90969095509350505050565b600060208284031215613c6857600080fd5b813561393681613b7d565b600080600060608486031215613c8857600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b81811015613ced57835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101613cbb565b50909695505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613d6f57613d6f613cf9565b604052919050565b60006020808385031215613d8a57600080fd5b823567ffffffffffffffff80821115613da257600080fd5b818501915085601f830112613db657600080fd5b813581811115613dc857613dc8613cf9565b8060051b9150613dd9848301613d28565b8181529183018401918481019088841115613df357600080fd5b938501935b83851015613e1157843582529385019390850190613df8565b98975050505050505050565b63ffffffff81168114613ac457600080fd5b60008060008060008060008060e0898b031215613e4b57600080fd5b88359750602089013596506040890135613e6481613e1d565b95506060890135613e7481613b7d565b94506080890135935060a0890135613e8b81613b7d565b925060c089013567ffffffffffffffff811115613ea757600080fd5b613eb38b828c01613bcb565b999c989b5096995094979396929594505050565b60006020808385031215613eda57600080fd5b823567ffffffffffffffff80821115613ef257600080fd5b818501915085601f830112613f0657600080fd5b813581811115613f1857613f18613cf9565b613f48847fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613d28565b91508082528684828501011115613f5e57600080fd5b8084840185840137600090820190930192909252509392505050565b60008060408385031215613f8d57600080fd5b8235613f9881613b7d565b91506020830135613fa881613b7d565b809150509250929050565b600080600060408486031215613fc857600080fd5b8335613fd381613b7d565b9250602084013567ffffffffffffffff811115613fef57600080fd5b613ffb86828701613bcb565b9497909650939450505050565b60008060006060848603121561401d57600080fd5b833561402881613b7d565b95602085013595506040909401359392505050565b60008060008060006080868803121561405557600080fd5b853561406081613e1d565b94506020860135935060408601359250606086013567ffffffffffffffff81111561408a57600080fd5b61409688828901613bcb565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000828210156140e8576140e86140a7565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006020828403121561412e57600080fd5b8151801515811461393657600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b8381526040602082015260006141e060408301848661417d565b95945050505050565b6000816141f8576141f86140a7565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b60008219821115614231576142316140a7565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203614267576142676140a7565b5060010190565b63ffffffff8616815284602082015283604082015260806060820152600061429a60808301848661417d565b979650505050505050565b6000602082840312156142b757600080fd5b5051919050565b6000602082840312156142d057600080fd5b815161393681613e1d565b6000602082840312156142ed57600080fd5b815161393681613b7d565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e084015261435b818401858761417d565b9c9b505050505050505050505050565b60005b8381101561438657818101518382015260200161436e565b83811115612e1c5750506000910152565b600084516143a981846020890161436b565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c08401526144178160e085016020870161436b565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c0878903121561446757600080fd5b865161447281613b7d565b602088015190965061448381613b7d565b604088015190955061449481613b7d565b60608801519094506144a581613b7d565b60808801519093506144b681613b7d565b8092505060a087015190509295509295509295565b600082614501577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b8085111561458e57817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614574576145746140a7565b8085161561458157918102915b93841c939080029061453a565b509250929050565b6000826145a55750600161383f565b816145b25750600061383f565b81600181146145c857600281146145d2576145ee565b600191505061383f565b60ff8411156145e3576145e36140a7565b50506001821b61383f565b5060208310610133831016604e8410600b8410161715614611575081810a61383f565b61461b8383614535565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0482111561464d5761464d6140a7565b029392505050565b60006139368383614596565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614699576146996140a7565b50029056fea164736f6c634300080d000a
Generate instant answers for your smart contract questions using Al Models. Read more.
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.

