Overview
ETH Balance
ETH Value
$0.00Latest 1 from a total of 1 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Set Admin | 121351256 | 696 days ago | IN | 0 ETH | 0.000002719432 |
Latest 1 internal transaction
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 121351163 | 696 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"},{"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":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"executeJob","outputs":[],"stateMutability":"payable","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":"bytes","name":"bridgeInRequestPayload","type":"bytes"}],"name":"recoverJob","outputs":[],"stateMutability":"payable","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
608060405234801561001057600080fd5b50614c8d806100206000396000f3fe6080604052600436106102885760003560e01c80636e9960c31161015357806390ac1866116100cb578063d2197bd31161007f578063ebac15f911610064578063ebac15f914610819578063f851a4401461084d578063ff1370d91461086257600080fd5b8063d2197bd3146107e4578063da8292d9146107f957600080fd5b8063a91ee0dc116100b0578063a91ee0dc1461079e578063b24b2afc146107be578063bf64a82d146107d157600080fd5b806390ac18661461073b57806391e0d46b1461075b57600080fd5b80637868674d116101225780638dd14802116101075780638dd14802146106b85780639013ae08146106d8578063905eceed146106f857600080fd5b80637868674d146106785780638b432e4e1461069857600080fd5b80636e9960c3146105ce578063704b6c0214610602578063761b48ec14610622578063778fd1d11461066557600080fd5b80633fb58819116102015780634ddf47d4116101b55780635ab1bd531161019a5780635ab1bd5314610567578063612a33721461059b578063696af2bf146105bb57600080fd5b80634ddf47d41461050357806357a781221461055457600080fd5b80634827ae0c116101e65780634827ae0c1461046657806348dfc8b71461049a578063493b07ef146104ce57600080fd5b80633fb588191461041f578063409aad691461045357600080fd5b806321cb8f371161025857806325d5cac81161023d57806325d5cac8146103b257806327aa01f5146103d25780632b4a75b4146103ff57600080fd5b806321cb8f371461037d578063254e10621461039f57600080fd5b8062626679146102945780630b239c4e146102ee5780630fffbaf31461031c57806311a33bda1461035057600080fd5b3661028f57005b600080fd5b3480156102a057600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102fa57600080fd5b5061030e61030936600461412f565b61089d565b6040519081526020016102e5565b34801561032857600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546102c4565b34801561035c57600080fd5b5061037061036b36600461412f565b610940565b6040516102e59190614148565b34801561038957600080fd5b5061039d610398366004614207565b610a19565b005b61039d6103ad36600461427c565b610bfd565b3480156103be57600080fd5b5061039d6103cd3660046142be565b611097565b3480156103de57600080fd5b506103f26103ed3660046142db565b611171565b6040516102e59190614307565b34801561040b57600080fd5b5061039d61041a3660046142be565b611334565b34801561042b57600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05461030e565b61039d610461366004614373565b61140e565b34801561047257600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a546102c4565b3480156104a657600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a546102c4565b3480156104da57600080fd5b506104ee6104e936600461412f565b6119f1565b604080519283526020830191909152016102e5565b34801561050f57600080fd5b5061052361051e36600461443a565b611a23565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102e5565b61039d61056236600461427c565b611cab565b34801561057357600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e7546102c4565b3480156105a757600080fd5b5061039d6105b6366004614509565b611f30565b61039d6105c9366004614542565b6122e7565b3480156105da57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9546102c4565b34801561060e57600080fd5b5061039d61061d3660046142be565b612398565b34801561062e57600080fd5b5061030e61063d3660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b61039d61067336600461427c565b612472565b34801561068457600080fd5b506103f261069336600461412f565b612f54565b3480156106a457600080fd5b5061039d6106b3366004614597565b613057565b3480156106c457600080fd5b5061039d6106d33660046142be565b6135c1565b3480156106e457600080fd5b5061039d6106f33660046142be565b61369b565b34801561070457600080fd5b5061030e6107133660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561074757600080fd5b5061039d61075636600461412f565b613775565b34801561076757600080fd5b5061030e6107763660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156107aa57600080fd5b5061039d6107b93660046142be565b61384f565b61030e6107cc36600461427c565b613929565b61039d6107df366004614542565b613983565b3480156107f057600080fd5b50600b5461030e565b34801561080557600080fd5b5061039d6108143660046142be565b613a5e565b34801561082557600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd1848827546102c4565b34801561085957600080fd5b506102c4613b38565b34801561086e57600080fd5b5061088261087d3660046145cc565b613b67565b604080519384526020840192909252908201526060016102e5565b600b54600090821115610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b61091e600184614665565b8154811061092e5761092e61467c565b60009182526020909120015492915050565b610948613fa5565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9391906146ab565b610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610908565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610d037f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610d199291906146cd565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610d8e7f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610e1191838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610e5e57610e5e6146dd565b0690506000600b8281548110610e7657610e7661467c565b6000918252602082200154915087610e9d57818481610e9757610e976146dd565b06610ea0565b60005b9050600b8381548110610eb557610eb561467c565b906000526020600020018181548110610ed057610ed061467c565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055610f3f8382613bac565b6001821115610f6e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b606089610f8a57610f8588856005613e6a565b610f8d565b60005b901b60708a610fa757610fa289866004613e6a565b610faa565b60005b901b60808b610fc457610fbf8a876003613e6a565b610fc7565b60005b901b60908c610fe157610fdc8b886002613e6a565b610fe4565b60005b901b60a08d610ffe57610ff98c896001613e6a565b611001565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c60405161108293929190614755565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b546060908411156111e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b836111ea81614778565b9450506000600b85815481106112025761120261467c565b60009182526020909120015490508061121b84866147ad565b111561122e5761122b8482614665565b92505b8267ffffffffffffffff8111156112475761124761440b565b604051908082528060200260200182016040528015611270578160200160208202803683370190505b50915060005b8381101561132b57600b86815481106112915761129161467c565b9060005260206000200181866112a791906147ad565b815481106112b7576112b761467c565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106112f4576112f461467c565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280611323816147c5565b915050611276565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610908565b60006114ee7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b81526004016115339594939291906147fd565b602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190614834565b905060006115a07fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76115e37fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611651919061484d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf919061486a565b905034821061173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610908565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f1935050505015801561177d573d6000803e3d6000fd5b5060007f16f1be7000000000000000000000000000000000000000000000000000000000886117ca7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611814573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611838919061484d565b898560008860018d8d60405160240161185999989796959493929190614887565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090951694909417909352519092506118eb9183918f918f9101614926565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef6119418534614665565b8e8e8e8e61194f8a34614665565b886040518863ffffffff1660e01b81526004016119719695949392919061494d565b6000604051808303818588803b15801561198a57600080fd5b505af115801561199e573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b781805190602001206040516119db91815260200190565b60405180910390a1505050505050505050505050565b600080611a07611a02600185614665565b613e8a565b9150611a1c611a17600185614665565b613ead565b9050915091565b6000611a4d7f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610908565b60008060008060008087806020019051810190611ad191906149dd565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611c2791600b9190613fe1565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611c7e60017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b60008282604051611d739291906146cd565b604080519182900390912060008181526008602052919091205490915060ff16611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20696e76616c6964207265636f76657279206a6f62006044820152606401610908565b6000611e237feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95490565b73ffffffffffffffffffffffffffffffffffffffff16348585604051611e4a9291906146cd565b60006040518083038185875af1925050503d8060008114611e87576040519150601f19603f3d011682016040523d82523d6000602084013e611e8c565b606091505b5050905080611ef7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f484f4c4f47524150483a207265636f76657279206661696c65640000000000006044820152606401610908565b50600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003611fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff83161461214d57611fe482613f6b565b61204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d0919061486a565b73ffffffffffffffffffffffffffffffffffffffff161461214d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c909252909120546121bf9061219490600190614665565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613bac565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c91906146ab565b6122e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b505050565b333014612350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610908565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061039d57600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461244e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b600082826040516124849291906146cd565b60405180910390209050600060076000838152602001908152602001600020541161250b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f484f4c4f47524150483a20696e76616c6964206a6f62000000000000000000006044820152606401610908565b8183017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00135600061256184610940565b6000858152600760209081526040808320839055338352600e90915290819020549082015191925015159073ffffffffffffffffffffffffffffffffffffffff1615612d875781516000906125b890600190614a5a565b60ff1690503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614612cc0576000836080015167ffffffffffffffff16426126109190614665565b90506000846020015161ffff16826126289190614a7d565b905060008111612694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206f70657261746f72206861732074696d65000000006044820152606401610908565b3a8610156126fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20676173207370696b652064657465637465640000006044820152606401610908565b60068110156128aa5760a085015160009061271a600184614665565b6005811061272a5761272a61467c565b602002015161ffff1690506000811180156127625750600b84815481106127535761275361467c565b60009182526020909120015481105b1561282a576000600b858154811061277c5761277c61467c565b9060005260206000200182815481106127975761279761467c565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050338114612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20696e76616c69642066616c6c6261636b00000000006044820152606401610908565b506128a8565b8551336000908152600c602052604090205460ff909116146128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a20706f64206f6e6c792066616c6c6261636b000000006044820152606401610908565b505b60006128b584613e8a565b905080600e6000886040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461290a9190614665565b90915550507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb866129e6577fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5473ffffffffffffffffffffffffffffffffffffffff16633b19e84a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e1919061486a565b6129e8565b335b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044016020604051808303816000875af1158015612a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7e91906146ab565b5060408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548111612b9c57600b8481548110612ac057612ac061467c565b6000918252602080832060408a01519201805460018082018355918552919093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600b805486908110612b3857612b3861467c565b600091825260209091200154612b4e9190614665565b6040808801805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d6020908152848220959095558a5192519091168152600c909352912060ff9091169055612cb8565b60408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548015612cb65760408781015173ffffffffffffffffffffffffffffffffffffffff166000908152600e602052908120557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375460408089015190517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015612c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb491906146ab565b505b505b505050612d85565b600b8181548110612cd357612cd361467c565b60009182526020808320909101805460018181018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600b805483908110612d2d57612d2d61467c565b600091825260209091200154612d439190614665565b60408085015173ffffffffffffffffffffffffffffffffffffffff166000908152600d6020908152828220939093558551338252600c9093522060ff90911690555b505b600660008154612d96906147c5565b90915550604080518681523360208201527ffc3963369d694e97f35e33cc03fcd382bfa4dbb688ae43d318fcf344f479425e910160405180910390a1835a11612e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206e6f7420656e6f75676820676173206c65667400006044820152606401610908565b6040517f696af2bf000000000000000000000000000000000000000000000000000000008152309063696af2bf903490612e7d9033908c908c90600401614ab8565b6000604051808303818588803b158015612e9657600080fd5b505af193505050508015612ea8575060015b612f4b5760405133903480156108fc02916000818181858888f19350505050158015612ed8573d6000803e3d6000fd5b506000858152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f26dc03e6c4feb5e9d33804dc1646860c976c3aeabb458f4719c53dcbadbf44b590612f429087815260200190565b60405180910390a15b50505050505050565b600b54606090821115612fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b600b612fd0600184614665565b81548110612fe057612fe061467c565b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561304b57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311613020575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60205260409020541580156130ad575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b613113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610908565b61311c83613f6b565b1561322557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a8919061486a565b73ffffffffffffffffffffffffffffffffffffffff1603613225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610908565b600061323360018303613ead565b90508281111561329f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610908565b600b5482111561330e57600b545b8281101561330c5760408051602081019091526000808252600b80546001818101835591909252613303927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99092019190614038565b506001016132ad565b505b61ffff8016600b60018403815481106133295761332961467c565b6000918252602090912001541061339c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610908565b600b60018303815481106133b2576133b261467c565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85019081106134455761344561467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e9052208390556134b67fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015613531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355591906146ab565b6135bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461382b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af160018103613978573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b808260003760008082600034875af13d6000803e808015613a59573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613b14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b6000613b627f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e808015613a59573d6000f35b8015610bf9576000600b8381548110613bc757613bc761467c565b906000526020600020018281548110613be257613be261467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b805491935060019186908110613c3a57613c3a61467c565b600091825260209091200154039050828114613d8057600b8481548110613c6357613c6361467c565b906000526020600020018181548110613c7e57613c7e61467c565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff9092169186908110613cb757613cb761467c565b906000526020600020018481548110613cd257613cd261467c565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b8781548110613d3257613d3261467c565b906000526020600020018681548110613d4d57613d4d61467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b8481548110613d9357613d9361467c565b906000526020600020018181548110613dae57613dae61467c565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b805485908110613df357613df361467c565b90600052602060002001805480613e0c57613e0c614ae8565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b6000824383900340850181613e8157613e816146dd565b06949350505050565b600060015482600254613e9d9190614c37565b613ea79190614c43565b92915050565b60008060015483600254613ec19190614c37565b613ecb9190614c43565b600b549091508310613edd5792915050565b6000613eea846002614c37565b600354613ef79190614a7d565b90506000600b8581548110613f0e57613f0e61467c565b600091825260209091200154905081811115613f6257613f2e8282614665565b905060045481613f3e9190614a7d565b600554613f4b9085614a7d565b613f559190614c43565b613f5f90846147ad565b92505b50909392505050565b6000813f8015801590613f9e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613fdc6140be565b905290565b828054828255906000526020600020908101928215614028579160200282015b828111156140285782516140189083906001614038565b5091602001919060010190614001565b506140349291506140dc565b5090565b8280548282559060005260206000209081019282156140b2579160200282015b828111156140b257825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190614058565b506140349291506140f9565b6040518060a001604052806005906020820280368337509192915050565b808211156140345760006140f0828261410e565b506001016140dc565b5b8082111561403457600081556001016140fa565b508054600082559060005260206000209081019061412c91906140f9565b50565b60006020828403121561414157600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b60058110156141da5783518316825292840192908401906001016141bb565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461412c57600080fd5b6000806040838503121561421a57600080fd5b8235614225816141e5565b946020939093013593505050565b60008083601f84011261424557600080fd5b50813567ffffffffffffffff81111561425d57600080fd5b60208301915083602082850101111561427557600080fd5b9250929050565b6000806020838503121561428f57600080fd5b823567ffffffffffffffff8111156142a657600080fd5b6142b285828601614233565b90969095509350505050565b6000602082840312156142d057600080fd5b8135613f9e816141e5565b6000806000606084860312156142f057600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b8181101561435557835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614323565b50909695505050505050565b63ffffffff8116811461412c57600080fd5b60008060008060008060008060e0898b03121561438f57600080fd5b883597506020890135965060408901356143a881614361565b955060608901356143b8816141e5565b94506080890135935060a08901356143cf816141e5565b925060c089013567ffffffffffffffff8111156143eb57600080fd5b6143f78b828c01614233565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561444c57600080fd5b813567ffffffffffffffff8082111561446457600080fd5b818401915084601f83011261447857600080fd5b81358181111561448a5761448a61440b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156144d0576144d061440b565b816040528281528760208487010111156144e957600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561451c57600080fd5b8235614527816141e5565b91506020830135614537816141e5565b809150509250929050565b60008060006040848603121561455757600080fd5b8335614562816141e5565b9250602084013567ffffffffffffffff81111561457e57600080fd5b61458a86828701614233565b9497909650939450505050565b6000806000606084860312156145ac57600080fd5b83356145b7816141e5565b95602085013595506040909401359392505050565b6000806000806000608086880312156145e457600080fd5b85356145ef81614361565b94506020860135935060408601359250606086013567ffffffffffffffff81111561461957600080fd5b61462588828901614233565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561467757614677614636565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156146bd57600080fd5b81518015158114613f9e57600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b83815260406020820152600061476f60408301848661470c565b95945050505050565b60008161478757614787614636565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600082198211156147c0576147c0614636565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147f6576147f6614636565b5060010190565b63ffffffff8616815284602082015283604082015260806060820152600061482960808301848661470c565b979650505050505050565b60006020828403121561484657600080fd5b5051919050565b60006020828403121561485f57600080fd5b8151613f9e81614361565b60006020828403121561487c57600080fd5b8151613f9e816141e5565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e08401526148ea818401858761470c565b9c9b505050505050505050505050565b60005b838110156149155781810151838201526020016148fd565b838111156135bb5750506000910152565b600084516149388184602089016148fa565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c08401526149a68160e08501602087016148fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c087890312156149f657600080fd5b8651614a01816141e5565b6020880151909650614a12816141e5565b6040880151909550614a23816141e5565b6060880151909450614a34816141e5565b6080880151909350614a45816141e5565b8092505060a087015190509295509295509295565b600060ff821660ff841680821015614a7457614a74614636565b90039392505050565b600082614ab3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061476f60408301848661470c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b80851115614b7057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614b5657614b56614636565b80851615614b6357918102915b93841c9390800290614b1c565b509250929050565b600082614b8757506001613ea7565b81614b9457506000613ea7565b8160018114614baa5760028114614bb457614bd0565b6001915050613ea7565b60ff841115614bc557614bc5614636565b50506001821b613ea7565b5060208310610133831016604e8410600b8410161715614bf3575081810a613ea7565b614bfd8383614b17565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614c2f57614c2f614636565b029392505050565b6000613f9e8383614b78565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c7b57614c7b614636565b50029056fea164736f6c634300080d000a
Deployed Bytecode
0x6080604052600436106102885760003560e01c80636e9960c31161015357806390ac1866116100cb578063d2197bd31161007f578063ebac15f911610064578063ebac15f914610819578063f851a4401461084d578063ff1370d91461086257600080fd5b8063d2197bd3146107e4578063da8292d9146107f957600080fd5b8063a91ee0dc116100b0578063a91ee0dc1461079e578063b24b2afc146107be578063bf64a82d146107d157600080fd5b806390ac18661461073b57806391e0d46b1461075b57600080fd5b80637868674d116101225780638dd14802116101075780638dd14802146106b85780639013ae08146106d8578063905eceed146106f857600080fd5b80637868674d146106785780638b432e4e1461069857600080fd5b80636e9960c3146105ce578063704b6c0214610602578063761b48ec14610622578063778fd1d11461066557600080fd5b80633fb58819116102015780634ddf47d4116101b55780635ab1bd531161019a5780635ab1bd5314610567578063612a33721461059b578063696af2bf146105bb57600080fd5b80634ddf47d41461050357806357a781221461055457600080fd5b80634827ae0c116101e65780634827ae0c1461046657806348dfc8b71461049a578063493b07ef146104ce57600080fd5b80633fb588191461041f578063409aad691461045357600080fd5b806321cb8f371161025857806325d5cac81161023d57806325d5cac8146103b257806327aa01f5146103d25780632b4a75b4146103ff57600080fd5b806321cb8f371461037d578063254e10621461039f57600080fd5b8062626679146102945780630b239c4e146102ee5780630fffbaf31461031c57806311a33bda1461035057600080fd5b3661028f57005b600080fd5b3480156102a057600080fd5b507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37545b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b3480156102fa57600080fd5b5061030e61030936600461412f565b61089d565b6040519081526020016102e5565b34801561032857600080fd5b507feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546102c4565b34801561035c57600080fd5b5061037061036b36600461412f565b610940565b6040516102e59190614148565b34801561038957600080fd5b5061039d610398366004614207565b610a19565b005b61039d6103ad36600461427c565b610bfd565b3480156103be57600080fd5b5061039d6103cd3660046142be565b611097565b3480156103de57600080fd5b506103f26103ed3660046142db565b611171565b6040516102e59190614307565b34801561040b57600080fd5b5061039d61041a3660046142be565b611334565b34801561042b57600080fd5b507f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05461030e565b61039d610461366004614373565b61140e565b34801561047257600080fd5b507fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a546102c4565b3480156104a657600080fd5b507f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a546102c4565b3480156104da57600080fd5b506104ee6104e936600461412f565b6119f1565b604080519283526020830191909152016102e5565b34801561050f57600080fd5b5061052361051e36600461443a565b611a23565b6040517fffffffff0000000000000000000000000000000000000000000000000000000090911681526020016102e5565b61039d61056236600461427c565b611cab565b34801561057357600080fd5b507fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e7546102c4565b3480156105a757600080fd5b5061039d6105b6366004614509565b611f30565b61039d6105c9366004614542565b6122e7565b3480156105da57600080fd5b507f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9546102c4565b34801561060e57600080fd5b5061039d61061d3660046142be565b612398565b34801561062e57600080fd5b5061030e61063d3660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600e602052604090205490565b61039d61067336600461427c565b612472565b34801561068457600080fd5b506103f261069336600461412f565b612f54565b3480156106a457600080fd5b5061039d6106b3366004614597565b613057565b3480156106c457600080fd5b5061039d6106d33660046142be565b6135c1565b3480156106e457600080fd5b5061039d6106f33660046142be565b61369b565b34801561070457600080fd5b5061030e6107133660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600d602052604090205490565b34801561074757600080fd5b5061039d61075636600461412f565b613775565b34801561076757600080fd5b5061030e6107763660046142be565b73ffffffffffffffffffffffffffffffffffffffff166000908152600c602052604090205490565b3480156107aa57600080fd5b5061039d6107b93660046142be565b61384f565b61030e6107cc36600461427c565b613929565b61039d6107df366004614542565b613983565b3480156107f057600080fd5b50600b5461030e565b34801561080557600080fd5b5061039d6108143660046142be565b613a5e565b34801561082557600080fd5b507fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd1848827546102c4565b34801561085957600080fd5b506102c4613b38565b34801561086e57600080fd5b5061088261087d3660046145cc565b613b67565b604080519384526020840192909252908201526060016102e5565b600b54600090821115610911576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f7420657869737400000060448201526064015b60405180910390fd5b600b61091e600184614665565b8154811061092e5761092e61467c565b60009182526020909120015492915050565b610948613fa5565b50600090815260076020908152604080832054815160c08101835260f882901c8152845461ffff9081168286015263ffffffff60d884901c16865260098552948390205473ffffffffffffffffffffffffffffffffffffffff168184015264ffffffffff60b083901c1660608083019190915267ffffffffffffffff601084901c16608080840191909152845160a0818101875285811c89168252609086901c89169782019790975284821c881695810195909552607084901c87168583015292901c909416908201529082015290565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003610aa7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e602052604090208054820190557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810183905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015610b6f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b9391906146ab565b610bf9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b5050565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cb3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206d6573736167696e67206f6e6c792063616c6c00006044820152606401610908565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe082820101356000610d037f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc05490565b8210905060008484604051610d199291906146cd565b604051908190039020600a805463ffffffff808216600101167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000009091161790559050600081610d8e7f1cda64803f3b43503042e00863791e8d996666552d5855a78d53ee1dd4b3286d80546001019081905590565b60408051602081019390935282015243606082015242608082015260a001604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905280516020918201209250608083901c916fffffffffffffffffffffffffffffffff841691610e1191838501910190815260200190565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528051602090910120600b549093506000908381610e5e57610e5e6146dd565b0690506000600b8281548110610e7657610e7661467c565b6000918252602082200154915087610e9d57818481610e9757610e976146dd565b06610ea0565b60005b9050600b8381548110610eb557610eb561467c565b906000526020600020018181548110610ed057610ed061467c565b6000918252602080832090910154600a5463ffffffff1683526009909152604090912080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055610f3f8382613bac565b6001821115610f6e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff909101905b4260101b606089610f8a57610f8588856005613e6a565b610f8d565b60005b901b60708a610fa757610fa289866004613e6a565b610faa565b60005b901b60808b610fc457610fbf8a876003613e6a565b610fc7565b60005b901b60908c610fe157610fdc8b886002613e6a565b610fe4565b60005b901b60a08d610ffe57610ff98c896001613e6a565b611001565b60005b901b60b043901b60d8600a60009054906101000a900463ffffffff1663ffffffff16901b60f88b600101901b171717171717171760001760076000898152602001908152602001600020819055507f4422a85db963f113e500bc4ada8f9e9f1a7bcd57cbec6907fbb2bf6aaf5878ff878c8c60405161108293929190614755565b60405180910390a15050505050505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461114d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a55565b600b546060908411156111e0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b836111ea81614778565b9450506000600b85815481106112025761120261467c565b60009182526020909120015490508061121b84866147ad565b111561122e5761122b8482614665565b92505b8267ffffffffffffffff8111156112475761124761440b565b604051908082528060200260200182016040528015611270578160200160208202803683370190505b50915060005b8381101561132b57600b86815481106112915761129161467c565b9060005260206000200181866112a791906147ad565b815481106112b7576112b761467c565b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff168382815181106112f4576112f461467c565b73ffffffffffffffffffffffffffffffffffffffff9092166020928302919091019091015280611323816147c5565b915050611276565b50509392505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146113ea576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a55565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146114c4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20627269646765206f6e6c792063616c6c00000000006044820152606401610908565b60006114ee7f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a5490565b905060008173ffffffffffffffffffffffffffffffffffffffff16638c19a89f898c8c88886040518663ffffffff1660e01b81526004016115339594939291906147fd565b602060405180830381865afa158015611550573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115749190614834565b905060006115a07fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e75490565b73ffffffffffffffffffffffffffffffffffffffff1663949d53a76115e37fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa15801561162d573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611651919061484d565b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156116ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906116cf919061486a565b905034821061173a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a206e6f7420656e6f7567682076616c756500000000006044820152606401610908565b60405173ffffffffffffffffffffffffffffffffffffffff82169083156108fc029084906000818181858888f1935050505015801561177d573d6000803e3d6000fd5b5060007f16f1be7000000000000000000000000000000000000000000000000000000000886117ca7fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5490565b73ffffffffffffffffffffffffffffffffffffffff1663381b5f466040518163ffffffff1660e01b8152600401602060405180830381865afa158015611814573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611838919061484d565b898560008860018d8d60405160240161185999989796959493929190614887565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152918152602080830180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090951694909417909352519092506118eb9183918f918f9101614926565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0818403018152919052905073ffffffffffffffffffffffffffffffffffffffff8416630a0542ef6119418534614665565b8e8e8e8e61194f8a34614665565b886040518863ffffffff1660e01b81526004016119719695949392919061494d565b6000604051808303818588803b15801561198a57600080fd5b505af115801561199e573d6000803e3d6000fd5b50505050507f0f5759b4182507dcfc771071166f98d7ca331262e5134eaa74b676adce2138b781805190602001206040516119db91815260200190565b60405180910390a1505050505050505050505050565b600080611a07611a02600185614665565b613e8a565b9150611a1c611a17600185614665565b613ead565b9050915091565b6000611a4d7f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a015490565b15611ab4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a20616c726561647920696e697469616c697a656400006044820152606401610908565b60008060008060008087806020019051810190611ad191906149dd565b327f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c9557feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f98690557fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a8590557fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd18488278490557fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e78390557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c378290557f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc0819055603c600090815568056bc75e2d631000006001908155600280556103e8600355600a60045560646005556040805180820190915260208101928352918252969c50949a5092985090965094509250611c2791600b9190613fe1565b5060008052600c60205260017f13649b2456f1b42fef0f0040b3aaeabcd21a76a0f3f5defd4f583839455116e855611c7e60017f4e5f991bca30eca2d4643aaefa807e88f96a4a97398933d572a3c0d973004a0155565b507f4ddf47d400000000000000000000000000000000000000000000000000000000979650505050505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611d61576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b60008282604051611d739291906146cd565b604080519182900390912060008181526008602052919091205490915060ff16611df9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20696e76616c6964207265636f76657279206a6f62006044820152606401610908565b6000611e237feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f95490565b73ffffffffffffffffffffffffffffffffffffffff16348585604051611e4a9291906146cd565b60006040518083038185875af1925050503d8060008114611e87576040519150601f19603f3d011682016040523d82523d6000602084013e611e8c565b606091505b5050905080611ef7576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601a60248201527f484f4c4f47524150483a207265636f76657279206661696c65640000000000006044820152606401610908565b50600090815260086020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690555050565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600c60205260408120549003611fbe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206f70657261746f72206e6f7420626f6e64656400006044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff83161461214d57611fe482613f6b565b61204a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a206f70657261746f72206e6f7420636f6e74726163746044820152606401610908565b3373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156120ac573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906120d0919061486a565b73ffffffffffffffffffffffffffffffffffffffff161461214d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a2073656e646572206e6f74206f776e657200000000006044820152606401610908565b73ffffffffffffffffffffffffffffffffffffffff82166000908152600e60209081526040808320805490849055600c909252909120546121bf9061219490600190614665565b73ffffffffffffffffffffffffffffffffffffffff85166000908152600d6020526040902054613bac565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c37546040517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff848116600483015260248201849052919091169063a9059cbb906044016020604051808303816000875af1158015612258573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061227c91906146ab565b6122e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b505050565b333014612350576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f72206f6e6c792063616c6c0000006044820152606401610908565b602081038260003782608452600080604083036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9546040870351f18061039d57600080fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461244e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c955565b600082826040516124849291906146cd565b60405180910390209050600060076000838152602001908152602001600020541161250b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f484f4c4f47524150483a20696e76616c6964206a6f62000000000000000000006044820152606401610908565b8183017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0810135907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00135600061256184610940565b6000858152600760209081526040808320839055338352600e90915290819020549082015191925015159073ffffffffffffffffffffffffffffffffffffffff1615612d875781516000906125b890600190614a5a565b60ff1690503373ffffffffffffffffffffffffffffffffffffffff16836040015173ffffffffffffffffffffffffffffffffffffffff1614612cc0576000836080015167ffffffffffffffff16426126109190614665565b90506000846020015161ffff16826126289190614a7d565b905060008111612694576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a206f70657261746f72206861732074696d65000000006044820152606401610908565b3a8610156126fe576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20676173207370696b652064657465637465640000006044820152606401610908565b60068110156128aa5760a085015160009061271a600184614665565b6005811061272a5761272a61467c565b602002015161ffff1690506000811180156127625750600b84815481106127535761275361467c565b60009182526020909120015481105b1561282a576000600b858154811061277c5761277c61467c565b9060005260206000200182815481106127975761279761467c565b60009182526020909120015473ffffffffffffffffffffffffffffffffffffffff169050338114612824576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601b60248201527f484f4c4f47524150483a20696e76616c69642066616c6c6261636b00000000006044820152606401610908565b506128a8565b8551336000908152600c602052604090205460ff909116146128a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601c60248201527f484f4c4f47524150483a20706f64206f6e6c792066616c6c6261636b000000006044820152606401610908565b505b60006128b584613e8a565b905080600e6000886040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461290a9190614665565b90915550507fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375473ffffffffffffffffffffffffffffffffffffffff1663a9059cbb866129e6577fb4107f746e9496e8452accc7de63d1c5e14c19f510932daa04077cd49e8bd77a5473ffffffffffffffffffffffffffffffffffffffff16633b19e84a6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156129bd573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906129e1919061486a565b6129e8565b335b6040517fffffffff0000000000000000000000000000000000000000000000000000000060e084901b16815273ffffffffffffffffffffffffffffffffffffffff9091166004820152602481018490526044016020604051808303816000875af1158015612a5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a7e91906146ab565b5060408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548111612b9c57600b8481548110612ac057612ac061467c565b6000918252602080832060408a01519201805460018082018355918552919093200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055600b805486908110612b3857612b3861467c565b600091825260209091200154612b4e9190614665565b6040808801805173ffffffffffffffffffffffffffffffffffffffff9081166000908152600d6020908152848220959095558a5192519091168152600c909352912060ff9091169055612cb8565b60408087015173ffffffffffffffffffffffffffffffffffffffff166000908152600e60205220548015612cb65760408781015173ffffffffffffffffffffffffffffffffffffffff166000908152600e602052908120557fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375460408089015190517fa9059cbb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810184905291169063a9059cbb906044016020604051808303816000875af1158015612c90573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cb491906146ab565b505b505b505050612d85565b600b8181548110612cd357612cd361467c565b60009182526020808320909101805460018181018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001633179055600b805483908110612d2d57612d2d61467c565b600091825260209091200154612d439190614665565b60408085015173ffffffffffffffffffffffffffffffffffffffff166000908152600d6020908152828220939093558551338252600c9093522060ff90911690555b505b600660008154612d96906147c5565b90915550604080518681523360208201527ffc3963369d694e97f35e33cc03fcd382bfa4dbb688ae43d318fcf344f479425e910160405180910390a1835a11612e3b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a206e6f7420656e6f75676820676173206c65667400006044820152606401610908565b6040517f696af2bf000000000000000000000000000000000000000000000000000000008152309063696af2bf903490612e7d9033908c908c90600401614ab8565b6000604051808303818588803b158015612e9657600080fd5b505af193505050508015612ea8575060015b612f4b5760405133903480156108fc02916000818181858888f19350505050158015612ed8573d6000803e3d6000fd5b506000858152600860205260409081902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166001179055517f26dc03e6c4feb5e9d33804dc1646860c976c3aeabb458f4719c53dcbadbf44b590612f429087815260200190565b60405180910390a15b50505050505050565b600b54606090821115612fc3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20706f6420646f6573206e6f742065786973740000006044820152606401610908565b600b612fd0600184614665565b81548110612fe057612fe061467c565b9060005260206000200180548060200260200160405190810160405280929190818152602001828054801561304b57602002820191906000526020600020905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311613020575b50505050509050919050565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600c60205260409020541580156130ad575073ffffffffffffffffffffffffffffffffffffffff83166000908152600e6020526040902054155b613113576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a206f70657261746f7220697320626f6e6465640000006044820152606401610908565b61311c83613f6b565b1561322557600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16638da5cb5b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613184573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906131a8919061486a565b73ffffffffffffffffffffffffffffffffffffffff1603613225576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f484f4c4f47524150483a20636f6e7472616374206e6f74206f776e61626c65006044820152606401610908565b600061323360018303613ead565b90508281111561329f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20626f6e6420616d6f756e7420746f6f20736d616c6c6044820152606401610908565b600b5482111561330e57600b545b8281101561330c5760408051602081019091526000808252600b80546001818101835591909252613303927f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db99092019190614038565b506001016132ad565b505b61ffff8016600b60018403815481106133295761332961467c565b6000918252602090912001541061339c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601d60248201527f484f4c4f47524150483a20746f6f206d616e79206f70657261746f72730000006044820152606401610908565b600b60018303815481106133b2576133b261467c565b6000918252602080832091909101805460018082018355918452919092200180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff8716179055600b80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff85019081106134455761344561467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff88168352600d8252604080842094909103909355600c8152828220859055600e9052208390556134b67fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c375490565b6040517f23b872dd0000000000000000000000000000000000000000000000000000000081523360048201523060248201526044810185905273ffffffffffffffffffffffffffffffffffffffff91909116906323b872dd906064016020604051808303816000875af1158015613531573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061355591906146ab565b6135bb576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820181905260248201527f484f4c4f47524150483a20746f6b656e207472616e73666572206661696c65646044820152606401610908565b50505050565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613677576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f955565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613751576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbf76518d46db472b71aa7677a0908b8016f3dee568415ffa24055f9a670f9c3755565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461382b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7f264d744422f7427cd080572c35c848b6cd3a36da6b47519af89ef13098b12fc055565b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613905576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fce8e75d5c5227ce29a4ee170160bb296e5dea6934b80a9bd723f7ef1e7c850e755565b60006040820383600037600060e353600080604084036000347feb87cbb21687feb327e3d58c6c16d552231d12c7a0e8115042a4165fac8a77f9545af160018103613978573d6000803e3d6000fd5b505a60005260206000f35b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613a39576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b808260003760008082600034875af13d6000803e808015613a59573d6000f35b3d6000fd5b7f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95473ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614613b14576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f484f4c4f47524150483a2061646d696e206f6e6c792066756e6374696f6e00006044820152606401610908565b7fbd3084b8c09da87ad159c247a60e209784196be2530cecbbd8f337fdd184882755565b6000613b627f3f106594dc74eeef980dae234cde8324dc2497b13d27a0c59e55bd2ca10a07c95490565b905090565b600080600036600080376000803660007f54176250282e65985d205704ffce44a59efe61f7afd99e29fda50f55b48c061a545afa3d6000803e808015613a59573d6000f35b8015610bf9576000600b8381548110613bc757613bc761467c565b906000526020600020018281548110613be257613be261467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff16808352600c82526040808420849055600d909252908220829055600b805491935060019186908110613c3a57613c3a61467c565b600091825260209091200154039050828114613d8057600b8481548110613c6357613c6361467c565b906000526020600020018181548110613c7e57613c7e61467c565b600091825260209091200154600b805473ffffffffffffffffffffffffffffffffffffffff9092169186908110613cb757613cb761467c565b906000526020600020018481548110613cd257613cd261467c565b9060005260206000200160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555082600d6000600b8781548110613d3257613d3261467c565b906000526020600020018681548110613d4d57613d4d61467c565b600091825260208083209091015473ffffffffffffffffffffffffffffffffffffffff1683528201929092526040019020555b600b8481548110613d9357613d9361467c565b906000526020600020018181548110613dae57613dae61467c565b600091825260209091200180547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055600b805485908110613df357613df361467c565b90600052602060002001805480613e0c57613e0c614ae8565b60008281526020902081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90810180547fffffffffffffffffffffffff000000000000000000000000000000000000000016905501905550505050565b6000824383900340850181613e8157613e816146dd565b06949350505050565b600060015482600254613e9d9190614c37565b613ea79190614c43565b92915050565b60008060015483600254613ec19190614c37565b613ecb9190614c43565b600b549091508310613edd5792915050565b6000613eea846002614c37565b600354613ef79190614a7d565b90506000600b8581548110613f0e57613f0e61467c565b600091825260209091200154905081811115613f6257613f2e8282614665565b905060045481613f3e9190614a7d565b600554613f4b9085614a7d565b613f559190614c43565b613f5f90846147ad565b92505b50909392505050565b6000813f8015801590613f9e57507fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4708114155b9392505050565b6040805160c08101825260008082526020820181905291810182905260608101829052608081019190915260a08101613fdc6140be565b905290565b828054828255906000526020600020908101928215614028579160200282015b828111156140285782516140189083906001614038565b5091602001919060010190614001565b506140349291506140dc565b5090565b8280548282559060005260206000209081019282156140b2579160200282015b828111156140b257825182547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909116178255602090920191600190910190614058565b506140349291506140f9565b6040518060a001604052806005906020820280368337509192915050565b808211156140345760006140f0828261410e565b506001016140dc565b5b8082111561403457600081556001016140fa565b508054600082559060005260206000209081019061412c91906140f9565b50565b60006020828403121561414157600080fd5b5035919050565b60006101408201905060ff835116825260208084015161ffff8082168386015273ffffffffffffffffffffffffffffffffffffffff604087015116604086015264ffffffffff606087015116606086015267ffffffffffffffff608087015116608086015260a0860151915060a0850160005b60058110156141da5783518316825292840192908401906001016141bb565b505050505092915050565b73ffffffffffffffffffffffffffffffffffffffff8116811461412c57600080fd5b6000806040838503121561421a57600080fd5b8235614225816141e5565b946020939093013593505050565b60008083601f84011261424557600080fd5b50813567ffffffffffffffff81111561425d57600080fd5b60208301915083602082850101111561427557600080fd5b9250929050565b6000806020838503121561428f57600080fd5b823567ffffffffffffffff8111156142a657600080fd5b6142b285828601614233565b90969095509350505050565b6000602082840312156142d057600080fd5b8135613f9e816141e5565b6000806000606084860312156142f057600080fd5b505081359360208301359350604090920135919050565b6020808252825182820181905260009190848201906040850190845b8181101561435557835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101614323565b50909695505050505050565b63ffffffff8116811461412c57600080fd5b60008060008060008060008060e0898b03121561438f57600080fd5b883597506020890135965060408901356143a881614361565b955060608901356143b8816141e5565b94506080890135935060a08901356143cf816141e5565b925060c089013567ffffffffffffffff8111156143eb57600080fd5b6143f78b828c01614233565b999c989b5096995094979396929594505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006020828403121561444c57600080fd5b813567ffffffffffffffff8082111561446457600080fd5b818401915084601f83011261447857600080fd5b81358181111561448a5761448a61440b565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f011681019083821181831017156144d0576144d061440b565b816040528281528760208487010111156144e957600080fd5b826020860160208301376000928101602001929092525095945050505050565b6000806040838503121561451c57600080fd5b8235614527816141e5565b91506020830135614537816141e5565b809150509250929050565b60008060006040848603121561455757600080fd5b8335614562816141e5565b9250602084013567ffffffffffffffff81111561457e57600080fd5b61458a86828701614233565b9497909650939450505050565b6000806000606084860312156145ac57600080fd5b83356145b7816141e5565b95602085013595506040909401359392505050565b6000806000806000608086880312156145e457600080fd5b85356145ef81614361565b94506020860135935060408601359250606086013567ffffffffffffffff81111561461957600080fd5b61462588828901614233565b969995985093965092949392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008282101561467757614677614636565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b6000602082840312156146bd57600080fd5b81518015158114613f9e57600080fd5b8183823760009101908152919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b8183528181602085013750600060208284010152600060207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f840116840101905092915050565b83815260406020820152600061476f60408301848661470c565b95945050505050565b60008161478757614787614636565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b600082198211156147c0576147c0614636565b500190565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036147f6576147f6614636565b5060010190565b63ffffffff8616815284602082015283604082015260806060820152600061482960808301848661470c565b979650505050505050565b60006020828403121561484657600080fd5b5051919050565b60006020828403121561485f57600080fd5b8151613f9e81614361565b60006020828403121561487c57600080fd5b8151613f9e816141e5565b60006101008b835263ffffffff8b16602084015273ffffffffffffffffffffffffffffffffffffffff808b166040850152808a1660608501528089166080850152508660a084015285151560c08401528060e08401526148ea818401858761470c565b9c9b505050505050505050505050565b60005b838110156149155781810151838201526020016148fd565b838111156135bb5750506000910152565b600084516149388184602089016148fa565b91909101928352506020820152604001919050565b86815285602082015263ffffffff8516604082015273ffffffffffffffffffffffffffffffffffffffff8416606082015282608082015260c060a0820152600082518060c08401526149a68160e08501602087016148fa565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160e001979650505050505050565b60008060008060008060c087890312156149f657600080fd5b8651614a01816141e5565b6020880151909650614a12816141e5565b6040880151909550614a23816141e5565b6060880151909450614a34816141e5565b6080880151909350614a45816141e5565b8092505060a087015190509295509295509295565b600060ff821660ff841680821015614a7457614a74614636565b90039392505050565b600082614ab3577f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b500490565b73ffffffffffffffffffffffffffffffffffffffff8416815260406020820152600061476f60408301848661470c565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600181815b80851115614b7057817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614b5657614b56614636565b80851615614b6357918102915b93841c9390800290614b1c565b509250929050565b600082614b8757506001613ea7565b81614b9457506000613ea7565b8160018114614baa5760028114614bb457614bd0565b6001915050613ea7565b60ff841115614bc557614bc5614636565b50506001821b613ea7565b5060208310610133831016604e8410600b8410161715614bf3575081810a613ea7565b614bfd8383614b17565b807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04821115614c2f57614c2f614636565b029392505050565b6000613f9e8383614b78565b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615614c7b57614c7b614636565b50029056fea164736f6c634300080d000a
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.

