ETH Price: $1,762.61 (+2.62%)

Contract

0x6D85D79D69b7e190E671C16e8611997152bD3e95
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

Advanced mode:
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
Loading...
Loading
Source Code Verified Exact Match

Contract Name

Hermez

Compiler Version
v0.6.12+commit.27d51765
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":"tokenAddress","type":"address"},{"indexed":false,"internalType":"uint32","name":"tokenID","type":"uint32"}],"name":"AddToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"batchNum","type":"uint32"},{"indexed":false,"internalType":"uint16","name":"l1UserTxsLen","type":"uint16"}],"name":"ForgeBatch","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"forgeL1L2BatchTimeout","type":"uint8"},{"indexed":false,"internalType":"uint256","name":"feeAddToken","type":"uint256"},{"indexed":false,"internalType":"uint64","name":"withdrawalDelay","type":"uint64"}],"name":"InitializeHermezEvent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint32","name":"queueIndex","type":"uint32"},{"indexed":true,"internalType":"uint8","name":"position","type":"uint8"},{"indexed":false,"internalType":"bytes","name":"l1UserTx","type":"bytes"}],"name":"L1UserTxEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"SafeMode","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint8","name":"numBucket","type":"uint8"},{"indexed":true,"internalType":"uint256","name":"blockStamp","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"withdrawals","type":"uint256"}],"name":"UpdateBucketWithdraw","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256[]","name":"arrayBuckets","type":"uint256[]"}],"name":"UpdateBucketsParameters","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"newFeeAddToken","type":"uint256"}],"name":"UpdateFeeAddToken","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"newForgeL1L2BatchTimeout","type":"uint8"}],"name":"UpdateForgeL1L2BatchTimeout","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address[]","name":"addressArray","type":"address[]"},{"indexed":false,"internalType":"uint64[]","name":"valueArray","type":"uint64[]"}],"name":"UpdateTokenExchange","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"newWithdrawalDelay","type":"uint64"}],"name":"UpdateWithdrawalDelay","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint48","name":"idx","type":"uint48"},{"indexed":true,"internalType":"uint32","name":"numExitRoot","type":"uint32"},{"indexed":true,"internalType":"bool","name":"instantWithdraw","type":"bool"}],"name":"WithdrawEvent","type":"event"},{"anonymous":false,"inputs":[],"name":"hermezV2","type":"event"},{"inputs":[],"name":"ABSOLUTE_MAX_L1L2BATCHTIMEOUT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"ACCOUNT_CREATION_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"AUTHORISE_TYPEHASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"domainSeparator","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"EIP712DOMAIN_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"HERMEZ_NETWORK_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NAME_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERSION_HASH","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"babyPubKey","type":"uint256"},{"internalType":"uint48","name":"fromIdx","type":"uint48"},{"internalType":"uint40","name":"loadAmountF","type":"uint40"},{"internalType":"uint40","name":"amountF","type":"uint40"},{"internalType":"uint32","name":"tokenID","type":"uint32"},{"internalType":"uint48","name":"toIdx","type":"uint48"},{"internalType":"bytes","name":"permit","type":"bytes"}],"name":"addL1Transaction","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"bytes","name":"permit","type":"bytes"}],"name":"addToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"int256","name":"","type":"int256"}],"name":"buckets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"},{"internalType":"uint48","name":"","type":"uint48"}],"name":"exitNullifierMap","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"exitRootsMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeAddToken","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint48","name":"newLastIdx","type":"uint48"},{"internalType":"uint256","name":"newStRoot","type":"uint256"},{"internalType":"uint256","name":"newExitRoot","type":"uint256"},{"internalType":"bytes","name":"encodedL1CoordinatorTx","type":"bytes"},{"internalType":"bytes","name":"l1L2TxsData","type":"bytes"},{"internalType":"bytes","name":"feeIdxCoordinator","type":"bytes"},{"internalType":"uint8","name":"verifierIdx","type":"uint8"},{"internalType":"bool","name":"l1Batch","type":"bool"},{"internalType":"uint256[2]","name":"proofA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"proofB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"proofC","type":"uint256[2]"}],"name":"forgeBatch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"forgeL1L2BatchTimeout","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getChainId","outputs":[{"internalType":"uint256","name":"chainId","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"hermezAuctionContract","outputs":[{"internalType":"contract IHermezAuctionProtocol","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hermezGovernanceAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address[]","name":"_verifiers","type":"address[]"},{"internalType":"uint256[]","name":"_verifiersParams","type":"uint256[]"},{"internalType":"address","name":"_withdrawVerifier","type":"address"},{"internalType":"address","name":"_hermezAuctionContract","type":"address"},{"internalType":"address","name":"_tokenHEZ","type":"address"},{"internalType":"uint8","name":"_forgeL1L2BatchTimeout","type":"uint8"},{"internalType":"uint256","name":"_feeAddToken","type":"uint256"},{"internalType":"address","name":"_poseidon2Elements","type":"address"},{"internalType":"address","name":"_poseidon3Elements","type":"address"},{"internalType":"address","name":"_poseidon4Elements","type":"address"},{"internalType":"address","name":"_hermezGovernanceAddress","type":"address"},{"internalType":"uint64","name":"_withdrawalDelay","type":"uint64"},{"internalType":"address","name":"_withdrawDelayerContract","type":"address"}],"name":"initializeHermez","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"tokenAddress","type":"address"},{"internalType":"uint192","name":"amount","type":"uint192"}],"name":"instantWithdrawalViewer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"l1L2TxsDataHashMap","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastForgedBatch","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastIdx","outputs":[{"internalType":"uint48","name":"","type":"uint48"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"lastL1L2Batch","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"mapL1TxQueue","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nBuckets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextL1FillingQueue","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextL1ToForgeQueue","outputs":[{"internalType":"uint32","name":"","type":"uint32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"ceilUSD","type":"uint256"},{"internalType":"uint256","name":"blockStamp","type":"uint256"},{"internalType":"uint256","name":"withdrawals","type":"uint256"},{"internalType":"uint256","name":"rateBlocks","type":"uint256"},{"internalType":"uint256","name":"rateWithdrawals","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawals","type":"uint256"}],"name":"packBucket","outputs":[{"internalType":"uint256","name":"ret","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"registerTokensCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"rollupVerifiers","outputs":[{"internalType":"contract VerifierRollupInterface","name":"verifierInterface","type":"address"},{"internalType":"uint256","name":"maxTx","type":"uint256"},{"internalType":"uint256","name":"nLevels","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"rollupVerifiersLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"safeMode","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint32","name":"","type":"uint32"}],"name":"stateRootMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenExchange","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"tokenHEZ","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"","type":"uint256"}],"name":"tokenList","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"tokenMap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"bucket","type":"uint256"}],"name":"unpackBucket","outputs":[{"internalType":"uint256","name":"ceilUSD","type":"uint256"},{"internalType":"uint256","name":"blockStamp","type":"uint256"},{"internalType":"uint256","name":"withdrawals","type":"uint256"},{"internalType":"uint256","name":"rateBlocks","type":"uint256"},{"internalType":"uint256","name":"rateWithdrawals","type":"uint256"},{"internalType":"uint256","name":"maxWithdrawals","type":"uint256"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"newBuckets","type":"uint256[]"}],"name":"updateBucketsParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newFeeAddToken","type":"uint256"}],"name":"updateFeeAddToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint8","name":"newForgeL1L2BatchTimeout","type":"uint8"}],"name":"updateForgeL1L2BatchTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address[]","name":"addressArray","type":"address[]"},{"internalType":"uint64[]","name":"valueArray","type":"uint64[]"}],"name":"updateTokenExchange","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateVerifiers","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint64","name":"newWithdrawalDelay","type":"uint64"}],"name":"updateWithdrawalDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[2]","name":"proofA","type":"uint256[2]"},{"internalType":"uint256[2][2]","name":"proofB","type":"uint256[2][2]"},{"internalType":"uint256[2]","name":"proofC","type":"uint256[2]"},{"internalType":"uint32","name":"tokenID","type":"uint32"},{"internalType":"uint192","name":"amount","type":"uint192"},{"internalType":"uint32","name":"numExitRoot","type":"uint32"},{"internalType":"uint48","name":"idx","type":"uint48"},{"internalType":"bool","name":"instantWithdraw","type":"bool"}],"name":"withdrawCircuit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawDelayerContract","outputs":[{"internalType":"contract IWithdrawalDelayer","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint32","name":"tokenID","type":"uint32"},{"internalType":"uint192","name":"amount","type":"uint192"},{"internalType":"uint256","name":"babyPubKey","type":"uint256"},{"internalType":"uint32","name":"numExitRoot","type":"uint32"},{"internalType":"uint256[]","name":"siblings","type":"uint256[]"},{"internalType":"uint48","name":"idx","type":"uint48"},{"internalType":"bool","name":"instantWithdraw","type":"bool"}],"name":"withdrawMerkleProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"withdrawVerifier","outputs":[{"internalType":"contract VerifierWithdrawInterface","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"withdrawalDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"}]
608060405234801561001057600080fd5b50615f4680620000216000396000f3fe6080604052600436106102e35760003560e01c8063864eb16411610190578063c473af33116100dc578063d486645c11610095578063e62f6b921161006f578063e62f6b921461106f578063ef4a5c4a14611084578063f1f2fcab1461035e578063f84f92ee146110b7576102e3565b8063d486645c14610eb3578063d9d4ca4414610ee3578063dc3e718e14610fca576102e3565b8063c473af3314610d34578063c727305314610d49578063cbd7b5fb14610df9578063ccd226a714610e26578063ce5ec65a14610e6e578063d0f32e6714610e9e576102e3565b80639ead722211610149578063a7ab696111610123578063a7ab696114610c47578063abe3219c14610c5c578063ac300ec914610c71578063bded9bb814610d1f576102e3565b80639ead722214610bf35780639f34e9a314610c1d578063a327583814610c32576102e3565b8063864eb16414610aec57806395a09f2a14610b01578063960207c014610b2c5780639ce2ad4214610b415780639e00d7ea14610bae5780639e4e731814610bde576102e3565b80633408e4701161024f57806344e0b2ce1161020857806370c2f1c0116101e257806370c2f1c014610a2257806379a135e314610aad5780637ba3a5e014610ac257806384ef9ed414610ad7576102e3565b806344e0b2ce14610729578063599897e31461073e5780636e7e1365146108d0576102e3565b80633408e470146105ca5780633644e515146105df578063375110aa146105f4578063383302001461064a5780633ee641ea1461069c5780633f267155146106cc576102e3565b80630ee8e52b116102a15780630ee8e52b146104015780631300aff01461042f5780631a748c2d146104445780631b0a8223146105765780632bd836261461058b578063314e5eda146105a0576102e3565b80624aca6e146102e8578063013f78521461032d57806304622c2e1461035e578063061d09641461037357806307feef6e1461039d5780630dd94b96146103b2575b600080fd5b3480156102f457600080fd5b5061031b6004803603602081101561030b57600080fd5b50356001600160a01b03166110f5565b60408051918252519081900360200190f35b34801561033957600080fd5b50610342611107565b604080516001600160a01b039092168252519081900360200190f35b34801561036a57600080fd5b5061031b611116565b34801561037f57600080fd5b5061031b6004803603602081101561039657600080fd5b503561113a565b3480156103a957600080fd5b5061031b61114c565b3480156103be57600080fd5b506103e5600480360360208110156103d557600080fd5b50356001600160a01b0316611152565b604080516001600160401b039092168252519081900360200190f35b34801561040d57600080fd5b5061041661116d565b6040805163ffffffff9092168252519081900360200190f35b34801561043b57600080fd5b5061031b611180565b34801561045057600080fd5b506105746004803603604081101561046757600080fd5b810190602081018135600160201b81111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460208302840111600160201b831117156104b457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561050357600080fd5b82018360208201111561051557600080fd5b803590602001918460208302840111600160201b8311171561053657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506111a4945050505050565b005b34801561058257600080fd5b50610342611367565b34801561059757600080fd5b50610342611376565b3480156105ac57600080fd5b50610574600480360360208110156105c357600080fd5b5035611385565b3480156105d657600080fd5b5061031b611409565b3480156105eb57600080fd5b5061031b61140d565b34801561060057600080fd5b506106366004803603604081101561061757600080fd5b5080356001600160a01b031690602001356001600160c01b03166114cb565b604080519115158252519081900360200190f35b34801561065657600080fd5b506106746004803603602081101561066d57600080fd5b50356115ac565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b3480156106a857600080fd5b5061031b600480360360208110156106bf57600080fd5b503563ffffffff166115e6565b3480156106d857600080fd5b506106f6600480360360208110156106ef57600080fd5b50356115f8565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561073557600080fd5b5061041661162d565b34801561074a57600080fd5b5061057460048036036101a081101561076257600080fd5b810190602081018135600160201b81111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460208302840111600160201b831117156107af57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156107fe57600080fd5b82018360208201111561081057600080fd5b803590602001918460208302840111600160201b8311171561083157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160a01b03833581169450602084013581169360408101358216935060ff606082013516925060808101359160a082013581169160c081013582169160e08201358116916101008101358216916001600160401b036101208301351691610140013516611640565b3480156108dc57600080fd5b5061057460048036036102008110156108f457600080fd5b65ffffffffffff8235169160208101359160408201359190810190608081016060820135600160201b81111561092957600080fd5b82018360208201111561093b57600080fd5b803590602001918460018302840111600160201b8311171561095c57600080fd5b919390929091602081019035600160201b81111561097957600080fd5b82018360208201111561098b57600080fd5b803590602001918460018302840111600160201b831117156109ac57600080fd5b919390929091602081019035600160201b8111156109c957600080fd5b8201836020820111156109db57600080fd5b803590602001918460018302840111600160201b831117156109fc57600080fd5b919350915060ff81351690602081013515159060408101906080810190610100016118de565b348015610a2e57600080fd5b5061057460048036036040811015610a4557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a6f57600080fd5b820183602082011115610a8157600080fd5b803590602001918460018302840111600160201b83111715610aa257600080fd5b509092509050611dc8565b348015610ab957600080fd5b50610342612051565b348015610ace57600080fd5b5061031b612060565b348015610ae357600080fd5b506103e5612066565b348015610af857600080fd5b50610342612075565b348015610b0d57600080fd5b50610b16612084565b6040805160ff9092168252519081900360200190f35b348015610b3857600080fd5b50610574612089565b348015610b4d57600080fd5b5061057460048036036101a0811015610b6557600080fd5b506040810160c0820163ffffffff6101008401358116906001600160c01b0361012086013516906101408601351665ffffffffffff6101608701351661018087013515156122a8565b348015610bba57600080fd5b5061031b60048036036020811015610bd157600080fd5b503563ffffffff1661267b565b348015610bea57600080fd5b5061031b61268d565b348015610bff57600080fd5b5061034260048036036020811015610c1657600080fd5b50356126b1565b348015610c2957600080fd5b5061031b6126d8565b348015610c3e57600080fd5b50610b166126de565b348015610c5357600080fd5b506103e56126ee565b348015610c6857600080fd5b50610574612704565b348015610c7d57600080fd5b5061057460048036036020811015610c9457600080fd5b810190602081018135600160201b811115610cae57600080fd5b820183602082011115610cc057600080fd5b803590602001918460208302840111600160201b83111715610ce157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061283e945050505050565b348015610d2b57600080fd5b5061031b612a2e565b348015610d4057600080fd5b5061031b612a34565b610574600480360360e0811015610d5f57600080fd5b81359165ffffffffffff602082013581169264ffffffffff604084013581169360608101359091169263ffffffff6080830135169260a0830135909116919081019060e0810160c0820135600160201b811115610dbb57600080fd5b820183602082011115610dcd57600080fd5b803590602001918460018302840111600160201b83111715610dee57600080fd5b509092509050612a58565b348015610e0557600080fd5b5061057460048036036020811015610e1c57600080fd5b503560ff16612d6e565b348015610e3257600080fd5b5061031b600480360360c0811015610e4957600080fd5b5080359060208101359060408101359060608101359060808101359060a00135612e4e565b348015610e7a57600080fd5b5061031b60048036036020811015610e9157600080fd5b503563ffffffff16612e7b565b348015610eaa57600080fd5b50610416612e8d565b348015610ebf57600080fd5b50610ec8612ea0565b6040805165ffffffffffff9092168252519081900360200190f35b348015610eef57600080fd5b50610574600480360360e0811015610f0657600080fd5b63ffffffff82358116926001600160c01b0360208201351692604082013592606083013516919081019060a081016080820135600160201b811115610f4a57600080fd5b820183602082011115610f5c57600080fd5b803590602001918460208302840111600160201b83111715610f7d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505065ffffffffffff83351693505050602001351515612eb5565b348015610fd657600080fd5b50610ffa60048036036020811015610fed57600080fd5b503563ffffffff166130a5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561103457818101518382015260200161101c565b50505050905090810190601f1680156110615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561107b57600080fd5b5061031b613140565b34801561109057600080fd5b50610574600480360360208110156110a757600080fd5b50356001600160401b0316613164565b3480156110c357600080fd5b50610636600480360360408110156110da57600080fd5b50803563ffffffff16906020013565ffffffffffff16613259565b600f6020526000908152604090205481565b6005546001600160a01b031681565b7fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad81565b60046020526000908152604090205481565b60035481565b6007602052600090815260409020546001600160401b031681565b601354600160601b900463ffffffff1681565b7fff946cf82975b1a2b6e6d28c9a76a4b8d7a1fd0592b785cb92771933310f9ee781565b6005546001600160a01b031633146111ed5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b805182511461122d5760405162461bcd60e51b815260040180806020018281038252604181526020018061556b6041913960600191505060405180910390fd5b60005b82518110156112a75781818151811061124557fe5b60200260200101516007600085848151811061125d57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805467ffffffffffffffff19166001600160401b0392909216919091179055600101611230565b507f10ff643ebeca3e33002e61b76fa85e7e10091e30afa39295f91af9838b3033b38282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561130f5781810151838201526020016112f7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561134e578181015183820152602001611336565b5050505090500194505050505060405180910390a15050565b6006546001600160a01b031681565b6011546001600160a01b031681565b6005546001600160a01b031633146113ce5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b60108190556040805182815290517fd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c19181900360200190a150565b4690565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661147a611409565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b6000806114d88484613279565b9050806114e95760019150506115a6565b60006114f482613438565b905080600019141561150b576001925050506115a6565b600080600080600061152f60046000888152602001908152602001600020546115f8565b9550955095509550955050600061154f864361349590919063ffffffff16565b9050600061155d82866134de565b905061157361156c8286613520565b8790613579565b955082861115611581578295505b8561159857600099505050505050505050506115a6565b600199505050505050505050505b92915050565b600881815481106115b957fe5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b600b6020526000908152604090205481565b6001600160601b0381169163ffffffff606083901c811692608081901c82169260a082901c83169260c083901c169160e01c90565b600954600160d01b900463ffffffff1681565b600054610100900460ff168061165957506116596135d3565b80611667575060005460ff16155b6116a25760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff161580156116cd576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038b16158015906116ed57506001600160a01b03821615155b6117285760405162461bcd60e51b815260040180806020018281038252602c81526020018061588d602c913960400191505060405180910390fd5b6117328e8e6135d9565b8b600960006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a601160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089601460006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088601360106101000a81548160ff021916908360ff1602179055508760108190555060ff600960146101000a81548165ffffffffffff021916908365ffffffffffff16021790555060016013600c6101000a81548163ffffffff021916908363ffffffff160217905550600e60009080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506118668787876136aa565b6118718484846137a0565b6040805160ff8b168152602081018a90526001600160401b0385168183015290517fc5272ad4c8d9f2e9af2f9555c11ead049be22b6e45c16975adc82371b7cd10409181900360600190a180156118ce576000805461ff00191690555b5050505050505050505050505050565b33321461191c5760405162461bcd60e51b815260040180806020018281038252602a815260200180615842602a913960400191505060405180910390fd5b6011546040805163041d8fb560e51b815233600482015243602482015290516001600160a01b03909216916383b1f6a091604480820192602092909190829003018186803b15801561196d57600080fd5b505afa158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b505115156001146119d95760405162461bcd60e51b81526004018080602001828103825260228152602001806157416022913960400191505060405180910390fd5b83611a3557601354600160801b810460ff166001600160401b0391821601164310611a355760405162461bcd60e51b8152600401808060200182810382526026815260200180615c266026913960400191505060405180910390fd5b6000611a448f8f8f888a613895565b905060088660ff1681548110611a5657fe5b60009182526020918290206003909102015460408051928301815283835280516343753b4d60e01b81526001600160a01b03909216926343753b4d9288928892889290916004909101908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015611b15578181015183820152602001611afd565b5050505090500194505050505060206040518083038186803b158015611b3a57600080fd5b505afa158015611b4e573d6000803e3d6000fd5b505050506040513d6020811015611b6457600080fd5b5051611ba15760405162461bcd60e51b81526004018080602001828103825260218152602001806155e86021913960400191505060405180910390fd5b6009601a81819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff160217905550508e600960146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508d600a60006009601a9054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020819055508c600b60006009601a9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000208190555060028a8a6040518083838082843760405192019450602093509091505080830381855afa158015611ca2573d6000803e3d6000fd5b5050506040513d6020811015611cb757600080fd5b5051600954600160d01b900463ffffffff166000908152600c60205260408120919091558515611d08576013805467ffffffffffffffff1916436001600160401b0316179055611d05613b71565b90505b601154604080516309cb4a2f60e31b815233600482015290516001600160a01b0390921691634e5a51789160248082019260009290919082900301818387803b158015611d5457600080fd5b505af1158015611d68573d6000803e3d6000fd5b50506009546040805161ffff861681529051600160d01b90920463ffffffff1693507fe00040c8a3b0bf905636c26924e90520eafc5003324138236fddee2d3458861892506020908290030190a250505050505050505050505050505050565b6000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0357600080fd5b505afa158015611e17573d6000803e3d6000fd5b505050506040513d6020811015611e2d57600080fd5b505111611e6b5760405162461bcd60e51b8152600401808060200182810382526023815260200180615cf86023913960400191505060405180910390fd5b600e54600160201b8110611eb05760405162461bcd60e51b815260040180806020018281038252602181526020018061586c6021913960400191505060405180910390fd5b6001600160a01b038416611ef55760405162461bcd60e51b81526004018080602001828103825260238152602001806157ee6023913960400191505060405180910390fd5b6001600160a01b0384166000908152600f602052604090205415611f60576040805162461bcd60e51b815260206004820152601f60248201527f4865726d657a3a3a616464546f6b656e3a20414c52454144595f414444454400604482015290519081900360640190fd5b6005546001600160a01b03163314611fb6578115611f9357601454601054611f93916001600160a01b0316908585613c2e565b601454600554601054611fb6926001600160a01b03908116923392911690613ef7565b600e8054600181019091557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b0386169081179091556000818152600f6020908152604091829020849055815163ffffffff8516815291517fcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde9281900390910190a250505050565b6014546001600160a01b031681565b60085490565b6013546001600160401b031681565b6009546001600160a01b031681565b60f081565b3373b6d3f1056c015962fa66a4020e50522b58292d1e146120db5760405162461bcd60e51b8152600401808060200182810382526025815260200180615a056025913960400191505060405180910390fd5b60086000815481106120e957fe5b9060005260206000209060030201600101546101581461213a5760405162461bcd60e51b81526004018080602001828103825260318152602001806158116031913960400191505060405180910390fd5b6040518060600160405280733daa0b2a994b1bc60db9e312ad0a8d87a1bb16d26001600160a01b0316815260200161019081526020016020815250600860008154811061218357fe5b906000526020600020906003020160008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010155604082015181600201559050506040518060600160405280731dc4b451dfcd0e848881ede8c7a99978f00b13426001600160a01b0316815260200161080081526020016020815250600860018154811061221e57fe5b60009182526020808320845160039093020180546001600160a01b039093166001600160a01b031993841617815590840151600182015560409384015160029091015560098054909116734464a1e499cf5443541da6728871af1d5c4920ca17905590517fd5303fa2e7ece2a0fe77fbba1df5bb224b461198dd7bfd7fe0071f964c86c6739190a1565b801561231a576122df600e8663ffffffff16815481106122c457fe5b6000918252602090912001546001600160a01b031685614054565b61231a5760405162461bcd60e51b8152600401808060200182810382526043815260200180615ad56043913960600191505060405180910390fd5b63ffffffff83166000908152600d6020908152604080832065ffffffffffff8616845290915290205460ff16156123825760405162461bcd60e51b815260040180806020018281038252602e815260200180615a7d602e913960400191505060405180910390fd5b63ffffffff83166000908152600b602090815260408083205481518084018290523360601b818401526001600160e01b031960e08b901b16605482015267ffffffffffffffff1989841b1660588201526001600160d01b031960d088901b1660708201528251605681830301815260769091019283905280519194937f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019360029390918291908401908083835b6020831061244e5780518252601f19909201916020918201910161242f565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561248d573d6000803e3d6000fd5b5050506040513d60208110156124a257600080fd5b5051816124ab57fe5b600954604080516020810182529390920680845282516343753b4d60e01b81529094506001600160a01b03909116926343753b4d928e928e928e929091600401908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015612561578181015183820152602001612549565b5050505090500194505050505060206040518083038186803b15801561258657600080fd5b505afa15801561259a573d6000803e3d6000fd5b505050506040513d60208110156125b057600080fd5b505115156001146125f25760405162461bcd60e51b8152600401808060200182810382526029815260200180615ba66029913960400191505060405180910390fd5b63ffffffff85166000908152600d6020908152604080832065ffffffffffff881684529091529020805460ff191660011790556126308688856141bb565b8215158563ffffffff168565ffffffffffff167f69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f41560405160405180910390a450505050505050505050565b600a6020526000908152604090205481565b7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b600e81815481106126be57fe5b6000918252602090912001546001600160a01b0316905081565b600e5490565b601354600160801b900460ff1681565b600554600160a01b90046001600160401b031681565b6005546001600160a01b0316331461274d5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b600160038190555061276d6001600160601b036000806001600080612e4e565b6000808052600460208190527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec9290925560065460055460408051630e670af560e01b8152600160a01b9092046001600160401b03169482019490945292516001600160a01b0390911692630e670af592602480830193919282900301818387803b1580156127fb57600080fd5b505af115801561280f573d6000803e3d6000fd5b50506040517f0410e6ef2bd89ecf5b2dc2f62157f9863e09e89cb7c7f1abb7d4ec43a6019d1e925060009150a1565b6005546001600160a01b031633146128875760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b805160058111156128c95760405162461bcd60e51b81526004018080602001828103825260408152602001806157016040913960400191505060405180910390fd5b600381905560005b818110156129b45760008060008060006128fd8887815181106128f057fe5b60200260200101516115f8565b9550955095509550509450808411156129475760405162461bcd60e51b815260040180806020018281038252605d815260200180615d88605d913960600191505060405180910390fd5b600083116129865760405162461bcd60e51b8152600401808060200182810382526050815260200180615ca86050913960600191505060405180910390fd5b612994854386868686612e4e565b6000878152600460205260409020555050600190930192506128d1915050565b507fd4904145d7eae889c5493798579680417459783db0fa67398bea50e56859075f826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015612a175781810151838201526020016129ff565b505050509050019250505060405180910390a15050565b60105481565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b600e5463ffffffff851610612a9e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c4c602e913960400191505060405180910390fd5b6000612aa987614355565b9050600160801b8110612aed5760405162461bcd60e51b81526004018080602001828103825260318152602001806156096031913960400191505060405180910390fd5b8015612d545763ffffffff8516612b4157348114612b3c5760405162461bcd60e51b8152600401808060200182810382526037815260200180615eda6037913960400191505060405180910390fd5b612d54565b3415612b7e5760405162461bcd60e51b815260040180806020018281038252602f815260200180615936602f913960400191505060405180910390fd5b8115612bb757612bb7600e8663ffffffff1681548110612b9a57fe5b6000918252602090912001546001600160a01b0316828585613c2e565b6000600e8663ffffffff1681548110612bcc57fe5b60009182526020918290200154604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b158015612c1b57600080fd5b505afa158015612c2f573d6000803e3d6000fd5b505050506040513d6020811015612c4557600080fd5b5051600e8054919250612c7f9163ffffffff8916908110612c6257fe5b6000918252602090912001546001600160a01b0316333085613ef7565b6000600e8763ffffffff1681548110612c9457fe5b60009182526020918290200154604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b158015612ce357600080fd5b505afa158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b505190508181038314612d515760405162461bcd60e51b8152600401808060200182810382526039815260200180615e0f6039913960400191505060405180910390fd5b50505b612d63338a8a8a8a8a8a61436d565b505050505050505050565b6005546001600160a01b03163314612db75760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b60f060ff82161115612dfa5760405162461bcd60e51b815260040180806020018281038252603c8152602001806155ac603c913960400191505060405180910390fd5b6013805460ff8316600160801b810260ff60801b199092169190911790915560408051918252517fff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac9744319181900360200190a150565b600060e082901b60c084901b60a086901b608088901b60608a901b8b171717171790509695505050505050565b600c6020526000908152604090205481565b601354600160401b900463ffffffff1681565b600954600160a01b900465ffffffffffff1681565b8015612f2757612eec600e8863ffffffff1681548110612ed157fe5b6000918252602090912001546001600160a01b031687614054565b612f275760405162461bcd60e51b81526004018080602001828103825260478152602001806159656047913960600191505060405180910390fd5b612f2f61540d565b612f46886000896001600160c01b031689336145ca565b90506000612f538261462c565b63ffffffff87166000908152600b6020908152604080832054600d835281842065ffffffffffff8a168552909252909120549192509060ff1615612fc85760405162461bcd60e51b8152600401808060200182810382526032815260200180615a2a6032913960400191505060405180910390fd5b612fdc81878765ffffffffffff16856146c9565b151560011461301c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c7a602e913960400191505060405180910390fd5b63ffffffff87166000908152600d6020908152604080832065ffffffffffff891684529091529020805460ff1916600117905561305a898b866141bb565b8315158763ffffffff168665ffffffffffff167f69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f41560405160405180910390a450505050505050505050565b60126020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156131385780601f1061310d57610100808354040283529160200191613138565b820191906000526020600020905b81548152906001019060200180831161311b57829003601f168201915b505050505081565b7fafd642c6a37a2e6887dc4ad5142f84197828a904e53d3204ecb1100329231eaa81565b6005546001600160a01b031633146131ad5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b62127500816001600160401b031611156131f85760405162461bcd60e51b815260040180806020018281038252604a815260200180615763604a913960600191505060405180910390fd5b600580546001600160401b038316600160a01b810267ffffffffffffffff60a01b199092169190911790915560408051918252517f9db302c4547a21fb20a3a794e5f63ee87eb6e4afc3325ebdadba2d1fb4a907379181900360200190a150565b600d60209081526000928352604080842090915290825290205460ff1681565b6001600160a01b0382166000908152600760205260408120546001600160401b03166132a7575060006115a6565b6001600160a01b0383166000818152600760205260408120546402540be4006001600160401b039091166001600160c01b0386160204916132ea575060126133dd565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b178152915181516000936060936001600160a01b038b16939092909182918083835b602083106133505780518252601f199092019160209182019101613331565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146133b0576040519150601f19603f3d011682016040523d82523d6000602084013e6133b5565b606091505b509150915081156133da578080602001905160208110156133d557600080fd5b505192505b50505b604d8160ff161061341f5760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f0603b913960400191505060405180910390fd5b8060ff16600a0a828161342e57fe5b0495945050505050565b6000805b600354811215613489576000818152600460205260409020546001600160601b031680841115806134735750806001600160601b03145b1561348057509050613490565b5060010161343c565b5060001990505b919050565b60006134d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614750565b9392505050565b60006134d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506147e7565b60008261352f575060006115a6565b8282028284828161353c57fe5b04146134d75760405162461bcd60e51b8152600401808060200182810382526021815260200180615a5c6021913960400191505060405180910390fd5b6000828201838110156134d7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b303b1590565b60005b82518110156136a557600860405180606001604052808584815181106135fe57fe5b60200260200101516001600160a01b0316815260200160088086868151811061362357fe5b6020026020010151901b901c815260200160f885858151811061364257fe5b60209081029190910181015190911c909152825460018082018555600094855293829020835160039092020180546001600160a01b0319166001600160a01b039092169190911781559082015181840155604090910151600290910155016135dc565b505050565b600054610100900460ff16806136c357506136c36135d3565b806136d1575060005460ff16155b61370c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff16158015613737576000805460ff1961ff0019909116610100171660011790555b600080546001600160a01b03808716620100000262010000600160b01b031990921691909117909155600180548583166001600160a01b0319918216179091556002805492851692909116919091179055801561379a576000805461ff00191690555b50505050565b600054610100900460ff16806137b957506137b96135d3565b806137c7575060005460ff16155b6138025760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff1615801561382d576000805460ff1961ff0019909116610100171660011790555b600580546001600160a01b03199081166001600160a01b038781169190911767ffffffffffffffff60a01b1916600160a01b6001600160401b038816021790925560068054909116918416919091179055801561379a576000805461ff001916905550505050565b600954600160d01b810463ffffffff166000908152600a60205260408120546008805492939192600160a01b90920465ffffffffffff16918491829182919060ff89169081106138e157fe5b9060005260206000209060030201600101546008808960ff168154811061390457fe5b9060005260206000209060030201600201548161391d57fe5b0460020260050160010102905060006008808960ff168154811061393d57fe5b9060005260206000209060030201600201548161395657fe5b60408051929091048102848101808401614eb201909252614e72909101825260d087811b60208401528e901b6026830152602c8201889052604c82018d9052606c82018c90529150608c81016139ac818c614842565b614e00016139ba6004614a79565b9096509450838511156139fe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615d1b602e913960400191505060405180910390fd5b848682378401613a1081868603614a8d565b84840301613a1e6005614a79565b909650945082851115613a625760405162461bcd60e51b815260040180806020018281038252604081526020018061552b6040913960400191505060405180910390fd5b848682378401613a7481868503614a8d565b848303810190504660f01b815260028101905060006009601a9054906101000a900463ffffffff1660010163ffffffff1690508060e01b82527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016002846040518082805190602001908083835b60208310613b005780518252601f199092019160209182019101613ae1565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015613b3f573d6000803e3d6000fd5b5050506040513d6020811015613b5457600080fd5b505181613b5d57fe5b069f9e505050505050505050505050505050565b601354600160401b900463ffffffff1660009081526012602052604081208054604e600261010060018416150260001901909216919091040490613bb5908361542b565b60138054600163ffffffff600160401b808404821692909201811682026bffffffff000000000000000019909316929092179283905582048116600160601b909204161415613c295760138054600163ffffffff600160601b808404821692909201160263ffffffff60601b199091161790555b905090565b600082826020811015613c4057600080fd5b50356001600160e01b031916905063d505accf60e01b8114613c935760405162461bcd60e51b815260040180806020018281038252602e815260200180615e83602e913960400191505060405180910390fd5b6000808080808080613ca8896004818d6154c7565b60e0811015613cb657600080fd5b506001600160a01b038135811698506020820135169650604081013595506060810135945060ff608082013516935060a0810135925060c001359050338714613d305760405162461bcd60e51b815260040180806020018281038252603081526020018061566e6030913960400191505060405180910390fd5b6001600160a01b0386163014613d775760405162461bcd60e51b81526004018080602001828103825260258152602001806159116025913960400191505060405180910390fd5b8a8514613db55760405162461bcd60e51b815260040180806020018281038252602d815260200180615bf9602d913960400191505060405180910390fd5b8b6001600160a01b031663d505accf60e01b8888888888888860405160240180886001600160a01b03168152602001876001600160a01b031681526020018681526020018581526020018460ff168152602001838152602001828152602001975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b60208310613e7f5780518252601f199092019160209182019101613e60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613ee1576040519150601f19603f3d011682016040523d82523d6000602084013e613ee6565b606091505b505050505050505050505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310613f7c5780518252601f199092019160209182019101613f5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613fde576040519150601f19603f3d011682016040523d82523d6000602084013e613fe3565b606091505b5091509150818015614011575080511580614011575080806020019051602081101561400e57600080fd5b50515b61404c5760405162461bcd60e51b815260040180806020018281038252603481526020018061563a6034913960400191505060405180910390fd5b505050505050565b6000806140618484613279565b9050806140725760019150506115a6565b600061407d82613438565b9050806000191415614094576001925050506115a6565b6000806000806000806140b960046000898152602001908152602001600020546115f8565b95509550955095509550955060006140da864361349590919063ffffffff16565b905060006140e882866134de565b90506140f761156c8286613520565b955082861061410b57829550439650614122565b61411f6141188287613520565b8890613579565b96505b8561413a5760009a50505050505050505050506115a6565b614145866001613495565b9550614155888888888888612e4e565b600460008b815260200190815260200160002081905550868960ff167fa35fe9a9e21cdbbc4774aa8a56e7b97ea9c06afc09ffb06af593d26951e350aa886040518082815260200191505060405180910390a35060019c9b505050505050505050505050565b8015614201576141fc600e8363ffffffff16815481106141d757fe5b6000918252602090912001546001600160a01b0316336001600160c01b038616614aa6565b6136a5565b63ffffffff821661428d576006546040805163cfc0b64160e01b81523360048201526000602482018190526001600160c01b0387166044830181905292516001600160a01b039094169363cfc0b6419392606480820193929182900301818588803b15801561426f57600080fd5b505af1158015614283573d6000803e3d6000fd5b50505050506136a5565b6000600e8363ffffffff16815481106142a257fe5b6000918252602090912001546006546001600160a01b0391821692506142d4918391166001600160c01b038716614cf8565b6006546040805163cfc0b64160e01b81523360048201526001600160a01b0384811660248301526001600160c01b03881660448301529151919092169163cfc0b64191606480830192600092919082900301818387803b15801561433757600080fd5b505af115801561434b573d6000803e3d6000fd5b5050505050505050565b6407ffffffff811660239190911c601f16600a0a0290565b600061437884614355565b9050600160c01b81106143bc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806158b9602e913960400191505060405180910390fd5b65ffffffffffff821661440b5780156144065760405162461bcd60e51b815260040180806020018281038252603b815260200180615e48603b913960400191505060405180910390fd5b6144c8565b65ffffffffffff8216600114156144605764ffffffffff8516156144065760405162461bcd60e51b815260040180806020018281038252603781526020018061569e6037913960400191505060405180910390fd5b60ff65ffffffffffff831611801561448d575060095465ffffffffffff600160a01b909104811690831611155b6144c85760405162461bcd60e51b8152600401808060200182810382526028815260200180615b7e6028913960400191505060405180910390fd5b65ffffffffffff861661451657866145115760405162461bcd60e51b81526004018080602001828103825260418152602001806157ad6041913960600191505060405180910390fd5b6145bb565b60ff65ffffffffffff8716118015614543575060095465ffffffffffff600160a01b909104811690871611155b61457e5760405162461bcd60e51b815260040180806020018281038252602a8152602001806158e7602a913960400191505060405180910390fd5b86156145bb5760405162461bcd60e51b8152600401808060200182810382526042815260200180615b186042913960600191505060405180910390fd5b61434b88888888888888614e45565b6145d261540d565b6145da61540d565b63ffffffff96909616602095861b65ffff000000001617690100000000000000000060b785901c1617865250928401919091526001600160ff1b031660408301526001600160a01b0316606082015290565b60025460405163248f667760e01b81526000916001600160a01b03169063248f6677908490600401808260808083838a5b8381101561467557818101518382015260200161465d565b5050505090500191505060206040518083038186803b15801561469757600080fd5b505afa1580156146ab573d6000803e3d6000fd5b505050506040513d60208110156146c157600080fd5b505192915050565b6000806146d68484614ffd565b8551909150600090600019015b60008112614743578681815181106146f757fe5b6020026020010151915060008187600082121561471057fe5b6001911c81161490508061472d576147288484615029565b614737565b6147378385615029565b935050600019016146e3565b5050909414949350505050565b600081848411156147df5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147a457818101518382015260200161478c565b50505050905090810190601f1680156147d15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836148365760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156147a457818101518382015260200161478c565b50600083858161342e57fe5b60008061484f6003614a79565b90925090506065810460006060851561491f57601354600160401b900463ffffffff166000908152601260209081526040918290208054835160026101006001841615026000190190921691909104601f81018490048402820184019094528381529290918301828280156149055780601f106148da57610100808354040283529160200191614905565b820191906000526020600020905b8154815290600101906020018083116148e857829003601f168201915b50505050509050604e81518161491757fe5b049150614924565b600091505b61010083830111156149675760405162461bcd60e51b8152600401808060200182810382526024815260200180615b5a6024913960400191505060405180910390fd5b811561499557604e820287019660208201905b8881101561499257815181526020918201910161497a565b50505b60005b83811015614a5c57600e546065870196803560001a916001820135916021810135916041820135916061013560e01c908110614a055760405162461bcd60e51b815260040180806020018281038252602a815260200180615aab602a913960400191505060405180910390fd5b6001600160a01b0360ff861615614a2557614a2283858789615046565b90505b60601b8d5260148d0191909152600060348d0181905260e09190911b60448d015260488c01525050604e9098019750600101614998565b50614a7087604e8585610100030302614a8d565b50505050505050565b602002600490810135602481019291013590565b808201915b828110156136a55760008152602001614a92565b6001600160a01b038316614ba45760408051600080825260208201909252339083906040518082805190602001908083835b60208310614af75780518252601f199092019160209182019101614ad8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614b59576040519150601f19603f3d011682016040523d82523d6000602084013e614b5e565b606091505b5050905080614b9e5760405162461bcd60e51b815260040180806020018281038252602a815260200180615bcf602a913960400191505060405180910390fd5b506136a5565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b60208310614c215780518252601f199092019160209182019101614c02565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c83576040519150601f19603f3d011682016040523d82523d6000602084013e614c88565b606091505b5091509150818015614cb6575080511580614cb65750808060200190516020811015614cb357600080fd5b50515b614cf15760405162461bcd60e51b815260040180806020018281038252602c8152602001806156d5602c913960400191505060405180910390fd5b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310614d755780518252601f199092019160209182019101614d56565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614dd7576040519150601f19603f3d011682016040523d82523d6000602084013e614ddc565b606091505b5091509150818015614e0a575080511580614e0a5750808060200190516020811015614e0757600080fd5b50515b614cf15760405162461bcd60e51b815260040180806020018281038252602a815260200180615de5602a913960400191505060405180910390fd5b604080516bffffffffffffffffffffffff1960608a901b16602080830191909152603482018990526001600160d01b031960d089811b821660548501526001600160d81b031960d88a811b8216605a87015289901b16605f8501526001600160e01b031960e088901b16606485015285901b1660688301528251604e81840381018252606e9093018452601354600160601b900463ffffffff16600090815260129092529290208054600260001960018316156101000201909116049190910490614f10908361523f565b601354604080516020808252855181830152855160ff861694600160601b900463ffffffff16937fdd5c7c5ea02d3c5d1621513faa6de53d474ee6f111eda6352a63e3dfe8c401199388939092839283019185019080838360005b83811015614f83578181015183820152602001614f6b565b50505050905090810190601f168015614fb05780820380516001836020036101000a031916815260200191505b509250505060405180910390a360808160010110612d635760138054600163ffffffff600160601b808404821692909201160263ffffffff60601b19909116179055505050505050505050565b6000615007615472565b838152602081018390526001604082015261502181615389565b949350505050565b6000615033615490565b83815260208101839052615021816153c6565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156150a75760405162461bcd60e51b8152600401808060200182810382526029815260200180615eb16029913960400191505060405180910390fd5b604080517fafd642c6a37a2e6887dc4ad5142f84197828a904e53d3204ecb1100329231eaa6020808301919091527fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad828401527fff946cf82975b1a2b6e6d28c9a76a4b8d7a1fd0592b785cb92771933310f9ee7606083015260808083018990528351808403909101815260a09092019092528051910120600061514961140d565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286898960405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156151e2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166152345760405162461bcd60e51b815260040180806020018281038252602b8152602001806159da602b913960400191505060405180910390fd5b979650505050505050565b8154600260018083161561010002038216048251808201602081106020841001600281146152e9576001811461530e578660005260208404602060002001600160028402018855602085068060200390508088018589016001836101000a0392508282511684540184556001840193506020820191505b808210156152d357815184556001840193506020820191506152b6565b815191036101000a908190040290915550614a70565b60028302826020036101000a846020036101000a602089015104020185018755614a70565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a0392508282511660ff198a160184556020820191506001840193505b8082101561536f5781518455600184019350602082019150615352565b815191036101000a90819004029091555050505050505050565b6001546040516304b98e1d60e31b8152825160049091019081526000916001600160a01b0316906325cc70e890849080826060808383602061465d565b60008054604080516314d2f97b60e11b8152620100009092046001600160a01b0316916329a5f2f691859160040190819083908083838a818101518382015260200161465d565b60405180608001604052806004906020820280368337509192915050565b50805460018160011615610100020316600290046000825580601f10615451575061546f565b601f01602090049060005260206000209081019061546f91906154ae565b50565b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b5b808211156154c357600081556001016154af565b5090565b600080858511156154d6578182fd5b838611156154e2578182fd5b505082019391909203915056fe496e7374616e7457697468647261774d616e616765723a3a5f746f6b656e325553443a20544f4b454e5f444543494d414c535f4f564552464c4f574865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a20494e56414c49445f464545494458434f4f5244494e41544f525f4c454e475448496e7374616e7457697468647261774d616e616765723a3a757064617465546f6b656e45786368616e67653a20494e56414c49445f41525241595f4c454e4754484865726d657a3a3a757064617465466f7267654c314c32426174636854696d656f75743a204d41585f464f52474554494d454f55545f4558434545444865726d657a3a3a666f72676542617463683a20494e56414c49445f50524f4f464865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f736166655472616e7366657246726f6d3a2045524332305f5452414e5346455246524f4d5f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f4f574e45525f4d5553545f42455f5448455f53454e4445524865726d657a3a3a5f6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4d5553545f42455f305f49465f455849544865726d657a3a3a5f736166655472616e736665723a2045524332305f5452414e534645525f4641494c4544496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a204d41585f4e554d5f4255434b4554534865726d657a3a3a666f72676542617463683a2041554354494f4e5f44454e494544496e7374616e7457697468647261774d616e616765723a3a7570646174655769746864726177616c44656c61793a204558434545445f4d41585f5749544844524157414c5f44454c41594865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f4352454154455f4143434f554e545f574954485f4e4f5f424142594a55424865726d657a3a3a616464546f6b656e3a20414444524553535f305f494e56414c49444865726d657a3a3a757064617465566572696669657273205645524946494552535f414c52454144595f555044415445444865726d657a3a3a666f72676542617463683a20494e54454e414c5f54585f4e4f545f414c4c4f5745444865726d657a3a3a616464546f6b656e3a20544f4b454e5f4c4953545f46554c4c4865726d657a3a3a696e697469616c697a654865726d657a20414444524553535f305f4e4f545f56414c49444865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f46524f4d4944584865726d657a3a3a5f7065726d69743a205350454e4445525f4d5553545f42455f544849534865726d657a3a3a6164644c315472616e73616374696f6e3a204d53475f56414c55455f4e4f545f455155414c5f304865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e4745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65644865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f5349474e41545552454865726d657a3a3a757064617465566572696669657273204f4e4c595f4445504c4f5945524865726d657a3a3a77697468647261774d65726b6c6550726f6f663a2057495448445241575f414c52454144595f444f4e45536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774865726d657a3a3a7769746864726177436972637569743a2057495448445241575f414c52454144595f444f4e454865726d657a3a3a5f6275696c644c31446174613a20544f4b454e5f4e4f545f524547495354455245444865726d657a3a3a7769746864726177436972637569743a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e47454865726d657a3a3a5f6164644c315472616e73616374696f6e3a20424142594a55425f4d5553545f42455f305f49465f4e4f545f4352454154455f4143434f554e544865726d657a3a3a5f6275696c644c31446174613a204c315f54585f4f564552464c4f574865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f544f4944584865726d657a3a3a7769746864726177436972637569743a20494e56414c49445f5a4b5f50524f4f464865726d657a3a3a5f736166655472616e736665723a204554485f5452414e534645525f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f414d4f554e545f444f45535f4e4f545f4d415443484865726d657a3a3a666f72676542617463683a204c314c3242415443485f52455155495245444865726d657a3a3a6164644c315472616e73616374696f6e3a20544f4b454e5f4e4f545f524547495354455245444865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20534d545f50524f4f465f494e56414c4944496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a20524154455f424c4f434b535f4d5553545f42455f4d4f52455f5448414e5f304865726d657a3a3a616464546f6b656e3a20544f54414c5f535550504c595f5a45524f4865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a204c325f54585f4f564552464c4f57496e7374616e7457697468647261774d616e616765723a3a6f6e6c79476f7665726e616e63653a204f4e4c595f474f5645524e414e43455f41444452455353496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a205749544844524157414c535f4d5553545f42455f4c4553535f5448414e5f4d41585749544844524157414c534865726d657a3a3a5f73616665417070726f76653a2045524332305f415050524f56455f4641494c45444865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f45524332305f444f45535f4e4f545f4d415443484865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4d5553545f42455f305f49465f4e4f545f5452414e534645524865726d657a41756374696f6e50726f746f636f6c3a3a5f7065726d69743a204e4f545f56414c49445f43414c4c4865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f535f56414c55454865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4554485f444f45535f4e4f545f4d41544348a2646970667358221220e5fc23964ebee4391cb37d0cad23ee3495099d877a43d55d3932956e0ec65a9c64736f6c634300060c0033
Deployed Bytecode
0x6080604052600436106102e35760003560e01c8063864eb16411610190578063c473af33116100dc578063d486645c11610095578063e62f6b921161006f578063e62f6b921461106f578063ef4a5c4a14611084578063f1f2fcab1461035e578063f84f92ee146110b7576102e3565b8063d486645c14610eb3578063d9d4ca4414610ee3578063dc3e718e14610fca576102e3565b8063c473af3314610d34578063c727305314610d49578063cbd7b5fb14610df9578063ccd226a714610e26578063ce5ec65a14610e6e578063d0f32e6714610e9e576102e3565b80639ead722211610149578063a7ab696111610123578063a7ab696114610c47578063abe3219c14610c5c578063ac300ec914610c71578063bded9bb814610d1f576102e3565b80639ead722214610bf35780639f34e9a314610c1d578063a327583814610c32576102e3565b8063864eb16414610aec57806395a09f2a14610b01578063960207c014610b2c5780639ce2ad4214610b415780639e00d7ea14610bae5780639e4e731814610bde576102e3565b80633408e4701161024f57806344e0b2ce1161020857806370c2f1c0116101e257806370c2f1c014610a2257806379a135e314610aad5780637ba3a5e014610ac257806384ef9ed414610ad7576102e3565b806344e0b2ce14610729578063599897e31461073e5780636e7e1365146108d0576102e3565b80633408e470146105ca5780633644e515146105df578063375110aa146105f4578063383302001461064a5780633ee641ea1461069c5780633f267155146106cc576102e3565b80630ee8e52b116102a15780630ee8e52b146104015780631300aff01461042f5780631a748c2d146104445780631b0a8223146105765780632bd836261461058b578063314e5eda146105a0576102e3565b80624aca6e146102e8578063013f78521461032d57806304622c2e1461035e578063061d09641461037357806307feef6e1461039d5780630dd94b96146103b2575b600080fd5b3480156102f457600080fd5b5061031b6004803603602081101561030b57600080fd5b50356001600160a01b03166110f5565b60408051918252519081900360200190f35b34801561033957600080fd5b50610342611107565b604080516001600160a01b039092168252519081900360200190f35b34801561036a57600080fd5b5061031b611116565b34801561037f57600080fd5b5061031b6004803603602081101561039657600080fd5b503561113a565b3480156103a957600080fd5b5061031b61114c565b3480156103be57600080fd5b506103e5600480360360208110156103d557600080fd5b50356001600160a01b0316611152565b604080516001600160401b039092168252519081900360200190f35b34801561040d57600080fd5b5061041661116d565b6040805163ffffffff9092168252519081900360200190f35b34801561043b57600080fd5b5061031b611180565b34801561045057600080fd5b506105746004803603604081101561046757600080fd5b810190602081018135600160201b81111561048157600080fd5b82018360208201111561049357600080fd5b803590602001918460208302840111600160201b831117156104b457600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b81111561050357600080fd5b82018360208201111561051557600080fd5b803590602001918460208302840111600160201b8311171561053657600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295506111a4945050505050565b005b34801561058257600080fd5b50610342611367565b34801561059757600080fd5b50610342611376565b3480156105ac57600080fd5b50610574600480360360208110156105c357600080fd5b5035611385565b3480156105d657600080fd5b5061031b611409565b3480156105eb57600080fd5b5061031b61140d565b34801561060057600080fd5b506106366004803603604081101561061757600080fd5b5080356001600160a01b031690602001356001600160c01b03166114cb565b604080519115158252519081900360200190f35b34801561065657600080fd5b506106746004803603602081101561066d57600080fd5b50356115ac565b604080516001600160a01b039094168452602084019290925282820152519081900360600190f35b3480156106a857600080fd5b5061031b600480360360208110156106bf57600080fd5b503563ffffffff166115e6565b3480156106d857600080fd5b506106f6600480360360208110156106ef57600080fd5b50356115f8565b604080519687526020870195909552858501939093526060850191909152608084015260a0830152519081900360c00190f35b34801561073557600080fd5b5061041661162d565b34801561074a57600080fd5b5061057460048036036101a081101561076257600080fd5b810190602081018135600160201b81111561077c57600080fd5b82018360208201111561078e57600080fd5b803590602001918460208302840111600160201b831117156107af57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295949360208101935035915050600160201b8111156107fe57600080fd5b82018360208201111561081057600080fd5b803590602001918460208302840111600160201b8311171561083157600080fd5b919080806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250929550506001600160a01b03833581169450602084013581169360408101358216935060ff606082013516925060808101359160a082013581169160c081013582169160e08201358116916101008101358216916001600160401b036101208301351691610140013516611640565b3480156108dc57600080fd5b5061057460048036036102008110156108f457600080fd5b65ffffffffffff8235169160208101359160408201359190810190608081016060820135600160201b81111561092957600080fd5b82018360208201111561093b57600080fd5b803590602001918460018302840111600160201b8311171561095c57600080fd5b919390929091602081019035600160201b81111561097957600080fd5b82018360208201111561098b57600080fd5b803590602001918460018302840111600160201b831117156109ac57600080fd5b919390929091602081019035600160201b8111156109c957600080fd5b8201836020820111156109db57600080fd5b803590602001918460018302840111600160201b831117156109fc57600080fd5b919350915060ff81351690602081013515159060408101906080810190610100016118de565b348015610a2e57600080fd5b5061057460048036036040811015610a4557600080fd5b6001600160a01b038235169190810190604081016020820135600160201b811115610a6f57600080fd5b820183602082011115610a8157600080fd5b803590602001918460018302840111600160201b83111715610aa257600080fd5b509092509050611dc8565b348015610ab957600080fd5b50610342612051565b348015610ace57600080fd5b5061031b612060565b348015610ae357600080fd5b506103e5612066565b348015610af857600080fd5b50610342612075565b348015610b0d57600080fd5b50610b16612084565b6040805160ff9092168252519081900360200190f35b348015610b3857600080fd5b50610574612089565b348015610b4d57600080fd5b5061057460048036036101a0811015610b6557600080fd5b506040810160c0820163ffffffff6101008401358116906001600160c01b0361012086013516906101408601351665ffffffffffff6101608701351661018087013515156122a8565b348015610bba57600080fd5b5061031b60048036036020811015610bd157600080fd5b503563ffffffff1661267b565b348015610bea57600080fd5b5061031b61268d565b348015610bff57600080fd5b5061034260048036036020811015610c1657600080fd5b50356126b1565b348015610c2957600080fd5b5061031b6126d8565b348015610c3e57600080fd5b50610b166126de565b348015610c5357600080fd5b506103e56126ee565b348015610c6857600080fd5b50610574612704565b348015610c7d57600080fd5b5061057460048036036020811015610c9457600080fd5b810190602081018135600160201b811115610cae57600080fd5b820183602082011115610cc057600080fd5b803590602001918460208302840111600160201b83111715610ce157600080fd5b91908080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525092955061283e945050505050565b348015610d2b57600080fd5b5061031b612a2e565b348015610d4057600080fd5b5061031b612a34565b610574600480360360e0811015610d5f57600080fd5b81359165ffffffffffff602082013581169264ffffffffff604084013581169360608101359091169263ffffffff6080830135169260a0830135909116919081019060e0810160c0820135600160201b811115610dbb57600080fd5b820183602082011115610dcd57600080fd5b803590602001918460018302840111600160201b83111715610dee57600080fd5b509092509050612a58565b348015610e0557600080fd5b5061057460048036036020811015610e1c57600080fd5b503560ff16612d6e565b348015610e3257600080fd5b5061031b600480360360c0811015610e4957600080fd5b5080359060208101359060408101359060608101359060808101359060a00135612e4e565b348015610e7a57600080fd5b5061031b60048036036020811015610e9157600080fd5b503563ffffffff16612e7b565b348015610eaa57600080fd5b50610416612e8d565b348015610ebf57600080fd5b50610ec8612ea0565b6040805165ffffffffffff9092168252519081900360200190f35b348015610eef57600080fd5b50610574600480360360e0811015610f0657600080fd5b63ffffffff82358116926001600160c01b0360208201351692604082013592606083013516919081019060a081016080820135600160201b811115610f4a57600080fd5b820183602082011115610f5c57600080fd5b803590602001918460208302840111600160201b83111715610f7d57600080fd5b9190808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152509295505065ffffffffffff83351693505050602001351515612eb5565b348015610fd657600080fd5b50610ffa60048036036020811015610fed57600080fd5b503563ffffffff166130a5565b6040805160208082528351818301528351919283929083019185019080838360005b8381101561103457818101518382015260200161101c565b50505050905090810190601f1680156110615780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561107b57600080fd5b5061031b613140565b34801561109057600080fd5b50610574600480360360208110156110a757600080fd5b50356001600160401b0316613164565b3480156110c357600080fd5b50610636600480360360408110156110da57600080fd5b50803563ffffffff16906020013565ffffffffffff16613259565b600f6020526000908152604090205481565b6005546001600160a01b031681565b7fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad81565b60046020526000908152604090205481565b60035481565b6007602052600090815260409020546001600160401b031681565b601354600160601b900463ffffffff1681565b7fff946cf82975b1a2b6e6d28c9a76a4b8d7a1fd0592b785cb92771933310f9ee781565b6005546001600160a01b031633146111ed5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b805182511461122d5760405162461bcd60e51b815260040180806020018281038252604181526020018061556b6041913960600191505060405180910390fd5b60005b82518110156112a75781818151811061124557fe5b60200260200101516007600085848151811061125d57fe5b6020908102919091018101516001600160a01b03168252810191909152604001600020805467ffffffffffffffff19166001600160401b0392909216919091179055600101611230565b507f10ff643ebeca3e33002e61b76fa85e7e10091e30afa39295f91af9838b3033b38282604051808060200180602001838103835285818151815260200191508051906020019060200280838360005b8381101561130f5781810151838201526020016112f7565b50505050905001838103825284818151815260200191508051906020019060200280838360005b8381101561134e578181015183820152602001611336565b5050505090500194505050505060405180910390a15050565b6006546001600160a01b031681565b6011546001600160a01b031681565b6005546001600160a01b031633146113ce5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b60108190556040805182815290517fd1c873cd16013f0dc5f37992c0d12794389698512895ec036a568e393b46e3c19181900360200190a150565b4690565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc661147a611409565b3060405160200180868152602001858152602001848152602001838152602001826001600160a01b031681526020019550505050505060405160208183030381529060405280519060200120905090565b6000806114d88484613279565b9050806114e95760019150506115a6565b60006114f482613438565b905080600019141561150b576001925050506115a6565b600080600080600061152f60046000888152602001908152602001600020546115f8565b9550955095509550955050600061154f864361349590919063ffffffff16565b9050600061155d82866134de565b905061157361156c8286613520565b8790613579565b955082861115611581578295505b8561159857600099505050505050505050506115a6565b600199505050505050505050505b92915050565b600881815481106115b957fe5b60009182526020909120600390910201805460018201546002909201546001600160a01b03909116925083565b600b6020526000908152604090205481565b6001600160601b0381169163ffffffff606083901c811692608081901c82169260a082901c83169260c083901c169160e01c90565b600954600160d01b900463ffffffff1681565b600054610100900460ff168061165957506116596135d3565b80611667575060005460ff16155b6116a25760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff161580156116cd576000805460ff1961ff0019909116610100171660011790555b6001600160a01b038b16158015906116ed57506001600160a01b03821615155b6117285760405162461bcd60e51b815260040180806020018281038252602c81526020018061588d602c913960400191505060405180910390fd5b6117328e8e6135d9565b8b600960006101000a8154816001600160a01b0302191690836001600160a01b031602179055508a601160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555089601460006101000a8154816001600160a01b0302191690836001600160a01b0316021790555088601360106101000a81548160ff021916908360ff1602179055508760108190555060ff600960146101000a81548165ffffffffffff021916908365ffffffffffff16021790555060016013600c6101000a81548163ffffffff021916908363ffffffff160217905550600e60009080600181540180825580915050600190039060005260206000200160009091909190916101000a8154816001600160a01b0302191690836001600160a01b031602179055506118668787876136aa565b6118718484846137a0565b6040805160ff8b168152602081018a90526001600160401b0385168183015290517fc5272ad4c8d9f2e9af2f9555c11ead049be22b6e45c16975adc82371b7cd10409181900360600190a180156118ce576000805461ff00191690555b5050505050505050505050505050565b33321461191c5760405162461bcd60e51b815260040180806020018281038252602a815260200180615842602a913960400191505060405180910390fd5b6011546040805163041d8fb560e51b815233600482015243602482015290516001600160a01b03909216916383b1f6a091604480820192602092909190829003018186803b15801561196d57600080fd5b505afa158015611981573d6000803e3d6000fd5b505050506040513d602081101561199757600080fd5b505115156001146119d95760405162461bcd60e51b81526004018080602001828103825260228152602001806157416022913960400191505060405180910390fd5b83611a3557601354600160801b810460ff166001600160401b0391821601164310611a355760405162461bcd60e51b8152600401808060200182810382526026815260200180615c266026913960400191505060405180910390fd5b6000611a448f8f8f888a613895565b905060088660ff1681548110611a5657fe5b60009182526020918290206003909102015460408051928301815283835280516343753b4d60e01b81526001600160a01b03909216926343753b4d9288928892889290916004909101908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015611b15578181015183820152602001611afd565b5050505090500194505050505060206040518083038186803b158015611b3a57600080fd5b505afa158015611b4e573d6000803e3d6000fd5b505050506040513d6020811015611b6457600080fd5b5051611ba15760405162461bcd60e51b81526004018080602001828103825260218152602001806155e86021913960400191505060405180910390fd5b6009601a81819054906101000a900463ffffffff168092919060010191906101000a81548163ffffffff021916908363ffffffff160217905550508e600960146101000a81548165ffffffffffff021916908365ffffffffffff1602179055508d600a60006009601a9054906101000a900463ffffffff1663ffffffff1663ffffffff168152602001908152602001600020819055508c600b60006009601a9054906101000a900463ffffffff1663ffffffff1663ffffffff1681526020019081526020016000208190555060028a8a6040518083838082843760405192019450602093509091505080830381855afa158015611ca2573d6000803e3d6000fd5b5050506040513d6020811015611cb757600080fd5b5051600954600160d01b900463ffffffff166000908152600c60205260408120919091558515611d08576013805467ffffffffffffffff1916436001600160401b0316179055611d05613b71565b90505b601154604080516309cb4a2f60e31b815233600482015290516001600160a01b0390921691634e5a51789160248082019260009290919082900301818387803b158015611d5457600080fd5b505af1158015611d68573d6000803e3d6000fd5b50506009546040805161ffff861681529051600160d01b90920463ffffffff1693507fe00040c8a3b0bf905636c26924e90520eafc5003324138236fddee2d3458861892506020908290030190a250505050505050505050505050505050565b6000836001600160a01b03166318160ddd6040518163ffffffff1660e01b815260040160206040518083038186803b158015611e0357600080fd5b505afa158015611e17573d6000803e3d6000fd5b505050506040513d6020811015611e2d57600080fd5b505111611e6b5760405162461bcd60e51b8152600401808060200182810382526023815260200180615cf86023913960400191505060405180910390fd5b600e54600160201b8110611eb05760405162461bcd60e51b815260040180806020018281038252602181526020018061586c6021913960400191505060405180910390fd5b6001600160a01b038416611ef55760405162461bcd60e51b81526004018080602001828103825260238152602001806157ee6023913960400191505060405180910390fd5b6001600160a01b0384166000908152600f602052604090205415611f60576040805162461bcd60e51b815260206004820152601f60248201527f4865726d657a3a3a616464546f6b656e3a20414c52454144595f414444454400604482015290519081900360640190fd5b6005546001600160a01b03163314611fb6578115611f9357601454601054611f93916001600160a01b0316908585613c2e565b601454600554601054611fb6926001600160a01b03908116923392911690613ef7565b600e8054600181019091557fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd0180546001600160a01b0319166001600160a01b0386169081179091556000818152600f6020908152604091829020849055815163ffffffff8516815291517fcb73d161edb7cd4fb1d92fedfd2555384fd997fd44ab507656f8c81e15747dde9281900390910190a250505050565b6014546001600160a01b031681565b60085490565b6013546001600160401b031681565b6009546001600160a01b031681565b60f081565b3373b6d3f1056c015962fa66a4020e50522b58292d1e146120db5760405162461bcd60e51b8152600401808060200182810382526025815260200180615a056025913960400191505060405180910390fd5b60086000815481106120e957fe5b9060005260206000209060030201600101546101581461213a5760405162461bcd60e51b81526004018080602001828103825260318152602001806158116031913960400191505060405180910390fd5b6040518060600160405280733daa0b2a994b1bc60db9e312ad0a8d87a1bb16d26001600160a01b0316815260200161019081526020016020815250600860008154811061218357fe5b906000526020600020906003020160008201518160000160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060208201518160010155604082015181600201559050506040518060600160405280731dc4b451dfcd0e848881ede8c7a99978f00b13426001600160a01b0316815260200161080081526020016020815250600860018154811061221e57fe5b60009182526020808320845160039093020180546001600160a01b039093166001600160a01b031993841617815590840151600182015560409384015160029091015560098054909116734464a1e499cf5443541da6728871af1d5c4920ca17905590517fd5303fa2e7ece2a0fe77fbba1df5bb224b461198dd7bfd7fe0071f964c86c6739190a1565b801561231a576122df600e8663ffffffff16815481106122c457fe5b6000918252602090912001546001600160a01b031685614054565b61231a5760405162461bcd60e51b8152600401808060200182810382526043815260200180615ad56043913960600191505060405180910390fd5b63ffffffff83166000908152600d6020908152604080832065ffffffffffff8616845290915290205460ff16156123825760405162461bcd60e51b815260040180806020018281038252602e815260200180615a7d602e913960400191505060405180910390fd5b63ffffffff83166000908152600b602090815260408083205481518084018290523360601b818401526001600160e01b031960e08b901b16605482015267ffffffffffffffff1989841b1660588201526001600160d01b031960d088901b1660708201528251605681830301815260769091019283905280519194937f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000019360029390918291908401908083835b6020831061244e5780518252601f19909201916020918201910161242f565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa15801561248d573d6000803e3d6000fd5b5050506040513d60208110156124a257600080fd5b5051816124ab57fe5b600954604080516020810182529390920680845282516343753b4d60e01b81529094506001600160a01b03909116926343753b4d928e928e928e929091600401908190869080828437600083820152601f01601f1916909101905084608080828437600083820152601f01601f1916909101905083604080828437600081840152601f19601f82011690508083019250505082600160200280838360005b83811015612561578181015183820152602001612549565b5050505090500194505050505060206040518083038186803b15801561258657600080fd5b505afa15801561259a573d6000803e3d6000fd5b505050506040513d60208110156125b057600080fd5b505115156001146125f25760405162461bcd60e51b8152600401808060200182810382526029815260200180615ba66029913960400191505060405180910390fd5b63ffffffff85166000908152600d6020908152604080832065ffffffffffff881684529091529020805460ff191660011790556126308688856141bb565b8215158563ffffffff168565ffffffffffff167f69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f41560405160405180910390a450505050505050505050565b600a6020526000908152604090205481565b7fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc681565b600e81815481106126be57fe5b6000918252602090912001546001600160a01b0316905081565b600e5490565b601354600160801b900460ff1681565b600554600160a01b90046001600160401b031681565b6005546001600160a01b0316331461274d5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b600160038190555061276d6001600160601b036000806001600080612e4e565b6000808052600460208190527f17ef568e3e12ab5b9c7254a8d58478811de00f9e6eb34345acd53bf8fd09d3ec9290925560065460055460408051630e670af560e01b8152600160a01b9092046001600160401b03169482019490945292516001600160a01b0390911692630e670af592602480830193919282900301818387803b1580156127fb57600080fd5b505af115801561280f573d6000803e3d6000fd5b50506040517f0410e6ef2bd89ecf5b2dc2f62157f9863e09e89cb7c7f1abb7d4ec43a6019d1e925060009150a1565b6005546001600160a01b031633146128875760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b805160058111156128c95760405162461bcd60e51b81526004018080602001828103825260408152602001806157016040913960400191505060405180910390fd5b600381905560005b818110156129b45760008060008060006128fd8887815181106128f057fe5b60200260200101516115f8565b9550955095509550509450808411156129475760405162461bcd60e51b815260040180806020018281038252605d815260200180615d88605d913960600191505060405180910390fd5b600083116129865760405162461bcd60e51b8152600401808060200182810382526050815260200180615ca86050913960600191505060405180910390fd5b612994854386868686612e4e565b6000878152600460205260409020555050600190930192506128d1915050565b507fd4904145d7eae889c5493798579680417459783db0fa67398bea50e56859075f826040518080602001828103825283818151815260200191508051906020019060200280838360005b83811015612a175781810151838201526020016129ff565b505050509050019250505060405180910390a15050565b60105481565b7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f81565b600e5463ffffffff851610612a9e5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c4c602e913960400191505060405180910390fd5b6000612aa987614355565b9050600160801b8110612aed5760405162461bcd60e51b81526004018080602001828103825260318152602001806156096031913960400191505060405180910390fd5b8015612d545763ffffffff8516612b4157348114612b3c5760405162461bcd60e51b8152600401808060200182810382526037815260200180615eda6037913960400191505060405180910390fd5b612d54565b3415612b7e5760405162461bcd60e51b815260040180806020018281038252602f815260200180615936602f913960400191505060405180910390fd5b8115612bb757612bb7600e8663ffffffff1681548110612b9a57fe5b6000918252602090912001546001600160a01b0316828585613c2e565b6000600e8663ffffffff1681548110612bcc57fe5b60009182526020918290200154604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b158015612c1b57600080fd5b505afa158015612c2f573d6000803e3d6000fd5b505050506040513d6020811015612c4557600080fd5b5051600e8054919250612c7f9163ffffffff8916908110612c6257fe5b6000918252602090912001546001600160a01b0316333085613ef7565b6000600e8763ffffffff1681548110612c9457fe5b60009182526020918290200154604080516370a0823160e01b815230600482015290516001600160a01b03909216926370a0823192602480840193829003018186803b158015612ce357600080fd5b505afa158015612cf7573d6000803e3d6000fd5b505050506040513d6020811015612d0d57600080fd5b505190508181038314612d515760405162461bcd60e51b8152600401808060200182810382526039815260200180615e0f6039913960400191505060405180910390fd5b50505b612d63338a8a8a8a8a8a61436d565b505050505050505050565b6005546001600160a01b03163314612db75760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b60f060ff82161115612dfa5760405162461bcd60e51b815260040180806020018281038252603c8152602001806155ac603c913960400191505060405180910390fd5b6013805460ff8316600160801b810260ff60801b199092169190911790915560408051918252517fff6221781ac525b04585dbb55cd2ebd2a92c828ca3e42b23813a1137ac9744319181900360200190a150565b600060e082901b60c084901b60a086901b608088901b60608a901b8b171717171790509695505050505050565b600c6020526000908152604090205481565b601354600160401b900463ffffffff1681565b600954600160a01b900465ffffffffffff1681565b8015612f2757612eec600e8863ffffffff1681548110612ed157fe5b6000918252602090912001546001600160a01b031687614054565b612f275760405162461bcd60e51b81526004018080602001828103825260478152602001806159656047913960600191505060405180910390fd5b612f2f61540d565b612f46886000896001600160c01b031689336145ca565b90506000612f538261462c565b63ffffffff87166000908152600b6020908152604080832054600d835281842065ffffffffffff8a168552909252909120549192509060ff1615612fc85760405162461bcd60e51b8152600401808060200182810382526032815260200180615a2a6032913960400191505060405180910390fd5b612fdc81878765ffffffffffff16856146c9565b151560011461301c5760405162461bcd60e51b815260040180806020018281038252602e815260200180615c7a602e913960400191505060405180910390fd5b63ffffffff87166000908152600d6020908152604080832065ffffffffffff891684529091529020805460ff1916600117905561305a898b866141bb565b8315158763ffffffff168665ffffffffffff167f69177d798b38e27bcc4e0338307e4f1490e12d1006729d0e6e9cc82a8732f41560405160405180910390a450505050505050505050565b60126020908152600091825260409182902080548351601f6002600019610100600186161502019093169290920491820184900484028101840190945280845290918301828280156131385780601f1061310d57610100808354040283529160200191613138565b820191906000526020600020905b81548152906001019060200180831161311b57829003601f168201915b505050505081565b7fafd642c6a37a2e6887dc4ad5142f84197828a904e53d3204ecb1100329231eaa81565b6005546001600160a01b031633146131ad5760405162461bcd60e51b815260040180806020018281038252603f815260200180615d49603f913960400191505060405180910390fd5b62127500816001600160401b031611156131f85760405162461bcd60e51b815260040180806020018281038252604a815260200180615763604a913960600191505060405180910390fd5b600580546001600160401b038316600160a01b810267ffffffffffffffff60a01b199092169190911790915560408051918252517f9db302c4547a21fb20a3a794e5f63ee87eb6e4afc3325ebdadba2d1fb4a907379181900360200190a150565b600d60209081526000928352604080842090915290825290205460ff1681565b6001600160a01b0382166000908152600760205260408120546001600160401b03166132a7575060006115a6565b6001600160a01b0383166000818152600760205260408120546402540be4006001600160401b039091166001600160c01b0386160204916132ea575060126133dd565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b178152915181516000936060936001600160a01b038b16939092909182918083835b602083106133505780518252601f199092019160209182019101613331565b6001836020036101000a038019825116818451168082178552505050505050905001915050600060405180830381855afa9150503d80600081146133b0576040519150601f19603f3d011682016040523d82523d6000602084013e6133b5565b606091505b509150915081156133da578080602001905160208110156133d557600080fd5b505192505b50505b604d8160ff161061341f5760405162461bcd60e51b815260040180806020018281038252603b8152602001806154f0603b913960400191505060405180910390fd5b8060ff16600a0a828161342e57fe5b0495945050505050565b6000805b600354811215613489576000818152600460205260409020546001600160601b031680841115806134735750806001600160601b03145b1561348057509050613490565b5060010161343c565b5060001990505b919050565b60006134d783836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f770000815250614750565b9392505050565b60006134d783836040518060400160405280601a81526020017f536166654d6174683a206469766973696f6e206279207a65726f0000000000008152506147e7565b60008261352f575060006115a6565b8282028284828161353c57fe5b04146134d75760405162461bcd60e51b8152600401808060200182810382526021815260200180615a5c6021913960400191505060405180910390fd5b6000828201838110156134d7576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b303b1590565b60005b82518110156136a557600860405180606001604052808584815181106135fe57fe5b60200260200101516001600160a01b0316815260200160088086868151811061362357fe5b6020026020010151901b901c815260200160f885858151811061364257fe5b60209081029190910181015190911c909152825460018082018555600094855293829020835160039092020180546001600160a01b0319166001600160a01b039092169190911781559082015181840155604090910151600290910155016135dc565b505050565b600054610100900460ff16806136c357506136c36135d3565b806136d1575060005460ff16155b61370c5760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff16158015613737576000805460ff1961ff0019909116610100171660011790555b600080546001600160a01b03808716620100000262010000600160b01b031990921691909117909155600180548583166001600160a01b0319918216179091556002805492851692909116919091179055801561379a576000805461ff00191690555b50505050565b600054610100900460ff16806137b957506137b96135d3565b806137c7575060005460ff16155b6138025760405162461bcd60e51b815260040180806020018281038252602e8152602001806159ac602e913960400191505060405180910390fd5b600054610100900460ff1615801561382d576000805460ff1961ff0019909116610100171660011790555b600580546001600160a01b03199081166001600160a01b038781169190911767ffffffffffffffff60a01b1916600160a01b6001600160401b038816021790925560068054909116918416919091179055801561379a576000805461ff001916905550505050565b600954600160d01b810463ffffffff166000908152600a60205260408120546008805492939192600160a01b90920465ffffffffffff16918491829182919060ff89169081106138e157fe5b9060005260206000209060030201600101546008808960ff168154811061390457fe5b9060005260206000209060030201600201548161391d57fe5b0460020260050160010102905060006008808960ff168154811061393d57fe5b9060005260206000209060030201600201548161395657fe5b60408051929091048102848101808401614eb201909252614e72909101825260d087811b60208401528e901b6026830152602c8201889052604c82018d9052606c82018c90529150608c81016139ac818c614842565b614e00016139ba6004614a79565b9096509450838511156139fe5760405162461bcd60e51b815260040180806020018281038252602e815260200180615d1b602e913960400191505060405180910390fd5b848682378401613a1081868603614a8d565b84840301613a1e6005614a79565b909650945082851115613a625760405162461bcd60e51b815260040180806020018281038252604081526020018061552b6040913960400191505060405180910390fd5b848682378401613a7481868503614a8d565b848303810190504660f01b815260028101905060006009601a9054906101000a900463ffffffff1660010163ffffffff1690508060e01b82527f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000016002846040518082805190602001908083835b60208310613b005780518252601f199092019160209182019101613ae1565b51815160209384036101000a60001901801990921691161790526040519190930194509192505080830381855afa158015613b3f573d6000803e3d6000fd5b5050506040513d6020811015613b5457600080fd5b505181613b5d57fe5b069f9e505050505050505050505050505050565b601354600160401b900463ffffffff1660009081526012602052604081208054604e600261010060018416150260001901909216919091040490613bb5908361542b565b60138054600163ffffffff600160401b808404821692909201811682026bffffffff000000000000000019909316929092179283905582048116600160601b909204161415613c295760138054600163ffffffff600160601b808404821692909201160263ffffffff60601b199091161790555b905090565b600082826020811015613c4057600080fd5b50356001600160e01b031916905063d505accf60e01b8114613c935760405162461bcd60e51b815260040180806020018281038252602e815260200180615e83602e913960400191505060405180910390fd5b6000808080808080613ca8896004818d6154c7565b60e0811015613cb657600080fd5b506001600160a01b038135811698506020820135169650604081013595506060810135945060ff608082013516935060a0810135925060c001359050338714613d305760405162461bcd60e51b815260040180806020018281038252603081526020018061566e6030913960400191505060405180910390fd5b6001600160a01b0386163014613d775760405162461bcd60e51b81526004018080602001828103825260258152602001806159116025913960400191505060405180910390fd5b8a8514613db55760405162461bcd60e51b815260040180806020018281038252602d815260200180615bf9602d913960400191505060405180910390fd5b8b6001600160a01b031663d505accf60e01b8888888888888860405160240180886001600160a01b03168152602001876001600160a01b031681526020018681526020018581526020018460ff168152602001838152602001828152602001975050505050505050604051602081830303815290604052906001600160e01b0319166020820180516001600160e01b0383818316178352505050506040518082805190602001908083835b60208310613e7f5780518252601f199092019160209182019101613e60565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613ee1576040519150601f19603f3d011682016040523d82523d6000602084013e613ee6565b606091505b505050505050505050505050505050565b604080516001600160a01b0385811660248301528481166044830152606480830185905283518084039091018152608490920183526020820180516001600160e01b03166323b872dd60e01b17815292518251600094606094938a169392918291908083835b60208310613f7c5780518252601f199092019160209182019101613f5d565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114613fde576040519150601f19603f3d011682016040523d82523d6000602084013e613fe3565b606091505b5091509150818015614011575080511580614011575080806020019051602081101561400e57600080fd5b50515b61404c5760405162461bcd60e51b815260040180806020018281038252603481526020018061563a6034913960400191505060405180910390fd5b505050505050565b6000806140618484613279565b9050806140725760019150506115a6565b600061407d82613438565b9050806000191415614094576001925050506115a6565b6000806000806000806140b960046000898152602001908152602001600020546115f8565b95509550955095509550955060006140da864361349590919063ffffffff16565b905060006140e882866134de565b90506140f761156c8286613520565b955082861061410b57829550439650614122565b61411f6141188287613520565b8890613579565b96505b8561413a5760009a50505050505050505050506115a6565b614145866001613495565b9550614155888888888888612e4e565b600460008b815260200190815260200160002081905550868960ff167fa35fe9a9e21cdbbc4774aa8a56e7b97ea9c06afc09ffb06af593d26951e350aa886040518082815260200191505060405180910390a35060019c9b505050505050505050505050565b8015614201576141fc600e8363ffffffff16815481106141d757fe5b6000918252602090912001546001600160a01b0316336001600160c01b038616614aa6565b6136a5565b63ffffffff821661428d576006546040805163cfc0b64160e01b81523360048201526000602482018190526001600160c01b0387166044830181905292516001600160a01b039094169363cfc0b6419392606480820193929182900301818588803b15801561426f57600080fd5b505af1158015614283573d6000803e3d6000fd5b50505050506136a5565b6000600e8363ffffffff16815481106142a257fe5b6000918252602090912001546006546001600160a01b0391821692506142d4918391166001600160c01b038716614cf8565b6006546040805163cfc0b64160e01b81523360048201526001600160a01b0384811660248301526001600160c01b03881660448301529151919092169163cfc0b64191606480830192600092919082900301818387803b15801561433757600080fd5b505af115801561434b573d6000803e3d6000fd5b5050505050505050565b6407ffffffff811660239190911c601f16600a0a0290565b600061437884614355565b9050600160c01b81106143bc5760405162461bcd60e51b815260040180806020018281038252602e8152602001806158b9602e913960400191505060405180910390fd5b65ffffffffffff821661440b5780156144065760405162461bcd60e51b815260040180806020018281038252603b815260200180615e48603b913960400191505060405180910390fd5b6144c8565b65ffffffffffff8216600114156144605764ffffffffff8516156144065760405162461bcd60e51b815260040180806020018281038252603781526020018061569e6037913960400191505060405180910390fd5b60ff65ffffffffffff831611801561448d575060095465ffffffffffff600160a01b909104811690831611155b6144c85760405162461bcd60e51b8152600401808060200182810382526028815260200180615b7e6028913960400191505060405180910390fd5b65ffffffffffff861661451657866145115760405162461bcd60e51b81526004018080602001828103825260418152602001806157ad6041913960600191505060405180910390fd5b6145bb565b60ff65ffffffffffff8716118015614543575060095465ffffffffffff600160a01b909104811690871611155b61457e5760405162461bcd60e51b815260040180806020018281038252602a8152602001806158e7602a913960400191505060405180910390fd5b86156145bb5760405162461bcd60e51b8152600401808060200182810382526042815260200180615b186042913960600191505060405180910390fd5b61434b88888888888888614e45565b6145d261540d565b6145da61540d565b63ffffffff96909616602095861b65ffff000000001617690100000000000000000060b785901c1617865250928401919091526001600160ff1b031660408301526001600160a01b0316606082015290565b60025460405163248f667760e01b81526000916001600160a01b03169063248f6677908490600401808260808083838a5b8381101561467557818101518382015260200161465d565b5050505090500191505060206040518083038186803b15801561469757600080fd5b505afa1580156146ab573d6000803e3d6000fd5b505050506040513d60208110156146c157600080fd5b505192915050565b6000806146d68484614ffd565b8551909150600090600019015b60008112614743578681815181106146f757fe5b6020026020010151915060008187600082121561471057fe5b6001911c81161490508061472d576147288484615029565b614737565b6147378385615029565b935050600019016146e3565b5050909414949350505050565b600081848411156147df5760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156147a457818101518382015260200161478c565b50505050905090810190601f1680156147d15780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b505050900390565b600081836148365760405162461bcd60e51b81526020600482018181528351602484015283519092839260449091019190850190808383600083156147a457818101518382015260200161478c565b50600083858161342e57fe5b60008061484f6003614a79565b90925090506065810460006060851561491f57601354600160401b900463ffffffff166000908152601260209081526040918290208054835160026101006001841615026000190190921691909104601f81018490048402820184019094528381529290918301828280156149055780601f106148da57610100808354040283529160200191614905565b820191906000526020600020905b8154815290600101906020018083116148e857829003601f168201915b50505050509050604e81518161491757fe5b049150614924565b600091505b61010083830111156149675760405162461bcd60e51b8152600401808060200182810382526024815260200180615b5a6024913960400191505060405180910390fd5b811561499557604e820287019660208201905b8881101561499257815181526020918201910161497a565b50505b60005b83811015614a5c57600e546065870196803560001a916001820135916021810135916041820135916061013560e01c908110614a055760405162461bcd60e51b815260040180806020018281038252602a815260200180615aab602a913960400191505060405180910390fd5b6001600160a01b0360ff861615614a2557614a2283858789615046565b90505b60601b8d5260148d0191909152600060348d0181905260e09190911b60448d015260488c01525050604e9098019750600101614998565b50614a7087604e8585610100030302614a8d565b50505050505050565b602002600490810135602481019291013590565b808201915b828110156136a55760008152602001614a92565b6001600160a01b038316614ba45760408051600080825260208201909252339083906040518082805190602001908083835b60208310614af75780518252601f199092019160209182019101614ad8565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114614b59576040519150601f19603f3d011682016040523d82523d6000602084013e614b5e565b606091505b5050905080614b9e5760405162461bcd60e51b815260040180806020018281038252602a815260200180615bcf602a913960400191505060405180910390fd5b506136a5565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663a9059cbb60e01b178152925182516000946060949389169392918291908083835b60208310614c215780518252601f199092019160209182019101614c02565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614c83576040519150601f19603f3d011682016040523d82523d6000602084013e614c88565b606091505b5091509150818015614cb6575080511580614cb65750808060200190516020811015614cb357600080fd5b50515b614cf15760405162461bcd60e51b815260040180806020018281038252602c8152602001806156d5602c913960400191505060405180910390fd5b5050505050565b604080516001600160a01b038481166024830152604480830185905283518084039091018152606490920183526020820180516001600160e01b031663095ea7b360e01b178152925182516000946060949389169392918291908083835b60208310614d755780518252601f199092019160209182019101614d56565b6001836020036101000a0380198251168184511680821785525050505050509050019150506000604051808303816000865af19150503d8060008114614dd7576040519150601f19603f3d011682016040523d82523d6000602084013e614ddc565b606091505b5091509150818015614e0a575080511580614e0a5750808060200190516020811015614e0757600080fd5b50515b614cf15760405162461bcd60e51b815260040180806020018281038252602a815260200180615de5602a913960400191505060405180910390fd5b604080516bffffffffffffffffffffffff1960608a901b16602080830191909152603482018990526001600160d01b031960d089811b821660548501526001600160d81b031960d88a811b8216605a87015289901b16605f8501526001600160e01b031960e088901b16606485015285901b1660688301528251604e81840381018252606e9093018452601354600160601b900463ffffffff16600090815260129092529290208054600260001960018316156101000201909116049190910490614f10908361523f565b601354604080516020808252855181830152855160ff861694600160601b900463ffffffff16937fdd5c7c5ea02d3c5d1621513faa6de53d474ee6f111eda6352a63e3dfe8c401199388939092839283019185019080838360005b83811015614f83578181015183820152602001614f6b565b50505050905090810190601f168015614fb05780820380516001836020036101000a031916815260200191505b509250505060405180910390a360808160010110612d635760138054600163ffffffff600160601b808404821692909201160263ffffffff60601b19909116179055505050505050505050565b6000615007615472565b838152602081018390526001604082015261502181615389565b949350505050565b6000615033615490565b83815260208101839052615021816153c6565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08311156150a75760405162461bcd60e51b8152600401808060200182810382526029815260200180615eb16029913960400191505060405180910390fd5b604080517fafd642c6a37a2e6887dc4ad5142f84197828a904e53d3204ecb1100329231eaa6020808301919091527fbe287413178bfeddef8d9753ad4be825ae998706a6dabff23978b59dccaea0ad828401527fff946cf82975b1a2b6e6d28c9a76a4b8d7a1fd0592b785cb92771933310f9ee7606083015260808083018990528351808403909101815260a09092019092528051910120600061514961140d565b82604051602001808061190160f01b81525060020183815260200182815260200192505050604051602081830303815290604052805190602001209050600060018286898960405160008152602001604052604051808581526020018460ff1681526020018381526020018281526020019450505050506020604051602081039080840390855afa1580156151e2573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166152345760405162461bcd60e51b815260040180806020018281038252602b8152602001806159da602b913960400191505060405180910390fd5b979650505050505050565b8154600260018083161561010002038216048251808201602081106020841001600281146152e9576001811461530e578660005260208404602060002001600160028402018855602085068060200390508088018589016001836101000a0392508282511684540184556001840193506020820191505b808210156152d357815184556001840193506020820191506152b6565b815191036101000a908190040290915550614a70565b60028302826020036101000a846020036101000a602089015104020185018755614a70565b8660005260208404602060002001600160028402018855846020038088018589016001836101000a0392508282511660ff198a160184556020820191506001840193505b8082101561536f5781518455600184019350602082019150615352565b815191036101000a90819004029091555050505050505050565b6001546040516304b98e1d60e31b8152825160049091019081526000916001600160a01b0316906325cc70e890849080826060808383602061465d565b60008054604080516314d2f97b60e11b8152620100009092046001600160a01b0316916329a5f2f691859160040190819083908083838a818101518382015260200161465d565b60405180608001604052806004906020820280368337509192915050565b50805460018160011615610100020316600290046000825580601f10615451575061546f565b601f01602090049060005260206000209081019061546f91906154ae565b50565b60405180606001604052806003906020820280368337509192915050565b60405180604001604052806002906020820280368337509192915050565b5b808211156154c357600081556001016154af565b5090565b600080858511156154d6578182fd5b838611156154e2578182fd5b505082019391909203915056fe496e7374616e7457697468647261774d616e616765723a3a5f746f6b656e325553443a20544f4b454e5f444543494d414c535f4f564552464c4f574865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a20494e56414c49445f464545494458434f4f5244494e41544f525f4c454e475448496e7374616e7457697468647261774d616e616765723a3a757064617465546f6b656e45786368616e67653a20494e56414c49445f41525241595f4c454e4754484865726d657a3a3a757064617465466f7267654c314c32426174636854696d656f75743a204d41585f464f52474554494d454f55545f4558434545444865726d657a3a3a666f72676542617463683a20494e56414c49445f50524f4f464865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f736166655472616e7366657246726f6d3a2045524332305f5452414e5346455246524f4d5f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f4f574e45525f4d5553545f42455f5448455f53454e4445524865726d657a3a3a5f6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4d5553545f42455f305f49465f455849544865726d657a3a3a5f736166655472616e736665723a2045524332305f5452414e534645525f4641494c4544496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a204d41585f4e554d5f4255434b4554534865726d657a3a3a666f72676542617463683a2041554354494f4e5f44454e494544496e7374616e7457697468647261774d616e616765723a3a7570646174655769746864726177616c44656c61793a204558434545445f4d41585f5749544844524157414c5f44454c41594865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f4352454154455f4143434f554e545f574954485f4e4f5f424142594a55424865726d657a3a3a616464546f6b656e3a20414444524553535f305f494e56414c49444865726d657a3a3a757064617465566572696669657273205645524946494552535f414c52454144595f555044415445444865726d657a3a3a666f72676542617463683a20494e54454e414c5f54585f4e4f545f414c4c4f5745444865726d657a3a3a616464546f6b656e3a20544f4b454e5f4c4953545f46554c4c4865726d657a3a3a696e697469616c697a654865726d657a20414444524553535f305f4e4f545f56414c49444865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4558434545445f4c494d49544865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f46524f4d4944584865726d657a3a3a5f7065726d69743a205350454e4445525f4d5553545f42455f544849534865726d657a3a3a6164644c315472616e73616374696f6e3a204d53475f56414c55455f4e4f545f455155414c5f304865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e4745496e697469616c697a61626c653a20636f6e747261637420697320616c726561647920696e697469616c697a65644865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f5349474e41545552454865726d657a3a3a757064617465566572696669657273204f4e4c595f4445504c4f5945524865726d657a3a3a77697468647261774d65726b6c6550726f6f663a2057495448445241575f414c52454144595f444f4e45536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774865726d657a3a3a7769746864726177436972637569743a2057495448445241575f414c52454144595f444f4e454865726d657a3a3a5f6275696c644c31446174613a20544f4b454e5f4e4f545f524547495354455245444865726d657a3a3a7769746864726177436972637569743a20494e5354414e545f57495448445241575f5741535445445f464f525f544849535f5553445f52414e47454865726d657a3a3a5f6164644c315472616e73616374696f6e3a20424142594a55425f4d5553545f42455f305f49465f4e4f545f4352454154455f4143434f554e544865726d657a3a3a5f6275696c644c31446174613a204c315f54585f4f564552464c4f574865726d657a3a3a5f6164644c315472616e73616374696f6e3a20494e56414c49445f544f4944584865726d657a3a3a7769746864726177436972637569743a20494e56414c49445f5a4b5f50524f4f464865726d657a3a3a5f736166655472616e736665723a204554485f5452414e534645525f4641494c45444865726d657a3a3a5f7065726d69743a205045524d49545f414d4f554e545f444f45535f4e4f545f4d415443484865726d657a3a3a666f72676542617463683a204c314c3242415443485f52455155495245444865726d657a3a3a6164644c315472616e73616374696f6e3a20544f4b454e5f4e4f545f524547495354455245444865726d657a3a3a77697468647261774d65726b6c6550726f6f663a20534d545f50524f4f465f494e56414c4944496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a20524154455f424c4f434b535f4d5553545f42455f4d4f52455f5448414e5f304865726d657a3a3a616464546f6b656e3a20544f54414c5f535550504c595f5a45524f4865726d657a3a3a5f636f6e73747275637443697263756974496e7075743a204c325f54585f4f564552464c4f57496e7374616e7457697468647261774d616e616765723a3a6f6e6c79476f7665726e616e63653a204f4e4c595f474f5645524e414e43455f41444452455353496e7374616e7457697468647261774d616e616765723a3a7570646174654275636b657473506172616d65746572733a205749544844524157414c535f4d5553545f42455f4c4553535f5448414e5f4d41585749544844524157414c534865726d657a3a3a5f73616665417070726f76653a2045524332305f415050524f56455f4641494c45444865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f45524332305f444f45535f4e4f545f4d415443484865726d657a3a3a5f6164644c315472616e73616374696f6e3a20414d4f554e545f4d5553545f42455f305f49465f4e4f545f5452414e534645524865726d657a41756374696f6e50726f746f636f6c3a3a5f7065726d69743a204e4f545f56414c49445f43414c4c4865726d657a48656c706572733a3a5f636865636b5369673a20494e56414c49445f535f56414c55454865726d657a3a3a6164644c315472616e73616374696f6e3a204c4f4144414d4f554e545f4554485f444f45535f4e4f545f4d41544348a2646970667358221220e5fc23964ebee4391cb37d0cad23ee3495099d877a43d55d3932956e0ec65a9c64736f6c634300060c0033
🤖 Code Reader

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

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

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.