ETH Price: $2,227.45 (-0.98%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

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

StakedmsUSD

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":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"AlreadySet","type":"error"},{"inputs":[{"internalType":"uint256","name":"currentTimestamp","type":"uint256"},{"internalType":"uint256","name":"endTimestamp","type":"uint256"}],"name":"CooldownNotFinished","type":"error"},{"inputs":[],"name":"CoverageRatioZero","type":"error"},{"inputs":[],"name":"DelayNotPassed","type":"error"},{"inputs":[],"name":"DepositsDisabled","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":"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":"ExcessiveRedeemAmount","type":"error"},{"inputs":[],"name":"ExcessiveWithdrawAmount","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"ImplementationMismatch","type":"error"},{"inputs":[],"name":"InvalidAmount","type":"error"},{"inputs":[],"name":"InvalidCooldown","type":"error"},{"inputs":[],"name":"InvalidInitialization","type":"error"},{"inputs":[],"name":"InvalidRatio","type":"error"},{"inputs":[],"name":"InvalidToken","type":"error"},{"inputs":[],"name":"InvalidZeroAddress","type":"error"},{"inputs":[],"name":"MathOverflowedMulDiv","type":"error"},{"inputs":[],"name":"MinDelayNotMet","type":"error"},{"inputs":[],"name":"MinSharesViolation","type":"error"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"NotAuthorized","type":"error"},{"inputs":[],"name":"NotInitializing","type":"error"},{"inputs":[],"name":"NothingToUnstake","type":"error"},{"inputs":[],"name":"NullAddress","type":"error"},{"inputs":[],"name":"OperationNotAllowed","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[],"name":"ReentrancyGuardReentrantCall","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"SlippageExceeded","type":"error"},{"inputs":[],"name":"UUPSUnauthorizedCallContext","type":"error"},{"inputs":[{"internalType":"bytes32","name":"slot","type":"bytes32"}],"name":"UUPSUnsupportedProxiableUUID","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":"uint256","name":"","type":"uint256"}],"name":"AssetBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint24","name":"previousDuration","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"newDuration","type":"uint24"}],"name":"CooldownDurationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"account","type":"address"},{"indexed":false,"internalType":"uint256","name":"oldTime","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newTime","type":"uint256"}],"name":"CooldownEndtimeUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"CoverageRatioUpdated","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":[{"indexed":false,"internalType":"bool","name":"","type":"bool"}],"name":"DepositsToggled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"FeeSiloUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint64","name":"version","type":"uint64"}],"name":"Initialized","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":"amount","type":"uint256"}],"name":"LockedAmountRedistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"RewarderUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"RewardsReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"previousSilo","type":"address"},{"indexed":false,"internalType":"address","name":"newSilo","type":"address"}],"name":"SiloUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint16","name":"","type":"uint16"}],"name":"TaxRateUpdated","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":"address","name":"caller","type":"address"},{"indexed":false,"internalType":"address","name":"receiver","type":"address"},{"indexed":false,"internalType":"uint256","name":"assets","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amountForRedeemer","type":"uint256"}],"name":"Unstake","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"canceledImplementation","type":"address"}],"name":"UpgradeCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"oldDelay","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"UpgradeDelayUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"newImplementation","type":"address"},{"indexed":false,"internalType":"uint256","name":"availableAt","type":"uint256"}],"name":"UpgradeScheduled","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":"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"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"","type":"address"}],"name":"msUSDSiloUpdated","type":"event"},{"inputs":[],"name":"DEFAULT_UPGRADE_DELAY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_COOLDOWN_DURATION","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_SHARES","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UPGRADE_INTERFACE_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"activationTime","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":[{"internalType":"address","name":"account","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"burnAsset","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cancelScheduledUpgrade","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"uint256","name":"assets","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"cooldownAssets","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"cooldownDuration","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"shares","type":"uint256"},{"internalType":"address","name":"owner","type":"address"}],"name":"cooldownShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"cooldowns","outputs":[{"internalType":"uint104","name":"cooldownEnd","type":"uint104"},{"internalType":"uint256","name":"underlyingAmount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"coverageRatio","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"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":[],"name":"depositsEnabled","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeSilo","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_asset","type":"address"},{"internalType":"address","name":"_initialRewarder","type":"address"},{"internalType":"address","name":"_owner","type":"address"},{"internalType":"string","name":"_name","type":"string"},{"internalType":"string","name":"_symbol","type":"string"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"lastDistributionTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"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":"amount","type":"uint256"}],"name":"mintRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"pendingImplementation","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","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":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"token","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"rescueTokens","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewarder","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImpl","type":"address"}],"name":"scheduleUpgrade","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"duration","type":"uint24"}],"name":"setCooldownDuration","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_ratio","type":"uint256"}],"name":"setCoverageRatio","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_silo","type":"address"}],"name":"setFeeSilo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_rewarder","type":"address"}],"name":"setRewarder","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_silo","type":"address"}],"name":"setSilo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint16","name":"newTaxRate","type":"uint16"}],"name":"setTaxRate","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"newDelay","type":"uint256"}],"name":"setUpgradeDelay","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"silo","outputs":[{"internalType":"contract msUSDSilo","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"taxRate","outputs":[{"internalType":"uint16","name":"","type":"uint16"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"toggleDeposits","outputs":[],"stateMutability":"nonpayable","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":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"receiver","type":"address"}],"name":"unstake","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"account","type":"address"},{"internalType":"uint104","name":"newCooldownEnd","type":"uint104"}],"name":"updateExistingCooldown","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"upgradeDelay","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newImplementation","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"upgradeToAndCall","outputs":[],"stateMutability":"payable","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"}]
60a060405230608052348015610013575f5ffd5b5061001c610021565b6100d3565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a00805468010000000000000000900460ff16156100715760405163f92ee8a960e01b815260040160405180910390fd5b80546001600160401b03908116146100d05780546001600160401b0319166001600160401b0390811782556040519081527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b50565b608051613a056100f95f395f81816122bb015281816122e4015261242c0152613a055ff3fe6080604052600436106103b3575f3560e01c80638da5cb5b116101e9578063c63d75b611610108578063da4493f61161009d578063ef8b30f71161006d578063ef8b30f7146109b1578063f2888dbb14610af0578063f2fde38b14610b0f578063f812fa7014610b2e575f5ffd5b8063da4493f614610a7f578063dcc3e06e14610a93578063dd62ed3e14610ab2578063eb3beb2914610ad1575f5ffd5b8063d50655b0116100d8578063d50655b014610a0e578063d87c286714610a2d578063d905777e14610a4c578063d907813c14610a6b575f5ffd5b8063c63d75b614610651578063c6e6f592146109b1578063ce23eb3c146109d0578063ce96cb77146109ef575f5ffd5b8063a63a25f61161017e578063b37fd1901161014e578063b37fd19014610935578063b3d7f6b914610954578063b460af9414610973578063ba08765214610992575f5ffd5b8063a63a25f6146108a8578063a9059cbb146108c7578063ad3cb1cc146108e6578063ae3dc06814610916575f5ffd5b80639606d201116101b95780639606d2011461083757806397379d64146108565780639dc103661461086a578063a2af490014610889575f5ffd5b80638da5cb5b146107d15780638f08d44d146107e557806394bf804d1461080457806395d89b4114610823575f5ffd5b8063396f7b23116102d55780635392fd1c1161026a578063715018a61161023a578063715018a61461074a578063771a3a1d1461075e5780637e48d4ea1461079257806383b43589146107b2575f5ffd5b80635392fd1c146106cd5780635a639912146106ed5780636e553f651461070c57806370a082311461072b575f5ffd5b80634828ced9116102a55780634828ced9146106875780634cdad5061461045c5780634f1ef286146106a657806352d1902d146106b9575f5ffd5b8063396f7b23146106095780633a6462e414610632578063402d267d1461065157806342e7159614610671575f5ffd5b806318160ddd1161034b57806323b872dd1161031b57806323b872dd14610576578063313ce5671461059557806335269315146105bb57806338d52e0f146105dd575f5ffd5b806318160ddd146105095780631e9049cf1461051d5780631fcd3080146105475780632095093314610562575f5ffd5b8063095ea7b311610386578063095ea7b31461047b5780630a28a477146104aa5780630c80447a146104c957806315715313146104ea575f5ffd5b806301320fe2146103b757806301e1d1141461041957806306fdde031461043b57806307a2d13a1461045c575b5f5ffd5b3480156103c2575f5ffd5b506103f56103d13660046131fc565b600160208190525f918252604090912080549101546001600160681b039091169082565b604080516001600160681b0390931683526020830191909152015b60405180910390f35b348015610424575f5ffd5b5061042d610b43565b604051908152602001610410565b348015610446575f5ffd5b5061044f610bb9565b6040516104109190613215565b348015610467575f5ffd5b5061042d61047636600461324a565b610c79565b348015610486575f5ffd5b5061049a610495366004613261565b610c8a565b6040519015158152602001610410565b3480156104b5575f5ffd5b5061042d6104c436600461324a565b610ca1565b3480156104d4575f5ffd5b506104e86104e33660046131fc565b610cad565b005b3480156104f5575f5ffd5b506104e86105043660046131fc565b610db4565b348015610514575f5ffd5b5061042d610e6f565b348015610528575f5ffd5b506105336276a70081565b60405162ffffff9091168152602001610410565b348015610552575f5ffd5b5061042d670de0b6b3a764000081565b34801561056d575f5ffd5b5061042d5f5481565b348015610581575f5ffd5b5061049a610590366004613289565b610e8a565b3480156105a0575f5ffd5b506105a9610eaf565b60405160ff9091168152602001610410565b3480156105c6575f5ffd5b5060045461053390600160a01b900462ffffff1681565b3480156105e8575f5ffd5b506105f1610ede565b6040516001600160a01b039091168152602001610410565b348015610614575f5ffd5b505f5160206139995f395f51905f52546001600160a01b03166105f1565b34801561063d575f5ffd5b506104e861064c3660046131fc565b610eff565b34801561065c575f5ffd5b5061042d61066b3660046131fc565b505f1990565b34801561067c575f5ffd5b5061042d6201518081565b348015610692575f5ffd5b506104e86106a136600461324a565b610fba565b6104e86106b43660046132d7565b6111b5565b3480156106c4575f5ffd5b5061042d6111d4565b3480156106d8575f5ffd5b5060045461049a90600160c81b900460ff1681565b3480156106f8575f5ffd5b506104e861070736600461324a565b6111ef565b348015610717575f5ffd5b5061042d61072636600461339b565b61127a565b348015610736575f5ffd5b5061042d6107453660046131fc565b61129d565b348015610755575f5ffd5b506104e86112c3565b348015610769575f5ffd5b5060045461077f90600160b81b900461ffff1681565b60405161ffff9091168152602001610410565b34801561079d575f5ffd5b505f5160206139795f395f51905f525461042d565b3480156107bd575f5ffd5b506104e86107cc36600461340a565b6112d6565b3480156107dc575f5ffd5b506105f1611504565b3480156107f0575f5ffd5b506104e86107ff36600461324a565b61152c565b34801561080f575f5ffd5b5061042d61081e36600461339b565b6115cc565b34801561082e575f5ffd5b5061044f6115e7565b348015610842575f5ffd5b506104e861085136600461324a565b611625565b348015610861575f5ffd5b506104e86116e7565b348015610875575f5ffd5b506004546105f1906001600160a01b031681565b348015610894575f5ffd5b5061042d6108a336600461339b565b61178d565b3480156108b3575f5ffd5b506104e86108c23660046134aa565b611875565b3480156108d2575f5ffd5b5061049a6108e1366004613261565b61196f565b3480156108f1575f5ffd5b5061044f604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610921575f5ffd5b506104e86109303660046134cb565b61197c565b348015610940575f5ffd5b506104e861094f36600461350b565b611a3e565b34801561095f575f5ffd5b5061042d61096e36600461324a565b611a98565b34801561097e575f5ffd5b5061042d61098d366004613544565b611aa4565b34801561099d575f5ffd5b5061042d6109ac366004613544565b611ade565b3480156109bc575f5ffd5b5061042d6109cb36600461324a565b611b18565b3480156109db575f5ffd5b506104e86109ea366004613574565b611b23565b3480156109fa575f5ffd5b5061042d610a093660046131fc565b611bbf565b348015610a19575f5ffd5b5061042d610a2836600461339b565b611bd2565b348015610a38575f5ffd5b506104e8610a473660046131fc565b611cba565b348015610a57575f5ffd5b5061042d610a663660046131fc565b611d75565b348015610a76575f5ffd5b506104e8611d7f565b348015610a8a575f5ffd5b5061042d611ded565b348015610a9e575f5ffd5b506003546105f1906001600160a01b031681565b348015610abd575f5ffd5b5061042d610acc366004613596565b611e02565b348015610adc575f5ffd5b506002546105f1906001600160a01b031681565b348015610afb575f5ffd5b506104e8610b0a3660046131fc565b611e4b565b348015610b1a575f5ffd5b506104e8610b293660046131fc565b6120cf565b348015610b39575f5ffd5b5061042d60055481565b5f610b4c610ede565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610b90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb491906135be565b905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f5160206139395f395f51905f5291610bf7906135d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c23906135d5565b8015610c6e5780601f10610c4557610100808354040283529160200191610c6e565b820191905f5260205f20905b815481529060010190602001808311610c5157829003601f168201915b505050505091505090565b5f610c84825f612109565b92915050565b5f33610c97818585612146565b5060019392505050565b5f610c84826001612153565b610cb5611504565b6001600160a01b0316336001600160a01b031614610ced5760405163118cdaa760e01b81523360048201526024015b60405180910390fd5b6001600160a01b038116610d145760405163e99d5ac560e01b815260040160405180910390fd5b5f5160206139995f395f51905f5280546001600160a01b0319166001600160a01b0383161790555f5160206139795f395f51905f5280545f9015610d59578154610d5e565b620151805b9050610d6a8142613621565b600283018190556040519081526001600160a01b038416907fe1009627653eb47f7d0f3b4435749f7984a803c21f84a076cc4dcb0412cf066f9060200160405180910390a2505050565b610dbc612187565b6001600160a01b038116610de35760405163f6b2911f60e01b815260040160405180910390fd5b6002546001600160a01b03808316911603610e115760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f6b49d24dd3285d61bdc40376f699105de0c026f54ed60756482d0f20c0b8abea9060200160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f805f5160206139395f395f51905f525b6002015492915050565b5f33610e978582856121b9565b610ea2858585612209565b60019150505b9392505050565b5f805f5160206139b95f395f51905f5290505f8154610ed89190600160a01b900460ff16613634565b91505090565b5f805f5160206139b95f395f51905f525b546001600160a01b031692915050565b610f07612187565b6001600160a01b038116610f2e5760405163f6b2911f60e01b815260040160405180910390fd5b6003546001600160a01b03808316911603610f5c5760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f47c9042c3be42a955f60f9b75006522826af1a3bed83e26646997d3bcccda77c9060200160405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b610fc2612266565b6003546001600160a01b03163314801590610ff65750610fe0611504565b6001600160a01b0316336001600160a01b031614155b1561101657604051634a0bfec160e01b8152336004820152602401610ce4565b80805f036110375760405163162908e360e11b815260040160405180910390fd5b425f55600454600160b81b900461ffff161580159061106057506004546001600160a01b031615155b1561110c576004545f906103e89061108390600160b81b900461ffff168561364d565b61108d9190613678565b9050611097610ede565b600480546040516340c10f1960e01b81526001600160a01b03918216928101929092526024820184905291909116906340c10f19906044015f604051808303815f87803b1580156110e6575f5ffd5b505af11580156110f8573d5f5f3e3d5ffd5b505050508083611108919061368b565b9250505b611114610ede565b6040516340c10f1960e01b8152306004820152602481018490526001600160a01b0391909116906340c10f19906044015f604051808303815f87803b15801561115b575f5ffd5b505af115801561116d573d5f5f3e3d5ffd5b50506040518492507fbb28dd7cd6be6f61828ea9158a04c5182c716a946a6d2f31f4864edb87471aa691505f90a2506111b260015f5160206139d95f395f51905f5255565b50565b6111bd6122b0565b6111c682612354565b6111d08282612365565b5050565b5f6111dd612421565b505f5160206139595f395f51905f5290565b6111f7612187565b60055481036112195760405163a741a04560e01b815260040160405180910390fd5b670de0b6b3a76400008111156112425760405163648564d360e01b815260040160405180910390fd5b6040518181527fdf2cd4b648795c20aa1aeba11f8ca0264b6ac306acecd2fd590f3c573fe7a5f89060200160405180910390a1600555565b5f5f195f61128785611b18565b90506112953385878461246a565b949350505050565b6001600160a01b03165f9081525f5160206139395f395f51905f52602052604090205490565b6112cb612187565b6112d45f61250a565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561131b5750825b90505f8267ffffffffffffffff1660011480156113375750303b155b905081158015611345575080155b156113635760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561138d57845460ff60401b1916600160401b1785555b6001600160a01b038a1615806113aa57506001600160a01b038b16155b806113bc57506001600160a01b038c16155b156113da5760405163f6b2911f60e01b815260040160405180910390fd5b61144b89898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061257a92505050565b6114548c61258c565b61145d8a61259d565b6114656125ae565b61146d6125be565b670de0b6b3a76400006005556004805465ff0000ffffff60a01b191664020000127560a71b179055600380546001600160a01b0319166001600160a01b038d1617905583156114f657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300610eef565b611534612187565b6040518181527f23c8e7ecf38ad1e9e1639dfb4b258fc9942ae76b580d2ba43c4a73b9291812c99060200160405180910390a161156f610ede565b6001600160a01b03166342966c68826040518263ffffffff1660e01b815260040161159c91815260200190565b5f604051808303815f87803b1580156115b3575f5ffd5b505af11580156115c5573d5f5f3e3d5ffd5b5050505050565b5f5f195f6115d985611a98565b90506112953385838861246a565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f5160206139395f395f51905f5291610bf7906135d5565b61162d611504565b6001600160a01b0316336001600160a01b0316146116605760405163118cdaa760e01b8152336004820152602401610ce4565b610e108110156116835760405163a965618960e01b815260040160405180910390fd5b5f6116995f5160206139795f395f51905f525490565b60408051828152602081018590529192507f460e10c89f7fa39a35b0b6bd68e6a834bc423a08a5b10fc1bda0dff3276e2694910160405180910390a1505f5160206139795f395f51905f5255565b6116ef611504565b6001600160a01b0316336001600160a01b0316146117225760405163118cdaa760e01b8152336004820152602401610ce4565b5f5160206139995f395f51905f52546040515f5160206139795f395f51905f52916001600160a01b0316907fd947ef8b4f7aabc4b6a79ec773516b48d12ac25da7af787b659083c6af28cb42905f90a26001810180546001600160a01b03191690555f600290910155565b6004545f90600160a01b900462ffffff1681036117bd57604051637a851da960e11b815260040160405180910390fd5b6117c682611d75565b8311156117e657604051630c668a7160e31b815260040160405180910390fd5b5f6117f084610c79565b60045490915061180c90600160a01b900462ffffff16426136bf565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b0394909416939093178355919091018054839290611857908490613621565b90915550610ea89050336002546001600160a01b03168584886125db565b61187d612187565b6103e88161ffff16106118e65760405162461bcd60e51b815260206004820152602b60248201527f5461782063616e6e6f742062652031303025202d204d757374206265206c657360448201526a073207468616e20313030360ac1b6064820152608401610ce4565b60045461ffff808316600160b81b90920416036119165760405163a741a04560e01b815260040160405180910390fd5b60405161ffff821681527fc806a10dd41921869155255a462a80195a7bfeb01e4f3431e3a43bdf80e4baa09060200160405180910390a16004805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b5f33610c97818585612209565b611984612187565b6001600160a01b0382165f908152600160205260408120805490916001600160681b0390911690036119c957604051637475d84d60e11b815260040160405180910390fd5b8054604080516001600160a01b03861681526001600160681b03928316602082015291841682820152517f4590c2052b5ebf4a0a703688d2a793d162b6925a337b78387018d7c20ef4ed2e9181900360600190a180546001600160681b0319166001600160681b039290921691909117905550565b611a46612187565b611a4e610ede565b6001600160a01b0316836001600160a01b031603611a7f5760405163c1ab6dc160e01b815260040160405180910390fd5b611a936001600160a01b0384168284612652565b505050565b5f610c84826001612109565b6004545f90600160a01b900462ffffff1615611ad357604051637a851da960e11b815260040160405180910390fd5b6112958484846126b1565b6004545f90600160a01b900462ffffff1615611b0d57604051637a851da960e11b815260040160405180910390fd5b611295848484612707565b5f610c84825f612153565b611b2b612187565b6276a70062ffffff82161115611b5457604051637475d84d60e11b815260040160405180910390fd5b6004805462ffffff838116600160a01b90810262ffffff60a01b198416179384905560408051938290048316808552919094049091166020830152917f180eacdf7dbaeecaa983d93173b4285db2f2c0de0044697e1f932bbbb73dcaa6910160405180910390a15050565b5f610c84611bcc8361129d565b5f612109565b6004545f90600160a01b900462ffffff168103611c0257604051637a851da960e11b815260040160405180910390fd5b611c0b82611bbf565b831115611c2b57604051636fa9eef160e11b815260040160405180910390fd5b5f611c3584610ca1565b600454909150611c5190600160a01b900462ffffff16426136bf565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b0394909416939093178355919091018054869290611c9c908490613621565b90915550610ea89050336002546001600160a01b03168587856125db565b611cc2612187565b6001600160a01b038116611ce95760405163f6b2911f60e01b815260040160405180910390fd5b6004546001600160a01b03808316911603611d175760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527fdb8167fc515fc9095f0a3a91bcd16cf7f1a9b3cc52ebad83691f81180d5098a59060200160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610c848261129d565b611d87612187565b6004805460ff600160c81b808304821615810260ff60c81b1990931692909217928390556040517f79a0d73b50e293c1e17b973f07d567c5a14399afb5e2373c44a82e9f9109d71693611de39390049091161515815260200190565b60405180910390a1565b5f805f5160206139795f395f51905f52610e80565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611e53612266565b335f908152600160208190526040909120908101548154426001600160681b039091161115611ea957815460405163922bceef60e01b81524260048201526001600160681b039091166024820152604401610ce4565b805f03611ec95760405163422f6e3560e11b815260040160405180910390fd5b6005545f03611eeb57604051637cf9af2360e11b815260040160405180910390fd5b81546001600160681b03191682555f60018301556005548190670de0b6b3a7640000111561200557670de0b6b3a764000060055483611f2a919061364d565b611f349190613678565b90505f611f41828461368b565b60025460405163f3fef3a360e01b8152306004820152602481018390529192506001600160a01b03169063f3fef3a3906044015f604051808303815f87803b158015611f8b575f5ffd5b505af1158015611f9d573d5f5f3e3d5ffd5b50505050611fa9610ede565b6001600160a01b03166342966c68826040518263ffffffff1660e01b8152600401611fd691815260200190565b5f604051808303815f87803b158015611fed575f5ffd5b505af1158015611fff573d5f5f3e3d5ffd5b50505050505b604080513381526001600160a01b0386166020820152908101839052606081018290527f18edd09e80386cd99df397e2e0d87d2bb259423eae08645e776321a36fe680ef9060800160405180910390a160025460405163f3fef3a360e01b81526001600160a01b038681166004830152602482018490529091169063f3fef3a3906044015f604051808303815f87803b1580156120a0575f5ffd5b505af11580156120b2573d5f5f3e3d5ffd5b505050505050506111b260015f5160206139d95f395f51905f5255565b6120d7612187565b6001600160a01b03811661210057604051631e4fbdf760e01b81525f6004820152602401610ce4565b6111b28161250a565b5f610ea8612115610b43565b612120906001613621565b61212b5f600a6137c1565b612133610e6f565b61213d9190613621565b85919085612754565b611a9383838360016127a1565b5f610ea861216282600a6137c1565b61216a610e6f565b6121749190613621565b61217c610b43565b61213d906001613621565b33612190611504565b6001600160a01b0316146112d45760405163118cdaa760e01b8152336004820152602401610ce4565b5f6121c48484611e02565b90505f19811461220357818110156121f557828183604051637dc7a0d960e11b8152600401610ce49392919061369e565b61220384848484035f6127a1565b50505050565b6001600160a01b03831661223257604051634b637e8f60e11b81525f6004820152602401610ce4565b6001600160a01b03821661225b5760405163ec442f0560e01b81525f6004820152602401610ce4565b611a93838383612884565b5f5160206139d95f395f51905f5280546001190161229757604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f5160206139d95f395f51905f5255565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016148061233657507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661232a5f5160206139595f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156112d45760405163703e46dd60e11b815260040160405180910390fd5b61235c612187565b6111b2816129aa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123bf575060408051601f3d908101601f191682019092526123bc918101906135be565b60015b6123e757604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ce4565b5f5160206139595f395f51905f52811461241757604051632a87526960e21b815260048101829052602401610ce4565b611a938383612a34565b306001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146112d45760405163703e46dd60e11b815260040160405180910390fd5b612472612266565b600454600160c81b900460ff1661249c57604051630e2f42c960e31b815260040160405180910390fd5b81805f036124bd5760405163162908e360e11b815260040160405180910390fd5b81805f036124de5760405163162908e360e11b815260040160405180910390fd5b6124ea86868686612a89565b6124f2612b06565b505061220360015f5160206139d95f395f51905f5255565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b612582612b45565b6111d08282612b8e565b612594612b45565b6111b281612bde565b6125a5612b45565b6111b281612c4e565b6125b6612b45565b6112d4612c56565b6125c6612b45565b620151805f5160206139795f395f51905f5255565b6125e3612266565b81805f036126045760405163162908e360e11b815260040160405180910390fd5b81805f036126255760405163162908e360e11b815260040160405180910390fd5b6126328787878787612c5e565b61263a612b06565b50506115c560015f5160206139d95f395f51905f5255565b6040516001600160a01b03838116602483015260448201839052611a9391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612d12565b5f5f6126bc83611bbf565b9050808511156126e557828582604051633fa733bb60e21b8152600401610ce49392919061369e565b5f6126ef86610ca1565b90506126fe33868689856125db565b95945050505050565b5f5f61271283611d75565b90508085111561273b57828582604051632e52afbb60e21b8152600401610ce49392919061369e565b5f61274586610c79565b90506126fe338686848a6125db565b5f5f612761868686612d73565b905061276c83612e32565b801561278757505f848061278257612782613664565b868809115b156126fe57612797600182613621565b9695505050505050565b5f5160206139395f395f51905f526001600160a01b0385166127d85760405163e602df0560e01b81525f6004820152602401610ce4565b6001600160a01b03841661280157604051634a1406b160e11b81525f6004820152602401610ce4565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156115c557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161287591815260200190565b60405180910390a35050505050565b5f5160206139395f395f51905f526001600160a01b0384166128be5781816002015f8282546128b39190613621565b9091555061291b9050565b6001600160a01b0384165f90815260208290526040902054828110156128fd5784818460405163391434e360e21b8152600401610ce49392919061369e565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316612939576002810180548390039055612957565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161299c91815260200190565b60405180910390a350505050565b5f5160206139995f395f51905f52545f5160206139795f395f51905f52906001600160a01b038381169116146129f3576040516316545d4f60e11b815260040160405180910390fd5b8060020154421015612a18576040516364037fb760e11b815260040160405180910390fd5b6001810180546001600160a01b03191690555f60029091015550565b612a3d82612e5e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612a8157611a938282612ec1565b6111d0612f2a565b5f5160206139b95f395f51905f528054612aae906001600160a01b0316863086612f49565b612ab88483612f82565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78585604051612875929190918252602082015260400190565b5f612b0f610e6f565b90505f81118015612b275750670de0b6b3a764000081105b156111b257604051635a5c1b5560e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166112d457604051631afcd79f60e31b815260040160405180910390fd5b612b96612b45565b5f5160206139395f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612bcf8482613813565b50600481016122038382613813565b612be6612b45565b5f5160206139b95f395f51905f525f80612bff84612fb6565b9150915081612c0f576012612c11565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b6120d7612b45565b61229d612b45565b5f5160206139b95f395f51905f526001600160a01b0386811690851614612c8a57612c8a8487846121b9565b612c94848361308c565b8054612caa906001600160a01b03168685612652565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8686604051612d02929190918252602082015260400190565b60405180910390a4505050505050565b5f612d266001600160a01b038416836130c0565b905080515f14158015612d4a575080806020019051810190612d4891906138ce565b155b15611a9357604051635274afe760e01b81526001600160a01b0384166004820152602401610ce4565b5f838302815f1985870982811083820303915050805f03612da757838281612d9d57612d9d613664565b0492505050610ea8565b808411612dc75760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6002826003811115612e4757612e476138ed565b612e519190613901565b60ff166001149050919050565b806001600160a01b03163b5f03612e9357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ce4565b5f5160206139595f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051612edd9190613922565b5f60405180830381855af49150503d805f8114612f15576040519150601f19603f3d011682016040523d82523d5f602084013e612f1a565b606091505b50915091506126fe8583836130cd565b34156112d45760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b0384811660248301528381166044830152606482018390526122039186918216906323b872dd9060840161267f565b6001600160a01b038216612fab5760405163ec442f0560e01b81525f6004820152602401610ce4565b6111d05f8383612884565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b03871691612ffc91613922565b5f60405180830381855afa9150503d805f8114613034576040519150601f19603f3d011682016040523d82523d5f602084013e613039565b606091505b509150915081801561304d57506020815110155b15613080575f8180602001905181019061306791906135be565b905060ff811161307e576001969095509350505050565b505b505f9485945092505050565b6001600160a01b0382166130b557604051634b637e8f60e11b81525f6004820152602401610ce4565b6111d0825f83612884565b6060610ea883835f613129565b6060826130e2576130dd826131b8565b610ea8565b81511580156130f957506001600160a01b0384163b155b1561312257604051639996b31560e01b81526001600160a01b0385166004820152602401610ce4565b5080610ea8565b60608147101561314e5760405163cd78605960e01b8152306004820152602401610ce4565b5f5f856001600160a01b031684866040516131699190613922565b5f6040518083038185875af1925050503d805f81146131a3576040519150601f19603f3d011682016040523d82523d5f602084013e6131a8565b606091505b50915091506127978683836130cd565b8051156131c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146131f7575f5ffd5b919050565b5f6020828403121561320c575f5ffd5b610ea8826131e1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561325a575f5ffd5b5035919050565b5f5f60408385031215613272575f5ffd5b61327b836131e1565b946020939093013593505050565b5f5f5f6060848603121561329b575f5ffd5b6132a4846131e1565b92506132b2602085016131e1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156132e8575f5ffd5b6132f1836131e1565b9150602083013567ffffffffffffffff81111561330c575f5ffd5b8301601f8101851361331c575f5ffd5b803567ffffffffffffffff811115613336576133366132c3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715613365576133656132c3565b60405281815282820160200187101561337c575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f604083850312156133ac575f5ffd5b823591506133bc602084016131e1565b90509250929050565b5f5f83601f8401126133d5575f5ffd5b50813567ffffffffffffffff8111156133ec575f5ffd5b602083019150836020828501011115613403575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215613420575f5ffd5b613429886131e1565b9650613437602089016131e1565b9550613445604089016131e1565b9450606088013567ffffffffffffffff811115613460575f5ffd5b61346c8a828b016133c5565b909550935050608088013567ffffffffffffffff81111561348b575f5ffd5b6134978a828b016133c5565b989b979a50959850939692959293505050565b5f602082840312156134ba575f5ffd5b813561ffff81168114610ea8575f5ffd5b5f5f604083850312156134dc575f5ffd5b6134e5836131e1565b915060208301356001600160681b0381168114613500575f5ffd5b809150509250929050565b5f5f5f6060848603121561351d575f5ffd5b613526846131e1565b92506020840135915061353b604085016131e1565b90509250925092565b5f5f5f60608486031215613556575f5ffd5b83359250613566602085016131e1565b915061353b604085016131e1565b5f60208284031215613584575f5ffd5b813562ffffff81168114610ea8575f5ffd5b5f5f604083850312156135a7575f5ffd5b6135b0836131e1565b91506133bc602084016131e1565b5f602082840312156135ce575f5ffd5b5051919050565b600181811c908216806135e957607f821691505b60208210810361360757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c8457610c8461360d565b60ff8181168382160190811115610c8457610c8461360d565b8082028115828204841417610c8457610c8461360d565b634e487b7160e01b5f52601260045260245ffd5b5f8261368657613686613664565b500490565b81810381811115610c8457610c8461360d565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160681b038181168382160190811115610c8457610c8461360d565b6001815b6001841115613719578085048111156136fd576136fd61360d565b600184161561370b57908102905b60019390931c9280026136e2565b935093915050565b5f8261372f57506001610c84565b8161373b57505f610c84565b8160018114613751576002811461375b57613777565b6001915050610c84565b60ff84111561376c5761376c61360d565b50506001821b610c84565b5060208310610133831016604e8410600b841016171561379a575081810a610c84565b6137a65f1984846136de565b805f19048211156137b9576137b961360d565b029392505050565b5f610ea860ff841683613721565b601f821115611a9357805f5260205f20601f840160051c810160208510156137f45750805b601f840160051c820191505b818110156115c5575f8155600101613800565b815167ffffffffffffffff81111561382d5761382d6132c3565b6138418161383b84546135d5565b846137cf565b6020601f821160018114613873575f831561385c5750848201515b5f19600385901b1c1916600184901b1784556115c5565b5f84815260208120601f198516915b828110156138a25787850151825560209485019460019092019101613882565b50848210156138bf57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156138de575f5ffd5b81518015158114610ea8575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f60ff83168061391357613913613664565b8060ff84160691505092915050565b5f82518060208501845e5f92019182525091905056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca9f7ef5782100b08bddb9be7a16303ba138e26e6df1a3e56c7be0bac217aa800a9f7ef5782100b08bddb9be7a16303ba138e26e6df1a3e56c7be0bac217aa8010773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081e000a
Deployed Bytecode
0x6080604052600436106103b3575f3560e01c80638da5cb5b116101e9578063c63d75b611610108578063da4493f61161009d578063ef8b30f71161006d578063ef8b30f7146109b1578063f2888dbb14610af0578063f2fde38b14610b0f578063f812fa7014610b2e575f5ffd5b8063da4493f614610a7f578063dcc3e06e14610a93578063dd62ed3e14610ab2578063eb3beb2914610ad1575f5ffd5b8063d50655b0116100d8578063d50655b014610a0e578063d87c286714610a2d578063d905777e14610a4c578063d907813c14610a6b575f5ffd5b8063c63d75b614610651578063c6e6f592146109b1578063ce23eb3c146109d0578063ce96cb77146109ef575f5ffd5b8063a63a25f61161017e578063b37fd1901161014e578063b37fd19014610935578063b3d7f6b914610954578063b460af9414610973578063ba08765214610992575f5ffd5b8063a63a25f6146108a8578063a9059cbb146108c7578063ad3cb1cc146108e6578063ae3dc06814610916575f5ffd5b80639606d201116101b95780639606d2011461083757806397379d64146108565780639dc103661461086a578063a2af490014610889575f5ffd5b80638da5cb5b146107d15780638f08d44d146107e557806394bf804d1461080457806395d89b4114610823575f5ffd5b8063396f7b23116102d55780635392fd1c1161026a578063715018a61161023a578063715018a61461074a578063771a3a1d1461075e5780637e48d4ea1461079257806383b43589146107b2575f5ffd5b80635392fd1c146106cd5780635a639912146106ed5780636e553f651461070c57806370a082311461072b575f5ffd5b80634828ced9116102a55780634828ced9146106875780634cdad5061461045c5780634f1ef286146106a657806352d1902d146106b9575f5ffd5b8063396f7b23146106095780633a6462e414610632578063402d267d1461065157806342e7159614610671575f5ffd5b806318160ddd1161034b57806323b872dd1161031b57806323b872dd14610576578063313ce5671461059557806335269315146105bb57806338d52e0f146105dd575f5ffd5b806318160ddd146105095780631e9049cf1461051d5780631fcd3080146105475780632095093314610562575f5ffd5b8063095ea7b311610386578063095ea7b31461047b5780630a28a477146104aa5780630c80447a146104c957806315715313146104ea575f5ffd5b806301320fe2146103b757806301e1d1141461041957806306fdde031461043b57806307a2d13a1461045c575b5f5ffd5b3480156103c2575f5ffd5b506103f56103d13660046131fc565b600160208190525f918252604090912080549101546001600160681b039091169082565b604080516001600160681b0390931683526020830191909152015b60405180910390f35b348015610424575f5ffd5b5061042d610b43565b604051908152602001610410565b348015610446575f5ffd5b5061044f610bb9565b6040516104109190613215565b348015610467575f5ffd5b5061042d61047636600461324a565b610c79565b348015610486575f5ffd5b5061049a610495366004613261565b610c8a565b6040519015158152602001610410565b3480156104b5575f5ffd5b5061042d6104c436600461324a565b610ca1565b3480156104d4575f5ffd5b506104e86104e33660046131fc565b610cad565b005b3480156104f5575f5ffd5b506104e86105043660046131fc565b610db4565b348015610514575f5ffd5b5061042d610e6f565b348015610528575f5ffd5b506105336276a70081565b60405162ffffff9091168152602001610410565b348015610552575f5ffd5b5061042d670de0b6b3a764000081565b34801561056d575f5ffd5b5061042d5f5481565b348015610581575f5ffd5b5061049a610590366004613289565b610e8a565b3480156105a0575f5ffd5b506105a9610eaf565b60405160ff9091168152602001610410565b3480156105c6575f5ffd5b5060045461053390600160a01b900462ffffff1681565b3480156105e8575f5ffd5b506105f1610ede565b6040516001600160a01b039091168152602001610410565b348015610614575f5ffd5b505f5160206139995f395f51905f52546001600160a01b03166105f1565b34801561063d575f5ffd5b506104e861064c3660046131fc565b610eff565b34801561065c575f5ffd5b5061042d61066b3660046131fc565b505f1990565b34801561067c575f5ffd5b5061042d6201518081565b348015610692575f5ffd5b506104e86106a136600461324a565b610fba565b6104e86106b43660046132d7565b6111b5565b3480156106c4575f5ffd5b5061042d6111d4565b3480156106d8575f5ffd5b5060045461049a90600160c81b900460ff1681565b3480156106f8575f5ffd5b506104e861070736600461324a565b6111ef565b348015610717575f5ffd5b5061042d61072636600461339b565b61127a565b348015610736575f5ffd5b5061042d6107453660046131fc565b61129d565b348015610755575f5ffd5b506104e86112c3565b348015610769575f5ffd5b5060045461077f90600160b81b900461ffff1681565b60405161ffff9091168152602001610410565b34801561079d575f5ffd5b505f5160206139795f395f51905f525461042d565b3480156107bd575f5ffd5b506104e86107cc36600461340a565b6112d6565b3480156107dc575f5ffd5b506105f1611504565b3480156107f0575f5ffd5b506104e86107ff36600461324a565b61152c565b34801561080f575f5ffd5b5061042d61081e36600461339b565b6115cc565b34801561082e575f5ffd5b5061044f6115e7565b348015610842575f5ffd5b506104e861085136600461324a565b611625565b348015610861575f5ffd5b506104e86116e7565b348015610875575f5ffd5b506004546105f1906001600160a01b031681565b348015610894575f5ffd5b5061042d6108a336600461339b565b61178d565b3480156108b3575f5ffd5b506104e86108c23660046134aa565b611875565b3480156108d2575f5ffd5b5061049a6108e1366004613261565b61196f565b3480156108f1575f5ffd5b5061044f604051806040016040528060058152602001640352e302e360dc1b81525081565b348015610921575f5ffd5b506104e86109303660046134cb565b61197c565b348015610940575f5ffd5b506104e861094f36600461350b565b611a3e565b34801561095f575f5ffd5b5061042d61096e36600461324a565b611a98565b34801561097e575f5ffd5b5061042d61098d366004613544565b611aa4565b34801561099d575f5ffd5b5061042d6109ac366004613544565b611ade565b3480156109bc575f5ffd5b5061042d6109cb36600461324a565b611b18565b3480156109db575f5ffd5b506104e86109ea366004613574565b611b23565b3480156109fa575f5ffd5b5061042d610a093660046131fc565b611bbf565b348015610a19575f5ffd5b5061042d610a2836600461339b565b611bd2565b348015610a38575f5ffd5b506104e8610a473660046131fc565b611cba565b348015610a57575f5ffd5b5061042d610a663660046131fc565b611d75565b348015610a76575f5ffd5b506104e8611d7f565b348015610a8a575f5ffd5b5061042d611ded565b348015610a9e575f5ffd5b506003546105f1906001600160a01b031681565b348015610abd575f5ffd5b5061042d610acc366004613596565b611e02565b348015610adc575f5ffd5b506002546105f1906001600160a01b031681565b348015610afb575f5ffd5b506104e8610b0a3660046131fc565b611e4b565b348015610b1a575f5ffd5b506104e8610b293660046131fc565b6120cf565b348015610b39575f5ffd5b5061042d60055481565b5f610b4c610ede565b6040516370a0823160e01b81523060048201526001600160a01b0391909116906370a0823190602401602060405180830381865afa158015610b90573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610bb491906135be565b905090565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0380546060915f5160206139395f395f51905f5291610bf7906135d5565b80601f0160208091040260200160405190810160405280929190818152602001828054610c23906135d5565b8015610c6e5780601f10610c4557610100808354040283529160200191610c6e565b820191905f5260205f20905b815481529060010190602001808311610c5157829003601f168201915b505050505091505090565b5f610c84825f612109565b92915050565b5f33610c97818585612146565b5060019392505050565b5f610c84826001612153565b610cb5611504565b6001600160a01b0316336001600160a01b031614610ced5760405163118cdaa760e01b81523360048201526024015b60405180910390fd5b6001600160a01b038116610d145760405163e99d5ac560e01b815260040160405180910390fd5b5f5160206139995f395f51905f5280546001600160a01b0319166001600160a01b0383161790555f5160206139795f395f51905f5280545f9015610d59578154610d5e565b620151805b9050610d6a8142613621565b600283018190556040519081526001600160a01b038416907fe1009627653eb47f7d0f3b4435749f7984a803c21f84a076cc4dcb0412cf066f9060200160405180910390a2505050565b610dbc612187565b6001600160a01b038116610de35760405163f6b2911f60e01b815260040160405180910390fd5b6002546001600160a01b03808316911603610e115760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f6b49d24dd3285d61bdc40376f699105de0c026f54ed60756482d0f20c0b8abea9060200160405180910390a1600280546001600160a01b0319166001600160a01b0392909216919091179055565b5f805f5160206139395f395f51905f525b6002015492915050565b5f33610e978582856121b9565b610ea2858585612209565b60019150505b9392505050565b5f805f5160206139b95f395f51905f5290505f8154610ed89190600160a01b900460ff16613634565b91505090565b5f805f5160206139b95f395f51905f525b546001600160a01b031692915050565b610f07612187565b6001600160a01b038116610f2e5760405163f6b2911f60e01b815260040160405180910390fd5b6003546001600160a01b03808316911603610f5c5760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527f47c9042c3be42a955f60f9b75006522826af1a3bed83e26646997d3bcccda77c9060200160405180910390a1600380546001600160a01b0319166001600160a01b0392909216919091179055565b610fc2612266565b6003546001600160a01b03163314801590610ff65750610fe0611504565b6001600160a01b0316336001600160a01b031614155b1561101657604051634a0bfec160e01b8152336004820152602401610ce4565b80805f036110375760405163162908e360e11b815260040160405180910390fd5b425f55600454600160b81b900461ffff161580159061106057506004546001600160a01b031615155b1561110c576004545f906103e89061108390600160b81b900461ffff168561364d565b61108d9190613678565b9050611097610ede565b600480546040516340c10f1960e01b81526001600160a01b03918216928101929092526024820184905291909116906340c10f19906044015f604051808303815f87803b1580156110e6575f5ffd5b505af11580156110f8573d5f5f3e3d5ffd5b505050508083611108919061368b565b9250505b611114610ede565b6040516340c10f1960e01b8152306004820152602481018490526001600160a01b0391909116906340c10f19906044015f604051808303815f87803b15801561115b575f5ffd5b505af115801561116d573d5f5f3e3d5ffd5b50506040518492507fbb28dd7cd6be6f61828ea9158a04c5182c716a946a6d2f31f4864edb87471aa691505f90a2506111b260015f5160206139d95f395f51905f5255565b50565b6111bd6122b0565b6111c682612354565b6111d08282612365565b5050565b5f6111dd612421565b505f5160206139595f395f51905f5290565b6111f7612187565b60055481036112195760405163a741a04560e01b815260040160405180910390fd5b670de0b6b3a76400008111156112425760405163648564d360e01b815260040160405180910390fd5b6040518181527fdf2cd4b648795c20aa1aeba11f8ca0264b6ac306acecd2fd590f3c573fe7a5f89060200160405180910390a1600555565b5f5f195f61128785611b18565b90506112953385878461246a565b949350505050565b6001600160a01b03165f9081525f5160206139395f395f51905f52602052604090205490565b6112cb612187565b6112d45f61250a565b565b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a008054600160401b810460ff16159067ffffffffffffffff165f8115801561131b5750825b90505f8267ffffffffffffffff1660011480156113375750303b155b905081158015611345575080155b156113635760405163f92ee8a960e01b815260040160405180910390fd5b845467ffffffffffffffff19166001178555831561138d57845460ff60401b1916600160401b1785555b6001600160a01b038a1615806113aa57506001600160a01b038b16155b806113bc57506001600160a01b038c16155b156113da5760405163f6b2911f60e01b815260040160405180910390fd5b61144b89898080601f0160208091040260200160405190810160405280939291908181526020018383808284375f9201919091525050604080516020601f8d018190048102820181019092528b815292508b91508a90819084018382808284375f9201919091525061257a92505050565b6114548c61258c565b61145d8a61259d565b6114656125ae565b61146d6125be565b670de0b6b3a76400006005556004805465ff0000ffffff60a01b191664020000127560a71b179055600380546001600160a01b0319166001600160a01b038d1617905583156114f657845460ff60401b19168555604051600181527fc7f505b2f371ae2175ee4913f4499e1f2633a7b5936321eed1cdaeb6115181d29060200160405180910390a15b505050505050505050505050565b5f807f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c199300610eef565b611534612187565b6040518181527f23c8e7ecf38ad1e9e1639dfb4b258fc9942ae76b580d2ba43c4a73b9291812c99060200160405180910390a161156f610ede565b6001600160a01b03166342966c68826040518263ffffffff1660e01b815260040161159c91815260200190565b5f604051808303815f87803b1580156115b3575f5ffd5b505af11580156115c5573d5f5f3e3d5ffd5b5050505050565b5f5f195f6115d985611a98565b90506112953385838861246a565b7f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace0480546060915f5160206139395f395f51905f5291610bf7906135d5565b61162d611504565b6001600160a01b0316336001600160a01b0316146116605760405163118cdaa760e01b8152336004820152602401610ce4565b610e108110156116835760405163a965618960e01b815260040160405180910390fd5b5f6116995f5160206139795f395f51905f525490565b60408051828152602081018590529192507f460e10c89f7fa39a35b0b6bd68e6a834bc423a08a5b10fc1bda0dff3276e2694910160405180910390a1505f5160206139795f395f51905f5255565b6116ef611504565b6001600160a01b0316336001600160a01b0316146117225760405163118cdaa760e01b8152336004820152602401610ce4565b5f5160206139995f395f51905f52546040515f5160206139795f395f51905f52916001600160a01b0316907fd947ef8b4f7aabc4b6a79ec773516b48d12ac25da7af787b659083c6af28cb42905f90a26001810180546001600160a01b03191690555f600290910155565b6004545f90600160a01b900462ffffff1681036117bd57604051637a851da960e11b815260040160405180910390fd5b6117c682611d75565b8311156117e657604051630c668a7160e31b815260040160405180910390fd5b5f6117f084610c79565b60045490915061180c90600160a01b900462ffffff16426136bf565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b0394909416939093178355919091018054839290611857908490613621565b90915550610ea89050336002546001600160a01b03168584886125db565b61187d612187565b6103e88161ffff16106118e65760405162461bcd60e51b815260206004820152602b60248201527f5461782063616e6e6f742062652031303025202d204d757374206265206c657360448201526a073207468616e20313030360ac1b6064820152608401610ce4565b60045461ffff808316600160b81b90920416036119165760405163a741a04560e01b815260040160405180910390fd5b60405161ffff821681527fc806a10dd41921869155255a462a80195a7bfeb01e4f3431e3a43bdf80e4baa09060200160405180910390a16004805461ffff909216600160b81b0261ffff60b81b19909216919091179055565b5f33610c97818585612209565b611984612187565b6001600160a01b0382165f908152600160205260408120805490916001600160681b0390911690036119c957604051637475d84d60e11b815260040160405180910390fd5b8054604080516001600160a01b03861681526001600160681b03928316602082015291841682820152517f4590c2052b5ebf4a0a703688d2a793d162b6925a337b78387018d7c20ef4ed2e9181900360600190a180546001600160681b0319166001600160681b039290921691909117905550565b611a46612187565b611a4e610ede565b6001600160a01b0316836001600160a01b031603611a7f5760405163c1ab6dc160e01b815260040160405180910390fd5b611a936001600160a01b0384168284612652565b505050565b5f610c84826001612109565b6004545f90600160a01b900462ffffff1615611ad357604051637a851da960e11b815260040160405180910390fd5b6112958484846126b1565b6004545f90600160a01b900462ffffff1615611b0d57604051637a851da960e11b815260040160405180910390fd5b611295848484612707565b5f610c84825f612153565b611b2b612187565b6276a70062ffffff82161115611b5457604051637475d84d60e11b815260040160405180910390fd5b6004805462ffffff838116600160a01b90810262ffffff60a01b198416179384905560408051938290048316808552919094049091166020830152917f180eacdf7dbaeecaa983d93173b4285db2f2c0de0044697e1f932bbbb73dcaa6910160405180910390a15050565b5f610c84611bcc8361129d565b5f612109565b6004545f90600160a01b900462ffffff168103611c0257604051637a851da960e11b815260040160405180910390fd5b611c0b82611bbf565b831115611c2b57604051636fa9eef160e11b815260040160405180910390fd5b5f611c3584610ca1565b600454909150611c5190600160a01b900462ffffff16426136bf565b6001600160a01b0384165f908152600160208190526040822080546001600160681b0319166001600160681b0394909416939093178355919091018054869290611c9c908490613621565b90915550610ea89050336002546001600160a01b03168587856125db565b611cc2612187565b6001600160a01b038116611ce95760405163f6b2911f60e01b815260040160405180910390fd5b6004546001600160a01b03808316911603611d175760405163a741a04560e01b815260040160405180910390fd5b6040516001600160a01b03821681527fdb8167fc515fc9095f0a3a91bcd16cf7f1a9b3cc52ebad83691f81180d5098a59060200160405180910390a1600480546001600160a01b0319166001600160a01b0392909216919091179055565b5f610c848261129d565b611d87612187565b6004805460ff600160c81b808304821615810260ff60c81b1990931692909217928390556040517f79a0d73b50e293c1e17b973f07d567c5a14399afb5e2373c44a82e9f9109d71693611de39390049091161515815260200190565b60405180910390a1565b5f805f5160206139795f395f51905f52610e80565b6001600160a01b039182165f9081527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace016020908152604080832093909416825291909152205490565b611e53612266565b335f908152600160208190526040909120908101548154426001600160681b039091161115611ea957815460405163922bceef60e01b81524260048201526001600160681b039091166024820152604401610ce4565b805f03611ec95760405163422f6e3560e11b815260040160405180910390fd5b6005545f03611eeb57604051637cf9af2360e11b815260040160405180910390fd5b81546001600160681b03191682555f60018301556005548190670de0b6b3a7640000111561200557670de0b6b3a764000060055483611f2a919061364d565b611f349190613678565b90505f611f41828461368b565b60025460405163f3fef3a360e01b8152306004820152602481018390529192506001600160a01b03169063f3fef3a3906044015f604051808303815f87803b158015611f8b575f5ffd5b505af1158015611f9d573d5f5f3e3d5ffd5b50505050611fa9610ede565b6001600160a01b03166342966c68826040518263ffffffff1660e01b8152600401611fd691815260200190565b5f604051808303815f87803b158015611fed575f5ffd5b505af1158015611fff573d5f5f3e3d5ffd5b50505050505b604080513381526001600160a01b0386166020820152908101839052606081018290527f18edd09e80386cd99df397e2e0d87d2bb259423eae08645e776321a36fe680ef9060800160405180910390a160025460405163f3fef3a360e01b81526001600160a01b038681166004830152602482018490529091169063f3fef3a3906044015f604051808303815f87803b1580156120a0575f5ffd5b505af11580156120b2573d5f5f3e3d5ffd5b505050505050506111b260015f5160206139d95f395f51905f5255565b6120d7612187565b6001600160a01b03811661210057604051631e4fbdf760e01b81525f6004820152602401610ce4565b6111b28161250a565b5f610ea8612115610b43565b612120906001613621565b61212b5f600a6137c1565b612133610e6f565b61213d9190613621565b85919085612754565b611a9383838360016127a1565b5f610ea861216282600a6137c1565b61216a610e6f565b6121749190613621565b61217c610b43565b61213d906001613621565b33612190611504565b6001600160a01b0316146112d45760405163118cdaa760e01b8152336004820152602401610ce4565b5f6121c48484611e02565b90505f19811461220357818110156121f557828183604051637dc7a0d960e11b8152600401610ce49392919061369e565b61220384848484035f6127a1565b50505050565b6001600160a01b03831661223257604051634b637e8f60e11b81525f6004820152602401610ce4565b6001600160a01b03821661225b5760405163ec442f0560e01b81525f6004820152602401610ce4565b611a93838383612884565b5f5160206139d95f395f51905f5280546001190161229757604051633ee5aeb560e01b815260040160405180910390fd5b60029055565b60015f5160206139d95f395f51905f5255565b306001600160a01b037f000000000000000000000000843e3a09675e5fa00951c55727f8b0f2076c0d2c16148061233657507f000000000000000000000000843e3a09675e5fa00951c55727f8b0f2076c0d2c6001600160a01b031661232a5f5160206139595f395f51905f52546001600160a01b031690565b6001600160a01b031614155b156112d45760405163703e46dd60e11b815260040160405180910390fd5b61235c612187565b6111b2816129aa565b816001600160a01b03166352d1902d6040518163ffffffff1660e01b8152600401602060405180830381865afa9250505080156123bf575060408051601f3d908101601f191682019092526123bc918101906135be565b60015b6123e757604051634c9c8ce360e01b81526001600160a01b0383166004820152602401610ce4565b5f5160206139595f395f51905f52811461241757604051632a87526960e21b815260048101829052602401610ce4565b611a938383612a34565b306001600160a01b037f000000000000000000000000843e3a09675e5fa00951c55727f8b0f2076c0d2c16146112d45760405163703e46dd60e11b815260040160405180910390fd5b612472612266565b600454600160c81b900460ff1661249c57604051630e2f42c960e31b815260040160405180910390fd5b81805f036124bd5760405163162908e360e11b815260040160405180910390fd5b81805f036124de5760405163162908e360e11b815260040160405180910390fd5b6124ea86868686612a89565b6124f2612b06565b505061220360015f5160206139d95f395f51905f5255565b7f9016d09d72d40fdae2fd8ceac6b6234c7706214fd39c1cd1e609a0528c19930080546001600160a01b031981166001600160a01b03848116918217845560405192169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a3505050565b612582612b45565b6111d08282612b8e565b612594612b45565b6111b281612bde565b6125a5612b45565b6111b281612c4e565b6125b6612b45565b6112d4612c56565b6125c6612b45565b620151805f5160206139795f395f51905f5255565b6125e3612266565b81805f036126045760405163162908e360e11b815260040160405180910390fd5b81805f036126255760405163162908e360e11b815260040160405180910390fd5b6126328787878787612c5e565b61263a612b06565b50506115c560015f5160206139d95f395f51905f5255565b6040516001600160a01b03838116602483015260448201839052611a9391859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612d12565b5f5f6126bc83611bbf565b9050808511156126e557828582604051633fa733bb60e21b8152600401610ce49392919061369e565b5f6126ef86610ca1565b90506126fe33868689856125db565b95945050505050565b5f5f61271283611d75565b90508085111561273b57828582604051632e52afbb60e21b8152600401610ce49392919061369e565b5f61274586610c79565b90506126fe338686848a6125db565b5f5f612761868686612d73565b905061276c83612e32565b801561278757505f848061278257612782613664565b868809115b156126fe57612797600182613621565b9695505050505050565b5f5160206139395f395f51905f526001600160a01b0385166127d85760405163e602df0560e01b81525f6004820152602401610ce4565b6001600160a01b03841661280157604051634a1406b160e11b81525f6004820152602401610ce4565b6001600160a01b038086165f908152600183016020908152604080832093881683529290522083905581156115c557836001600160a01b0316856001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161287591815260200190565b60405180910390a35050505050565b5f5160206139395f395f51905f526001600160a01b0384166128be5781816002015f8282546128b39190613621565b9091555061291b9050565b6001600160a01b0384165f90815260208290526040902054828110156128fd5784818460405163391434e360e21b8152600401610ce49392919061369e565b6001600160a01b0385165f9081526020839052604090209083900390555b6001600160a01b038316612939576002810180548390039055612957565b6001600160a01b0383165f9081526020829052604090208054830190555b826001600160a01b0316846001600160a01b03167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8460405161299c91815260200190565b60405180910390a350505050565b5f5160206139995f395f51905f52545f5160206139795f395f51905f52906001600160a01b038381169116146129f3576040516316545d4f60e11b815260040160405180910390fd5b8060020154421015612a18576040516364037fb760e11b815260040160405180910390fd5b6001810180546001600160a01b03191690555f60029091015550565b612a3d82612e5e565b6040516001600160a01b038316907fbc7cd75a20ee27fd9adebab32041f755214dbc6bffa90cc0225b39da2e5c2d3b905f90a2805115612a8157611a938282612ec1565b6111d0612f2a565b5f5160206139b95f395f51905f528054612aae906001600160a01b0316863086612f49565b612ab88483612f82565b836001600160a01b0316856001600160a01b03167fdcbc1c05240f31ff3ad067ef1ee35ce4997762752e3a095284754544f4c709d78585604051612875929190918252602082015260400190565b5f612b0f610e6f565b90505f81118015612b275750670de0b6b3a764000081105b156111b257604051635a5c1b5560e11b815260040160405180910390fd5b7ff0c57e16840df040f15088dc2f81fe391c3923bec73e23a9662efc9c229c6a0054600160401b900460ff166112d457604051631afcd79f60e31b815260040160405180910390fd5b612b96612b45565b5f5160206139395f395f51905f527f52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace03612bcf8482613813565b50600481016122038382613813565b612be6612b45565b5f5160206139b95f395f51905f525f80612bff84612fb6565b9150915081612c0f576012612c11565b805b83546001600160a81b031916600160a01b60ff92909216919091026001600160a01b031916176001600160a01b0394909416939093179091555050565b6120d7612b45565b61229d612b45565b5f5160206139b95f395f51905f526001600160a01b0386811690851614612c8a57612c8a8487846121b9565b612c94848361308c565b8054612caa906001600160a01b03168685612652565b836001600160a01b0316856001600160a01b0316876001600160a01b03167ffbde797d201c681b91056529119e0b02407c7bb96a4a2c75c01fc9667232c8db8686604051612d02929190918252602082015260400190565b60405180910390a4505050505050565b5f612d266001600160a01b038416836130c0565b905080515f14158015612d4a575080806020019051810190612d4891906138ce565b155b15611a9357604051635274afe760e01b81526001600160a01b0384166004820152602401610ce4565b5f838302815f1985870982811083820303915050805f03612da757838281612d9d57612d9d613664565b0492505050610ea8565b808411612dc75760405163227bc15360e01b815260040160405180910390fd5b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150509392505050565b5f6002826003811115612e4757612e476138ed565b612e519190613901565b60ff166001149050919050565b806001600160a01b03163b5f03612e9357604051634c9c8ce360e01b81526001600160a01b0382166004820152602401610ce4565b5f5160206139595f395f51905f5280546001600160a01b0319166001600160a01b0392909216919091179055565b60605f5f846001600160a01b031684604051612edd9190613922565b5f60405180830381855af49150503d805f8114612f15576040519150601f19603f3d011682016040523d82523d5f602084013e612f1a565b606091505b50915091506126fe8583836130cd565b34156112d45760405163b398979f60e01b815260040160405180910390fd5b6040516001600160a01b0384811660248301528381166044830152606482018390526122039186918216906323b872dd9060840161267f565b6001600160a01b038216612fab5760405163ec442f0560e01b81525f6004820152602401610ce4565b6111d05f8383612884565b60408051600481526024810182526020810180516001600160e01b031663313ce56760e01b17905290515f918291829182916001600160a01b03871691612ffc91613922565b5f60405180830381855afa9150503d805f8114613034576040519150601f19603f3d011682016040523d82523d5f602084013e613039565b606091505b509150915081801561304d57506020815110155b15613080575f8180602001905181019061306791906135be565b905060ff811161307e576001969095509350505050565b505b505f9485945092505050565b6001600160a01b0382166130b557604051634b637e8f60e11b81525f6004820152602401610ce4565b6111d0825f83612884565b6060610ea883835f613129565b6060826130e2576130dd826131b8565b610ea8565b81511580156130f957506001600160a01b0384163b155b1561312257604051639996b31560e01b81526001600160a01b0385166004820152602401610ce4565b5080610ea8565b60608147101561314e5760405163cd78605960e01b8152306004820152602401610ce4565b5f5f856001600160a01b031684866040516131699190613922565b5f6040518083038185875af1925050503d805f81146131a3576040519150601f19603f3d011682016040523d82523d5f602084013e6131a8565b606091505b50915091506127978683836130cd565b8051156131c85780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b80356001600160a01b03811681146131f7575f5ffd5b919050565b5f6020828403121561320c575f5ffd5b610ea8826131e1565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f6020828403121561325a575f5ffd5b5035919050565b5f5f60408385031215613272575f5ffd5b61327b836131e1565b946020939093013593505050565b5f5f5f6060848603121561329b575f5ffd5b6132a4846131e1565b92506132b2602085016131e1565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b5f5f604083850312156132e8575f5ffd5b6132f1836131e1565b9150602083013567ffffffffffffffff81111561330c575f5ffd5b8301601f8101851361331c575f5ffd5b803567ffffffffffffffff811115613336576133366132c3565b604051601f8201601f19908116603f0116810167ffffffffffffffff81118282101715613365576133656132c3565b60405281815282820160200187101561337c575f5ffd5b816020840160208301375f602083830101528093505050509250929050565b5f5f604083850312156133ac575f5ffd5b823591506133bc602084016131e1565b90509250929050565b5f5f83601f8401126133d5575f5ffd5b50813567ffffffffffffffff8111156133ec575f5ffd5b602083019150836020828501011115613403575f5ffd5b9250929050565b5f5f5f5f5f5f5f60a0888a031215613420575f5ffd5b613429886131e1565b9650613437602089016131e1565b9550613445604089016131e1565b9450606088013567ffffffffffffffff811115613460575f5ffd5b61346c8a828b016133c5565b909550935050608088013567ffffffffffffffff81111561348b575f5ffd5b6134978a828b016133c5565b989b979a50959850939692959293505050565b5f602082840312156134ba575f5ffd5b813561ffff81168114610ea8575f5ffd5b5f5f604083850312156134dc575f5ffd5b6134e5836131e1565b915060208301356001600160681b0381168114613500575f5ffd5b809150509250929050565b5f5f5f6060848603121561351d575f5ffd5b613526846131e1565b92506020840135915061353b604085016131e1565b90509250925092565b5f5f5f60608486031215613556575f5ffd5b83359250613566602085016131e1565b915061353b604085016131e1565b5f60208284031215613584575f5ffd5b813562ffffff81168114610ea8575f5ffd5b5f5f604083850312156135a7575f5ffd5b6135b0836131e1565b91506133bc602084016131e1565b5f602082840312156135ce575f5ffd5b5051919050565b600181811c908216806135e957607f821691505b60208210810361360757634e487b7160e01b5f52602260045260245ffd5b50919050565b634e487b7160e01b5f52601160045260245ffd5b80820180821115610c8457610c8461360d565b60ff8181168382160190811115610c8457610c8461360d565b8082028115828204841417610c8457610c8461360d565b634e487b7160e01b5f52601260045260245ffd5b5f8261368657613686613664565b500490565b81810381811115610c8457610c8461360d565b6001600160a01b039390931683526020830191909152604082015260600190565b6001600160681b038181168382160190811115610c8457610c8461360d565b6001815b6001841115613719578085048111156136fd576136fd61360d565b600184161561370b57908102905b60019390931c9280026136e2565b935093915050565b5f8261372f57506001610c84565b8161373b57505f610c84565b8160018114613751576002811461375b57613777565b6001915050610c84565b60ff84111561376c5761376c61360d565b50506001821b610c84565b5060208310610133831016604e8410600b841016171561379a575081810a610c84565b6137a65f1984846136de565b805f19048211156137b9576137b961360d565b029392505050565b5f610ea860ff841683613721565b601f821115611a9357805f5260205f20601f840160051c810160208510156137f45750805b601f840160051c820191505b818110156115c5575f8155600101613800565b815167ffffffffffffffff81111561382d5761382d6132c3565b6138418161383b84546135d5565b846137cf565b6020601f821160018114613873575f831561385c5750848201515b5f19600385901b1c1916600184901b1784556115c5565b5f84815260208120601f198516915b828110156138a25787850151825560209485019460019092019101613882565b50848210156138bf57868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b5f602082840312156138de575f5ffd5b81518015158114610ea8575f5ffd5b634e487b7160e01b5f52602160045260245ffd5b5f60ff83168061391357613913613664565b8060ff84160691505092915050565b5f82518060208501845e5f92019182525091905056fe52c63247e1f47db19d5ce0460030c497f067ca4cebf71ba98eeadabe20bace00360894a13ba1a3210667c828492db98dca3e2076cc3735a920a3ca505d382bbca9f7ef5782100b08bddb9be7a16303ba138e26e6df1a3e56c7be0bac217aa800a9f7ef5782100b08bddb9be7a16303ba138e26e6df1a3e56c7be0bac217aa8010773e532dfede91f04b12a73d3d2acd361424f41f76b4fb79f090161e36b4e009b779b17422d0df92223018b32b4d1fa46e071723d6817e2486d003becc55f00a164736f6c634300081e000a
🤖 Code Reader Beta

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.