VeChain
Explorer
Testnet
Search
Networks
Main
Test
Contract
0x4fCB91…12d4
Summary
Transactions
Transfers
Address
0x4fCB91BEa8aD3Ac71cAAa27Bd0F5A31FE18112d4
VET
0.00
VET
VTHO
0.00
VTHO
Master
0x52CCaC0025f4e5f2186720a0dbD0651bc219f2b1
Deployer
0x52CCaC0025f4e5f2186720a0dbD0651bc219f2b1
Code
0x608060405234801561001057600080fd5b50600436106103af5760003560e01c80636d73e669116101f4578063b0fe87c91161011a578063d5a06d4c116100ad578063f0cdc4991161007c578063f0cdc4991461087d578063f2fde38b14610890578063fe2e1f58146108a3578063ffa1ad74146108b657600080fd5b8063d5a06d4c146107ea578063e00aab4b14610844578063e92a89f614610857578063e985e9c51461086a57600080fd5b8063bb3bafd6116100e9578063bb3bafd6146107ea578063c87b56dd1461080b578063ce8aee9d1461081e578063d39737191461083157600080fd5b8063b0fe87c914610753578063b4b5b48f14610766578063b88d4fde146107b7578063b9c4d9fb146107ca57600080fd5b806383b7db6311610192578063a22cb46511610161578063a22cb46514610707578063aafb2d441461071a578063ac0c8cfa1461072d578063ad2d0ddd1461074057600080fd5b806383b7db63146106d35780638da5cb5b146106db57806395d89b41146106ec57806399e0dd7c146106f457600080fd5b806372ff03d3116101ce57806372ff03d3146106875780637884af441461069a5780637aa15f16146106ad57806382dcc0c8146106c057600080fd5b80636d73e6691461065957806370a082311461066c578063715018a61461067f57600080fd5b806330176e13116102d95780634278330e11610277578063596798ad11610246578063596798ad1461060d57806361e5bc6b146106205780636352211e1461063357806366d1e9d01461064657600080fd5b80634278330e146105c157806342842e0e146105d457806342966c68146105e75780634cd88b76146105fa57600080fd5b8063332dd1ae116102b3578063332dd1ae1461057557806338e52e78146105885780633e6134b81461059b5780633f0f37f6146105ae57600080fd5b806330176e131461053a5780633071a0f91461054d57806331ae450b1461056057600080fd5b806320e4afe21161035157806324d7806c1161032057806324d7806c146104c15780632928ca58146104d45780632a55205a146104f55780632d3456701461052757600080fd5b806320e4afe21461047757806322f374d01461048a578063239be3171461049b57806323b872dd146104ae57600080fd5b8063081812fc1161038d578063081812fc14610406578063095ea7b3146104315780630ebd4c7f14610444578063162094c41461046457600080fd5b806301ffc9a7146103b457806302e7afb7146103dc57806306fdde03146103f1575b600080fd5b6103c76103c23660046144d4565b6108be565b60405190151581526020015b60405180910390f35b6103ef6103ea366004614506565b6108ed565b005b6103f961094c565b6040516103d39190614573565b610419610414366004614586565b6109de565b6040516001600160a01b0390911681526020016103d3565b6103ef61043f36600461459f565b610a05565b610457610452366004614586565b610b1a565b6040516103d39190614606565b6103ef61047236600461465a565b610b4a565b6103ef6104853660046146e9565b610b9f565b606f546001600160a01b0316610419565b6104196104a9366004614586565b610c22565b6103ef6104bc366004614762565b610cd0565b6103c76104cf366004614506565b610d01565b6104e76104e2366004614506565b610d3a565b6040519081526020016103d3565b6105086105033660046147a3565b610d74565b604080516001600160a01b0390931683526020830191909152016103d3565b6103ef610535366004614506565b610db2565b6103ef6105483660046147c5565b610e0f565b6103ef61055b366004614806565b610e63565b610568610ec3565b6040516103d39190614841565b6103ef61058336600461488e565b610f71565b6104576105963660046148f9565b610fcf565b6103ef6105a93660046147c5565b611103565b6103ef6105bc36600461494e565b611117565b6104576105cf3660046148f9565b611176565b6103ef6105e2366004614762565b61126f565b6103ef6105f5366004614586565b61128a565b6103ef610608366004614a80565b611322565b6103ef61061b366004614506565b61143e565b6103ef61062e36600461488e565b611491565b610419610641366004614586565b611510565b6103ef6106543660046147c5565b611570565b6103ef610667366004614506565b611582565b6104e761067a366004614506565b6115da565b6103ef611660565b6104e7610695366004614506565b611674565b6104e76106a8366004614806565b6116e3565b6104576106bb3660046148f9565b611783565b6103ef6106ce366004614ae3565b6118e7565b6105686118fa565b6033546001600160a01b0316610419565b6103f961199a565b6103ef6107023660046147c5565b6119a9565b6103ef610715366004614b39565b6119fd565b6103ef61072836600461488e565b611a08565b6103ef61073b366004614b72565b611ac9565b61045761074e366004614b8f565b611adb565b6103ef610761366004614bc4565b611c06565b61079c610774366004614586565b6000908152606a6020526040902054600160a01b900460101c69ffffffffffffffffffff1690565b60405169ffffffffffffffffffff90911681526020016103d3565b6103ef6107c5366004614c03565b611c5d565b6107dd6107d8366004614586565b611c8f565b6040516103d39190614cbb565b6107fd6107f8366004614586565b611cbf565b6040516103d3929190614cce565b6103f9610819366004614586565b611cf9565b6103ef61082c366004614506565b611d29565b6104e761083f366004614d16565b611d7c565b610457610852366004614b8f565b611db6565b6103ef61086536600461465a565b611e95565b6103c7610878366004614d4b565b611ea8565b6103ef61088b366004614d4b565b611ed6565b6103ef61089e366004614506565b611f2a565b6104e76108b1366004614806565b611fa0565b6104e7600381565b60006108c982611ff4565b806108d857506108d882612034565b806108e757506108e78261206f565b92915050565b336109006033546001600160a01b031690565b6001600160a01b0316148061091b575061091b6066336120a4565b6109405760405162461bcd60e51b815260040161093790614d79565b60405180910390fd5b610949816120c6565b50565b60606068805461095b90614dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461098790614dbd565b80156109d45780601f106109a9576101008083540402835291602001916109d4565b820191906000526020600020905b8154815290600101906020018083116109b757829003601f168201915b5050505050905090565b60006109e9826121d6565b506000908152606c60205260409020546001600160a01b031690565b6000610a1082611510565b9050806001600160a01b0316836001600160a01b031603610a7d5760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610937565b336001600160a01b0382161480610a995750610a998133611ea8565b610b0b5760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610937565b610b158383612226565b505050565b6060610b2582612294565b610b415760405162461bcd60e51b815260040161093790614df1565b6108e7826122b1565b33610b5d6033546001600160a01b031690565b6001600160a01b03161480610b785750610b786066336120a4565b610b945760405162461bcd60e51b815260040161093790614d79565b610b158383836122bc565b33610bb26033546001600160a01b031690565b6001600160a01b03161480610bcd5750610bcd6066336120a4565b610be95760405162461bcd60e51b815260040161093790614d79565b610bf285612294565b610c0e5760405162461bcd60e51b815260040161093790614df1565b610c1b8585858585612340565b5050505050565b6000610c2d82612294565b610c495760405162461bcd60e51b815260040161093790614df1565b610c52826123c7565b90506001600160a01b038116610ca35760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b6044820152606401610937565b610cae6072826120a4565b15610ccb5760405162461bcd60e51b815260040161093790614e1c565b919050565b610cda338261241d565b610cf65760405162461bcd60e51b815260040161093790614e4b565b610b1583838361247c565b6000816001600160a01b0316610d1f6033546001600160a01b031690565b6001600160a01b031614806108e757506108e76066836120a4565b6000610d4461261b565b610d4c612674565b610d6882604051806020016040528060008152506000806126cb565b9050610ccb6001606555565b600080610d8084612294565b610d9c5760405162461bcd60e51b815260040161093790614df1565b610da68484612754565b915091505b9250929050565b610dba61282b565b610dc56066826120a4565b156109495760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a3610e0b606682612885565b5050565b33610e226033546001600160a01b031690565b6001600160a01b03161480610e3d5750610e3d6066336120a4565b610e595760405162461bcd60e51b815260040161093790614d79565b610e0b828261289a565b33610e766033546001600160a01b031690565b6001600160a01b03161480610e915750610e916066336120a4565b610ead5760405162461bcd60e51b815260040161093790614d79565b610eb6836128cf565b610b1583838360006128f7565b6060610ecf60666129f4565b6001600160401b03811115610ee657610ee66149b5565b604051908082528060200260200182016040528015610f0f578160200160208202803683370190505b50905060005b610f1f60666129f4565b811015610f6d57610f316066826129fe565b828281518110610f4357610f43614e98565b6001600160a01b039092166020928302919091019091015280610f6581614ec4565b915050610f15565b5090565b33610f846033546001600160a01b031690565b6001600160a01b03161480610f9f5750610f9f6066336120a4565b610fbb5760405162461bcd60e51b815260040161093790614d79565b610fc9600085858585612a0a565b50505050565b6060610fd961261b565b610fe1612674565b816001600160401b03811115610ff957610ff96149b5565b604051908082528060200260200182016040528015611022578160200160208202803683370190505b5090506000606e5460016110369190614edd565b905083839050606e600082825461104d9190614edd565b90915550600090505b838110156110f0576110cb8686868481811061107457611074614e98565b90506020028101906110869190614ef0565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092506110c6915086905087614edd565b6126cb565b8382815181106110dd576110dd614e98565b6020908102919091010152600101611056565b50506110fc6001606555565b9392505050565b61110b612674565b610e0b82826000612af7565b3361112a6033546001600160a01b031690565b6001600160a01b0316148061114557506111456066336120a4565b6111615760405162461bcd60e51b815260040161093790614d79565b61116a846128cf565b610fc9848484846128f7565b606061118061261b565b611188612674565b816001600160401b038111156111a0576111a06149b5565b6040519080825280602002602001820160405280156111c9578160200160208202803683370190505b5090506000606e5460016111dd9190614edd565b905083839050606e60008282546111f49190614edd565b90915550600090505b838110156110f05761124a866040518060200160405280600081525087878581811061122b5761122b614e98565b90506020020160208101906112409190614f36565b6110c68587614edd565b83828151811061125c5761125c614e98565b60209081029190910101526001016111fd565b610b1583838360405180602001604052806000815250611c5d565b61129261261b565b61129c338261241d565b6112e85760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564006044820152606401610937565b60006112f382611510565b90506000611300836123c7565b905061130b83612b34565b611316828483612bee565b50506109496001606555565b600054610100900460ff16158080156113425750600054600160ff909116105b8061135c5750303b15801561135c575060005460ff166001145b6113bf5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610937565b6000805460ff1916600117905580156113e2576000805461ff0019166101001790555b6113ec8383612cad565b6113f4612cde565b8015610b15576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b336114516033546001600160a01b031690565b6001600160a01b0316148061146c575061146c6066336120a4565b6114885760405162461bcd60e51b815260040161093790614d79565b61094981612d0d565b611499612674565b8281146114b85760405162461bcd60e51b815260040161093790614f51565b60005b83811015610c1b576115088585838181106114d8576114d8614e98565b905060200201358484848181106114f1576114f1614e98565b90506020028101906115039190614ef0565b612d61565b6001016114bb565b6000818152606a60205260408120546001600160a01b0316806108e75760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610937565b611578612674565b610e0b8282612d6b565b61158a61282b565b6115956066826120a4565b6109495760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a3610e0b606682612d85565b60006001600160a01b0382166116445760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610937565b506001600160a01b03166000908152606b602052604090205490565b61166861282b565b6116726000612d9a565b565b600061167e61261b565b336116916033546001600160a01b031690565b6001600160a01b031614806116ac57506116ac6066336120a4565b6116c85760405162461bcd60e51b815260040161093790614d79565b610d6882604051806020016040528060008152506000612dec565b60006116ed61261b565b336117006033546001600160a01b031690565b6001600160a01b0316148061171b575061171b6066336120a4565b6117375760405162461bcd60e51b815260040161093790614d79565b6117778484848080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052509250612dec915050565b90506110fc6001606555565b606061178d61261b565b336117a06033546001600160a01b031690565b6001600160a01b031614806117bb57506117bb6066336120a4565b6117d75760405162461bcd60e51b815260040161093790614d79565b816001600160401b038111156117ef576117ef6149b5565b604051908082528060200260200182016040528015611818578160200160208202803683370190505b5090506000606e54600161182c9190614edd565b905083839050606e60008282546118439190614edd565b90915550600090505b838110156110f0576118c28686868481811061186a5761186a614e98565b905060200281019061187c9190614ef0565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506118bd9250869150879050614edd565b612dec565b8382815181106118d4576118d4614e98565b602090810291909101015260010161184c565b6118ef612674565b610b15838383612af7565b606061190660706129f4565b6001600160401b0381111561191d5761191d6149b5565b604051908082528060200260200182016040528015611946578160200160208202803683370190505b50905060005b61195660706129f4565b811015610f6d576119686070826129fe565b82828151811061197a5761197a614e98565b6001600160a01b039092166020928302919091019091015260010161194c565b60606069805461095b90614dbd565b336119bc6033546001600160a01b031690565b6001600160a01b031614806119d757506119d76066336120a4565b6119f35760405162461bcd60e51b815260040161093790614d79565b610e0b8282612e43565b610e0b338383612e78565b33611a1b6033546001600160a01b031690565b6001600160a01b03161480611a365750611a366066336120a4565b611a525760405162461bcd60e51b815260040161093790614d79565b828114611a715760405162461bcd60e51b815260040161093790614f51565b60005b83811015610c1b57611ac1858583818110611a9157611a91614e98565b90506020020135848484818110611aaa57611aaa614e98565b9050602002810190611abc9190614ef0565b6122bc565b600101611a74565b611ad1612674565b6109493382612f46565b6060611ae561261b565b33611af86033546001600160a01b031690565b6001600160a01b03161480611b135750611b136066336120a4565b611b2f5760405162461bcd60e51b815260040161093790614d79565b8161ffff166001600160401b03811115611b4b57611b4b6149b5565b604051908082528060200260200182016040528015611b74578160200160208202803683370190505b5090506000606e546001611b889190614edd565b90508261ffff16606e6000828254611ba09190614edd565b90915550600090505b8361ffff16811015611bfa57611bd5856040518060200160405280600081525083856118bd9190614edd565b838281518110611be757611be7614e98565b6020908102919091010152600101611ba9565b50506108e76001606555565b33611c196033546001600160a01b031690565b6001600160a01b03161480611c345750611c346066336120a4565b611c505760405162461bcd60e51b815260040161093790614d79565b610c1b8585858585612a0a565b611c67338361241d565b611c835760405162461bcd60e51b815260040161093790614e4b565b610fc984848484612fbb565b6060611c9a82612294565b611cb65760405162461bcd60e51b815260040161093790614df1565b6108e782612fee565b606080611ccb83612294565b611ce75760405162461bcd60e51b815260040161093790614df1565b611cf083612ff5565b91509150915091565b6060611d0482612294565b611d205760405162461bcd60e51b815260040161093790614df1565b6108e7826133a3565b33611d3c6033546001600160a01b031690565b6001600160a01b03161480611d575750611d576066336120a4565b611d735760405162461bcd60e51b815260040161093790614d79565b6109498161365f565b6000611d8661261b565b611d8e612674565b611daa83604051806020016040528060008152508460006126cb565b90506108e76001606555565b6060611dc061261b565b611dc8612674565b8161ffff166001600160401b03811115611de457611de46149b5565b604051908082528060200260200182016040528015611e0d578160200160208202803683370190505b5090506000606e546001611e219190614edd565b90508261ffff16606e6000828254611e399190614edd565b90915550600090505b8361ffff16811015611bfa57611e708560405180602001604052806000815250600084866110c69190614edd565b838281518110611e8257611e82614e98565b6020908102919091010152600101611e42565b611e9d612674565b610b15838383612d61565b6001600160a01b039182166000908152606d6020908152604080832093909416825291909152205460ff1690565b33611ee96033546001600160a01b031690565b6001600160a01b03161480611f045750611f046066336120a4565b611f205760405162461bcd60e51b815260040161093790614d79565b610e0b82826136a0565b611f3261282b565b6001600160a01b038116611f975760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610937565b61094981612d9a565b6000611faa61261b565b611fb2612674565b6117778484848080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525092508291506126cb9050565b60006001600160e01b0319821663b5d2729f60e01b148061202557506001600160e01b03198216639088c20760e01b145b806108e757506108e7826137d5565b60006001600160e01b031982166380ac58cd60e01b14806108d857506001600160e01b03198216635b5e139f60e01b14806108e757506108e7825b60006001600160e01b03198216632a9f3abf60e11b14806108e757506301ffc9a760e01b6001600160e01b03198316146108e7565b6001600160a01b038116600090815260018301602052604081205415156110fc565b6001600160a01b038116158015906120e757506001600160a01b0381163014155b6121335760405162461bcd60e51b815260206004820152601960248201527f43616e6e6f7420626c61636b6c69737420796f757273656c66000000000000006044820152606401610937565b61213e6070826120a4565b156121865760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3612184607082612885565b505b6121916072826120a4565b6109495760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a3610e0b607282612d85565b6121df81612294565b6109495760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610937565b6000818152606c6020526040902080546001600160a01b0319166001600160a01b038416908117909155819061225b82611510565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000908152606a60205260409020546001600160a01b0316151590565b60606110fc82612ff5565b6000831180156122ce5750606e548311155b80156122eb575060006122e0846123c7565b6001600160a01b0316145b6123275760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610937565b6000838152607760205260409020610fc9828483614fbe565b61234c84848484613886565b600085815260796020526040812061236391614432565b61238284848484607960008b8152602001908152602001600020613931565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee858585856040516123b8949392919061507d565b60405180910390a25050505050565b6000818152606a6020526040812054600160a01b90046001600160601b0381169061ffff1682036123fb5750600092915050565b61ffff166000908152607e60205260409020546001600160a01b031692915050565b60008061242983611510565b9050806001600160a01b0316846001600160a01b0316148061245057506124508185611ea8565b806124745750836001600160a01b0316612469846109de565b6001600160a01b0316145b949350505050565b6000818152606a60209081526040918290208251808401909352546001600160a01b03808216808552600160a01b9092046001600160601b031692840192909252908516811461251c5760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608401610937565b6001600160a01b03841661257e5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610937565b602082015161258f868686846139ec565b61259a600085612226565b6001600160a01b038087166000818152606b60209081526040808320805460001901905593891680835284832080546001019055888352606a90915283822080546001600160a01b031916821790559251879392917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a45b505050505050565b60026065540361266d5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610937565b6002606555565b61267f6070336120a4565b6116725760405162461bcd60e51b815260206004820152601c60248201527f4d757374206265207265676973746572656420657874656e73696f6e000000006044820152606401610937565b6000816000036126ee57606e600081546126e490614ec4565b90915550606e5491505b6126f885836139f8565b336000908152607d602052604090205461272b908690849061ffff16601087901b69ffffffffffffffff00001617613a8c565b83511561274c57600082815260776020526040902061274a85826150fb565b505b509392505050565b60008060008061276386612ff5565b915091506001825111156127b95760405162461bcd60e51b815260206004820152601c60248201527f4d6f7265207468616e203120726f79616c7479207265636569766572000000006044820152606401610937565b81516000036127d057306000935093505050610dab565b816000815181106127e3576127e3614e98565b6020026020010151612710868360008151811061280257612802614e98565b602002602001015161281491906151ba565b61281e91906151d1565b9350935050509250929050565b6033546001600160a01b031633146116725760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610937565b60006110fc836001600160a01b038416613aa7565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a537610b15828483614fbe565b6128da6072826120a4565b156109495760405162461bcd60e51b815260040161093790614e1c565b607c5461ffff908116106129435760405162461bcd60e51b8152602060048201526013602482015272546f6f206d616e7920657874656e73696f6e7360681b6044820152606401610937565b6001600160a01b0384166000908152607d602052604081205461ffff1690036129e857607c805460009061297a9061ffff166151f3565b82546101009290920a61ffff818102199093169183160217909155607c80546001600160a01b0387166000818152607d60209081526040808320805495881661ffff199096169590951790945593549094168452607e90925290912080546001600160a01b03191690911790555b610fc984848484613b9a565b60006108e7825490565b60006110fc8383613c87565b612a1684848484613886565b6001600160a01b0385166000908152607860205260408120612a3791614432565b612a6884848484607860008b6001600160a01b03166001600160a01b03168152602001908152602001600020613931565b6001600160a01b038516612ab8577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b84848484604051612aab949392919061507d565b60405180910390a1610c1b565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f858585856040516123b8949392919061507d565b336000908152607460205260409020612b11838583614fbe565b50336000908152607560205260409020805460ff19169115159190911790555050565b6000818152606a602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282018390529092909190612b8490839086846139ec565b612b8f600085612226565b6001600160a01b0382166000818152606b602090815260408083208054600019019055878352606a909152808220829055518692907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a4610fc9565b6001600160a01b03811615612c7657612c0e816311686e4b60e21b613cb1565b15612c76576040516311686e4b60e21b81526001600160a01b038481166004830152602482018490528216906345a1b92c90604401600060405180830381600087803b158015612c5d57600080fd5b505af1158015612c71573d6000803e3d6000fd5b505050505b60008281526077602052604090208054612c8f90614dbd565b159050610b15576000828152607760205260408120610b1591614450565b600054610100900460ff16612cd45760405162461bcd60e51b815260040161093790615214565b610e0b8282613ccd565b600054610100900460ff16612d055760405162461bcd60e51b815260040161093790615214565b611672613d0d565b606f80546001600160a01b0319166001600160a01b0383169081179091556040519081527f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f9060200160405180910390a150565b336122e0846123c7565b336000908152607660205260409020610b15828483614fbe565b60006110fc836001600160a01b038416613d3d565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600081600003612e0f57606e60008154612e0590614ec4565b90915550606e5491505b612e1b84836000613a8c565b825115612e3c576000828152607760205260409020612e3a84826150fb565b505b5092915050565b6000805260766020527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a181958610b15828483614fbe565b816001600160a01b0316836001600160a01b031603612ed95760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610937565b6001600160a01b038381166000818152606d6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612f57826345ffcdad60e01b613cb1565b15610e0b576001600160a01b0382166000818152607a6020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b612fc684848461247c565b612fd284848484613d8c565b610fc95760405162461bcd60e51b81526004016109379061525f565b6060612e3c825b606080600060796000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561307757600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff168183015282526001909201910161302d565b50505050905080516000036131c4576000613091856123c7565b90506001600160a01b038116156131c2576130b381634e53ee3d60e11b613cb1565b1561313e57604051634e53ee3d60e11b8152306004820152602481018690526001600160a01b03821690639ca7dc7a90604401600060405180830381865afa158015613103573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261312b919081019061533a565b815191955093501561313e575050915091565b6001600160a01b038116600090815260786020908152604080832080548251818502810185019093528083529193909284015b828210156131bb57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613171565b5050505091505b505b8051600003613267576000808052607860209081527f081a134e404bb5bca49ef6b8477e647c1205f6d43d6a20bb692a968ac5aa71448054604080518285028101850190915281815293919290919084015b8282101561326057600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613216565b5050505090505b80511561339d5780516001600160401b03811115613287576132876149b5565b6040519080825280602002602001820160405280156132b0578160200160208202803683370190505b50925080516001600160401b038111156132cc576132cc6149b5565b6040519080825280602002602001820160405280156132f5578160200160208202803683370190505b50915060005b815181101561339b5781818151811061331657613316614e98565b60200260200101516000015184828151811061333457613334614e98565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061336657613366614e98565b60200260200101516020015161ffff1683828151811061338857613388614e98565b60209081029190910101526001016132fb565b505b50915091565b60606000821180156133b75750606e548211155b6133f35760405162461bcd60e51b815260206004820152600d60248201526c24b73b30b634b2103a37b5b2b760991b6044820152606401610937565b60006133fe836123c7565b905061340b6072826120a4565b156134285760405162461bcd60e51b815260040161093790614e1c565b6000838152607760205260409020805461344190614dbd565b15905061355b576001600160a01b0381166000908152607660205260409020805461346b90614dbd565b1590506134bc576001600160a01b0381166000908152607660209081526040808320868452607783529281902090516134a5939201615467565b604051602081830303815290604052915050919050565b600083815260776020526040902080546134d590614dbd565b80601f016020809104026020016040519081016040528092919081815260200182805461350190614dbd565b801561354e5780601f106135235761010080835404028352916020019161354e565b820191906000526020600020905b81548152906001019060200180831161353157829003601f168201915b5050505050915050919050565b61356c8163e9dc637560e01b613cb1565b156135e45760405163e9dc637560e01b8152306004820152602481018490526001600160a01b0382169063e9dc637590604401600060405180830381865afa1580156135bc573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526110fc919081019061547c565b6001600160a01b03811660009081526075602052604090205460ff16613636576001600160a01b038116600090815260746020526040902061362584613e8a565b6040516020016134a59291906154e9565b6001600160a01b038116600090815260746020526040902080546134d590614dbd565b50919050565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3610e0b607082612885565b6136ab6070836120a4565b6136f75760405162461bcd60e51b815260206004820152601e60248201527f43726561746f72436f72653a20496e76616c696420657874656e73696f6e00006044820152606401610937565b6001600160a01b0381161580613719575061371981631e05385b60e31b613cb1565b6137575760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606401610937565b6001600160a01b038281166000908152607b6020526040902054811690821614610e0b576001600160a01b038281166000818152607b602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b60006001600160e01b031982166314d9799760e21b148061380657506001600160e01b031982166328f10a2160e01b145b80613815575061381582612034565b8061383057506001600160e01b03198216635d9dd7eb60e11b145b8061384b57506001600160e01b03198216632dde656160e21b145b8061386657506001600160e01b031982166335681b5360e21b145b806108e757506001600160e01b0319821663152a902d60e11b1492915050565b8281146138a55760405162461bcd60e51b815260040161093790614f51565b6000805b828110156138df578383828181106138c3576138c3614e98565b90506020020135826138d59190614edd565b91506001016138a9565b506127108110610c1b5760405162461bcd60e51b815260206004820152601760248201527f496e76616c696420746f74616c20726f79616c746965730000000000000000006044820152606401610937565b60005b828110156126135781604051806040016040528088888581811061395a5761395a614e98565b905060200201602081019061396f9190614506565b6001600160a01b0316815260200186868581811061398f5761398f614e98565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b039091161791909117905501613934565b610fc984848484613f1c565b336000908152607b60205260409020546001600160a01b031615610e0b57336000818152607b602052604090819020549051631e05385b60e31b815260048101929092526001600160a01b03848116602484015260448301849052169063f029c2d890606401600060405180830381600087803b158015613a7857600080fd5b505af1158015612613573d6000803e3d6000fd5b610b1583838360405180602001604052806000815250613f57565b60008181526001830160205260408120548015613b90576000613acb60018361550e565b8554909150600090613adf9060019061550e565b9050818114613b44576000866000018281548110613aff57613aff614e98565b9060005260206000200154905080876000018481548110613b2257613b22614e98565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613b5557613b55615521565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108e7565b60009150506108e7565b6001600160a01b0384163014801590613bbc57506001600160a01b0384163b15155b613bf25760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b6044820152606401610937565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b0384166000908152607460205260409020613c4b838583614fbe565b506001600160a01b0384166000908152607560205260409020805460ff1916821515179055613c7b607085612d85565b50610fc9846001612f46565b6000826000018281548110613c9e57613c9e614e98565b9060005260206000200154905092915050565b6000613cbc836140a6565b80156110fc57506110fc83836140d9565b600054610100900460ff16613cf45760405162461bcd60e51b815260040161093790615214565b6068613d0083826150fb565b506069610b1582826150fb565b600054610100900460ff16613d345760405162461bcd60e51b815260040161093790615214565b61167233612d9a565b6000818152600183016020526040812054613d84575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108e7565b5060006108e7565b60006001600160a01b0384163b15613e8257604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290613dd0903390899088908890600401615537565b6020604051808303816000875af1925050508015613e0b575060408051601f3d908101601f19168201909252613e0891810190615574565b60015b613e68573d808015613e39576040519150601f19603f3d011682016040523d82523d6000602084013e613e3e565b606091505b508051600003613e605760405162461bcd60e51b81526004016109379061525f565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612474565b506001612474565b60606000613e9783614162565b60010190506000816001600160401b03811115613eb657613eb66149b5565b6040519080825280601f01601f191660200182016040528015613ee0576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a8504945084613eea57509392505050565b6001600160a01b03841615610fc95761ffff81166000908152607e6020526040902054610fc9908590859085906001600160a01b031661423a565b6001600160a01b038416613fad5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610937565b613fb683612294565b156140035760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610937565b61401060008585856139ec565b6001600160a01b038085166000818152606b6020908152604080832080546001019055805180820182528481526001600160601b038089168285019081528a8652606a9094528285209151935116600160a01b02929095169190911790935591518592907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a4612fd26000858584613d8c565b60006140b9826301ffc9a760e01b6140d9565b80156108e757506140d2826001600160e01b03196140d9565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d9150600051905082801561414b575060208210155b80156141575750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106141a15772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef810000000083106141cd576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc1000083106141eb57662386f26fc10000830492506010015b6305f5e1008310614203576305f5e100830492506008015b612710831061421757612710830492506004015b60648310614229576064830492506002015b600a83106108e75760010192915050565b6001600160a01b03841615610fc9576001600160a01b0381161580159061427957506001600160a01b0381166000908152607a602052604090205460ff165b1561435057604051632f3537c560e11b81523360048201526001600160a01b038581166024830152848116604483015260648201849052821690635e6a6f8a906084016020604051808303816000875af11580156142db573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142ff9190615591565b61434b5760405162461bcd60e51b815260206004820152601a60248201527f457874656e73696f6e20617070726f76616c206661696c7572650000000000006044820152606401610937565b610fc9565b606f546001600160a01b031615610fc957606f54604051632f3537c560e11b81523360048201526001600160a01b03868116602483015285811660448301526064820185905290911690635e6a6f8a906084016020604051808303816000875af11580156143c2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906143e69190615591565b610fc95760405162461bcd60e51b815260206004820152601a60248201527f457874656e73696f6e20617070726f76616c206661696c7572650000000000006044820152606401610937565b5080546000825590600052602060002090810190610949919061448a565b50805461445c90614dbd565b6000825580601f1061446c575050565b601f01602090049060005260206000209081019061094991906144a9565b5b80821115610f6d5780546001600160b01b031916815560010161448b565b5b80821115610f6d57600081556001016144aa565b6001600160e01b03198116811461094957600080fd5b6000602082840312156144e657600080fd5b81356110fc816144be565b6001600160a01b038116811461094957600080fd5b60006020828403121561451857600080fd5b81356110fc816144f1565b60005b8381101561453e578181015183820152602001614526565b50506000910152565b6000815180845261455f816020860160208601614523565b601f01601f19169290920160200192915050565b6020815260006110fc6020830184614547565b60006020828403121561459857600080fd5b5035919050565b600080604083850312156145b257600080fd5b82356145bd816144f1565b946020939093013593505050565b600081518084526020808501945080840160005b838110156145fb578151875295820195908201906001016145df565b509495945050505050565b6020815260006110fc60208301846145cb565b60008083601f84011261462b57600080fd5b5081356001600160401b0381111561464257600080fd5b602083019150836020828501011115610dab57600080fd5b60008060006040848603121561466f57600080fd5b8335925060208401356001600160401b0381111561468c57600080fd5b61469886828701614619565b9497909650939450505050565b60008083601f8401126146b757600080fd5b5081356001600160401b038111156146ce57600080fd5b6020830191508360208260051b8501011115610dab57600080fd5b60008060008060006060868803121561470157600080fd5b8535945060208601356001600160401b038082111561471f57600080fd5b61472b89838a016146a5565b9096509450604088013591508082111561474457600080fd5b50614751888289016146a5565b969995985093965092949392505050565b60008060006060848603121561477757600080fd5b8335614782816144f1565b92506020840135614792816144f1565b929592945050506040919091013590565b600080604083850312156147b657600080fd5b50508035926020909101359150565b600080602083850312156147d857600080fd5b82356001600160401b038111156147ee57600080fd5b6147fa85828601614619565b90969095509350505050565b60008060006040848603121561481b57600080fd5b8335614826816144f1565b925060208401356001600160401b0381111561468c57600080fd5b6020808252825182820181905260009190848201906040850190845b818110156148825783516001600160a01b03168352928401929184019160010161485d565b50909695505050505050565b600080600080604085870312156148a457600080fd5b84356001600160401b03808211156148bb57600080fd5b6148c7888389016146a5565b909650945060208701359150808211156148e057600080fd5b506148ed878288016146a5565b95989497509550505050565b60008060006040848603121561490e57600080fd5b8335614919816144f1565b925060208401356001600160401b0381111561493457600080fd5b614698868287016146a5565b801515811461094957600080fd5b6000806000806060858703121561496457600080fd5b843561496f816144f1565b935060208501356001600160401b0381111561498a57600080fd5b61499687828801614619565b90945092505060408501356149aa81614940565b939692955090935050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b03811182821017156149f3576149f36149b5565b604052919050565b60006001600160401b03821115614a1457614a146149b5565b50601f01601f191660200190565b6000614a35614a30846149fb565b6149cb565b9050828152838383011115614a4957600080fd5b828260208301376000602084830101529392505050565b600082601f830112614a7157600080fd5b6110fc83833560208501614a22565b60008060408385031215614a9357600080fd5b82356001600160401b0380821115614aaa57600080fd5b614ab686838701614a60565b93506020850135915080821115614acc57600080fd5b50614ad985828601614a60565b9150509250929050565b600080600060408486031215614af857600080fd5b83356001600160401b03811115614b0e57600080fd5b614b1a86828701614619565b9094509250506020840135614b2e81614940565b809150509250925092565b60008060408385031215614b4c57600080fd5b8235614b57816144f1565b91506020830135614b6781614940565b809150509250929050565b600060208284031215614b8457600080fd5b81356110fc81614940565b60008060408385031215614ba257600080fd5b8235614bad816144f1565b9150602083013561ffff81168114614b6757600080fd5b600080600080600060608688031215614bdc57600080fd5b8535614be7816144f1565b945060208601356001600160401b038082111561471f57600080fd5b60008060008060808587031215614c1957600080fd5b8435614c24816144f1565b93506020850135614c34816144f1565b92506040850135915060608501356001600160401b03811115614c5657600080fd5b8501601f81018713614c6757600080fd5b614c7687823560208401614a22565b91505092959194509250565b600081518084526020808501945080840160005b838110156145fb5781516001600160a01b031687529582019590820190600101614c96565b6020815260006110fc6020830184614c82565b604081526000614ce16040830185614c82565b8281036020840152614cf381856145cb565b95945050505050565b803569ffffffffffffffffffff81168114610ccb57600080fd5b60008060408385031215614d2957600080fd5b8235614d34816144f1565b9150614d4260208401614cfc565b90509250929050565b60008060408385031215614d5e57600080fd5b8235614d69816144f1565b91506020830135614b67816144f1565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c90821680614dd157607f821691505b60208210810361365957634e487b7160e01b600052602260045260246000fd5b6020808252601190820152702737b732bc34b9ba32b73a103a37b5b2b760791b604082015260600190565b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201614ed657614ed6614eae565b5060010190565b808201808211156108e7576108e7614eae565b6000808335601e19843603018112614f0757600080fd5b8301803591506001600160401b03821115614f2157600080fd5b602001915036819003821315610dab57600080fd5b600060208284031215614f4857600080fd5b6110fc82614cfc565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b601f821115610b1557600081815260208120601f850160051c81016020861015614f9f5750805b601f850160051c820191505b8181101561261357828155600101614fab565b6001600160401b03831115614fd557614fd56149b5565b614fe983614fe38354614dbd565b83614f78565b6000601f84116001811461501d57600085156150055750838201355b600019600387901b1c1916600186901b178355610c1b565b600083815260209020601f19861690835b8281101561504e578685013582556020948501946001909201910161502e565b508682101561506b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b6040808252810184905260008560608301825b878110156150c05782356150a3816144f1565b6001600160a01b0316825260209283019290910190600101615090565b5083810360208501528481526001600160fb1b038511156150e057600080fd5b8460051b915081866020830137016020019695505050505050565b81516001600160401b03811115615114576151146149b5565b615128816151228454614dbd565b84614f78565b602080601f83116001811461515d57600084156151455750858301515b600019600386901b1c1916600185901b178555612613565b600085815260208120601f198616915b8281101561518c5788860151825594840194600190910190840161516d565b50858210156151aa5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b80820281158282048414176108e7576108e7614eae565b6000826151ee57634e487b7160e01b600052601260045260246000fd5b500490565b600061ffff80831681810361520a5761520a614eae565b6001019392505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b60006001600160401b038211156152ca576152ca6149b5565b5060051b60200190565b600082601f8301126152e557600080fd5b815160206152f5614a30836152b1565b82815260059290921b8401810191818101908684111561531457600080fd5b8286015b8481101561532f5780518352918301918301615318565b509695505050505050565b6000806040838503121561534d57600080fd5b82516001600160401b038082111561536457600080fd5b818501915085601f83011261537857600080fd5b81516020615388614a30836152b1565b82815260059290921b840181019181810190898411156153a757600080fd5b948201945b838610156153ce5785516153bf816144f1565b825294820194908201906153ac565b918801519196509093505050808211156153e757600080fd5b50614ad9858286016152d4565b6000815461540181614dbd565b60018281168015615419576001811461542e5761545d565b60ff198416875282151583028701945061545d565b8560005260208060002060005b858110156154545781548a82015290840190820161543b565b50505082870194505b5050505092915050565b600061247461547683866153f4565b846153f4565b60006020828403121561548e57600080fd5b81516001600160401b038111156154a457600080fd5b8201601f810184136154b557600080fd5b80516154c3614a30826149fb565b8181528560208385010111156154d857600080fd5b614cf3826020830160208601614523565b60006154f582856153f4565b8351615505818360208801614523565b01949350505050565b818103818111156108e7576108e7614eae565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061556a90830184614547565b9695505050505050565b60006020828403121561558657600080fd5b81516110fc816144be565b6000602082840312156155a357600080fd5b81516110fc8161494056fea2646970667358221220e6f8f6002c5bc8782534d04e6ee60d2799892d4dc96d880cb7657d33ab982d6064736f6c63430008110033