POL Price: $0.078836 (-0.09%)
 

Overview

POL Balance

Polygon PoS Chain LogoPolygon PoS Chain LogoPolygon PoS Chain Logo0 POL

POL Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Block
From
To
Initialize477508912023-09-20 0:57:10992 days ago1695171430IN
0xaccB1551...6A98Dc974
0 POL0.05985591177

Parent Transaction Hash Block From To
View All Internal Transactions
Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

BurnRouterLogic

Compiler Version
v0.8.2+commit.661d1103
Optimization Enabled
Yes with 200 runs
Other Settings
default evmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userTargetAddress","type":"address"},{"indexed":true,"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"lockerLockingScript","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"}],"name":"BurnDispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"userTargetAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"userScript","type":"bytes"},{"indexed":false,"internalType":"enum ScriptTypes","name":"scriptType","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"inputAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"inputToken","type":"address"},{"indexed":false,"internalType":"uint256","name":"teleBTCAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burntAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"CCBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"bytes","name":"lockerLockingScript","type":"bytes"},{"indexed":false,"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"txId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"LockerDispute","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldBitcoinFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newBitcoinFee","type":"uint256"}],"name":"NewBitcoinFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldBitcoinFeeOracle","type":"address"},{"indexed":false,"internalType":"address","name":"newBitcoinFeeOracle","type":"address"}],"name":"NewBitcoinFeeOracle","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldLockers","type":"address"},{"indexed":false,"internalType":"address","name":"newLockers","type":"address"}],"name":"NewLockers","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldProtocolPercentageFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newProtocolPercentageFee","type":"uint256"}],"name":"NewProtocolPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldRelay","type":"address"},{"indexed":false,"internalType":"address","name":"newRelay","type":"address"}],"name":"NewRelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldSlasherPercentageFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newSlasherPercentageFee","type":"uint256"}],"name":"NewSlasherPercentageFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTeleBTC","type":"address"},{"indexed":false,"internalType":"address","name":"newTeleBTC","type":"address"}],"name":"NewTeleBTC","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldTransferDeadline","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTransferDeadline","type":"uint256"}],"name":"NewTransferDeadline","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldTreasury","type":"address"},{"indexed":false,"internalType":"address","name":"newTreasury","type":"address"}],"name":"NewTreasury","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"lockerTargetAddress","type":"address"},{"indexed":false,"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"},{"indexed":false,"internalType":"bytes32","name":"bitcoinTxId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"bitcoinTxOutputIndex","type":"uint256"}],"name":"PaidCCBurn","type":"event"},{"inputs":[],"name":"bitcoinFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"bitcoinFeeOracle","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"_version","type":"bytes4"},{"internalType":"bytes","name":"_vin","type":"bytes"},{"internalType":"bytes","name":"_vout","type":"bytes"},{"internalType":"bytes4","name":"_locktime","type":"bytes4"},{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"internalType":"bytes","name":"_intermediateNodes","type":"bytes"},{"internalType":"uint256","name":"_index","type":"uint256"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256[]","name":"_burnReqIndexes","type":"uint256[]"},{"internalType":"uint256[]","name":"_voutIndexes","type":"uint256[]"}],"name":"burnProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"burnRequestCounter","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"burnRequests","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"uint256","name":"burntAmount","type":"uint256"},{"internalType":"address","name":"sender","type":"address"},{"internalType":"bytes","name":"userScript","type":"bytes"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"bool","name":"isTransferred","type":"bool"},{"internalType":"enum ScriptTypes","name":"scriptType","type":"uint8"},{"internalType":"uint256","name":"requestIdOfLocker","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"bytes","name":"_userScript","type":"bytes"},{"internalType":"enum ScriptTypes","name":"_scriptType","type":"uint8"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"}],"name":"ccBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_exchangeConnector","type":"address"},{"internalType":"uint256[]","name":"_amounts","type":"uint256[]"},{"internalType":"bool","name":"_isFixedToken","type":"bool"},{"internalType":"address[]","name":"_path","type":"address[]"},{"internalType":"uint256","name":"_deadline","type":"uint256"},{"internalType":"bytes","name":"_userScript","type":"bytes"},{"internalType":"enum ScriptTypes","name":"_scriptType","type":"uint8"},{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"}],"name":"ccExchangeAndBurn","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"uint256[]","name":"_indices","type":"uint256[]"}],"name":"disputeBurn","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_lockerLockingScript","type":"bytes"},{"internalType":"bytes4[]","name":"_versions","type":"bytes4[]"},{"internalType":"bytes","name":"_inputVin","type":"bytes"},{"internalType":"bytes","name":"_inputVout","type":"bytes"},{"internalType":"bytes","name":"_outputVin","type":"bytes"},{"internalType":"bytes","name":"_outputVout","type":"bytes"},{"internalType":"bytes4[]","name":"_locktimes","type":"bytes4[]"},{"internalType":"bytes","name":"_inputIntermediateNodes","type":"bytes"},{"internalType":"uint256[]","name":"_indexesAndBlockNumbers","type":"uint256[]"}],"name":"disputeLocker","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_startingBlockNumber","type":"uint256"},{"internalType":"address","name":"_relay","type":"address"},{"internalType":"address","name":"_lockers","type":"address"},{"internalType":"address","name":"_treasury","type":"address"},{"internalType":"address","name":"_teleBTC","type":"address"},{"internalType":"uint256","name":"_transferDeadline","type":"uint256"},{"internalType":"uint256","name":"_protocolPercentageFee","type":"uint256"},{"internalType":"uint256","name":"_slasherPercentageReward","type":"uint256"},{"internalType":"uint256","name":"_bitcoinFee","type":"uint256"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockerTargetAddress","type":"address"},{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"isTransferred","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"isUsedAsBurnProof","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lockers","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"protocolPercentageFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"relay","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_bitcoinFee","type":"uint256"}],"name":"setBitcoinFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_bitcoinFeeOracle","type":"address"}],"name":"setBitcoinFeeOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_lockers","type":"address"}],"name":"setLockers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_protocolPercentageFee","type":"uint256"}],"name":"setProtocolPercentageFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_relay","type":"address"}],"name":"setRelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_slasherPercentageReward","type":"uint256"}],"name":"setSlasherPercentageReward","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_teleBTC","type":"address"}],"name":"setTeleBTC","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_transferDeadline","type":"uint256"}],"name":"setTransferDeadline","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_treasury","type":"address"}],"name":"setTreasury","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"slasherPercentageReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"startingBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"teleBTC","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"transferDeadline","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
608060405234801561001057600080fd5b50615ff080620000216000396000f3fe6080604052600436106101e75760003560e01c80638d3d78cd11610102578063c19e86e711610095578063ea73263711610064578063ea73263714610581578063f0f4426014610594578063f2fde38b146105b4578063f47e2240146105d4576101ee565b8063c19e86e71461050e578063c780c03f1461052e578063c805f68b14610541578063cdbe374114610561576101ee565b8063b14d3532116100d1578063b14d3532146104a2578063b59589d1146104c2578063b74d0d35146104e2578063bed6a602146104f8576101ee565b80638d3d78cd146104175780638d774f8e146104375780638da5cb5b14610457578063930a60e814610475576101ee565b80635c4f5f3e1161017a57806373532b2a1161014957806373532b2a146103975780637ed55748146103b75780637f0f1817146103d75780637ffe9a92146103f7576101ee565b80635c4f5f3e1461032c57806361d027b31461034c57806370872aa51461036c578063715018a614610382576101ee565b8063419cba7f116101b6578063419cba7f146102b657806343149dba146102cc5780634782bc36146102ec57806350a058361461030c576101ee565b80631812adb6146101f35780631876dec41461021c5780631d927898146102545780631e23616814610276576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960075481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b5060015461023c906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561026057600080fd5b5061027461026f36600461574b565b610608565b005b34801561028257600080fd5b506102a6610291366004615437565b600c6020526000908152604090205460ff1681565b6040519015158152602001610213565b3480156102c257600080fd5b5061020960085481565b3480156102d857600080fd5b506102096102e73660046157d5565b61079d565b3480156102f857600080fd5b50610274610307366004615437565b6109a2565b34801561031857600080fd5b5060045461023c906001600160a01b031681565b34801561033857600080fd5b50610274610347366004615437565b6109b6565b34801561035857600080fd5b5060035461023c906001600160a01b031681565b34801561037857600080fd5b5061020960055481565b34801561038e57600080fd5b506102746109bf565b3480156103a357600080fd5b506102746103b236600461558c565b6109c9565b3480156103c357600080fd5b506102746103d2366004615437565b61113f565b3480156103e357600080fd5b506102746103f2366004615216565b611150565b34801561040357600080fd5b506102a661041236600461534a565b611161565b34801561042357600080fd5b5060025461023c906001600160a01b031681565b34801561044357600080fd5b5061020961045236600461524e565b6111b9565b34801561046357600080fd5b506040546001600160a01b031661023c565b34801561048157600080fd5b50610209610490366004615216565b600b6020526000908152604090205481565b3480156104ae57600080fd5b506102746104bd366004615216565b61125d565b3480156104ce57600080fd5b5060005461023c906001600160a01b031681565b3480156104ee57600080fd5b5061020960095481565b34801561050457600080fd5b5061020960065481565b34801561051a57600080fd5b50610274610529366004615216565b61126e565b61027461053c3660046155f1565b61127f565b34801561054d57600080fd5b5061027461055c366004615216565b611599565b34801561056d57600080fd5b5061027461057c366004615437565b6115aa565b6102a661058f366004615467565b611613565b3480156105a057600080fd5b506102746105af366004615216565b6119dd565b3480156105c057600080fd5b506102746105cf366004615216565b6119ee565b3480156105e057600080fd5b506105f46105ef36600461534a565b611a64565b604051610213989796959493929190615c8a565b600d54610100900460ff16158080156106285750600d54600160ff909116105b80610649575061063730611b61565b1580156106495750600d5460ff166001145b6106b15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600d805460ff1916600117905580156106d457600d805461ff0019166101001790555b6106dc611b74565b6106e4611ba3565b60058a90556106f289611bd2565b6106fb88611c63565b61070487611cf4565b61070d86611d85565b61071685611e16565b61071f84611fb7565b6107288361204a565b610731826120dd565b61074b6107466040546001600160a01b031690565b612170565b801561079157600d805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b60006107a76121d9565b6002546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101899052606401602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190615375565b506000806108508888888888612233565b6001600160a01b0381166000908152600a6020526040902080549294509092509061087d90600190615eb1565b8154811061089b57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600401546108b43390565b6001600160a01b03167fc19dabf19fdfd8c6124bed2178a4564d0c5d5812bfb916777cc90d1b53ed5a5a89896000808e8989600a60008c6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008e6001600160a01b03166001600160a01b03168152602001908152602001600020805490506109409190615eb1565b8154811061095e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154604051610984989796959493929190615a4c565b60405180910390a35090506109996001607255565b95945050505050565b6109aa612557565b6109b38161204a565b50565b6109b381611e16565b6109c7612557565b565b6109d16121d9565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390610a039086908690600401615a01565b60206040518083038186803b158015610a1b57600080fd5b505afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a539190615375565b610a6f5760405162461bcd60e51b81526004016106a890615c08565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90610aa29087908790600401615a01565b60206040518083038186803b158015610aba57600080fd5b505afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190615232565b600080546040516310889dc360e01b81526001600160a01b0390911660048201529192509073a6a8d7ed2674003fed0438243f56dc605cc028d8906310889dc39060240160206040518083038186803b158015610b4e57600080fd5b505af4158015610b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b86919061544f565b905060005b835181101561112d576001600160a01b0383166000908152600a602052604090208451859083908110610bce57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610bf457634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615610c585760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a20616c7265616479207061696400000060448201526064016106a8565b6001600160a01b0383166000908152600a602052604090208451839190869084908110610c9557634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610cbb57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410610d265760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a20646561646c696e65206e6f742070616044820152631cdcd95960e21b60648201526084016106a8565b6001600160a01b0383166000908152600a60205260409020845160019190869084908110610d6457634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610d8a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600792909202909101600501805460ff1916931515939093179092556001546008546001600160a01b038781168452600a909452604090922087519390911692631697565b928792612710928a9088908110610e0057634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610e2657634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154610e429190615e69565b610e4c9190615e49565b336001600160a01b0388166000908152600a6020526040902089518a9088908110610e8757634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610ead57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154600a60008a6001600160a01b03166001600160a01b031681526020019081526020016000208a8881518110610f0457634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610f2a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102016002015460405160e087901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094529184166044840152606483015291909116608482015260a401602060405180830381600087803b158015610f9d57600080fd5b505af1158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190615375565b506001600160a01b0383166000818152600a60205260409020855186908490811061101057634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061103657634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160020160009054906101000a90046001600160a01b03166001600160a01b03167f58c23b4ae0617be275628875bcfd65759a441263099a256eeb27899fb5dd846d8888600a6000896001600160a01b03166001600160a01b031681526020019081526020016000208987815181106110cc57634e487b7160e01b600052603260045260246000fd5b6020026020010151815481106110f257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016006015460405161111393929190615a15565b60405180910390a38061112581615f50565b915050610b8b565b50505061113a6001607255565b505050565b611147612557565b6109b381611fb7565b611158612557565b6109b381611d85565b6001600160a01b0382166000908152600a6020526040812080548390811061119957634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1690505b92915050565b60006111c36121d9565b60006111d48d8d8d8d8d8d8d6125b1565b90506112418c8c60008181106111fa57634e487b7160e01b600052603260045260246000fd5b905060200201358a8a600081811061122257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112379190615216565b83898989896129fe565b91505061124e6001607255565b9b9a5050505050505050505050565b611265612557565b6109b381611c63565b611276612557565b6109b381612170565b6112876121d9565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa3906112b7908c90600401615a39565b60206040518083038186803b1580156112cf57600080fd5b505afa1580156112e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113079190615375565b6113235760405162461bcd60e51b81526004016106a890615c08565b60006113818960008151811061134957634e487b7160e01b600052603260045260246000fd5b602002602001015189898760008151811061137457634e487b7160e01b600052603260045260246000fd5b6020026020010151612b58565b905073a6a8d7ed2674003fed0438243f56dc605cc028d863e87c5882600c60065460008054906101000a90046001600160a01b0316600554868f8b8b8b6040518a63ffffffff1660e01b81526004016113e299989796959493929190615aaa565b60006040518083038186803b1580156113fa57600080fd5b505af415801561140e573d6000803e3d6000fd5b505050506000806114478a8560008151811061143a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612c4e565b9150915061149a8b60018151811061146f57634e487b7160e01b600052603260045260246000fd5b602002602001015189898960018151811061137457634e487b7160e01b600052603260045260246000fd5b82146114e85760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2077726f6e67206f757470757420747860448201526064016106a8565b8b5160208d01206114f98883612cfd565b805190602001201461154d5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a206e6f7420666f72206c6f636b65720060448201526064016106a8565b611581898d858760028151811061157457634e487b7160e01b600052603260045260246000fd5b6020026020010151612d6f565b50505061158e6001607255565b505050505050505050565b6115a1612557565b6109b381611bd2565b60045433906001600160a01b031681146116065760405162461bcd60e51b815260206004820152601b60248201527f4275726e526f757465724c6f6769633a206e6f74206f7261636c65000000000060448201526064016106a8565b61160f826120dd565b5050565b600061161d6121d9565b60055487101561166f5760405162461bcd60e51b815260206004820152601c60248201527f4275726e526f757465724c6f6769633a206f6c6420726571756573740000000060448201526064016106a8565b6001600160e01b03198816156116d35760405162461bcd60e51b815260206004820152602360248201527f4275726e526f757465724c6f6769633a206e6f6e2d7a65726f206c6f636b2074604482015262696d6560e81b60648201526084016106a8565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390611703908790600401615a39565b60206040518083038186803b15801561171b57600080fd5b505afa15801561172f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117539190615375565b61176f5760405162461bcd60e51b81526004016106a890615c08565b81518351146117c05760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720696e6465786573000060448201526064016106a8565b60006117ce8c8c8c8c612b58565b600054604051637ebc232760e01b815291925073a6a8d7ed2674003fed0438243f56dc605cc028d891637ebc23279161181d916001600160a01b039091169085908d908d908d90600401615981565b60206040518083038186803b15801561183557600080fd5b505af4158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190615375565b6118b95760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a206e6f742066696e616c697a6564000060448201526064016106a8565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a906118ea908990600401615a39565b60206040518083038186803b15801561190257600080fd5b505afa158015611916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193a9190615232565b9050600061194c838b848f8a8a612f3b565b905073a6a8d7ed2674003fed0438243f56dc605cc028d863191e28dc600c838f8b886040518663ffffffff1660e01b815260040161198e959493929190615b56565b60006040518083038186803b1580156119a657600080fd5b505af41580156119ba573d6000803e3d6000fd5b50505050600193505050506119cf6001607255565b9a9950505050505050505050565b6119e5612557565b6109b381611cf4565b6119f6612557565b6001600160a01b038116611a5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a8565b6109b381613430565b600a6020528160005260406000208181548110611a8057600080fd5b600091825260209091206007909102018054600182015460028301546003840180549396509194506001600160a01b03169291611abc90615f1b565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae890615f1b565b8015611b355780601f10611b0a57610100808354040283529160200191611b35565b820191906000526020600020905b815481529060010190602001808311611b1857829003601f168201915b505050600484015460058501546006909501549394909360ff8083169450610100909204909116915088565b6001600160a01b0381163b15155b919050565b600d54610100900460ff16611b9b5760405162461bcd60e51b81526004016106a890615c3f565b6109c7613480565b600d54610100900460ff16611bca5760405162461bcd60e51b81526004016106a890615c3f565b6109c76134b0565b806001600160a01b038116611bf95760405162461bcd60e51b81526004016106a890615bd1565b600054604080516001600160a01b03928316815291841660208301527f4c28a3f61a715259c4dc930c23e7423b8fa52e13232c061a6e488729c66184f4910160405180910390a150600080546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611c8a5760405162461bcd60e51b81526004016106a890615bd1565b600154604080516001600160a01b03928316815291841660208301527ffa021c2ec0f46429a53e7f88b88065e40001f50c9d38b2e8b713beaf9828d4c3910160405180910390a150600180546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611d1b5760405162461bcd60e51b81526004016106a890615bd1565b600354604080516001600160a01b03928316815291841660208301527f567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b228225910160405180910390a150600380546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611dac5760405162461bcd60e51b81526004016106a890615bd1565b600254604080516001600160a01b03928316815291841660208301527f36a4c08a38b736dcecb6c328dba61238529620e83ccb23db2cc43cd34ec26096910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546040516353bcd1c960e11b81526001600160a01b03909116600482015273a6a8d7ed2674003fed0438243f56dc605cc028d89063a779a3929060240160206040518083038186803b158015611e6e57600080fd5b505af4158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea6919061544f565b9050611eba6040546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480611eda575080600654105b611f265760405162461bcd60e51b815260206004820152601a60248201527f4275726e526f757465724c6f6769633a206e6f207065726d697400000000000060448201526064016106a8565b808211611f755760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a206c6f7720646561646c696e6500000060448201526064016106a8565b60065460408051918252602082018490527f92c10a242ca42973030420e2ee32b3ba7818cc643f896958f620c606cf300416910160405180910390a150600655565b8061271010156120095760405162461bcd60e51b815260206004820152601c60248201527f4275726e526f757465724c6f6769633a20696e76616c6964206665650000000060448201526064016106a8565b60075460408051918252602082018390527f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b910160405180910390a1600755565b80612710101561209c5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207265776172640060448201526064016106a8565b60085460408051918252602082018390527faa50b3683e42a13535a5b9c2c32780cccf956fb546b523a3542ac4ad8b544f67910160405180910390a1600855565b60095460408051918252602082018390527f47c5f9c13c35ebb166f6a8d8c56af73f8b323ac0fee7aec4a5e0490bbf67a4fe910160405180910390a180612710101561216b5760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a20696e76616c6964206274632066656560448201526064016106a8565b600955565b600454604080516001600160a01b03928316815291831660208301527ff68296962c28bcee9d0e2e78c34b1ed65997ff5ce894f72e9165fbc75b937600910160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002607254141561222c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106a8565b6002607255565b60008061224086866134d7565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa3906122729087908790600401615a01565b60206040518083038186803b15801561228a57600080fd5b505afa15801561229e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c29190615375565b6122de5760405162461bcd60e51b81526004016106a890615c08565b60015460405163626885b560e11b81526001600160a01b039091169063c4d10b6a906123109087908790600401615a01565b60206040518083038186803b15801561232857600080fd5b505afa15801561233c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123609190615232565b9050600061236d886135fa565b60025460015460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b390604401602060405180830381600087803b1580156123bf57600080fd5b505af11580156123d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f79190615375565b5080600954826124079190615eb1565b6001546040516338463cff60e01b81526001600160a01b03909116906338463cff9061243b908a908a908890600401615a15565b602060405180830381600087803b15801561245557600080fd5b505af1158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d919061544f565b6124979190615e69565b6124a19190615e49565b6000546040516310889dc360e01b81526001600160a01b03909116600482015290935061254590899085908a908a9073a6a8d7ed2674003fed0438243f56dc605cc028d8906310889dc39060240160206040518083038186803b15801561250757600080fd5b505af415801561251b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253f919061544f565b8761371f565b509550959350505050565b6001607255565b6040546001600160a01b031633146109c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a8565b6002546000906001600160a01b031684846125cd600182615eb1565b8181106125ea57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906125ff9190615216565b6001600160a01b0316146126555760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207061746800000060448201526064016106a8565b600286146126a55760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720616d6f756e7473000060448201526064016106a8565b838360008181106126c657634e487b7160e01b600052603260045260246000fd5b90506020020160208101906126db9190615216565b6001600160a01b03166323b872dd33308a8a600081811061270c57634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401602060405180830381600087803b15801561276357600080fd5b505af1158015612777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279b9190615375565b50838360008181106127bd57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127d29190615216565b6001600160a01b031663095ea7b3898989600081811061280257634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401602060405180830381600087803b15801561285157600080fd5b505af1158015612865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128899190615375565b50600080896001600160a01b031663b0bbcd888a8a60008181106128bd57634e487b7160e01b600052603260045260246000fd5b905060200201358b8b60018181106128e557634e487b7160e01b600052603260045260246000fd5b905060200201358989308a8e6040518863ffffffff1660e01b81526004016129139796959493929190615ced565b600060405180830381600087803b15801561292d57600080fd5b505af1158015612941573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129699190810190615391565b91509150816129ba5760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2065786368616e6765206661696c656460448201526064016106a8565b80600182516129c99190615eb1565b815181106129e757634e487b7160e01b600052603260045260246000fd5b602002602001015192505050979650505050505050565b6000806000612a108888888888612233565b6001600160a01b0381166000908152600a60205260409020805492945090925090612a3d90600190615eb1565b81548110612a5b57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160040154612a743390565b6001600160a01b03167fc19dabf19fdfd8c6124bed2178a4564d0c5d5812bfb916777cc90d1b53ed5a5a89898e8e8e8989600a60008c6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002080549050612aff9190615eb1565b81548110612b1d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154604051612b43989796959493929190615a4c565b60405180910390a35098975050505050505050565b600080600286868686604051602001612b749493929190615912565b60408051601f1981840301815290829052612b8e91615965565b602060405180830381855afa158015612bab573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612bce919061544f565b90506000600282604051602001612be791815260200190565b60408051601f1981840301815290829052612c0191615965565b602060405180830381855afa158015612c1e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c41919061544f565b925050505b949350505050565b60008080612c64612c5f86836138e5565b613900565b905062ffffff198082161415612cbc5760405162461bcd60e51b815260206004820152601a60248201527f426974636f696e48656c7065723a2076696e206973206e756c6c00000000000060448201526064016106a8565b6000612cc88286613a36565b90506000612cd582613b54565b9050612ce081613b78565b9450612ceb81613b9a565b63ffffffff1693505050509250929050565b60606000612d13612d0e85836138e5565b613bc4565b905062ffffff198082161415612d3b5760405162461bcd60e51b81526004016106a890615b9a565b6000612d478285613cb5565b90506000612d5482613daf565b9050612d6562ffffff198216613e00565b9695505050505050565b6000612d7a85613e50565b60015460405163626885b560e11b81526001600160401b039290921692506000916001600160a01b039091169063c4d10b6a90612dbb908890600401615a39565b60206040518083038186803b158015612dd357600080fd5b505afa158015612de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0b9190615232565b6001546008549192506001600160a01b03169063b734de2690839061271090612e349087615e69565b612e3e9190615e49565b3360405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252909116604482015260648101859052608401602060405180830381600087803b158015612e9757600080fd5b505af1158015612eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecf9190615375565b507f7ff138134e34ccab071315c38e38eec079f54726b890304ab46e2c5ab6f722bb8186858761271060085488612f069190615e69565b612f109190615e49565b612f1a9088615dbf565b604051612f2b9594939291906159c0565b60405180910390a1505050505050565b60008080805b85518110156134235780612f7e57848181518110612f6f57634e487b7160e01b600052603260045260246000fd5b6020026020010151915061302f565b81858281518110612f9f57634e487b7160e01b600052603260045260246000fd5b6020026020010151116130045760405162461bcd60e51b815260206004820152602760248201527f4275726e526f757465724c6f6769633a20756e2d736f7274656420766f757420604482015266696e646578657360c81b60648201526084016106a8565b84818151811061302457634e487b7160e01b600052603260045260246000fd5b602002602001015191505b600086828151811061305157634e487b7160e01b600052603260045260246000fd5b60200260200101519050600a60008a6001600160a01b03166001600160a01b03168152602001908152602001600020818154811061309f57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615801561310e57506001600160a01b0389166000908152600a6020526040902080548b9190839081106130f957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410155b156134105761327b8887848151811061313757634e487b7160e01b600052603260045260246000fd5b6020026020010151600a60008d6001600160a01b03166001600160a01b03168152602001908152602001600020848154811061318357634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600301805461319f90615f1b565b80601f01602080910402602001604051908101604052809291908181526020018280546131cb90615f1b565b80156132185780601f106131ed57610100808354040283529160200191613218565b820191906000526020600020905b8154815290600101906020018083116131fb57829003601f168201915b5050506001600160a01b038f166000908152600a602052604090208054909250879150811061325757634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160050160019054906101000a900460ff16613ee8565b6001600160401b0316935083600a60008b6001600160a01b03166001600160a01b0316815260200190815260200160002082815481106132cb57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600101541415613410576001600160a01b0389166000908152600a602052604090208054600191908390811061331f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600790910201600501805460ff191691151591909117905561334c856001615dbf565b6001600160a01b038a166000818152600a60205260409020805492975090917f1b46655c2f394f2191cb246d5982dbe00ad671f0b590e75e97c90ee97f1f782a9190849081106133ac57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548d8986815181106133df57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051613407939291909283526020830191909152604082015260600190565b60405180910390a25b508061341b81615f50565b915050612f41565b5050509695505050505050565b604080546001600160a01b038381166001600160a01b031983168117845592519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600d54610100900460ff166134a75760405162461bcd60e51b81526004016106a890615c3f565b6109c733613430565b600d54610100900460ff166125505760405162461bcd60e51b81526004016106a890615c3f565b60008160058111156134f957634e487b7160e01b600052602160045260246000fd5b14806135245750600481600581111561352257634e487b7160e01b600052602160045260246000fd5b145b8061354e5750600581600581111561354c57634e487b7160e01b600052602160045260246000fd5b145b156135a95781516020146135a45760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207363726970740060448201526064016106a8565b61160f565b815160141461160f5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207363726970740060448201526064016106a8565b6000806127106007548461360e9190615e69565b6136189190615e49565b905060095460026136299190615e69565b6136339082615dbf565b83116136815760405162461bcd60e51b815260206004820152601b60248201527f4275726e526f757465724c6f6769633a206c6f7720616d6f756e74000000000060448201526064016106a8565b600061368d8285615eb1565b60025460035460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101869052929350169063a9059cbb90604401602060405180830381600087803b1580156136df57600080fd5b505af11580156136f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137179190615375565b509392505050565b604080516101008101825260006080820181905260a0820181905260c0820181815260e0830191909152888252602082018890523392820192909252606081018690529084600581111561378357634e487b7160e01b600052602160045260246000fd5b908160058111156137a457634e487b7160e01b600052602160045260246000fd5b9052506006546137b49084615dbf565b6080820152600060a082018190526001600160a01b038316808252600b6020818152604084205460e08601819052929093529091526137f4906001615dbf565b6001600160a01b038381166000908152600b6020908152604080832094909455600a81528382208054600180820183559184529282902086516007909402019283558582015190830155928401516002820180546001600160a01b0319169190931617909155606083015180518493613874926003850192910190614f8b565b506080820151600482015560a08201516005808301805460ff19169215159290921780835560c0850151929161ff0019909116906101009084908111156138cb57634e487b7160e01b600052602160045260246000fd5b021790555060e08201518160060155505050505050505050565b81516000906020840161099964ffffffffff8516828461415e565b60008181613916815b62ffffff198416906141a5565b50601884901c6001600160601b03166139365762ffffff195b9250613a2f565b600061394385600061427f565b9050601885901c6001600160601b03166001600160401b0382166139705762ffffff195b94505050613a2f565b600061397b836143c6565b60ff16905060005b836001600160401b03168110156139f7578282106139ac5762ffffff195b965050505050613a2f565b60006139cc6139bb8486615eb1565b60055b62ffffff198c16919061441f565b90506139d781614453565b6139e19084615dbf565b92505080806139ef90615f50565b915050613983565b50818114613a0f5762ffffff195b9550505050613a2f565b613a2960065b60d81b6301000000600160d81b0389161790565b95505050505b5050919050565b6000826006613a4481613909565b506000613a5286600061427f565b6001600160401b03169050601886901c6001600160601b0316818610613aad5760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016106a8565b6000613ab8836143c6565b60ff1690506000805b88811015613b1057613ae7613ad68486615eb1565b60055b62ffffff198d16919061441f565b9150613af282614453565b613afc9084615dbf565b9250613b09600182615dbf565b9050613ac1565b50613b1e6139bb8385615eb1565b90506000613b2b82614453565b9050613b44838260045b62ffffff198e169291906144a7565b975050505050505b505092915050565b6000816004613b6281613909565b50612c4662ffffff1985166000602460036144a7565b6000816003613b8681613909565b50612c4662ffffff19851660006020614517565b6000816003613ba881613909565b50612c46613bbf62ffffff19861660206004614670565b6147ba565b60008181613bd181613909565b50601884901c6001600160601b0316613bee5762ffffff1961392f565b6000613bfb85600061427f565b9050601885901c6001600160601b03166001600160401b038216613c235762ffffff19613967565b6000613c2e836143c6565b60ff16905060005b836001600160401b0316811015613c9957828210613c585762ffffff196139a1565b6000613c6e613c678486615eb1565b600e6139be565b9050613c7981614823565b613c839084615dbf565b9250508080613c9190615f50565b915050613c36565b50818114613cab5762ffffff19613a05565b613a29600f613a15565b600082600f613cc381613909565b506000613cd186600061427f565b6001600160401b03169050601886901c6001600160601b0316818610613d2d5760405162461bcd60e51b81526020600482015260116024820152702b37baba103932b0b21037bb32b9393ab760791b60448201526064016106a8565b6000613d38836143c6565b60ff1690506000805b88811015613d8657613d5d613d568486615eb1565b600e613ad9565b9150613d6882614823565b613d729084615dbf565b9250613d7f600182615dbf565b9050613d41565b50613d94613c678385615eb1565b90506000613da182614823565b9050613b448382600d613b35565b600081600d613dbd81613909565b506000613dcb85600861427f565b9050610999613dd9826143c6565b613de4906008615e02565b62ffffff1987169060ff166001600160401b03841660076144a7565b6060600080613e188460181c6001600160601b031690565b60405193508392506001600160601b03169050613e3f84613e3a846020615dbf565b61486c565b508181016020016040529052919050565b600080613e60612d0e84836138e5565b905062ffffff198082161415613e885760405162461bcd60e51b81526004016106a890615b9a565b600080613e9683600061427f565b6001600160401b0316905060005b81811015613edf57613eb68482613cb5565b9250613ec1836149c4565b613ecb9086615dd7565b945080613ed781615f50565b915050613ea4565b50505050919050565b600080613ef8612d0e87836138e5565b905062ffffff198082161415613f205760405162461bcd60e51b81526004016106a890615b9a565b6000613f2c8287613cb5565b90506000613f3982613daf565b90506005856005811115613f5d57634e487b7160e01b600052602160045260246000fd5b1415613fc257613f7662ffffff19821660026020614517565b604051602001613f8891815260200190565b60405160208183030381529060405280519060200120868051906020012014613fb2576000613fbb565b613fbb826149c4565b9350614153565b6000856005811115613fe457634e487b7160e01b600052602160045260246000fd5b1415613ffd57613f7662ffffff19821660016020614517565b600185600581111561401f57634e487b7160e01b600052602160045260246000fd5b141561405e5761403662ffffff19821660036149e9565b604051602001613f88919060609190911b6bffffffffffffffffffffffff1916815260140190565b600285600581111561408057634e487b7160e01b600052602160045260246000fd5b14156140975761403662ffffff19821660026149e9565b60038560058111156140b957634e487b7160e01b600052602160045260246000fd5b14156140d05761403662ffffff19821660026149e9565b60048560058111156140f257634e487b7160e01b600052602160045260246000fd5b14156141535761410b62ffffff19821660026020614517565b60405160200161411d91815260200190565b60405160208183030381529060405280519060200120868051906020012014614147576000614150565b614150826149c4565b93505b505050949350505050565b60008061416b8385615dbf565b905060405181111561417b575060005b8061418d5762ffffff1991505061419e565b5050606083811b8317901b811760181b5b9392505050565b60006141b183836149f7565b6142785760006141d06141c48560d81c90565b64ffffffffff16614a1a565b91505060006141e58464ffffffffff16614a1a565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201526001600160b01b031960b086811b8216603d8401526c05c408af0e0cac6e8cac84060f609b1b604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b81526004016106a89190615a39565b5090919050565b60008061429462ffffff198516846001614ac6565b905060fc81116142af576142a781614af6565b9150506111b3565b8060fd1415614315576142dd6142d86142c9856001615dbf565b62ffffff198716906002614670565b614af6565b91506142e8826143c6565b60ff166003146143105761430e61430962ffffff19861685600360006144a7565b614b5e565b505b6143bf565b8060fe141561436a5761433e6142d861432f856001615dbf565b62ffffff198716906004614670565b9150614349826143c6565b60ff166005146143105761430e61430962ffffff19861685600560006144a7565b8060ff14156143bf576143936142d8614384856001615dbf565b62ffffff198716906008614670565b915061439e826143c6565b60ff166009146143bf57613b4c61430962ffffff19861685600960006144a7565b5092915050565b600060fc826001600160401b0316116143e157506001611b6f565b61ffff826001600160401b0316116143fb57506003611b6f565b63ffffffff826001600160401b03161161441757506005611b6f565b506009611b6f565b6000612c4684846144398760181c6001600160601b031690565b6001600160601b031661444c9190615eb1565b85856144a7565b600081600561446181613909565b50600061446f85602461427f565b9050806001600160401b0316614484826143c6565b60ff166144919190615dbf565b61449c906024615dbf565b610999906004615dbf565b6000806144bd8660781c6001600160601b031690565b6001600160601b031690506144d186614be5565b846144dc8784615dbf565b6144e69190615dbf565b11156144f95762ffffff19915050612c46565b6145038582615dbf565b9050612d658364ffffffffff16828661415e565b600060ff82166145295750600061419e565b61453c8460181c6001600160601b031690565b6001600160601b031661455260ff841685615dbf565b11156145b65761459d61456e8560781c6001600160601b031690565b6001600160601b031661458a8660181c6001600160601b031690565b6001600160601b0316858560ff16614c26565b60405162461bcd60e51b81526004016106a89190615a39565b60208260ff1611156146305760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d70746564207460448201527f6f20696e646578206d6f7265207468616e20333220627974657300000000000060648201526084016106a8565b6008820260006146498660781c6001600160601b031690565b6001600160601b031690506000600160ff1b60001984011d91909501511695945050505050565b6000612c46614680858585614517565b600881811c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff167fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff009290911b9190911617601081811c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff167fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00009290911b9190911617602081811c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff167fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000009290911b9190911617604081811c77ffffffffffffffff0000000000000000ffffffffffffffff1677ffffffffffffffff0000000000000000ffffffffffffffff199290911b9190911617608081811c91901b1790565b600063ffffffff82111561481f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016106a8565b5090565b600081600e61483181613909565b50600061483f85600861427f565b9050806001600160401b0316614854826143c6565b60ff166148619190615dbf565b610999906008615dbf565b600062ffffff1980841614156148d55760405162461bcd60e51b815260206004820152602860248201527f54797065644d656d566965772f636f7079546f202d204e756c6c20706f696e7460448201526732b9103232b932b360c11b60648201526084016106a8565b6148de83614d50565b61493e5760405162461bcd60e51b815260206004820152602b60248201527f54797065644d656d566965772f636f7079546f202d20496e76616c696420706f60448201526a34b73a32b9103232b932b360a91b60648201526084016106a8565b60006149538460181c6001600160601b031690565b6001600160601b0316905060006149738560781c6001600160601b031690565b6001600160601b0316905060006040519050848111156149935760206060fd5b8285848460045afa50612d656149a98760d81c90565b64ffffffffff60601b606091821b168717901b841760181b90565b600081600d6149d281613909565b50612c466142d862ffffff19861660006008614670565b600061419e83836014614ac6565b60008164ffffffffff16614a0b8460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff161115614a78576000614a39826008615e88565b60ff1685901c9050614a4a81614d8e565b61ffff16841793508160ff16601014614a6557601084901b93505b50614a71600182615ec8565b9050614a20565b50600f5b60ff8160ff161015614ac05760ff600882021684901c614a9b81614d8e565b61ffff16831792508160ff16600014614ab657601083901b92505b5060001901614a7c565b50915091565b6000614ad3826020615ec8565b614ade906008615e88565b60ff16614aec858585614517565b901c949350505050565b60006001600160401b0382111561481f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016106a8565b60606000614b92614b8d82614b7f601887901c6001600160601b0316614dbe565b62ffffff1987169190614ac6565b614a1a565b6040517f4e6f6e2d6d696e696d616c2076617220696e742e20476f74203078000000000060208201526dffffffffffffffffffffffffffff19607083901b16603b82015290925060009150604d0161424d565b6000614bfa8260181c6001600160601b031690565b614c0d8360781c6001600160601b031690565b614c179190615e27565b6001600160601b031692915050565b60606000614c3386614a1a565b9150506000614c4186614a1a565b9150506000614c4f86614a1a565b9150506000614c5d86614a1a565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e20746865602082015274040ecd2caee5c40a6d8d2c6ca40d2e640c2e84060f605b1b818301526001600160d01b031960d098891b811660558301526e040eed2e8d040d8cadccee8d04060f608b1b605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f666673657420306070830152600f60fb1b609083015295881b861660918201526097810196909652951b90921660a68401525050601760f91b60ac8201528151808203608d01815260ad90910190915295945050505050565b6000614d5c8260d81c90565b64ffffffffff1664ffffffffff1415614d7757506000611b6f565b6000614d8283614be5565b60405110199392505050565b6000614da060048360ff16901c614e1f565b60ff161760081b62ffff0016614db582614e1f565b60ff1617919050565b600060ff82111561481f5760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b60648201526084016106a8565b600060f08083179060ff82161415614e3b576030915050611b6f565b8060ff1660f11415614e51576031915050611b6f565b8060ff1660f21415614e67576032915050611b6f565b8060ff1660f31415614e7d576033915050611b6f565b8060ff1660f41415614e93576034915050611b6f565b8060ff1660f51415614ea9576035915050611b6f565b8060ff1660f61415614ebf576036915050611b6f565b8060ff1660f71415614ed5576037915050611b6f565b8060ff1660f81415614eeb576038915050611b6f565b8060ff1660f91415614f01576039915050611b6f565b8060ff1660fa1415614f17576061915050611b6f565b8060ff1660fb1415614f2d576062915050611b6f565b8060ff1660fc1415614f43576063915050611b6f565b8060ff1660fd1415614f59576064915050611b6f565b8060ff1660fe1415614f6f576065915050611b6f565b8060ff1660ff1415614f85576066915050611b6f565b50919050565b828054614f9790615f1b565b90600052602060002090601f016020900481019282614fb95760008555614fff565b82601f10614fd257805160ff1916838001178555614fff565b82800160010185558215614fff579182015b82811115614fff578251825591602001919060010190614fe4565b5061481f9291505b8082111561481f5760008155600101615007565b8035611b6f81615f97565b60008083601f840112615037578182fd5b5081356001600160401b0381111561504d578182fd5b602083019150836020808302850101111561506757600080fd5b9250929050565b600082601f83011261507e578081fd5b8135602061509361508e83615d9c565b615d6c565b82815281810190858301838502870184018810156150af578586fd5b855b858110156150d4576150c282615146565b845292840192908401906001016150b1565b5090979650505050505050565b600082601f8301126150f1578081fd5b8135602061510161508e83615d9c565b828152818101908583018385028701840188101561511d578586fd5b855b858110156150d45781358452928401929084019060010161511f565b8035611b6f81615fac565b80356001600160e01b031981168114611b6f57600080fd5b60008083601f84011261516f578182fd5b5081356001600160401b03811115615185578182fd5b60208301915083602082850101111561506757600080fd5b600082601f8301126151ad578081fd5b81356001600160401b038111156151c6576151c6615f81565b6151d9601f8201601f1916602001615d6c565b8181528460208386010111156151ed578283fd5b816020850160208301379081016020019190915292915050565b803560068110611b6f57600080fd5b600060208284031215615227578081fd5b813561419e81615f97565b600060208284031215615243578081fd5b815161419e81615f97565b60008060008060008060008060008060006101008c8e03121561526f578687fd5b6152788c61501b565b9a506001600160401b038060208e01351115615292578788fd5b6152a28e60208f01358f01615026565b909b5099506152b360408e0161513b565b98508060608e013511156152c5578788fd5b6152d58e60608f01358f01615026565b909850965060808d0135955060a08d01358110156152f1578485fd5b6153018e60a08f01358f0161519d565b945061530f60c08e01615207565b93508060e08e01351115615321578283fd5b506153328d60e08e01358e0161515e565b81935080925050509295989b509295989b9093969950565b6000806040838503121561535c578182fd5b823561536781615f97565b946020939093013593505050565b600060208284031215615386578081fd5b815161419e81615fac565b600080604083850312156153a3578182fd5b82516153ae81615fac565b809250506020808401516001600160401b038111156153cb578283fd5b8401601f810186136153db578283fd5b80516153e961508e82615d9c565b81815283810190838501858402850186018a1015615405578687fd5b8694505b83851015615427578051835260019490940193918501918501615409565b5080955050505050509250929050565b600060208284031215615448578081fd5b5035919050565b600060208284031215615460578081fd5b5051919050565b6000806000806000806000806000806101408b8d031215615486578384fd5b61548f8b615146565b995060208b01356001600160401b03808211156154aa578586fd5b6154b68e838f0161519d565b9a5060408d01359150808211156154cb578586fd5b6154d78e838f0161519d565b99506154e560608e01615146565b985060808d0135975060a08d0135915080821115615501578586fd5b61550d8e838f0161519d565b965060c08d0135955060e08d0135915080821115615529578485fd5b6155358e838f0161519d565b94506101008d013591508082111561554b578384fd5b6155578e838f016150e1565b93506101208d013591508082111561556d578283fd5b5061557a8d828e016150e1565b9150509295989b9194979a5092959850565b6000806000604084860312156155a0578081fd5b83356001600160401b03808211156155b6578283fd5b6155c28783880161515e565b909550935060208601359150808211156155da578283fd5b506155e7868287016150e1565b9150509250925092565b60008060008060008060008060006101208a8c03121561560f578283fd5b89356001600160401b0380821115615625578485fd5b6156318d838e0161519d565b9a5060208c0135915080821115615646578485fd5b6156528d838e0161506e565b995060408c0135915080821115615667578485fd5b6156738d838e0161519d565b985060608c0135915080821115615688578485fd5b6156948d838e0161519d565b975060808c01359150808211156156a9578485fd5b6156b58d838e0161519d565b965060a08c01359150808211156156ca578485fd5b6156d68d838e0161519d565b955060c08c01359150808211156156eb578485fd5b6156f78d838e0161506e565b945060e08c013591508082111561570c578384fd5b6157188d838e0161519d565b93506101008c013591508082111561572e578283fd5b5061573b8c828d016150e1565b9150509295985092959850929598565b60008060008060008060008060006101208a8c031215615769578283fd5b8935985060208a013561577b81615f97565b975060408a013561578b81615f97565b965060608a013561579b81615f97565b955060808a01356157ab81615f97565b989b979a50959894979660a0860135965060c08601359560e0810135955061010001359350915050565b6000806000806000608086880312156157ec578283fd5b8535945060208601356001600160401b0380821115615809578485fd5b61581589838a0161519d565b955061582360408901615207565b94506060880135915080821115615838578283fd5b506158458882890161515e565b969995985093965092949392505050565b6000815180845260208085019450808401835b8381101561588f5781516001600160e01b03191687529582019590820190600101615869565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526158dc816020860160208601615eeb565b601f01601f19169290920160200192915050565b6006811061590e57634e487b7160e01b600052602160045260246000fd5b9052565b600063ffffffff60e01b80871683528551615934816004860160208a01615eeb565b85519084019061594b816004840160208a01615eeb565b919094169301600481019390935250506008019392505050565b60008251615977818460208701615eeb565b9190910192915050565b600060018060a01b038716825285602083015284604083015260a060608301526159ae60a08301856158c4565b90508260808301529695505050505050565b6001600160a01b038616815260a0602082018190526000906159e4908301876158c4565b604083019590955250606081019290925260809091015292915050565b600060208252612c4660208301848661589a565b600060408252615a2960408301858761589a565b9050826020830152949350505050565b60006020825261419e60208301846158c4565b6000610100808352615a608184018c6158c4565b915050615a70602083018a6158f0565b60408201979097526001600160a01b039586166060820152608081019490945260a084019290925290921660c082015260e0015292915050565b60006101208b835260208b8185015260018060a01b038b1660408501528960608501528860808501528160a0850152615ae582850189615856565b915083820360c0850152615af98288615856565b915083820360e0850152615b0d82876158c4565b8481036101008601528551808252828701935090820190845b81811015615b4257845183529383019391830191600101615b26565b50909e9d5050505050505050505050505050565b600086825285602083015260a06040830152615b7560a08301866158c4565b8281036060840152615b8781866158c4565b9150508260808301529695505050505050565b6020808252601b908201527f426974636f696e48656c7065723a20766f7574206973206e756c6c0000000000604082015260600190565b6020808252601d908201527f4275726e526f757465724c6f6769633a207a65726f2061646472657373000000604082015260600190565b6020808252601b908201527f4275726e526f757465724c6f6769633a206e6f74206c6f636b65720000000000604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b888152602081018890526001600160a01b038716604082015261010060608201819052600090615cbc838201896158c4565b91505085608083015284151560a0830152615cda60c08301856158f0565b8260e08301529998505050505050505050565b878152602080820188905260c0604083018190528201869052600090879060e08401835b89811015615d3f578335615d2481615f97565b6001600160a01b031682529282019290820190600101615d11565b506001600160a01b039790971660608501525050506080810192909252151560a090910152949350505050565b604051601f8201601f191681016001600160401b0381118282101715615d9457615d94615f81565b604052919050565b60006001600160401b03821115615db557615db5615f81565b5060209081020190565b60008219821115615dd257615dd2615f6b565b500190565b60006001600160401b03808316818516808303821115615df957615df9615f6b565b01949350505050565b600060ff821660ff84168060ff03821115615e1f57615e1f615f6b565b019392505050565b60006001600160601b03808316818516808303821115615df957615df9615f6b565b600082615e6457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615615e8357615e83615f6b565b500290565b600060ff821660ff84168160ff0481118215151615615ea957615ea9615f6b565b029392505050565b600082821015615ec357615ec3615f6b565b500390565b600060ff821660ff841680821015615ee257615ee2615f6b565b90039392505050565b60005b83811015615f06578181015183820152602001615eee565b83811115615f15576000848401525b50505050565b600281046001821680615f2f57607f821691505b60208210811415614f8557634e487b7160e01b600052602260045260246000fd5b6000600019821415615f6457615f64615f6b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109b357600080fd5b80151581146109b357600080fdfea2646970667358221220f6123700452241fd34ec23b7a5d1073eacf215a761727b9056ff28d96c12778664736f6c63430008020033
Deployed Bytecode
0x6080604052600436106101e75760003560e01c80638d3d78cd11610102578063c19e86e711610095578063ea73263711610064578063ea73263714610581578063f0f4426014610594578063f2fde38b146105b4578063f47e2240146105d4576101ee565b8063c19e86e71461050e578063c780c03f1461052e578063c805f68b14610541578063cdbe374114610561576101ee565b8063b14d3532116100d1578063b14d3532146104a2578063b59589d1146104c2578063b74d0d35146104e2578063bed6a602146104f8576101ee565b80638d3d78cd146104175780638d774f8e146104375780638da5cb5b14610457578063930a60e814610475576101ee565b80635c4f5f3e1161017a57806373532b2a1161014957806373532b2a146103975780637ed55748146103b75780637f0f1817146103d75780637ffe9a92146103f7576101ee565b80635c4f5f3e1461032c57806361d027b31461034c57806370872aa51461036c578063715018a614610382576101ee565b8063419cba7f116101b6578063419cba7f146102b657806343149dba146102cc5780634782bc36146102ec57806350a058361461030c576101ee565b80631812adb6146101f35780631876dec41461021c5780631d927898146102545780631e23616814610276576101ee565b366101ee57005b600080fd5b3480156101ff57600080fd5b5061020960075481565b6040519081526020015b60405180910390f35b34801561022857600080fd5b5060015461023c906001600160a01b031681565b6040516001600160a01b039091168152602001610213565b34801561026057600080fd5b5061027461026f36600461574b565b610608565b005b34801561028257600080fd5b506102a6610291366004615437565b600c6020526000908152604090205460ff1681565b6040519015158152602001610213565b3480156102c257600080fd5b5061020960085481565b3480156102d857600080fd5b506102096102e73660046157d5565b61079d565b3480156102f857600080fd5b50610274610307366004615437565b6109a2565b34801561031857600080fd5b5060045461023c906001600160a01b031681565b34801561033857600080fd5b50610274610347366004615437565b6109b6565b34801561035857600080fd5b5060035461023c906001600160a01b031681565b34801561037857600080fd5b5061020960055481565b34801561038e57600080fd5b506102746109bf565b3480156103a357600080fd5b506102746103b236600461558c565b6109c9565b3480156103c357600080fd5b506102746103d2366004615437565b61113f565b3480156103e357600080fd5b506102746103f2366004615216565b611150565b34801561040357600080fd5b506102a661041236600461534a565b611161565b34801561042357600080fd5b5060025461023c906001600160a01b031681565b34801561044357600080fd5b5061020961045236600461524e565b6111b9565b34801561046357600080fd5b506040546001600160a01b031661023c565b34801561048157600080fd5b50610209610490366004615216565b600b6020526000908152604090205481565b3480156104ae57600080fd5b506102746104bd366004615216565b61125d565b3480156104ce57600080fd5b5060005461023c906001600160a01b031681565b3480156104ee57600080fd5b5061020960095481565b34801561050457600080fd5b5061020960065481565b34801561051a57600080fd5b50610274610529366004615216565b61126e565b61027461053c3660046155f1565b61127f565b34801561054d57600080fd5b5061027461055c366004615216565b611599565b34801561056d57600080fd5b5061027461057c366004615437565b6115aa565b6102a661058f366004615467565b611613565b3480156105a057600080fd5b506102746105af366004615216565b6119dd565b3480156105c057600080fd5b506102746105cf366004615216565b6119ee565b3480156105e057600080fd5b506105f46105ef36600461534a565b611a64565b604051610213989796959493929190615c8a565b600d54610100900460ff16158080156106285750600d54600160ff909116105b80610649575061063730611b61565b1580156106495750600d5460ff166001145b6106b15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084015b60405180910390fd5b600d805460ff1916600117905580156106d457600d805461ff0019166101001790555b6106dc611b74565b6106e4611ba3565b60058a90556106f289611bd2565b6106fb88611c63565b61070487611cf4565b61070d86611d85565b61071685611e16565b61071f84611fb7565b6107288361204a565b610731826120dd565b61074b6107466040546001600160a01b031690565b612170565b801561079157600d805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50505050505050505050565b60006107a76121d9565b6002546001600160a01b03166323b872dd336040516001600160e01b031960e084901b1681526001600160a01b03909116600482015230602482015260448101899052606401602060405180830381600087803b15801561080757600080fd5b505af115801561081b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061083f9190615375565b506000806108508888888888612233565b6001600160a01b0381166000908152600a6020526040902080549294509092509061087d90600190615eb1565b8154811061089b57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600401546108b43390565b6001600160a01b03167fc19dabf19fdfd8c6124bed2178a4564d0c5d5812bfb916777cc90d1b53ed5a5a89896000808e8989600a60008c6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008e6001600160a01b03166001600160a01b03168152602001908152602001600020805490506109409190615eb1565b8154811061095e57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154604051610984989796959493929190615a4c565b60405180910390a35090506109996001607255565b95945050505050565b6109aa612557565b6109b38161204a565b50565b6109b381611e16565b6109c7612557565b565b6109d16121d9565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390610a039086908690600401615a01565b60206040518083038186803b158015610a1b57600080fd5b505afa158015610a2f573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610a539190615375565b610a6f5760405162461bcd60e51b81526004016106a890615c08565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a90610aa29087908790600401615a01565b60206040518083038186803b158015610aba57600080fd5b505afa158015610ace573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610af29190615232565b600080546040516310889dc360e01b81526001600160a01b0390911660048201529192509073a6a8d7ed2674003fed0438243f56dc605cc028d8906310889dc39060240160206040518083038186803b158015610b4e57600080fd5b505af4158015610b62573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610b86919061544f565b905060005b835181101561112d576001600160a01b0383166000908152600a602052604090208451859083908110610bce57634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610bf457634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615610c585760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a20616c7265616479207061696400000060448201526064016106a8565b6001600160a01b0383166000908152600a602052604090208451839190869084908110610c9557634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610cbb57634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410610d265760405162461bcd60e51b8152602060048201526024808201527f4275726e526f757465724c6f6769633a20646561646c696e65206e6f742070616044820152631cdcd95960e21b60648201526084016106a8565b6001600160a01b0383166000908152600a60205260409020845160019190869084908110610d6457634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610d8a57634e487b7160e01b600052603260045260246000fd5b60009182526020808320600792909202909101600501805460ff1916931515939093179092556001546008546001600160a01b038781168452600a909452604090922087519390911692631697565b928792612710928a9088908110610e0057634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610e2657634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154610e429190615e69565b610e4c9190615e49565b336001600160a01b0388166000908152600a6020526040902089518a9088908110610e8757634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610ead57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160000154600a60008a6001600160a01b03166001600160a01b031681526020019081526020016000208a8881518110610f0457634e487b7160e01b600052603260045260246000fd5b602002602001015181548110610f2a57634e487b7160e01b600052603260045260246000fd5b600091825260209091206007909102016002015460405160e087901b6001600160e01b03191681526001600160a01b03958616600482015260248101949094529184166044840152606483015291909116608482015260a401602060405180830381600087803b158015610f9d57600080fd5b505af1158015610fb1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fd59190615375565b506001600160a01b0383166000818152600a60205260409020855186908490811061101057634e487b7160e01b600052603260045260246000fd5b60200260200101518154811061103657634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160020160009054906101000a90046001600160a01b03166001600160a01b03167f58c23b4ae0617be275628875bcfd65759a441263099a256eeb27899fb5dd846d8888600a6000896001600160a01b03166001600160a01b031681526020019081526020016000208987815181106110cc57634e487b7160e01b600052603260045260246000fd5b6020026020010151815481106110f257634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016006015460405161111393929190615a15565b60405180910390a38061112581615f50565b915050610b8b565b50505061113a6001607255565b505050565b611147612557565b6109b381611fb7565b611158612557565b6109b381611d85565b6001600160a01b0382166000908152600a6020526040812080548390811061119957634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1690505b92915050565b60006111c36121d9565b60006111d48d8d8d8d8d8d8d6125b1565b90506112418c8c60008181106111fa57634e487b7160e01b600052603260045260246000fd5b905060200201358a8a600081811061122257634e487b7160e01b600052603260045260246000fd5b90506020020160208101906112379190615216565b83898989896129fe565b91505061124e6001607255565b9b9a5050505050505050505050565b611265612557565b6109b381611c63565b611276612557565b6109b381612170565b6112876121d9565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa3906112b7908c90600401615a39565b60206040518083038186803b1580156112cf57600080fd5b505afa1580156112e3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113079190615375565b6113235760405162461bcd60e51b81526004016106a890615c08565b60006113818960008151811061134957634e487b7160e01b600052603260045260246000fd5b602002602001015189898760008151811061137457634e487b7160e01b600052603260045260246000fd5b6020026020010151612b58565b905073a6a8d7ed2674003fed0438243f56dc605cc028d863e87c5882600c60065460008054906101000a90046001600160a01b0316600554868f8b8b8b6040518a63ffffffff1660e01b81526004016113e299989796959493929190615aaa565b60006040518083038186803b1580156113fa57600080fd5b505af415801561140e573d6000803e3d6000fd5b505050506000806114478a8560008151811061143a57634e487b7160e01b600052603260045260246000fd5b6020026020010151612c4e565b9150915061149a8b60018151811061146f57634e487b7160e01b600052603260045260246000fd5b602002602001015189898960018151811061137457634e487b7160e01b600052603260045260246000fd5b82146114e85760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2077726f6e67206f757470757420747860448201526064016106a8565b8b5160208d01206114f98883612cfd565b805190602001201461154d5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a206e6f7420666f72206c6f636b65720060448201526064016106a8565b611581898d858760028151811061157457634e487b7160e01b600052603260045260246000fd5b6020026020010151612d6f565b50505061158e6001607255565b505050505050505050565b6115a1612557565b6109b381611bd2565b60045433906001600160a01b031681146116065760405162461bcd60e51b815260206004820152601b60248201527f4275726e526f757465724c6f6769633a206e6f74206f7261636c65000000000060448201526064016106a8565b61160f826120dd565b5050565b600061161d6121d9565b60055487101561166f5760405162461bcd60e51b815260206004820152601c60248201527f4275726e526f757465724c6f6769633a206f6c6420726571756573740000000060448201526064016106a8565b6001600160e01b03198816156116d35760405162461bcd60e51b815260206004820152602360248201527f4275726e526f757465724c6f6769633a206e6f6e2d7a65726f206c6f636b2074604482015262696d6560e81b60648201526084016106a8565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa390611703908790600401615a39565b60206040518083038186803b15801561171b57600080fd5b505afa15801561172f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906117539190615375565b61176f5760405162461bcd60e51b81526004016106a890615c08565b81518351146117c05760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720696e6465786573000060448201526064016106a8565b60006117ce8c8c8c8c612b58565b600054604051637ebc232760e01b815291925073a6a8d7ed2674003fed0438243f56dc605cc028d891637ebc23279161181d916001600160a01b039091169085908d908d908d90600401615981565b60206040518083038186803b15801561183557600080fd5b505af4158015611849573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061186d9190615375565b6118b95760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a206e6f742066696e616c697a6564000060448201526064016106a8565b60015460405163626885b560e11b81526000916001600160a01b03169063c4d10b6a906118ea908990600401615a39565b60206040518083038186803b15801561190257600080fd5b505afa158015611916573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061193a9190615232565b9050600061194c838b848f8a8a612f3b565b905073a6a8d7ed2674003fed0438243f56dc605cc028d863191e28dc600c838f8b886040518663ffffffff1660e01b815260040161198e959493929190615b56565b60006040518083038186803b1580156119a657600080fd5b505af41580156119ba573d6000803e3d6000fd5b50505050600193505050506119cf6001607255565b9a9950505050505050505050565b6119e5612557565b6109b381611cf4565b6119f6612557565b6001600160a01b038116611a5b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106a8565b6109b381613430565b600a6020528160005260406000208181548110611a8057600080fd5b600091825260209091206007909102018054600182015460028301546003840180549396509194506001600160a01b03169291611abc90615f1b565b80601f0160208091040260200160405190810160405280929190818152602001828054611ae890615f1b565b8015611b355780601f10611b0a57610100808354040283529160200191611b35565b820191906000526020600020905b815481529060010190602001808311611b1857829003601f168201915b505050600484015460058501546006909501549394909360ff8083169450610100909204909116915088565b6001600160a01b0381163b15155b919050565b600d54610100900460ff16611b9b5760405162461bcd60e51b81526004016106a890615c3f565b6109c7613480565b600d54610100900460ff16611bca5760405162461bcd60e51b81526004016106a890615c3f565b6109c76134b0565b806001600160a01b038116611bf95760405162461bcd60e51b81526004016106a890615bd1565b600054604080516001600160a01b03928316815291841660208301527f4c28a3f61a715259c4dc930c23e7423b8fa52e13232c061a6e488729c66184f4910160405180910390a150600080546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611c8a5760405162461bcd60e51b81526004016106a890615bd1565b600154604080516001600160a01b03928316815291841660208301527ffa021c2ec0f46429a53e7f88b88065e40001f50c9d38b2e8b713beaf9828d4c3910160405180910390a150600180546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611d1b5760405162461bcd60e51b81526004016106a890615bd1565b600354604080516001600160a01b03928316815291841660208301527f567657fa3f286518b318f4a29870674f433f622fdfc819691acb13105b228225910160405180910390a150600380546001600160a01b0319166001600160a01b0392909216919091179055565b806001600160a01b038116611dac5760405162461bcd60e51b81526004016106a890615bd1565b600254604080516001600160a01b03928316815291841660208301527f36a4c08a38b736dcecb6c328dba61238529620e83ccb23db2cc43cd34ec26096910160405180910390a150600280546001600160a01b0319166001600160a01b0392909216919091179055565b600080546040516353bcd1c960e11b81526001600160a01b03909116600482015273a6a8d7ed2674003fed0438243f56dc605cc028d89063a779a3929060240160206040518083038186803b158015611e6e57600080fd5b505af4158015611e82573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611ea6919061544f565b9050611eba6040546001600160a01b031690565b6001600160a01b0316336001600160a01b03161480611eda575080600654105b611f265760405162461bcd60e51b815260206004820152601a60248201527f4275726e526f757465724c6f6769633a206e6f207065726d697400000000000060448201526064016106a8565b808211611f755760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a206c6f7720646561646c696e6500000060448201526064016106a8565b60065460408051918252602082018490527f92c10a242ca42973030420e2ee32b3ba7818cc643f896958f620c606cf300416910160405180910390a150600655565b8061271010156120095760405162461bcd60e51b815260206004820152601c60248201527f4275726e526f757465724c6f6769633a20696e76616c6964206665650000000060448201526064016106a8565b60075460408051918252602082018390527f7d205f60891f60851c61cd244ba387d72b6589e7c0ac41b9d909ab0ce2c2a53b910160405180910390a1600755565b80612710101561209c5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207265776172640060448201526064016106a8565b60085460408051918252602082018390527faa50b3683e42a13535a5b9c2c32780cccf956fb546b523a3542ac4ad8b544f67910160405180910390a1600855565b60095460408051918252602082018390527f47c5f9c13c35ebb166f6a8d8c56af73f8b323ac0fee7aec4a5e0490bbf67a4fe910160405180910390a180612710101561216b5760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a20696e76616c6964206274632066656560448201526064016106a8565b600955565b600454604080516001600160a01b03928316815291831660208301527ff68296962c28bcee9d0e2e78c34b1ed65997ff5ce894f72e9165fbc75b937600910160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b6002607254141561222c5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106a8565b6002607255565b60008061224086866134d7565b60015460405163aff2faa360e01b81526001600160a01b039091169063aff2faa3906122729087908790600401615a01565b60206040518083038186803b15801561228a57600080fd5b505afa15801561229e573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122c29190615375565b6122de5760405162461bcd60e51b81526004016106a890615c08565b60015460405163626885b560e11b81526001600160a01b039091169063c4d10b6a906123109087908790600401615a01565b60206040518083038186803b15801561232857600080fd5b505afa15801561233c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123609190615232565b9050600061236d886135fa565b60025460015460405163095ea7b360e01b81526001600160a01b03918216600482015260248101849052929350169063095ea7b390604401602060405180830381600087803b1580156123bf57600080fd5b505af11580156123d3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906123f79190615375565b5080600954826124079190615eb1565b6001546040516338463cff60e01b81526001600160a01b03909116906338463cff9061243b908a908a908890600401615a15565b602060405180830381600087803b15801561245557600080fd5b505af1158015612469573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061248d919061544f565b6124979190615e69565b6124a19190615e49565b6000546040516310889dc360e01b81526001600160a01b03909116600482015290935061254590899085908a908a9073a6a8d7ed2674003fed0438243f56dc605cc028d8906310889dc39060240160206040518083038186803b15801561250757600080fd5b505af415801561251b573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061253f919061544f565b8761371f565b509550959350505050565b6001607255565b6040546001600160a01b031633146109c75760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106a8565b6002546000906001600160a01b031684846125cd600182615eb1565b8181106125ea57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906125ff9190615216565b6001600160a01b0316146126555760405162461bcd60e51b815260206004820152601d60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207061746800000060448201526064016106a8565b600286146126a55760405162461bcd60e51b815260206004820152601e60248201527f4275726e526f757465724c6f6769633a2077726f6e6720616d6f756e7473000060448201526064016106a8565b838360008181106126c657634e487b7160e01b600052603260045260246000fd5b90506020020160208101906126db9190615216565b6001600160a01b03166323b872dd33308a8a600081811061270c57634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e088901b1681526001600160a01b03958616600482015294909316602485015250602090910201356044820152606401602060405180830381600087803b15801561276357600080fd5b505af1158015612777573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061279b9190615375565b50838360008181106127bd57634e487b7160e01b600052603260045260246000fd5b90506020020160208101906127d29190615216565b6001600160a01b031663095ea7b3898989600081811061280257634e487b7160e01b600052603260045260246000fd5b6040516001600160e01b031960e087901b1681526001600160a01b0390941660048501526020029190910135602483015250604401602060405180830381600087803b15801561285157600080fd5b505af1158015612865573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906128899190615375565b50600080896001600160a01b031663b0bbcd888a8a60008181106128bd57634e487b7160e01b600052603260045260246000fd5b905060200201358b8b60018181106128e557634e487b7160e01b600052603260045260246000fd5b905060200201358989308a8e6040518863ffffffff1660e01b81526004016129139796959493929190615ced565b600060405180830381600087803b15801561292d57600080fd5b505af1158015612941573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526129699190810190615391565b91509150816129ba5760405162461bcd60e51b815260206004820181905260248201527f4275726e526f757465724c6f6769633a2065786368616e6765206661696c656460448201526064016106a8565b80600182516129c99190615eb1565b815181106129e757634e487b7160e01b600052603260045260246000fd5b602002602001015192505050979650505050505050565b6000806000612a108888888888612233565b6001600160a01b0381166000908152600a60205260409020805492945090925090612a3d90600190615eb1565b81548110612a5b57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160040154612a743390565b6001600160a01b03167fc19dabf19fdfd8c6124bed2178a4564d0c5d5812bfb916777cc90d1b53ed5a5a89898e8e8e8989600a60008c6001600160a01b03166001600160a01b031681526020019081526020016000206001600a60008e6001600160a01b03166001600160a01b0316815260200190815260200160002080549050612aff9190615eb1565b81548110612b1d57634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160060154604051612b43989796959493929190615a4c565b60405180910390a35098975050505050505050565b600080600286868686604051602001612b749493929190615912565b60408051601f1981840301815290829052612b8e91615965565b602060405180830381855afa158015612bab573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612bce919061544f565b90506000600282604051602001612be791815260200190565b60408051601f1981840301815290829052612c0191615965565b602060405180830381855afa158015612c1e573d6000803e3d6000fd5b5050506040513d601f19601f82011682018060405250810190612c41919061544f565b925050505b949350505050565b60008080612c64612c5f86836138e5565b613900565b905062ffffff198082161415612cbc5760405162461bcd60e51b815260206004820152601a60248201527f426974636f696e48656c7065723a2076696e206973206e756c6c00000000000060448201526064016106a8565b6000612cc88286613a36565b90506000612cd582613b54565b9050612ce081613b78565b9450612ceb81613b9a565b63ffffffff1693505050509250929050565b60606000612d13612d0e85836138e5565b613bc4565b905062ffffff198082161415612d3b5760405162461bcd60e51b81526004016106a890615b9a565b6000612d478285613cb5565b90506000612d5482613daf565b9050612d6562ffffff198216613e00565b9695505050505050565b6000612d7a85613e50565b60015460405163626885b560e11b81526001600160401b039290921692506000916001600160a01b039091169063c4d10b6a90612dbb908890600401615a39565b60206040518083038186803b158015612dd357600080fd5b505afa158015612de7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612e0b9190615232565b6001546008549192506001600160a01b03169063b734de2690839061271090612e349087615e69565b612e3e9190615e49565b3360405160e085901b6001600160e01b03191681526001600160a01b0393841660048201526024810192909252909116604482015260648101859052608401602060405180830381600087803b158015612e9757600080fd5b505af1158015612eab573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612ecf9190615375565b507f7ff138134e34ccab071315c38e38eec079f54726b890304ab46e2c5ab6f722bb8186858761271060085488612f069190615e69565b612f109190615e49565b612f1a9088615dbf565b604051612f2b9594939291906159c0565b60405180910390a1505050505050565b60008080805b85518110156134235780612f7e57848181518110612f6f57634e487b7160e01b600052603260045260246000fd5b6020026020010151915061302f565b81858281518110612f9f57634e487b7160e01b600052603260045260246000fd5b6020026020010151116130045760405162461bcd60e51b815260206004820152602760248201527f4275726e526f757465724c6f6769633a20756e2d736f7274656420766f757420604482015266696e646578657360c81b60648201526084016106a8565b84818151811061302457634e487b7160e01b600052603260045260246000fd5b602002602001015191505b600086828151811061305157634e487b7160e01b600052603260045260246000fd5b60200260200101519050600a60008a6001600160a01b03166001600160a01b03168152602001908152602001600020818154811061309f57634e487b7160e01b600052603260045260246000fd5b600091825260209091206005600790920201015460ff1615801561310e57506001600160a01b0389166000908152600a6020526040902080548b9190839081106130f957634e487b7160e01b600052603260045260246000fd5b90600052602060002090600702016004015410155b156134105761327b8887848151811061313757634e487b7160e01b600052603260045260246000fd5b6020026020010151600a60008d6001600160a01b03166001600160a01b03168152602001908152602001600020848154811061318357634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600301805461319f90615f1b565b80601f01602080910402602001604051908101604052809291908181526020018280546131cb90615f1b565b80156132185780601f106131ed57610100808354040283529160200191613218565b820191906000526020600020905b8154815290600101906020018083116131fb57829003601f168201915b5050506001600160a01b038f166000908152600a602052604090208054909250879150811061325757634e487b7160e01b600052603260045260246000fd5b906000526020600020906007020160050160019054906101000a900460ff16613ee8565b6001600160401b0316935083600a60008b6001600160a01b03166001600160a01b0316815260200190815260200160002082815481106132cb57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600101541415613410576001600160a01b0389166000908152600a602052604090208054600191908390811061331f57634e487b7160e01b600052603260045260246000fd5b60009182526020909120600790910201600501805460ff191691151591909117905561334c856001615dbf565b6001600160a01b038a166000818152600a60205260409020805492975090917f1b46655c2f394f2191cb246d5982dbe00ad671f0b590e75e97c90ee97f1f782a9190849081106133ac57634e487b7160e01b600052603260045260246000fd5b9060005260206000209060070201600601548d8986815181106133df57634e487b7160e01b600052603260045260246000fd5b6020026020010151604051613407939291909283526020830191909152604082015260600190565b60405180910390a25b508061341b81615f50565b915050612f41565b5050509695505050505050565b604080546001600160a01b038381166001600160a01b031983168117845592519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600d54610100900460ff166134a75760405162461bcd60e51b81526004016106a890615c3f565b6109c733613430565b600d54610100900460ff166125505760405162461bcd60e51b81526004016106a890615c3f565b60008160058111156134f957634e487b7160e01b600052602160045260246000fd5b14806135245750600481600581111561352257634e487b7160e01b600052602160045260246000fd5b145b8061354e5750600581600581111561354c57634e487b7160e01b600052602160045260246000fd5b145b156135a95781516020146135a45760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207363726970740060448201526064016106a8565b61160f565b815160141461160f5760405162461bcd60e51b815260206004820152601f60248201527f4275726e526f757465724c6f6769633a20696e76616c6964207363726970740060448201526064016106a8565b6000806127106007548461360e9190615e69565b6136189190615e49565b905060095460026136299190615e69565b6136339082615dbf565b83116136815760405162461bcd60e51b815260206004820152601b60248201527f4275726e526f757465724c6f6769633a206c6f7720616d6f756e74000000000060448201526064016106a8565b600061368d8285615eb1565b60025460035460405163a9059cbb60e01b81526001600160a01b03918216600482015260248101869052929350169063a9059cbb90604401602060405180830381600087803b1580156136df57600080fd5b505af11580156136f3573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906137179190615375565b509392505050565b604080516101008101825260006080820181905260a0820181905260c0820181815260e0830191909152888252602082018890523392820192909252606081018690529084600581111561378357634e487b7160e01b600052602160045260246000fd5b908160058111156137a457634e487b7160e01b600052602160045260246000fd5b9052506006546137b49084615dbf565b6080820152600060a082018190526001600160a01b038316808252600b6020818152604084205460e08601819052929093529091526137f4906001615dbf565b6001600160a01b038381166000908152600b6020908152604080832094909455600a81528382208054600180820183559184529282902086516007909402019283558582015190830155928401516002820180546001600160a01b0319169190931617909155606083015180518493613874926003850192910190614f8b565b506080820151600482015560a08201516005808301805460ff19169215159290921780835560c0850151929161ff0019909116906101009084908111156138cb57634e487b7160e01b600052602160045260246000fd5b021790555060e08201518160060155505050505050505050565b81516000906020840161099964ffffffffff8516828461415e565b60008181613916815b62ffffff198416906141a5565b50601884901c6001600160601b03166139365762ffffff195b9250613a2f565b600061394385600061427f565b9050601885901c6001600160601b03166001600160401b0382166139705762ffffff195b94505050613a2f565b600061397b836143c6565b60ff16905060005b836001600160401b03168110156139f7578282106139ac5762ffffff195b965050505050613a2f565b60006139cc6139bb8486615eb1565b60055b62ffffff198c16919061441f565b90506139d781614453565b6139e19084615dbf565b92505080806139ef90615f50565b915050613983565b50818114613a0f5762ffffff195b9550505050613a2f565b613a2960065b60d81b6301000000600160d81b0389161790565b95505050505b5050919050565b6000826006613a4481613909565b506000613a5286600061427f565b6001600160401b03169050601886901c6001600160601b0316818610613aad5760405162461bcd60e51b815260206004820152601060248201526f2b34b7103932b0b21037bb32b9393ab760811b60448201526064016106a8565b6000613ab8836143c6565b60ff1690506000805b88811015613b1057613ae7613ad68486615eb1565b60055b62ffffff198d16919061441f565b9150613af282614453565b613afc9084615dbf565b9250613b09600182615dbf565b9050613ac1565b50613b1e6139bb8385615eb1565b90506000613b2b82614453565b9050613b44838260045b62ffffff198e169291906144a7565b975050505050505b505092915050565b6000816004613b6281613909565b50612c4662ffffff1985166000602460036144a7565b6000816003613b8681613909565b50612c4662ffffff19851660006020614517565b6000816003613ba881613909565b50612c46613bbf62ffffff19861660206004614670565b6147ba565b60008181613bd181613909565b50601884901c6001600160601b0316613bee5762ffffff1961392f565b6000613bfb85600061427f565b9050601885901c6001600160601b03166001600160401b038216613c235762ffffff19613967565b6000613c2e836143c6565b60ff16905060005b836001600160401b0316811015613c9957828210613c585762ffffff196139a1565b6000613c6e613c678486615eb1565b600e6139be565b9050613c7981614823565b613c839084615dbf565b9250508080613c9190615f50565b915050613c36565b50818114613cab5762ffffff19613a05565b613a29600f613a15565b600082600f613cc381613909565b506000613cd186600061427f565b6001600160401b03169050601886901c6001600160601b0316818610613d2d5760405162461bcd60e51b81526020600482015260116024820152702b37baba103932b0b21037bb32b9393ab760791b60448201526064016106a8565b6000613d38836143c6565b60ff1690506000805b88811015613d8657613d5d613d568486615eb1565b600e613ad9565b9150613d6882614823565b613d729084615dbf565b9250613d7f600182615dbf565b9050613d41565b50613d94613c678385615eb1565b90506000613da182614823565b9050613b448382600d613b35565b600081600d613dbd81613909565b506000613dcb85600861427f565b9050610999613dd9826143c6565b613de4906008615e02565b62ffffff1987169060ff166001600160401b03841660076144a7565b6060600080613e188460181c6001600160601b031690565b60405193508392506001600160601b03169050613e3f84613e3a846020615dbf565b61486c565b508181016020016040529052919050565b600080613e60612d0e84836138e5565b905062ffffff198082161415613e885760405162461bcd60e51b81526004016106a890615b9a565b600080613e9683600061427f565b6001600160401b0316905060005b81811015613edf57613eb68482613cb5565b9250613ec1836149c4565b613ecb9086615dd7565b945080613ed781615f50565b915050613ea4565b50505050919050565b600080613ef8612d0e87836138e5565b905062ffffff198082161415613f205760405162461bcd60e51b81526004016106a890615b9a565b6000613f2c8287613cb5565b90506000613f3982613daf565b90506005856005811115613f5d57634e487b7160e01b600052602160045260246000fd5b1415613fc257613f7662ffffff19821660026020614517565b604051602001613f8891815260200190565b60405160208183030381529060405280519060200120868051906020012014613fb2576000613fbb565b613fbb826149c4565b9350614153565b6000856005811115613fe457634e487b7160e01b600052602160045260246000fd5b1415613ffd57613f7662ffffff19821660016020614517565b600185600581111561401f57634e487b7160e01b600052602160045260246000fd5b141561405e5761403662ffffff19821660036149e9565b604051602001613f88919060609190911b6bffffffffffffffffffffffff1916815260140190565b600285600581111561408057634e487b7160e01b600052602160045260246000fd5b14156140975761403662ffffff19821660026149e9565b60038560058111156140b957634e487b7160e01b600052602160045260246000fd5b14156140d05761403662ffffff19821660026149e9565b60048560058111156140f257634e487b7160e01b600052602160045260246000fd5b14156141535761410b62ffffff19821660026020614517565b60405160200161411d91815260200190565b60405160208183030381529060405280519060200120868051906020012014614147576000614150565b614150826149c4565b93505b505050949350505050565b60008061416b8385615dbf565b905060405181111561417b575060005b8061418d5762ffffff1991505061419e565b5050606083811b8317901b811760181b5b9392505050565b60006141b183836149f7565b6142785760006141d06141c48560d81c90565b64ffffffffff16614a1a565b91505060006141e58464ffffffffff16614a1a565b6040517f5479706520617373657274696f6e206661696c65642e20476f7420307800000060208201526001600160b01b031960b086811b8216603d8401526c05c408af0e0cac6e8cac84060f609b1b604784015283901b16605482015290925060009150605e015b60405160208183030381529060405290508060405162461bcd60e51b81526004016106a89190615a39565b5090919050565b60008061429462ffffff198516846001614ac6565b905060fc81116142af576142a781614af6565b9150506111b3565b8060fd1415614315576142dd6142d86142c9856001615dbf565b62ffffff198716906002614670565b614af6565b91506142e8826143c6565b60ff166003146143105761430e61430962ffffff19861685600360006144a7565b614b5e565b505b6143bf565b8060fe141561436a5761433e6142d861432f856001615dbf565b62ffffff198716906004614670565b9150614349826143c6565b60ff166005146143105761430e61430962ffffff19861685600560006144a7565b8060ff14156143bf576143936142d8614384856001615dbf565b62ffffff198716906008614670565b915061439e826143c6565b60ff166009146143bf57613b4c61430962ffffff19861685600960006144a7565b5092915050565b600060fc826001600160401b0316116143e157506001611b6f565b61ffff826001600160401b0316116143fb57506003611b6f565b63ffffffff826001600160401b03161161441757506005611b6f565b506009611b6f565b6000612c4684846144398760181c6001600160601b031690565b6001600160601b031661444c9190615eb1565b85856144a7565b600081600561446181613909565b50600061446f85602461427f565b9050806001600160401b0316614484826143c6565b60ff166144919190615dbf565b61449c906024615dbf565b610999906004615dbf565b6000806144bd8660781c6001600160601b031690565b6001600160601b031690506144d186614be5565b846144dc8784615dbf565b6144e69190615dbf565b11156144f95762ffffff19915050612c46565b6145038582615dbf565b9050612d658364ffffffffff16828661415e565b600060ff82166145295750600061419e565b61453c8460181c6001600160601b031690565b6001600160601b031661455260ff841685615dbf565b11156145b65761459d61456e8560781c6001600160601b031690565b6001600160601b031661458a8660181c6001600160601b031690565b6001600160601b0316858560ff16614c26565b60405162461bcd60e51b81526004016106a89190615a39565b60208260ff1611156146305760405162461bcd60e51b815260206004820152603a60248201527f54797065644d656d566965772f696e646578202d20417474656d70746564207460448201527f6f20696e646578206d6f7265207468616e20333220627974657300000000000060648201526084016106a8565b6008820260006146498660781c6001600160601b031690565b6001600160601b031690506000600160ff1b60001984011d91909501511695945050505050565b6000612c46614680858585614517565b600881811c7eff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff167fff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff00ff009290911b9190911617601081811c7dffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff167fffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff0000ffff00009290911b9190911617602081811c7bffffffff00000000ffffffff00000000ffffffff00000000ffffffff167fffffffff00000000ffffffff00000000ffffffff00000000ffffffff000000009290911b9190911617604081811c77ffffffffffffffff0000000000000000ffffffffffffffff1677ffffffffffffffff0000000000000000ffffffffffffffff199290911b9190911617608081811c91901b1790565b600063ffffffff82111561481f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203360448201526532206269747360d01b60648201526084016106a8565b5090565b600081600e61483181613909565b50600061483f85600861427f565b9050806001600160401b0316614854826143c6565b60ff166148619190615dbf565b610999906008615dbf565b600062ffffff1980841614156148d55760405162461bcd60e51b815260206004820152602860248201527f54797065644d656d566965772f636f7079546f202d204e756c6c20706f696e7460448201526732b9103232b932b360c11b60648201526084016106a8565b6148de83614d50565b61493e5760405162461bcd60e51b815260206004820152602b60248201527f54797065644d656d566965772f636f7079546f202d20496e76616c696420706f60448201526a34b73a32b9103232b932b360a91b60648201526084016106a8565b60006149538460181c6001600160601b031690565b6001600160601b0316905060006149738560781c6001600160601b031690565b6001600160601b0316905060006040519050848111156149935760206060fd5b8285848460045afa50612d656149a98760d81c90565b64ffffffffff60601b606091821b168717901b841760181b90565b600081600d6149d281613909565b50612c466142d862ffffff19861660006008614670565b600061419e83836014614ac6565b60008164ffffffffff16614a0b8460d81c90565b64ffffffffff16149392505050565b600080601f5b600f8160ff161115614a78576000614a39826008615e88565b60ff1685901c9050614a4a81614d8e565b61ffff16841793508160ff16601014614a6557601084901b93505b50614a71600182615ec8565b9050614a20565b50600f5b60ff8160ff161015614ac05760ff600882021684901c614a9b81614d8e565b61ffff16831792508160ff16600014614ab657601083901b92505b5060001901614a7c565b50915091565b6000614ad3826020615ec8565b614ade906008615e88565b60ff16614aec858585614517565b901c949350505050565b60006001600160401b0382111561481f5760405162461bcd60e51b815260206004820152602660248201527f53616665436173743a2076616c756520646f65736e27742066697420696e203660448201526534206269747360d01b60648201526084016106a8565b60606000614b92614b8d82614b7f601887901c6001600160601b0316614dbe565b62ffffff1987169190614ac6565b614a1a565b6040517f4e6f6e2d6d696e696d616c2076617220696e742e20476f74203078000000000060208201526dffffffffffffffffffffffffffff19607083901b16603b82015290925060009150604d0161424d565b6000614bfa8260181c6001600160601b031690565b614c0d8360781c6001600160601b031690565b614c179190615e27565b6001600160601b031692915050565b60606000614c3386614a1a565b9150506000614c4186614a1a565b9150506000614c4f86614a1a565b9150506000614c5d86614a1a565b604080517f54797065644d656d566965772f696e646578202d204f76657272616e20746865602082015274040ecd2caee5c40a6d8d2c6ca40d2e640c2e84060f605b1b818301526001600160d01b031960d098891b811660558301526e040eed2e8d040d8cadccee8d04060f608b1b605b830181905297891b8116606a8301527f2e20417474656d7074656420746f20696e646578206174206f666673657420306070830152600f60fb1b609083015295881b861660918201526097810196909652951b90921660a68401525050601760f91b60ac8201528151808203608d01815260ad90910190915295945050505050565b6000614d5c8260d81c90565b64ffffffffff1664ffffffffff1415614d7757506000611b6f565b6000614d8283614be5565b60405110199392505050565b6000614da060048360ff16901c614e1f565b60ff161760081b62ffff0016614db582614e1f565b60ff1617919050565b600060ff82111561481f5760405162461bcd60e51b815260206004820152602560248201527f53616665436173743a2076616c756520646f65736e27742066697420696e2038604482015264206269747360d81b60648201526084016106a8565b600060f08083179060ff82161415614e3b576030915050611b6f565b8060ff1660f11415614e51576031915050611b6f565b8060ff1660f21415614e67576032915050611b6f565b8060ff1660f31415614e7d576033915050611b6f565b8060ff1660f41415614e93576034915050611b6f565b8060ff1660f51415614ea9576035915050611b6f565b8060ff1660f61415614ebf576036915050611b6f565b8060ff1660f71415614ed5576037915050611b6f565b8060ff1660f81415614eeb576038915050611b6f565b8060ff1660f91415614f01576039915050611b6f565b8060ff1660fa1415614f17576061915050611b6f565b8060ff1660fb1415614f2d576062915050611b6f565b8060ff1660fc1415614f43576063915050611b6f565b8060ff1660fd1415614f59576064915050611b6f565b8060ff1660fe1415614f6f576065915050611b6f565b8060ff1660ff1415614f85576066915050611b6f565b50919050565b828054614f9790615f1b565b90600052602060002090601f016020900481019282614fb95760008555614fff565b82601f10614fd257805160ff1916838001178555614fff565b82800160010185558215614fff579182015b82811115614fff578251825591602001919060010190614fe4565b5061481f9291505b8082111561481f5760008155600101615007565b8035611b6f81615f97565b60008083601f840112615037578182fd5b5081356001600160401b0381111561504d578182fd5b602083019150836020808302850101111561506757600080fd5b9250929050565b600082601f83011261507e578081fd5b8135602061509361508e83615d9c565b615d6c565b82815281810190858301838502870184018810156150af578586fd5b855b858110156150d4576150c282615146565b845292840192908401906001016150b1565b5090979650505050505050565b600082601f8301126150f1578081fd5b8135602061510161508e83615d9c565b828152818101908583018385028701840188101561511d578586fd5b855b858110156150d45781358452928401929084019060010161511f565b8035611b6f81615fac565b80356001600160e01b031981168114611b6f57600080fd5b60008083601f84011261516f578182fd5b5081356001600160401b03811115615185578182fd5b60208301915083602082850101111561506757600080fd5b600082601f8301126151ad578081fd5b81356001600160401b038111156151c6576151c6615f81565b6151d9601f8201601f1916602001615d6c565b8181528460208386010111156151ed578283fd5b816020850160208301379081016020019190915292915050565b803560068110611b6f57600080fd5b600060208284031215615227578081fd5b813561419e81615f97565b600060208284031215615243578081fd5b815161419e81615f97565b60008060008060008060008060008060006101008c8e03121561526f578687fd5b6152788c61501b565b9a506001600160401b038060208e01351115615292578788fd5b6152a28e60208f01358f01615026565b909b5099506152b360408e0161513b565b98508060608e013511156152c5578788fd5b6152d58e60608f01358f01615026565b909850965060808d0135955060a08d01358110156152f1578485fd5b6153018e60a08f01358f0161519d565b945061530f60c08e01615207565b93508060e08e01351115615321578283fd5b506153328d60e08e01358e0161515e565b81935080925050509295989b509295989b9093969950565b6000806040838503121561535c578182fd5b823561536781615f97565b946020939093013593505050565b600060208284031215615386578081fd5b815161419e81615fac565b600080604083850312156153a3578182fd5b82516153ae81615fac565b809250506020808401516001600160401b038111156153cb578283fd5b8401601f810186136153db578283fd5b80516153e961508e82615d9c565b81815283810190838501858402850186018a1015615405578687fd5b8694505b83851015615427578051835260019490940193918501918501615409565b5080955050505050509250929050565b600060208284031215615448578081fd5b5035919050565b600060208284031215615460578081fd5b5051919050565b6000806000806000806000806000806101408b8d031215615486578384fd5b61548f8b615146565b995060208b01356001600160401b03808211156154aa578586fd5b6154b68e838f0161519d565b9a5060408d01359150808211156154cb578586fd5b6154d78e838f0161519d565b99506154e560608e01615146565b985060808d0135975060a08d0135915080821115615501578586fd5b61550d8e838f0161519d565b965060c08d0135955060e08d0135915080821115615529578485fd5b6155358e838f0161519d565b94506101008d013591508082111561554b578384fd5b6155578e838f016150e1565b93506101208d013591508082111561556d578283fd5b5061557a8d828e016150e1565b9150509295989b9194979a5092959850565b6000806000604084860312156155a0578081fd5b83356001600160401b03808211156155b6578283fd5b6155c28783880161515e565b909550935060208601359150808211156155da578283fd5b506155e7868287016150e1565b9150509250925092565b60008060008060008060008060006101208a8c03121561560f578283fd5b89356001600160401b0380821115615625578485fd5b6156318d838e0161519d565b9a5060208c0135915080821115615646578485fd5b6156528d838e0161506e565b995060408c0135915080821115615667578485fd5b6156738d838e0161519d565b985060608c0135915080821115615688578485fd5b6156948d838e0161519d565b975060808c01359150808211156156a9578485fd5b6156b58d838e0161519d565b965060a08c01359150808211156156ca578485fd5b6156d68d838e0161519d565b955060c08c01359150808211156156eb578485fd5b6156f78d838e0161506e565b945060e08c013591508082111561570c578384fd5b6157188d838e0161519d565b93506101008c013591508082111561572e578283fd5b5061573b8c828d016150e1565b9150509295985092959850929598565b60008060008060008060008060006101208a8c031215615769578283fd5b8935985060208a013561577b81615f97565b975060408a013561578b81615f97565b965060608a013561579b81615f97565b955060808a01356157ab81615f97565b989b979a50959894979660a0860135965060c08601359560e0810135955061010001359350915050565b6000806000806000608086880312156157ec578283fd5b8535945060208601356001600160401b0380821115615809578485fd5b61581589838a0161519d565b955061582360408901615207565b94506060880135915080821115615838578283fd5b506158458882890161515e565b969995985093965092949392505050565b6000815180845260208085019450808401835b8381101561588f5781516001600160e01b03191687529582019590820190600101615869565b509495945050505050565b60008284528282602086013780602084860101526020601f19601f85011685010190509392505050565b600081518084526158dc816020860160208601615eeb565b601f01601f19169290920160200192915050565b6006811061590e57634e487b7160e01b600052602160045260246000fd5b9052565b600063ffffffff60e01b80871683528551615934816004860160208a01615eeb565b85519084019061594b816004840160208a01615eeb565b919094169301600481019390935250506008019392505050565b60008251615977818460208701615eeb565b9190910192915050565b600060018060a01b038716825285602083015284604083015260a060608301526159ae60a08301856158c4565b90508260808301529695505050505050565b6001600160a01b038616815260a0602082018190526000906159e4908301876158c4565b604083019590955250606081019290925260809091015292915050565b600060208252612c4660208301848661589a565b600060408252615a2960408301858761589a565b9050826020830152949350505050565b60006020825261419e60208301846158c4565b6000610100808352615a608184018c6158c4565b915050615a70602083018a6158f0565b60408201979097526001600160a01b039586166060820152608081019490945260a084019290925290921660c082015260e0015292915050565b60006101208b835260208b8185015260018060a01b038b1660408501528960608501528860808501528160a0850152615ae582850189615856565b915083820360c0850152615af98288615856565b915083820360e0850152615b0d82876158c4565b8481036101008601528551808252828701935090820190845b81811015615b4257845183529383019391830191600101615b26565b50909e9d5050505050505050505050505050565b600086825285602083015260a06040830152615b7560a08301866158c4565b8281036060840152615b8781866158c4565b9150508260808301529695505050505050565b6020808252601b908201527f426974636f696e48656c7065723a20766f7574206973206e756c6c0000000000604082015260600190565b6020808252601d908201527f4275726e526f757465724c6f6769633a207a65726f2061646472657373000000604082015260600190565b6020808252601b908201527f4275726e526f757465724c6f6769633a206e6f74206c6f636b65720000000000604082015260600190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b888152602081018890526001600160a01b038716604082015261010060608201819052600090615cbc838201896158c4565b91505085608083015284151560a0830152615cda60c08301856158f0565b8260e08301529998505050505050505050565b878152602080820188905260c0604083018190528201869052600090879060e08401835b89811015615d3f578335615d2481615f97565b6001600160a01b031682529282019290820190600101615d11565b506001600160a01b039790971660608501525050506080810192909252151560a090910152949350505050565b604051601f8201601f191681016001600160401b0381118282101715615d9457615d94615f81565b604052919050565b60006001600160401b03821115615db557615db5615f81565b5060209081020190565b60008219821115615dd257615dd2615f6b565b500190565b60006001600160401b03808316818516808303821115615df957615df9615f6b565b01949350505050565b600060ff821660ff84168060ff03821115615e1f57615e1f615f6b565b019392505050565b60006001600160601b03808316818516808303821115615df957615df9615f6b565b600082615e6457634e487b7160e01b81526012600452602481fd5b500490565b6000816000190483118215151615615e8357615e83615f6b565b500290565b600060ff821660ff84168160ff0481118215151615615ea957615ea9615f6b565b029392505050565b600082821015615ec357615ec3615f6b565b500390565b600060ff821660ff841680821015615ee257615ee2615f6b565b90039392505050565b60005b83811015615f06578181015183820152602001615eee565b83811115615f15576000848401525b50505050565b600281046001821680615f2f57607f821691505b60208210811415614f8557634e487b7160e01b600052602260045260246000fd5b6000600019821415615f6457615f64615f6b565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b6001600160a01b03811681146109b357600080fd5b80151581146109b357600080fdfea2646970667358221220f6123700452241fd34ec23b7a5d1073eacf215a761727b9056ff28d96c12778664736f6c63430008020033
🤖 Code Reader

Generate instant answers for your smart contract questions using Al Models. Read more.

Block Transaction Gas Used Reward
view all blocks produced

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
[ Download: CSV Export  ]

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.