ETH Price: $1,728.40 (+3.28%)

Contract

0x208507bE7B01bEcFA4d93eE8a7d1F202eC66cACf
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

ContractCreator

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

ApyUSD

Compiler Version
v0.8.30+commit.73712a01
Optimization Enabled
Yes with 200 runs
Other Settings
prague EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"authority","type":"address"}],"name":"AccessManagedInvalidAuthority","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"uint32","name":"delay","type":"uint32"}],"name":"AccessManagedRequiredDelay","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"}],"name":"AccessManagedUnauthorized","type":"error"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"string","name":"name","type":"string"}],"name":"AddressNotSet","type":"error"},{"inputs":[{"internalType":"address","name":"denied","type":"address"}],"name":"Denied","type":"error"},{"inputs":[],"name":"ECDSAInvalidSignature","type":"error"},{"inputs":[{"internalType":"uint256","name":"length","type":"uint256"}],"name":"ECDSAInvalidSignatureLength","type":"error"},{"inputs":[{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"ECDSAInvalidSignatureS","type":"error"},{"inputs":[{"internalType":"address","name":"implementation","type":"address"}],"name":"ERC1967InvalidImplementation","type":"error"},{"inputs":[],"name":"ERC1967NonPayable","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"allowance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientAllowance","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"ERC20InsufficientBalance","type":"error"},{"inputs":[{"internalType":"address","name":"approver","type":"address"}],"name":"ERC20InvalidApprover","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"ERC20InvalidReceiver","type":"error"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"ERC20InvalidSender","type":"error"},{"inputs":[{"internalType":"address","name":"spender","type":"address"}],"name":"ERC20InvalidSpender","type":"error"},{"inputs":[{"internalType":"uint256","name":"deadline","type":"uint256"}],"name":"ERC2612ExpiredSignature","type":"error"},{"inputs":[{"internalType":"address","name":"signer","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"ERC2612InvalidSigner","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxDeposit","type":"error"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxMint","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxRedeem","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"max","type":"uint256"}],"name":"ERC4626ExceededMaxWithdraw","type":"error"},{"inputs":[],"name":"EnforcedPause","type":"error"},{"inputs":[],"name":"ExpectedPause","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"FeeExceedsMax","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint256","name":"currentNonce","type":"uint256"}],"name":"InvalidAccountNonce","type":"error"},{"inputs":[{"internalType":"string","name":"param","type":"string"}],"name":"InvalidAddress","type":"error"},{"inputs":[],"name":"InvalidCaller","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"SlippageExceeded","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","type":"error"},{"inputs":[{"internalType":"string","name":"reason","type":"string"}],"name":"UnlockTokenError","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"authority","type":"address"}],"name":"AuthorityUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldAdmin","type":"address"},{"indexed":true,"internalType":"address","name":"newAdmin","type":"address"}],"name":"CCIPAdminUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldDenyList","type":"address"},{"indexed":true,"internalType":"address","name":"newDenyList","type":"address"}],"name":"DenyListUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldFeeWallet","type":"address"},{"indexed":true,"internalType":"address","name":"newFeeWallet","type":"address"}],"name":"FeeWalletUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"value","type":"uint256"}],"name":"Transfer","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"unlockTokenShares","type":"uint256"}],"name":"UnlockTokenDepositError","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldUnlockToken","type":"address"},{"indexed":true,"internalType":"address","name":"newUnlockToken","type":"address"}],"name":"UnlockTokenUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldFee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newFee","type":"uint256"}],"name":"UnlockingFeeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"}],"name":"Unpaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"implementation","type":"address"}],"name":"Upgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldVesting","type":"address"},{"indexed":true,"internalType":"address","name":"newVesting","type":"address"}],"name":"VestingUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"receiver","type":"address"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"shares","type":"uint256"}],"name":"Withdraw","type":"event"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"asset","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"authority","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"convertToAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"convertToShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"denyList","outputs":[{"internalType":"contract IAddressList","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"deposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"minShares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"depositForMinShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeWallet","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCCIPAdmin","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"address","name":"initialAuthority","type":"address"},{"internalType":"address","name":"asset","type":"address"},{"internalType":"address","name":"initialDenyList","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isConsumingScheduledOp","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"maxMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"maxWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"maxAssets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"mintForMaxAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"paused","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewDeposit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewMint","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"name":"previewRedeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"name":"previewWithdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"proxiableUUID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"redeem","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"uint256","name":"minAssets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"redeemForMinAssets","outputs":[{"internalType":"uint256","name":"assets","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAuthority","type":"address"}],"name":"setAuthority","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"setCCIPAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IAddressList","name":"newDenyList","type":"address"}],"name":"setDenyList","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"setFeeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IUnlockToken","name":"newUnlockToken","type":"address"}],"name":"setUnlockToken","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"fee","type":"uint256"}],"name":"setUnlockingFee","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IVesting","name":"newVesting","type":"address"}],"name":"setVesting","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"unlockToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unlockingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"unpause","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"vesting","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"},{"internalType":"address","name":"owner","type":"address"}],"name":"withdraw","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"uint256","name":"maxShares","type":"uint256"},{"internalType":"address","name":"receiver","type":"address"}],"name":"withdrawForMaxShares","outputs":[{"internalType":"uint256","name":"shares","type":"uint256"}],"stateMutability":"nonpayable","type":"function"}]
60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613bcf6100f95f395f8181611c0701528181611c300152611d700152613bcf5ff3fe608060405260043610610341575f3560e01c80637ecebe00116101bd578063bf7e214f116100f2578063d505accf11610092578063dd62ed3e1161006d578063dd62ed3e1461096f578063ef1a6ab31461098e578063ef8b30f7146108a1578063f25f4b56146109ad575f5ffd5b8063d505accf14610912578063d905777e14610931578063db0ed6a014610950575f5ffd5b8063c6e6f592116100cd578063c6e6f592146108a1578063ce96cb77146108c0578063ceacd9d9146108df578063d2bcb953146108f3575f5ffd5b8063bf7e214f14610879578063c4c06bc11461088d578063c63d75b614610539575f5ffd5b806395d89b411161015d578063ad3cb1cc11610138578063ad3cb1cc146107ec578063b3d7f6b91461081c578063b460af941461083b578063ba0876521461085a575f5ffd5b806395d89b411461079a578063a8fa343c146107ae578063a9059cbb146107cd575f5ffd5b80638fb36037116101985780638fb36037146106f35780638fd6a6ac1461072057806390d49b9d1461075c57806394bf804d1461077b575f5ffd5b80637ecebe00146106995780638456cb59146106b857806384b0196e146106cc575f5ffd5b80633644e515116102935780634f1ef286116102335780636e553f651161020e5780636e553f651461061d5780636f6ff3bc1461063c57806370a082311461065b5780637a9e5e4b1461067a575f5ffd5b80634f1ef286146105d357806352d1902d146105e65780635c975abb146105fa575f5ffd5b8063402d267d1161026e578063402d267d1461053957806344c63eec1461055957806345955e9d146105955780634cdad506146105b4575f5ffd5b80633644e515146104fd57806338d52e0f146105115780633f4ba83a14610525575f5ffd5b80630bec9389116102fe57806318160ddd116102d957806318160ddd1461047857806318a24b5b1461048c57806323b872dd146104b8578063313ce567146104d7575f5ffd5b80630bec9389146104195780630de2731d1461043857806310ed68bc14610459575f5ffd5b806301e1d1141461034557806306fdde031461036c5780630773bb891461038d57806307a2d13a146103ac578063095ea7b3146103cb5780630a28a477146103fa575b5f5ffd5b348015610350575f5ffd5b506103596109e9565b6040519081526020015b60405180910390f35b348015610377575f5ffd5b50610380610b0c565b60405161036391906132c5565b348015610398575f5ffd5b506103596103a73660046132eb565b610bb1565b3480156103b7575f5ffd5b506103596103c6366004613321565b610c02565b3480156103d6575f5ffd5b506103ea6103e5366004613338565b610c13565b6040519015158152602001610363565b348015610405575f5ffd5b50610359610414366004613321565b610c2a565b348015610424575f5ffd5b506103596104333660046132eb565b610c67565b348015610443575f5ffd5b50610457610452366004613362565b610ca9565b005b348015610464575f5ffd5b506103596104733660046132eb565b610d06565b348015610483575f5ffd5b50610359610d49565b348015610497575f5ffd5b506104a0610d64565b6040516001600160a01b039091168152602001610363565b3480156104c3575f5ffd5b506103ea6104d236600461337d565b610d85565b3480156104e2575f5ffd5b506104eb610daa565b60405160ff9091168152602001610363565b348015610508575f5ffd5b50610359610db8565b34801561051c575f5ffd5b506104a0610dc1565b348015610530575f5ffd5b50610457610de9565b348015610544575f5ffd5b50610359610553366004613362565b505f1990565b348015610564575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f101546001600160a01b03166104a0565b3480156105a0575f5ffd5b506104576105af366004613362565b610dfc565b3480156105bf575f5ffd5b506103596105ce366004613321565b610eaa565b6104576105e1366004613446565b610edd565b3480156105f1575f5ffd5b50610359610efc565b348015610605575f5ffd5b505f516020613b7a5f395f51905f525460ff166103ea565b348015610628575f5ffd5b506103596106373660046134a6565b610f17565b348015610647575f5ffd5b50610457610656366004613362565b610f32565b348015610666575f5ffd5b50610359610675366004613362565b610fbc565b348015610685575f5ffd5b50610457610694366004613362565b610fec565b3480156106a4575f5ffd5b506103596106b3366004613362565b61106e565b3480156106c3575f5ffd5b50610457611078565b3480156106d7575f5ffd5b506106e0611089565b60405161036397969594939291906134d4565b3480156106fe575f5ffd5b50610707611132565b6040516001600160e01b03199091168152602001610363565b34801561072b575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f104546001600160a01b03166104a0565b348015610767575f5ffd5b50610457610776366004613362565b611168565b348015610786575f5ffd5b506103596107953660046134a6565b6111f2565b3480156107a5575f5ffd5b5061038061120d565b3480156107b9575f5ffd5b506104576107c8366004613362565b61124b565b3480156107d8575f5ffd5b506103ea6107e7366004613338565b6112d5565b3480156107f7575f5ffd5b50610380604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610827575f5ffd5b50610359610836366004613321565b6112e2565b348015610846575f5ffd5b5061035961085536600461356a565b6112ee565b348015610865575f5ffd5b5061035961087436600461356a565b61133b565b348015610884575f5ffd5b506104a0611388565b348015610898575f5ffd5b506104a061139d565b3480156108ac575f5ffd5b506103596108bb366004613321565b6113b2565b3480156108cb575f5ffd5b506103596108da366004613362565b6113bd565b3480156108ea575f5ffd5b506103596113ca565b3480156108fe575f5ffd5b5061045761090d366004613321565b6113df565b34801561091d575f5ffd5b5061045761092c36600461359e565b611487565b34801561093c575f5ffd5b5061035961094b366004613362565b6115dc565b34801561095b575f5ffd5b5061045761096a36600461362d565b6115e6565b34801561097a575f5ffd5b506103596109893660046136ca565b611816565b348015610999575f5ffd5b506103596109a83660046132eb565b61185f565b3480156109b8575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f103546001600160a01b03166104a0565b5f5f516020613b5a5f395f51905f5281610a01610dc1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6991906136f6565b60018301549091505f906001600160a01b031615610afa57826001015f9054906101000a90046001600160a01b03166001600160a01b03166344b1231f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af791906136f6565b90505b610b048183613721565b935050505090565b60605f5f516020613ada5f395f51905f525b9050806003018054610b2f90613734565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5b90613734565b8015610ba65780601f10610b7d57610100808354040283529160200191610ba6565b820191905f5260205f20905b815481529060010190602001808311610b8957829003601f168201915b505050505091505090565b5f5f610bbc85610c2a565b905083811115610bee576040516371c4efed60e01b815260048101859052602481018290526044015b60405180910390fd5b610bf98584336112ee565b95945050505050565b5f610c0d825f6118a1565b92915050565b5f33610c208185856118de565b5060019392505050565b5f805f516020613b5a5f395f51905f5290505f610c4b8483600201546118f0565b9050610c5f610c5a8286613721565b611914565b949350505050565b5f5f610c72856113b2565b905083811015610c9f576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf98584610f17565b610cb5335b5f36611920565b6001600160a01b038116610cfa57604051630b0f5aa160e11b815260206004820152600b60248201526a1b995dd1195b9e531a5cdd60aa1b6044820152606401610be5565b610d0381611a1e565b50565b5f5f610d1185610eaa565b905083811015610d3e576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf985843361133b565b5f805f516020613ada5f395f51905f525b6002015492915050565b5f805f516020613b5a5f395f51905f525b546001600160a01b031692915050565b5f33610d92858285611a7b565b610d9d858585611acc565b60019150505b9392505050565b5f610db3611b29565b905090565b5f610db3611b65565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00610d75565b610df233610cae565b610dfa611b6e565b565b610e0533610cae565b6001600160a01b038116610e4d57604051630b0f5aa160e11b815260206004820152600e60248201526d3732bbaab73637b1b5aa37b5b2b760911b6044820152606401610be5565b5f516020613b5a5f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f1a5a485ac0eee1509e14d8a336df010159dc9471ff9ea680a93705c6afe09960905f90a3505050565b5f5f516020613b5a5f395f51905f5281610ec384610c02565b9050610ed3818360020154611bcd565b610c5f908261376c565b610ee5611bfc565b610eee82611ca0565b610ef88282611ca9565b5050565b5f610f05611d65565b505f516020613b3a5f395f51905f5290565b5f5f195f610f24856113b2565b9050610c5f33858784611dae565b610f3b33610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10180546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e905f90a3505050565b5f805f516020613ada5f395f51905f525b6001600160a01b039093165f9081526020939093525050604090205490565b33610ff5611388565b6001600160a01b0316816001600160a01b0316146110305760405162d1953b60e31b81526001600160a01b0382166004820152602401610be5565b816001600160a01b03163b5f03611065576040516361798f2f60e11b81526001600160a01b0383166004820152602401610be5565b610ef882611dce565b5f610c0d82611e2e565b61108133610cae565b610dfa611e56565b5f60608082808083815f516020613b1a5f395f51905f5280549091501580156110b457506001810154155b6110f85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610be5565b611100611e9e565b611108611edc565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b5f516020613aba5f395f51905f5280545f9190600160a01b900460ff16611159575f611162565b638fb3603760e01b5b91505090565b61117133610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10380546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907f362a006325d32978b283e449d254cfcf93e2cccc321603ead9a74238d8dbf36e905f90a3505050565b5f5f195f6111ff856112e2565b9050610c5f33858388611dae565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f516020613ada5f395f51905f5291610b2f90613734565b61125433610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10480546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907fe6aed30f8fcb01c95cfd4d0512b436882bb2d9005792b8d1b791bc7505614d21905f90a3505050565b5f33610c20818585611acc565b5f610c0d8260016118a1565b5f5f6112f9836113bd565b90508085111561132257828582604051633fa733bb60e21b8152600401610be59392919061377f565b5f61132c86610c2a565b9050610bf93386868985611ef2565b5f5f611346836115dc565b90508085111561136f57828582604051632e52afbb60e21b8152600401610be59392919061377f565b5f61137986610eaa565b9050610bf9338686848a611ef2565b5f805f516020613aba5f395f51905f52610d75565b5f805f516020613afa5f395f51905f52610d75565b5f610c0d825f6122a1565b5f610c0d6105ce836115dc565b5f805f516020613b5a5f395f51905f52610d5a565b6113e833610cae565b662386f26fc1000081111561141357604051632d0d307f60e21b815260048101829052602401610be5565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f102805490829055604080518281526020810184905281515f516020613b5a5f395f51905f5293927fcd167f35db09c4a7c96ac237a10632fc27b7b6bf51a6c3a011734073fbe5b042928290030190a1505050565b834211156114ab5760405163313c898160e11b815260048101859052602401610be5565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886115158c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61156f826122d5565b90505f61157e82878787612301565b9050896001600160a01b0316816001600160a01b0316146115c5576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610be5565b6115d08a8a8a6118de565b50505050505050505050565b5f610c0d82610fbc565b5f6115ef61232d565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156116165750825b90505f8267ffffffffffffffff1660011480156116325750303b155b905081158015611640575080155b1561165e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561168857845460ff60401b1916600160401b1785555b6001600160a01b0388166116d257604051630b0f5aa160e11b815260206004820152601060248201526f696e697469616c417574686f7269747960801b6044820152606401610be5565b6001600160a01b03871661171157604051630b0f5aa160e11b8152602060048201526005602482015264185cdcd95d60da1b6044820152606401610be5565b6001600160a01b03861661175a57604051630b0f5aa160e11b815260206004820152600f60248201526e1a5b9a5d1a585b11195b9e531a5cdd608a1b6044820152606401610be5565b6117648a8a612355565b61176d8a612367565b611775612392565b61177e8661239a565b61178787612419565b6117908861242a565b6040516001600160a01b038716905f907f3bef1e143087d517781ffa170d222e23d9e7512704132830f1c9a86fa0fd022f908290a383156115d057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050505050565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f5f61186a856112e2565b905083811115611897576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf985846111f2565b5f610da36118ad6109e9565b6118b8906001613721565b6118c35f600a613883565b6118cb610d49565b6118d59190613721565b8591908561243b565b6118eb838383600161247d565b505050565b5f815f036118ff57505f610c0d565b610da38383670de0b6b3a7640000600161243b565b5f610c0d8260016122a1565b5f516020613aba5f395f51905f525f8061195861193b611388565b873061194a60045f8a8c613891565b611953916138b8565b612561565b9150915081611a165763ffffffff8116156119f357825460ff60a01b1916600160a01b178355611986611388565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016119b5939291906138ee565b5f604051808303815f87803b1580156119cc575f5ffd5b505af11580156119de573d5f5f3e3d5ffd5b5050845460ff60a01b1916855550611a169050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610be5565b505050505050565b5f516020613afa5f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f3bef1e143087d517781ffa170d222e23d9e7512704132830f1c9a86fa0fd022f905f90a3505050565b5f611a868484611816565b90505f19811015611ac65781811015611ab857828183604051637dc7a0d960e11b8152600401610be59392919061377f565b611ac684848484035f61247d565b50505050565b6001600160a01b038316611af557604051634b637e8f60e11b81525f6004820152602401610be5565b6001600160a01b038216611b1e5760405163ec442f0560e01b81525f6004820152602401610be5565b6118eb8383836125f3565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f81546111629190600160a01b900460ff1661392d565b5f610db36125fe565b611b76612671565b5f516020613b7a5f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f815f03611bdc57505f610c0d565b610da382611bf2670de0b6b3a764000082613721565b859190600161243b565b306001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161480611c8257507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316611c765f516020613b3a5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610dfa5760405163703e46dd60e11b815260040160405180910390fd5b610d0333610cae565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611d03575060408051601f3d908101601f19168201909252611d00918101906136f6565b60015b611d2b57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610be5565b5f516020613b3a5f395f51905f528114611d5b57604051632a87526960e21b815260048101829052602401610be5565b6118eb83836126a0565b306001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610dfa5760405163703e46dd60e11b815260040160405180910390fd5b83611db8816126f5565b83611dc2816126f5565b611a1686868686612727565b5f516020613aba5f395f51905f5280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610fcd565b611e5e6127a0565b5f516020613b7a5f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611baf565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f516020613b1a5f395f51905f5291610b2f90613734565b60605f5f516020613b1a5f395f51905f52610b1e565b84611efc816126f5565b84611f06816126f5565b84611f10816126f5565b5f516020613b5a5f395f51905f526001600160a01b0388811690881614611f4a576040516348f5c3ed60e01b815260040160405180910390fd5b80546001600160a01b0316611f905760405163ac96a6d360e01b815260206004820152600b60248201526a3ab73637b1b5aa37b5b2b760a91b6044820152606401610be5565b60018101546001600160a01b03161561200857806001015f9054906101000a90046001600160a01b03166001600160a01b031663687f26b56040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611ff1575f5ffd5b505af1158015612003573d5f5f3e3d5ffd5b505050505b5f6120178783600201546118f0565b60038301549091506001600160a01b031661203e8b308b612038868d613721565b8b6127d0565b5f8211801561205557506001600160a01b03811615155b801561206a57506001600160a01b0381163014155b1561208c5761208c818361207c610dc1565b6001600160a01b03169190612877565b612094610dc1565b835460405163095ea7b360e01b81526001600160a01b039182166004820152602481018b905291169063095ea7b3906044016020604051808303815f875af11580156120e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121069190613946565b508254604051636e553f6560e01b8152600481018a90526001600160a01b038c811660248301525f921690636e553f65906044016020604051808303815f875af1158015612156573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217a91906136f6565b905088811461221857604080518a8152602081018390527f193857efb76c849b5edcbbb1c3a40dd116e8382c1fd86094555d90a0e26dfff5910160405180910390a160405163c596872560e01b815260206004820152602a60248201527f61737365747320616e6420756e6c6f636b546f6b656e2073686172657320646f604482015269040dcdee840dac2e8c6d60b31b6064820152608401610be5565b8354604051633ea0e43760e11b8152600481018b90526001600160a01b038d811660248301819052604483015290911690637d41c86e906064016020604051808303815f875af115801561226e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229291906136f6565b50505050505050505050505050565b5f610da36122b082600a613883565b6122b8610d49565b6122c29190613721565b6122ca6109e9565b6118d5906001613721565b5f610c0d6122e1611b65565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f612311888888886128ac565b9250925092506123218282612974565b50909695505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c0d565b61235d612a2c565b610ef88282612a51565b61236f612a2c565b610d0381604051806040016040528060018152602001603160f81b815250612aa1565b610dfa612a2c565b6123a2612a2c565b6001600160a01b0381166123eb57604051630b0f5aa160e11b815260206004820152600f60248201526e1a5b9a5d1a585b11195b9e531a5cdd608a1b6044820152606401610be5565b5f516020613afa5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612421612a2c565b610d0381612b00565b612432612a2c565b610d0381612b83565b5f61246861244883612b94565b801561246357505f848061245e5761245e613965565b868809115b151590565b612473868686612bc0565b610bf99190613721565b5f516020613ada5f395f51905f526001600160a01b0385166124b45760405163e602df0560e01b81525f6004820152602401610be5565b6001600160a01b0384166124dd57604051634a1406b160e11b81525f6004820152602401610be5565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561255a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161255191815260200190565b60405180910390a35b5050505050565b6040516001600160a01b038085166024830152831660448201526001600160e01b0319821660648201525f908190819060840160408051601f19818403018152918152602080830180516001600160e01b031663b700961360e01b1781525f808052918290528351939450919290918a5afa156125e9575f516020805191945081901c150291505b5094509492505050565b6118eb838383612c70565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612628612c8d565b612630612cf5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f516020613b7a5f395f51905f525460ff16610dfa57604051638dfc202b60e01b815260040160405180910390fd5b6126a982612d37565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126ed576118eb8282612d9a565b610ef8612e3a565b6126fe81612e59565b15610d035760405163e7d05e2760e01b81526001600160a01b0382166004820152602401610be5565b61273a612732610dc1565b853085612ed6565b6127448382612f0c565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051612792929190918252602082015260400190565b60405180910390a350505050565b5f516020613b7a5f395f51905f525460ff1615610dfa5760405163d93c066560e01b815260040160405180910390fd5b826001600160a01b0316856001600160a01b0316146127f4576127f4838683611a7b565b6127fe8382612f40565b612810612809610dc1565b8584612877565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051612868929190918252602082015260400190565b60405180910390a45050505050565b6128848383836001612f74565b6118eb57604051635274afe760e01b81526001600160a01b0384166004820152602401610be5565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156128e557505f9150600390508261296a565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612936573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661296157505f92506001915082905061296a565b92505f91508190505b9450945094915050565b5f82600381111561298757612987613979565b03612990575050565b60018260038111156129a4576129a4613979565b036129c25760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156129d6576129d6613979565b036129f75760405163fce698f760e01b815260048101829052602401610be5565b6003826003811115612a0b57612a0b613979565b03610ef8576040516335e2f38360e21b815260048101829052602401610be5565b612a34612fd6565b610dfa57604051631afcd79f60e31b815260040160405180910390fd5b612a59612a2c565b5f516020613ada5f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612a9284826139d1565b5060048101611ac683826139d1565b612aa9612a2c565b5f516020613b1a5f395f51905f527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612ae284826139d1565b5060038101612af183826139d1565b505f8082556001909101555050565b612b08612a2c565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f80612b3484612fef565b9150915081612b44576012612b46565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b612b8b612a2c565b610d0381611dce565b5f6002826003811115612ba957612ba9613979565b612bb39190613a8c565b60ff166001149050919050565b5f5f5f612bcd868661307a565b91509150815f03612bf157838181612be757612be7613965565b0492505050610da3565b818411612c0857612c086003851502601118613096565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b612c79836126f5565b612c82826126f5565b6118eb8383836130a7565b5f5f516020613b1a5f395f51905f5281612ca5611e9e565b805190915015612cbd57805160209091012092915050565b81548015612ccc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f516020613b1a5f395f51905f5281612d0d611edc565b805190915015612d2557805160209091012092915050565b60018201548015612ccc579392505050565b806001600160a01b03163b5f03612d6c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610be5565b5f516020613b3a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f612da784846130ba565b9050808015612dc857505f3d1180612dc857505f846001600160a01b03163b115b15612ddd57612dd56130cd565b915050610c0d565b8015612e0757604051639996b31560e01b81526001600160a01b0385166004820152602401610be5565b3d15612e1a57612e156130e6565b612e33565b60405163d6bda27560e01b815260040160405180910390fd5b5092915050565b3415610dfa5760405163b398979f60e01b815260040160405180910390fd5b5f805f516020613afa5f395f51905f528054604051630bb7c8fd60e31b81526001600160a01b038681166004830152929350911690635dbe47e890602401602060405180830381865afa158015612eb2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da39190613946565b612ee48484848460016130f1565b611ac657604051635274afe760e01b81526001600160a01b0385166004820152602401610be5565b6001600160a01b038216612f355760405163ec442f0560e01b81525f6004820152602401610be5565b610ef85f83836125f3565b6001600160a01b038216612f6957604051634b637e8f60e11b81525f6004820152602401610be5565b610ef8825f836125f3565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316612fca578383151615612fbe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f612fdf61232d565b54600160401b900460ff16919050565b5f5f5f612ffb60405190565b6040805160048152602481019091526020810180516001600160e01b031663313ce56760e01b1790529091505f90819061303690879061315e565b509150915061304483604052565b818015613052575060203d10155b801561305f575060ff8111155b61306a575f5f61306e565b6001815b94509450505050915091565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b6130af6127a0565b6118eb83838361317f565b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661314d578383151615613141573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b5f5f5f60405f855160208701885afa92505f51915060205190509250925092565b5f516020613ada5f395f51905f526001600160a01b0384166131b95781816002015f8282546131ae9190613721565b909155506132169050565b6001600160a01b0384165f90815260208290526040902054828110156131f85784818460405163391434e360e21b8152600401610be59392919061377f565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316613234576002810180548390039055613252565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161279291815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610da36020830184613297565b6001600160a01b0381168114610d03575f5ffd5b5f5f5f606084860312156132fd575f5ffd5b83359250602084013591506040840135613316816132d7565b809150509250925092565b5f60208284031215613331575f5ffd5b5035919050565b5f5f60408385031215613349575f5ffd5b8235613354816132d7565b946020939093013593505050565b5f60208284031215613372575f5ffd5b8135610da3816132d7565b5f5f5f6060848603121561338f575f5ffd5b833561339a816132d7565b925060208401356133aa816132d7565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff8411156133e9576133e96133bb565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715613418576134186133bb565b60405283815290508082840185101561342f575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215613457575f5ffd5b8235613462816132d7565b9150602083013567ffffffffffffffff81111561347d575f5ffd5b8301601f8101851361348d575f5ffd5b61349c858235602084016133cf565b9150509250929050565b5f5f604083850312156134b7575f5ffd5b8235915060208301356134c9816132d7565b809150509250929050565b60ff60f81b8816815260e060208201525f6134f260e0830189613297565b82810360408401526135048189613297565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561355957835183526020938401939092019160010161353b565b50909b9a5050505050505050505050565b5f5f5f6060848603121561357c575f5ffd5b83359250602084013561358e816132d7565b91506040840135613316816132d7565b5f5f5f5f5f5f5f60e0888a0312156135b4575f5ffd5b87356135bf816132d7565b965060208801356135cf816132d7565b95506040880135945060608801359350608088013560ff811681146135f2575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f82601f83011261361e575f5ffd5b610da3838335602085016133cf565b5f5f5f5f5f60a08688031215613641575f5ffd5b853567ffffffffffffffff811115613657575f5ffd5b6136638882890161360f565b955050602086013567ffffffffffffffff81111561367f575f5ffd5b61368b8882890161360f565b945050604086013561369c816132d7565b925060608601356136ac816132d7565b915060808601356136bc816132d7565b809150509295509295909350565b5f5f604083850312156136db575f5ffd5b82356136e6816132d7565b915060208301356134c9816132d7565b5f60208284031215613706575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c0d57610c0d61370d565b600181811c9082168061374857607f821691505b60208210810361376657634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610c0d57610c0d61370d565b6001600160a01b039390931683526020830191909152604082015260600190565b6001815b60018411156137db578085048111156137bf576137bf61370d565b60018416156137cd57908102905b60019390931c9280026137a4565b935093915050565b5f826137f157506001610c0d565b816137fd57505f610c0d565b8160018114613813576002811461381d57613839565b6001915050610c0d565b60ff84111561382e5761382e61370d565b50506001821b610c0d565b5060208310610133831016604e8410600b841016171561385c575081810a610c0d565b6138685f1984846137a0565b805f190482111561387b5761387b61370d565b029392505050565b5f610da360ff8416836137e3565b5f5f8585111561389f575f5ffd5b838611156138ab575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015612e33576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b60ff8181168382160190811115610c0d57610c0d61370d565b5f60208284031215613956575f5ffd5b81518015158114610da3575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b601f8211156118eb57805f5260205f20601f840160051c810160208510156139b25750805b601f840160051c820191505b8181101561255a575f81556001016139be565b815167ffffffffffffffff8111156139eb576139eb6133bb565b6139ff816139f98454613734565b8461398d565b6020601f821160018114613a31575f8315613a1a5750848201515b5f19600385901b1c1916600184901b17845561255a565b5f84815260208120601f198516915b82811015613a605787850151825560209485019460019092019101613a40565b5084821015613a7d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60ff831680613aaa57634e487b7160e01b5f52601260045260245ffd5b8060ff8416069150509291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00de333b8ffad3aee9c87bb17db9ab84f10634c83b51f5022e3b2d7da89a012200a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f100cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c08b2d7d2d64b08ab57eb115c7b1fdec7eba040a1407af811d3b5ab0c2e1f99064736f6c634300081e0033
Deployed Bytecode
0x608060405260043610610341575f3560e01c80637ecebe00116101bd578063bf7e214f116100f2578063d505accf11610092578063dd62ed3e1161006d578063dd62ed3e1461096f578063ef1a6ab31461098e578063ef8b30f7146108a1578063f25f4b56146109ad575f5ffd5b8063d505accf14610912578063d905777e14610931578063db0ed6a014610950575f5ffd5b8063c6e6f592116100cd578063c6e6f592146108a1578063ce96cb77146108c0578063ceacd9d9146108df578063d2bcb953146108f3575f5ffd5b8063bf7e214f14610879578063c4c06bc11461088d578063c63d75b614610539575f5ffd5b806395d89b411161015d578063ad3cb1cc11610138578063ad3cb1cc146107ec578063b3d7f6b91461081c578063b460af941461083b578063ba0876521461085a575f5ffd5b806395d89b411461079a578063a8fa343c146107ae578063a9059cbb146107cd575f5ffd5b80638fb36037116101985780638fb36037146106f35780638fd6a6ac1461072057806390d49b9d1461075c57806394bf804d1461077b575f5ffd5b80637ecebe00146106995780638456cb59146106b857806384b0196e146106cc575f5ffd5b80633644e515116102935780634f1ef286116102335780636e553f651161020e5780636e553f651461061d5780636f6ff3bc1461063c57806370a082311461065b5780637a9e5e4b1461067a575f5ffd5b80634f1ef286146105d357806352d1902d146105e65780635c975abb146105fa575f5ffd5b8063402d267d1161026e578063402d267d1461053957806344c63eec1461055957806345955e9d146105955780634cdad506146105b4575f5ffd5b80633644e515146104fd57806338d52e0f146105115780633f4ba83a14610525575f5ffd5b80630bec9389116102fe57806318160ddd116102d957806318160ddd1461047857806318a24b5b1461048c57806323b872dd146104b8578063313ce567146104d7575f5ffd5b80630bec9389146104195780630de2731d1461043857806310ed68bc14610459575f5ffd5b806301e1d1141461034557806306fdde031461036c5780630773bb891461038d57806307a2d13a146103ac578063095ea7b3146103cb5780630a28a477146103fa575b5f5ffd5b348015610350575f5ffd5b506103596109e9565b6040519081526020015b60405180910390f35b348015610377575f5ffd5b50610380610b0c565b60405161036391906132c5565b348015610398575f5ffd5b506103596103a73660046132eb565b610bb1565b3480156103b7575f5ffd5b506103596103c6366004613321565b610c02565b3480156103d6575f5ffd5b506103ea6103e5366004613338565b610c13565b6040519015158152602001610363565b348015610405575f5ffd5b50610359610414366004613321565b610c2a565b348015610424575f5ffd5b506103596104333660046132eb565b610c67565b348015610443575f5ffd5b50610457610452366004613362565b610ca9565b005b348015610464575f5ffd5b506103596104733660046132eb565b610d06565b348015610483575f5ffd5b50610359610d49565b348015610497575f5ffd5b506104a0610d64565b6040516001600160a01b039091168152602001610363565b3480156104c3575f5ffd5b506103ea6104d236600461337d565b610d85565b3480156104e2575f5ffd5b506104eb610daa565b60405160ff9091168152602001610363565b348015610508575f5ffd5b50610359610db8565b34801561051c575f5ffd5b506104a0610dc1565b348015610530575f5ffd5b50610457610de9565b348015610544575f5ffd5b50610359610553366004613362565b505f1990565b348015610564575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f101546001600160a01b03166104a0565b3480156105a0575f5ffd5b506104576105af366004613362565b610dfc565b3480156105bf575f5ffd5b506103596105ce366004613321565b610eaa565b6104576105e1366004613446565b610edd565b3480156105f1575f5ffd5b50610359610efc565b348015610605575f5ffd5b505f516020613b7a5f395f51905f525460ff166103ea565b348015610628575f5ffd5b506103596106373660046134a6565b610f17565b348015610647575f5ffd5b50610457610656366004613362565b610f32565b348015610666575f5ffd5b50610359610675366004613362565b610fbc565b348015610685575f5ffd5b50610457610694366004613362565b610fec565b3480156106a4575f5ffd5b506103596106b3366004613362565b61106e565b3480156106c3575f5ffd5b50610457611078565b3480156106d7575f5ffd5b506106e0611089565b60405161036397969594939291906134d4565b3480156106fe575f5ffd5b50610707611132565b6040516001600160e01b03199091168152602001610363565b34801561072b575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f104546001600160a01b03166104a0565b348015610767575f5ffd5b50610457610776366004613362565b611168565b348015610786575f5ffd5b506103596107953660046134a6565b6111f2565b3480156107a5575f5ffd5b5061038061120d565b3480156107b9575f5ffd5b506104576107c8366004613362565b61124b565b3480156107d8575f5ffd5b506103ea6107e7366004613338565b6112d5565b3480156107f7575f5ffd5b50610380604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610827575f5ffd5b50610359610836366004613321565b6112e2565b348015610846575f5ffd5b5061035961085536600461356a565b6112ee565b348015610865575f5ffd5b5061035961087436600461356a565b61133b565b348015610884575f5ffd5b506104a0611388565b348015610898575f5ffd5b506104a061139d565b3480156108ac575f5ffd5b506103596108bb366004613321565b6113b2565b3480156108cb575f5ffd5b506103596108da366004613362565b6113bd565b3480156108ea575f5ffd5b506103596113ca565b3480156108fe575f5ffd5b5061045761090d366004613321565b6113df565b34801561091d575f5ffd5b5061045761092c36600461359e565b611487565b34801561093c575f5ffd5b5061035961094b366004613362565b6115dc565b34801561095b575f5ffd5b5061045761096a36600461362d565b6115e6565b34801561097a575f5ffd5b506103596109893660046136ca565b611816565b348015610999575f5ffd5b506103596109a83660046132eb565b61185f565b3480156109b8575f5ffd5b507f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f103546001600160a01b03166104a0565b5f5f516020613b5a5f395f51905f5281610a01610dc1565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610a45573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610a6991906136f6565b60018301549091505f906001600160a01b031615610afa57826001015f9054906101000a90046001600160a01b03166001600160a01b03166344b1231f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610ad3573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610af791906136f6565b90505b610b048183613721565b935050505090565b60605f5f516020613ada5f395f51905f525b9050806003018054610b2f90613734565b80601f0160208091040260200160405190810160405280929190818152602001828054610b5b90613734565b8015610ba65780601f10610b7d57610100808354040283529160200191610ba6565b820191905f5260205f20905b815481529060010190602001808311610b8957829003601f168201915b505050505091505090565b5f5f610bbc85610c2a565b905083811115610bee576040516371c4efed60e01b815260048101859052602481018290526044015b60405180910390fd5b610bf98584336112ee565b95945050505050565b5f610c0d825f6118a1565b92915050565b5f33610c208185856118de565b5060019392505050565b5f805f516020613b5a5f395f51905f5290505f610c4b8483600201546118f0565b9050610c5f610c5a8286613721565b611914565b949350505050565b5f5f610c72856113b2565b905083811015610c9f576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf98584610f17565b610cb5335b5f36611920565b6001600160a01b038116610cfa57604051630b0f5aa160e11b815260206004820152600b60248201526a1b995dd1195b9e531a5cdd60aa1b6044820152606401610be5565b610d0381611a1e565b50565b5f5f610d1185610eaa565b905083811015610d3e576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf985843361133b565b5f805f516020613ada5f395f51905f525b6002015492915050565b5f805f516020613b5a5f395f51905f525b546001600160a01b031692915050565b5f33610d92858285611a7b565b610d9d858585611acc565b60019150505b9392505050565b5f610db3611b29565b905090565b5f610db3611b65565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e00610d75565b610df233610cae565b610dfa611b6e565b565b610e0533610cae565b6001600160a01b038116610e4d57604051630b0f5aa160e11b815260206004820152600e60248201526d3732bbaab73637b1b5aa37b5b2b760911b6044820152606401610be5565b5f516020613b5a5f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f1a5a485ac0eee1509e14d8a336df010159dc9471ff9ea680a93705c6afe09960905f90a3505050565b5f5f516020613b5a5f395f51905f5281610ec384610c02565b9050610ed3818360020154611bcd565b610c5f908261376c565b610ee5611bfc565b610eee82611ca0565b610ef88282611ca9565b5050565b5f610f05611d65565b505f516020613b3a5f395f51905f5290565b5f5f195f610f24856113b2565b9050610c5f33858784611dae565b610f3b33610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10180546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907fa596bfd2fd3f8533a574f9df13f553b4d5751c65c233b974b15fa91891857f3e905f90a3505050565b5f805f516020613ada5f395f51905f525b6001600160a01b039093165f9081526020939093525050604090205490565b33610ff5611388565b6001600160a01b0316816001600160a01b0316146110305760405162d1953b60e31b81526001600160a01b0382166004820152602401610be5565b816001600160a01b03163b5f03611065576040516361798f2f60e11b81526001600160a01b0383166004820152602401610be5565b610ef882611dce565b5f610c0d82611e2e565b61108133610cae565b610dfa611e56565b5f60608082808083815f516020613b1a5f395f51905f5280549091501580156110b457506001810154155b6110f85760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610be5565b611100611e9e565b611108611edc565b604080515f80825260208201909252600f60f81b9c939b5091995046985030975095509350915050565b5f516020613aba5f395f51905f5280545f9190600160a01b900460ff16611159575f611162565b638fb3603760e01b5b91505090565b61117133610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10380546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907f362a006325d32978b283e449d254cfcf93e2cccc321603ead9a74238d8dbf36e905f90a3505050565b5f5f195f6111ff856112e2565b9050610c5f33858388611dae565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f516020613ada5f395f51905f5291610b2f90613734565b61125433610cae565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f10480546001600160a01b031981166001600160a01b038481169182179093556040515f516020613b5a5f395f51905f52939092169182907fe6aed30f8fcb01c95cfd4d0512b436882bb2d9005792b8d1b791bc7505614d21905f90a3505050565b5f33610c20818585611acc565b5f610c0d8260016118a1565b5f5f6112f9836113bd565b90508085111561132257828582604051633fa733bb60e21b8152600401610be59392919061377f565b5f61132c86610c2a565b9050610bf93386868985611ef2565b5f5f611346836115dc565b90508085111561136f57828582604051632e52afbb60e21b8152600401610be59392919061377f565b5f61137986610eaa565b9050610bf9338686848a611ef2565b5f805f516020613aba5f395f51905f52610d75565b5f805f516020613afa5f395f51905f52610d75565b5f610c0d825f6122a1565b5f610c0d6105ce836115dc565b5f805f516020613b5a5f395f51905f52610d5a565b6113e833610cae565b662386f26fc1000081111561141357604051632d0d307f60e21b815260048101829052602401610be5565b7f1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f102805490829055604080518281526020810184905281515f516020613b5a5f395f51905f5293927fcd167f35db09c4a7c96ac237a10632fc27b7b6bf51a6c3a011734073fbe5b042928290030190a1505050565b834211156114ab5760405163313c898160e11b815260048101859052602401610be5565b5f7f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886115158c6001600160a01b03165f9081527f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb006020526040902080546001810190915590565b6040805160208101969096526001600160a01b0394851690860152929091166060840152608083015260a082015260c0810186905260e0016040516020818303038152906040528051906020012090505f61156f826122d5565b90505f61157e82878787612301565b9050896001600160a01b0316816001600160a01b0316146115c5576040516325c0072360e11b81526001600160a01b0380831660048301528b166024820152604401610be5565b6115d08a8a8a6118de565b50505050505050505050565b5f610c0d82610fbc565b5f6115ef61232d565b805490915060ff600160401b820416159067ffffffffffffffff165f811580156116165750825b90505f8267ffffffffffffffff1660011480156116325750303b155b905081158015611640575080155b1561165e5760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561168857845460ff60401b1916600160401b1785555b6001600160a01b0388166116d257604051630b0f5aa160e11b815260206004820152601060248201526f696e697469616c417574686f7269747960801b6044820152606401610be5565b6001600160a01b03871661171157604051630b0f5aa160e11b8152602060048201526005602482015264185cdcd95d60da1b6044820152606401610be5565b6001600160a01b03861661175a57604051630b0f5aa160e11b815260206004820152600f60248201526e1a5b9a5d1a585b11195b9e531a5cdd608a1b6044820152606401610be5565b6117648a8a612355565b61176d8a612367565b611775612392565b61177e8661239a565b61178787612419565b6117908861242a565b6040516001600160a01b038716905f907f3bef1e143087d517781ffa170d222e23d9e7512704132830f1c9a86fa0fd022f908290a383156115d057845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a150505050505050505050565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b5f5f61186a856112e2565b905083811115611897576040516371c4efed60e01b81526004810185905260248101829052604401610be5565b610bf985846111f2565b5f610da36118ad6109e9565b6118b8906001613721565b6118c35f600a613883565b6118cb610d49565b6118d59190613721565b8591908561243b565b6118eb838383600161247d565b505050565b5f815f036118ff57505f610c0d565b610da38383670de0b6b3a7640000600161243b565b5f610c0d8260016122a1565b5f516020613aba5f395f51905f525f8061195861193b611388565b873061194a60045f8a8c613891565b611953916138b8565b612561565b9150915081611a165763ffffffff8116156119f357825460ff60a01b1916600160a01b178355611986611388565b6001600160a01b03166394c7d7ee8787876040518463ffffffff1660e01b81526004016119b5939291906138ee565b5f604051808303815f87803b1580156119cc575f5ffd5b505af11580156119de573d5f5f3e3d5ffd5b5050845460ff60a01b1916855550611a169050565b60405162d1953b60e31b81526001600160a01b0387166004820152602401610be5565b505050505050565b5f516020613afa5f395f51905f5280546001600160a01b031981166001600160a01b03848116918217845560405192169182907f3bef1e143087d517781ffa170d222e23d9e7512704132830f1c9a86fa0fd022f905f90a3505050565b5f611a868484611816565b90505f19811015611ac65781811015611ab857828183604051637dc7a0d960e11b8152600401610be59392919061377f565b611ac684848484035f61247d565b50505050565b6001600160a01b038316611af557604051634b637e8f60e11b81525f6004820152602401610be5565b6001600160a01b038216611b1e5760405163ec442f0560e01b81525f6004820152602401610be5565b6118eb8383836125f3565b5f807f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e0090505f81546111629190600160a01b900460ff1661392d565b5f610db36125fe565b611b76612671565b5f516020613b7a5f395f51905f52805460ff191681557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a150565b5f815f03611bdc57505f610c0d565b610da382611bf2670de0b6b3a764000082613721565b859190600161243b565b306001600160a01b037f000000000000000000000000208507be7b01becfa4d93ee8a7d1f202ec66cacf161480611c8257507f000000000000000000000000208507be7b01becfa4d93ee8a7d1f202ec66cacf6001600160a01b0316611c765f516020613b3a5f395f51905f52546001600160a01b031690565b6001600160a01b031614155b15610dfa5760405163703e46dd60e11b815260040160405180910390fd5b610d0333610cae565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611d03575060408051601f3d908101601f19168201909252611d00918101906136f6565b60015b611d2b57604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610be5565b5f516020613b3a5f395f51905f528114611d5b57604051632a87526960e21b815260048101829052602401610be5565b6118eb83836126a0565b306001600160a01b037f000000000000000000000000208507be7b01becfa4d93ee8a7d1f202ec66cacf1614610dfa5760405163703e46dd60e11b815260040160405180910390fd5b83611db8816126f5565b83611dc2816126f5565b611a1686868686612727565b5f516020613aba5f395f51905f5280546001600160a01b0383166001600160a01b03199091168117825560408051918252517f2f658b440c35314f52658ea8a740e05b284cdc84dc9ae01e891f21b8933e7cad9181900360200190a15050565b5f807f5ab42ced628888259c08ac98db1eb0cf702fc1501344311d8b100cd1bfe4bb00610fcd565b611e5e6127a0565b5f516020613b7a5f395f51905f52805460ff191660011781557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a25833611baf565b7fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d10280546060915f516020613b1a5f395f51905f5291610b2f90613734565b60605f5f516020613b1a5f395f51905f52610b1e565b84611efc816126f5565b84611f06816126f5565b84611f10816126f5565b5f516020613b5a5f395f51905f526001600160a01b0388811690881614611f4a576040516348f5c3ed60e01b815260040160405180910390fd5b80546001600160a01b0316611f905760405163ac96a6d360e01b815260206004820152600b60248201526a3ab73637b1b5aa37b5b2b760a91b6044820152606401610be5565b60018101546001600160a01b03161561200857806001015f9054906101000a90046001600160a01b03166001600160a01b031663687f26b56040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611ff1575f5ffd5b505af1158015612003573d5f5f3e3d5ffd5b505050505b5f6120178783600201546118f0565b60038301549091506001600160a01b031661203e8b308b612038868d613721565b8b6127d0565b5f8211801561205557506001600160a01b03811615155b801561206a57506001600160a01b0381163014155b1561208c5761208c818361207c610dc1565b6001600160a01b03169190612877565b612094610dc1565b835460405163095ea7b360e01b81526001600160a01b039182166004820152602481018b905291169063095ea7b3906044016020604051808303815f875af11580156120e2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906121069190613946565b508254604051636e553f6560e01b8152600481018a90526001600160a01b038c811660248301525f921690636e553f65906044016020604051808303815f875af1158015612156573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061217a91906136f6565b905088811461221857604080518a8152602081018390527f193857efb76c849b5edcbbb1c3a40dd116e8382c1fd86094555d90a0e26dfff5910160405180910390a160405163c596872560e01b815260206004820152602a60248201527f61737365747320616e6420756e6c6f636b546f6b656e2073686172657320646f604482015269040dcdee840dac2e8c6d60b31b6064820152608401610be5565b8354604051633ea0e43760e11b8152600481018b90526001600160a01b038d811660248301819052604483015290911690637d41c86e906064016020604051808303815f875af115801561226e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061229291906136f6565b50505050505050505050505050565b5f610da36122b082600a613883565b6122b8610d49565b6122c29190613721565b6122ca6109e9565b6118d5906001613721565b5f610c0d6122e1611b65565b8360405161190160f01b8152600281019290925260228201526042902090565b5f5f5f5f612311888888886128ac565b9250925092506123218282612974565b50909695505050505050565b5f807ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00610c0d565b61235d612a2c565b610ef88282612a51565b61236f612a2c565b610d0381604051806040016040528060018152602001603160f81b815250612aa1565b610dfa612a2c565b6123a2612a2c565b6001600160a01b0381166123eb57604051630b0f5aa160e11b815260206004820152600f60248201526e1a5b9a5d1a585b11195b9e531a5cdd608a1b6044820152606401610be5565b5f516020613afa5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b612421612a2c565b610d0381612b00565b612432612a2c565b610d0381612b83565b5f61246861244883612b94565b801561246357505f848061245e5761245e613965565b868809115b151590565b612473868686612bc0565b610bf99190613721565b5f516020613ada5f395f51905f526001600160a01b0385166124b45760405163e602df0560e01b81525f6004820152602401610be5565b6001600160a01b0384166124dd57604051634a1406b160e11b81525f6004820152602401610be5565b6001600160a01b038086165f9081526001830160209081526040808320938816835292905220839055811561255a57836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161255191815260200190565b60405180910390a35b5050505050565b6040516001600160a01b038085166024830152831660448201526001600160e01b0319821660648201525f908190819060840160408051601f19818403018152918152602080830180516001600160e01b031663b700961360e01b1781525f808052918290528351939450919290918a5afa156125e9575f516020805191945081901c150291505b5094509492505050565b6118eb838383612c70565b5f7f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f612628612c8d565b612630612cf5565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b5f516020613b7a5f395f51905f525460ff16610dfa57604051638dfc202b60e01b815260040160405180910390fd5b6126a982612d37565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a28051156126ed576118eb8282612d9a565b610ef8612e3a565b6126fe81612e59565b15610d035760405163e7d05e2760e01b81526001600160a01b0382166004820152602401610be5565b61273a612732610dc1565b853085612ed6565b6127448382612f0c565b826001600160a01b0316846001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78484604051612792929190918252602082015260400190565b60405180910390a350505050565b5f516020613b7a5f395f51905f525460ff1615610dfa5760405163d93c066560e01b815260040160405180910390fd5b826001600160a01b0316856001600160a01b0316146127f4576127f4838683611a7b565b6127fe8382612f40565b612810612809610dc1565b8584612877565b826001600160a01b0316846001600160a01b0316866001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8585604051612868929190918252602082015260400190565b60405180910390a45050505050565b6128848383836001612f74565b6118eb57604051635274afe760e01b81526001600160a01b0384166004820152602401610be5565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08411156128e557505f9150600390508261296a565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015612936573d5f5f3e3d5ffd5b5050604051601f1901519150506001600160a01b03811661296157505f92506001915082905061296a565b92505f91508190505b9450945094915050565b5f82600381111561298757612987613979565b03612990575050565b60018260038111156129a4576129a4613979565b036129c25760405163f645eedf60e01b815260040160405180910390fd5b60028260038111156129d6576129d6613979565b036129f75760405163fce698f760e01b815260048101829052602401610be5565b6003826003811115612a0b57612a0b613979565b03610ef8576040516335e2f38360e21b815260048101829052602401610be5565b612a34612fd6565b610dfa57604051631afcd79f60e31b815260040160405180910390fd5b612a59612a2c565b5f516020613ada5f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612a9284826139d1565b5060048101611ac683826139d1565b612aa9612a2c565b5f516020613b1a5f395f51905f527fa16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d102612ae284826139d1565b5060038101612af183826139d1565b505f8082556001909101555050565b612b08612a2c565b7f0773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e005f80612b3484612fef565b9150915081612b44576012612b46565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b612b8b612a2c565b610d0381611dce565b5f6002826003811115612ba957612ba9613979565b612bb39190613a8c565b60ff166001149050919050565b5f5f5f612bcd868661307a565b91509150815f03612bf157838181612be757612be7613965565b0492505050610da3565b818411612c0857612c086003851502601118613096565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b612c79836126f5565b612c82826126f5565b6118eb8383836130a7565b5f5f516020613b1a5f395f51905f5281612ca5611e9e565b805190915015612cbd57805160209091012092915050565b81548015612ccc579392505050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470935050505090565b5f5f516020613b1a5f395f51905f5281612d0d611edc565b805190915015612d2557805160209091012092915050565b60018201548015612ccc579392505050565b806001600160a01b03163b5f03612d6c57604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610be5565b5f516020613b3a5f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f612da784846130ba565b9050808015612dc857505f3d1180612dc857505f846001600160a01b03163b115b15612ddd57612dd56130cd565b915050610c0d565b8015612e0757604051639996b31560e01b81526001600160a01b0385166004820152602401610be5565b3d15612e1a57612e156130e6565b612e33565b60405163d6bda27560e01b815260040160405180910390fd5b5092915050565b3415610dfa5760405163b398979f60e01b815260040160405180910390fd5b5f805f516020613afa5f395f51905f528054604051630bb7c8fd60e31b81526001600160a01b038681166004830152929350911690635dbe47e890602401602060405180830381865afa158015612eb2573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610da39190613946565b612ee48484848460016130f1565b611ac657604051635274afe760e01b81526001600160a01b0385166004820152602401610be5565b6001600160a01b038216612f355760405163ec442f0560e01b81525f6004820152602401610be5565b610ef85f83836125f3565b6001600160a01b038216612f6957604051634b637e8f60e11b81525f6004820152602401610be5565b610ef8825f836125f3565b60405163a9059cbb60e01b5f8181526001600160a01b038616600452602485905291602083604481808b5af1925060015f51148316612fca578383151615612fbe573d5f823e3d81fd5b5f873b113d1516831692505b60405250949350505050565b5f612fdf61232d565b54600160401b900460ff16919050565b5f5f5f612ffb60405190565b6040805160048152602481019091526020810180516001600160e01b031663313ce56760e01b1790529091505f90819061303690879061315e565b509150915061304483604052565b818015613052575060203d10155b801561305f575060ff8111155b61306a575f5f61306e565b6001815b94509450505050915091565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b6130af6127a0565b6118eb83838361317f565b5f5f5f835160208501865af49392505050565b6040513d81523d5f602083013e3d602001810160405290565b6040513d5f823e3d81fd5b6040516323b872dd60e01b5f8181526001600160a01b038781166004528616602452604485905291602083606481808c5af1925060015f5114831661314d578383151615613141573d5f823e3d81fd5b5f883b113d1516831692505b604052505f60605295945050505050565b5f5f5f60405f855160208701885afa92505f51915060205190509250925092565b5f516020613ada5f395f51905f526001600160a01b0384166131b95781816002015f8282546131ae9190613721565b909155506132169050565b6001600160a01b0384165f90815260208290526040902054828110156131f85784818460405163391434e360e21b8152600401610be59392919061377f565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316613234576002810180548390039055613252565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161279291815260200190565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f610da36020830184613297565b6001600160a01b0381168114610d03575f5ffd5b5f5f5f606084860312156132fd575f5ffd5b83359250602084013591506040840135613316816132d7565b809150509250925092565b5f60208284031215613331575f5ffd5b5035919050565b5f5f60408385031215613349575f5ffd5b8235613354816132d7565b946020939093013593505050565b5f60208284031215613372575f5ffd5b8135610da3816132d7565b5f5f5f6060848603121561338f575f5ffd5b833561339a816132d7565b925060208401356133aa816132d7565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f67ffffffffffffffff8411156133e9576133e96133bb565b50604051601f19601f85018116603f0116810181811067ffffffffffffffff82111715613418576134186133bb565b60405283815290508082840185101561342f575f5ffd5b838360208301375f60208583010152509392505050565b5f5f60408385031215613457575f5ffd5b8235613462816132d7565b9150602083013567ffffffffffffffff81111561347d575f5ffd5b8301601f8101851361348d575f5ffd5b61349c858235602084016133cf565b9150509250929050565b5f5f604083850312156134b7575f5ffd5b8235915060208301356134c9816132d7565b809150509250929050565b60ff60f81b8816815260e060208201525f6134f260e0830189613297565b82810360408401526135048189613297565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b8181101561355957835183526020938401939092019160010161353b565b50909b9a5050505050505050505050565b5f5f5f6060848603121561357c575f5ffd5b83359250602084013561358e816132d7565b91506040840135613316816132d7565b5f5f5f5f5f5f5f60e0888a0312156135b4575f5ffd5b87356135bf816132d7565b965060208801356135cf816132d7565b95506040880135945060608801359350608088013560ff811681146135f2575f5ffd5b9699959850939692959460a0840135945060c09093013592915050565b5f82601f83011261361e575f5ffd5b610da3838335602085016133cf565b5f5f5f5f5f60a08688031215613641575f5ffd5b853567ffffffffffffffff811115613657575f5ffd5b6136638882890161360f565b955050602086013567ffffffffffffffff81111561367f575f5ffd5b61368b8882890161360f565b945050604086013561369c816132d7565b925060608601356136ac816132d7565b915060808601356136bc816132d7565b809150509295509295909350565b5f5f604083850312156136db575f5ffd5b82356136e6816132d7565b915060208301356134c9816132d7565b5f60208284031215613706575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c0d57610c0d61370d565b600181811c9082168061374857607f821691505b60208210810361376657634e487b7160e01b5f52602260045260245ffd5b50919050565b81810381811115610c0d57610c0d61370d565b6001600160a01b039390931683526020830191909152604082015260600190565b6001815b60018411156137db578085048111156137bf576137bf61370d565b60018416156137cd57908102905b60019390931c9280026137a4565b935093915050565b5f826137f157506001610c0d565b816137fd57505f610c0d565b8160018114613813576002811461381d57613839565b6001915050610c0d565b60ff84111561382e5761382e61370d565b50506001821b610c0d565b5060208310610133831016604e8410600b841016171561385c575081810a610c0d565b6138685f1984846137a0565b805f190482111561387b5761387b61370d565b029392505050565b5f610da360ff8416836137e3565b5f5f8585111561389f575f5ffd5b838611156138ab575f5ffd5b5050820193919092039150565b80356001600160e01b03198116906004841015612e33576001600160e01b031960049490940360031b84901b1690921692915050565b6001600160a01b03841681526040602082018190528101829052818360608301375f818301606090810191909152601f909201601f1916010192915050565b60ff8181168382160190811115610c0d57610c0d61370d565b5f60208284031215613956575f5ffd5b81518015158114610da3575f5ffd5b634e487b7160e01b5f52601260045260245ffd5b634e487b7160e01b5f52602160045260245ffd5b601f8211156118eb57805f5260205f20601f840160051c810160208510156139b25750805b601f840160051c820191505b8181101561255a575f81556001016139be565b815167ffffffffffffffff8111156139eb576139eb6133bb565b6139ff816139f98454613734565b8461398d565b6020601f821160018114613a31575f8315613a1a5750848201515b5f19600385901b1c1916600184901b17845561255a565b5f84815260208120601f198516915b82811015613a605787850151825560209485019460019092019101613a40565b5084821015613a7d57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f60ff831680613aaa57634e487b7160e01b5f52601260045260245ffd5b8060ff8416069150509291505056fef3177357ab46d8af007ab3fdb9af81da189e1068fefdc0073dca88a2cab40a0052c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00de333b8ffad3aee9c87bb17db9ab84f10634c83b51f5022e3b2d7da89a012200a16a46d94261c7517cc8ff89f61c0ce93598e3c849801011dee649a6a557d100360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbc1ff8d3deae3efb825bbaa861079c5ce537ca15be7f99d50a5b2800b88987f100cd5ed15c6e187e77e9aee88184c21f4f2182ab5827cb3b7e07fbedcd63f03300a2646970667358221220c08b2d7d2d64b08ab57eb115c7b1fdec7eba040a1407af811d3b5ab0c2e1f99064736f6c634300081e0033
🤖 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.