Source Code
Overview
ETH Balance
0 ETH
More Info
ContractCreator
Multichain Info
N/A
View more zero value Internal Transactions in Advanced View mode
Advanced mode:
Loading...
Loading
Loading...
Loading
Loading...
Loading
This contract contains unverified libraries: EcdsaInactivity
Heuristics suggest this may be a proxy contract. Verify using the Proxy Contract Checker
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API[{"inputs":[{"internalType":"contract SortitionPool","name":"_sortitionPool","type":"address"},{"internalType":"contract IStaking","name":"_staking","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowlistAddressZero","type":"error"},{"inputs":[],"name":"CallerNotGovernance","type":"error"},{"inputs":[],"name":"CallerNotRandomBeacon","type":"error"},{"inputs":[],"name":"CallerNotStakingContract","type":"error"},{"inputs":[],"name":"CallerNotWalletOwner","type":"error"},{"inputs":[],"name":"CurrentStateNotIdle","type":"error"},{"inputs":[],"name":"InvalidGroupMembers","type":"error"},{"inputs":[],"name":"InvalidNonce","type":"error"},{"inputs":[],"name":"InvalidWalletMembersIdentifiers","type":"error"},{"inputs":[],"name":"NotEnoughExtraGasLeft","type":"error"},{"inputs":[],"name":"NotSortitionPoolOperator","type":"error"},{"inputs":[],"name":"UnknownOperator","type":"error"},{"inputs":[],"name":"WalletMemberIndexOutOfRange","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"}],"name":"AuthorizationDecreaseApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint96","name":"fromAmount","type":"uint96"},{"indexed":false,"internalType":"uint96","name":"toAmount","type":"uint96"},{"indexed":false,"internalType":"uint64","name":"decreasingAt","type":"uint64"}],"name":"AuthorizationDecreaseRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint96","name":"fromAmount","type":"uint96"},{"indexed":false,"internalType":"uint96","name":"toAmount","type":"uint96"}],"name":"AuthorizationIncreased","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint96","name":"minimumAuthorization","type":"uint96"},{"indexed":false,"internalType":"uint64","name":"authorizationDecreaseDelay","type":"uint64"},{"indexed":false,"internalType":"uint64","name":"authorizationDecreaseChangePeriod","type":"uint64"}],"name":"AuthorizationParametersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"resultHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"slashingAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"maliciousSubmitter","type":"address"}],"name":"DkgMaliciousResultSlashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"resultHash","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"slashingAmount","type":"uint256"},{"indexed":false,"internalType":"address","name":"maliciousSubmitter","type":"address"}],"name":"DkgMaliciousResultSlashingFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"seedTimeout","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultChallengePeriodLength","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultChallengeExtraGas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultSubmissionTimeout","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"resultSubmitterPrecedencePeriodLength","type":"uint256"}],"name":"DkgParametersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"resultHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"approver","type":"address"}],"name":"DkgResultApproved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"resultHash","type":"bytes32"},{"indexed":true,"internalType":"address","name":"challenger","type":"address"},{"indexed":false,"internalType":"string","name":"reason","type":"string"}],"name":"DkgResultChallenged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"resultHash","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"seed","type":"uint256"},{"components":[{"internalType":"uint256","name":"submitterMemberIndex","type":"uint256"},{"internalType":"bytes","name":"groupPubKey","type":"bytes"},{"internalType":"uint8[]","name":"misbehavedMembersIndices","type":"uint8[]"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"},{"internalType":"uint32[]","name":"members","type":"uint32[]"},{"internalType":"bytes32","name":"membersHash","type":"bytes32"}],"indexed":false,"internalType":"struct EcdsaDkg.Result","name":"result","type":"tuple"}],"name":"DkgResultSubmitted","type":"event"},{"anonymous":false,"inputs":[],"name":"DkgSeedTimedOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"seed","type":"uint256"}],"name":"DkgStarted","type":"event"},{"anonymous":false,"inputs":[],"name":"DkgStateLocked","type":"event"},{"anonymous":false,"inputs":[],"name":"DkgTimedOut","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"dkgResultSubmissionGas","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"dkgResultApprovalGasOffset","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"notifyOperatorInactivityGasOffset","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"notifySeedTimeoutGasOffset","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"notifyDkgTimeoutNegativeGasOffset","type":"uint256"}],"name":"GasParametersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldGovernance","type":"address"},{"indexed":false,"internalType":"address","name":"newGovernance","type":"address"}],"name":"GovernanceTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"walletID","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"nonce","type":"uint256"},{"indexed":false,"internalType":"address","name":"notifier","type":"address"}],"name":"InactivityClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"uint96","name":"fromAmount","type":"uint96"},{"indexed":false,"internalType":"uint96","name":"toAmount","type":"uint96"}],"name":"InvoluntaryAuthorizationDecreaseFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorJoinedSortitionPool","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorRegistered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"}],"name":"OperatorStatusUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"randomBeacon","type":"address"}],"name":"RandomBeaconUpgraded","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"newReimbursementPool","type":"address"}],"name":"ReimbursementPoolUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maliciousDkgResultNotificationRewardMultiplier","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"sortitionPoolRewardsBanDuration","type":"uint256"}],"name":"RewardParametersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"stakingProvider","type":"address"},{"indexed":false,"internalType":"uint96","name":"amount","type":"uint96"}],"name":"RewardsWithdrawn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"maliciousDkgResultSlashingAmount","type":"uint256"}],"name":"SlashingParametersUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"walletID","type":"bytes32"}],"name":"WalletClosed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"walletID","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"dkgResultHash","type":"bytes32"}],"name":"WalletCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"walletOwner","type":"address"}],"name":"WalletOwnerUpdated","type":"event"},{"inputs":[{"internalType":"uint256","name":"relayEntry","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"name":"__beaconCallback","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"allowlist","outputs":[{"internalType":"contract Allowlist","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"approveAuthorizationDecrease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"submitterMemberIndex","type":"uint256"},{"internalType":"bytes","name":"groupPubKey","type":"bytes"},{"internalType":"uint8[]","name":"misbehavedMembersIndices","type":"uint8[]"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"},{"internalType":"uint32[]","name":"members","type":"uint32[]"},{"internalType":"bytes32","name":"membersHash","type":"bytes32"}],"internalType":"struct EcdsaDkg.Result","name":"dkgResult","type":"tuple"}],"name":"approveDkgResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"},{"internalType":"uint96","name":"fromAmount","type":"uint96"},{"internalType":"uint96","name":"toAmount","type":"uint96"}],"name":"authorizationDecreaseRequested","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"},{"internalType":"uint96","name":"fromAmount","type":"uint96"},{"internalType":"uint96","name":"toAmount","type":"uint96"}],"name":"authorizationIncreased","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"authorizationParameters","outputs":[{"internalType":"uint96","name":"minimumAuthorization","type":"uint96"},{"internalType":"uint64","name":"authorizationDecreaseDelay","type":"uint64"},{"internalType":"uint64","name":"authorizationDecreaseChangePeriod","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"availableRewards","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"submitterMemberIndex","type":"uint256"},{"internalType":"bytes","name":"groupPubKey","type":"bytes"},{"internalType":"uint8[]","name":"misbehavedMembersIndices","type":"uint8[]"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"},{"internalType":"uint32[]","name":"members","type":"uint32[]"},{"internalType":"bytes32","name":"membersHash","type":"bytes32"}],"internalType":"struct EcdsaDkg.Result","name":"dkgResult","type":"tuple"}],"name":"challengeDkgResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"walletID","type":"bytes32"}],"name":"closeWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"dkgParameters","outputs":[{"components":[{"internalType":"uint256","name":"seedTimeout","type":"uint256"},{"internalType":"uint256","name":"resultChallengePeriodLength","type":"uint256"},{"internalType":"uint256","name":"resultChallengeExtraGas","type":"uint256"},{"internalType":"uint256","name":"resultSubmissionTimeout","type":"uint256"},{"internalType":"uint256","name":"submitterPrecedencePeriodLength","type":"uint256"}],"internalType":"struct EcdsaDkg.Parameters","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"eligibleStake","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"gasParameters","outputs":[{"internalType":"uint256","name":"dkgResultSubmissionGas","type":"uint256"},{"internalType":"uint256","name":"dkgResultApprovalGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifyOperatorInactivityGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifySeedTimeoutGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifyDkgTimeoutNegativeGasOffset","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"walletID","type":"bytes32"}],"name":"getWallet","outputs":[{"components":[{"internalType":"bytes32","name":"membersIdsHash","type":"bytes32"},{"internalType":"bytes32","name":"publicKeyX","type":"bytes32"},{"internalType":"bytes32","name":"publicKeyY","type":"bytes32"}],"internalType":"struct Wallets.Wallet","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getWalletCreationState","outputs":[{"internalType":"enum EcdsaDkg.State","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"walletID","type":"bytes32"}],"name":"getWalletPublicKey","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"governance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasDkgTimedOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"hasSeedTimedOut","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"inactivityClaimNonce","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"contract EcdsaDkgValidator","name":"_ecdsaDkgValidator","type":"address"},{"internalType":"contract IRandomBeacon","name":"_randomBeacon","type":"address"},{"internalType":"contract ReimbursementPool","name":"_reimbursementPool","type":"address"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_allowlist","type":"address"}],"name":"initializeV2","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"},{"internalType":"uint96","name":"fromAmount","type":"uint96"},{"internalType":"uint96","name":"toAmount","type":"uint96"}],"name":"involuntaryAuthorizationDecrease","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"submitterMemberIndex","type":"uint256"},{"internalType":"bytes","name":"groupPubKey","type":"bytes"},{"internalType":"uint8[]","name":"misbehavedMembersIndices","type":"uint8[]"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"},{"internalType":"uint32[]","name":"members","type":"uint32[]"},{"internalType":"bytes32","name":"membersHash","type":"bytes32"}],"internalType":"struct EcdsaDkg.Result","name":"result","type":"tuple"}],"name":"isDkgResultValid","outputs":[{"internalType":"bool","name":"","type":"bool"},{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isOperatorInPool","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"isOperatorUpToDate","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"walletID","type":"bytes32"},{"internalType":"uint32[]","name":"walletMembersIDs","type":"uint32[]"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint256","name":"walletMemberIndex","type":"uint256"}],"name":"isWalletMember","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"walletID","type":"bytes32"}],"name":"isWalletRegistered","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"joinSortitionPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"minimumAuthorization","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notifyDkgTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"walletID","type":"bytes32"},{"internalType":"uint256[]","name":"inactiveMembersIndices","type":"uint256[]"},{"internalType":"bool","name":"heartbeatFailed","type":"bool"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"}],"internalType":"struct EcdsaInactivity.Claim","name":"claim","type":"tuple"},{"internalType":"uint256","name":"nonce","type":"uint256"},{"internalType":"uint32[]","name":"groupMembers","type":"uint32[]"}],"name":"notifyOperatorInactivity","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"notifySeedTimeout","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"operatorToStakingProvider","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"pendingAuthorizationDecrease","outputs":[{"internalType":"uint96","name":"","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"randomBeacon","outputs":[{"internalType":"contract IRandomBeacon","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"registerOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"reimbursementPool","outputs":[{"internalType":"contract ReimbursementPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"remainingAuthorizationDecreaseDelay","outputs":[{"internalType":"uint64","name":"","type":"uint64"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"requestNewWallet","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"rewardParameters","outputs":[{"internalType":"uint256","name":"maliciousDkgResultNotificationRewardMultiplier","type":"uint256"},{"internalType":"uint256","name":"sortitionPoolRewardsBanDuration","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint96","name":"amount","type":"uint96"},{"internalType":"uint256","name":"rewardMultiplier","type":"uint256"},{"internalType":"address","name":"notifier","type":"address"},{"internalType":"bytes32","name":"walletID","type":"bytes32"},{"internalType":"uint32[]","name":"walletMembersIDs","type":"uint32[]"}],"name":"seize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"selectGroup","outputs":[{"internalType":"uint32[]","name":"","type":"uint32[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"slashingParameters","outputs":[{"internalType":"uint96","name":"maliciousDkgResultSlashingAmount","type":"uint96"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"sortitionPool","outputs":[{"internalType":"contract SortitionPool","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"staking","outputs":[{"internalType":"contract IStaking","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"stakingProviderToOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"submitterMemberIndex","type":"uint256"},{"internalType":"bytes","name":"groupPubKey","type":"bytes"},{"internalType":"uint8[]","name":"misbehavedMembersIndices","type":"uint8[]"},{"internalType":"bytes","name":"signatures","type":"bytes"},{"internalType":"uint256[]","name":"signingMembersIndices","type":"uint256[]"},{"internalType":"uint32[]","name":"members","type":"uint32[]"},{"internalType":"bytes32","name":"membersHash","type":"bytes32"}],"internalType":"struct EcdsaDkg.Result","name":"dkgResult","type":"tuple"}],"name":"submitDkgResult","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newGovernance","type":"address"}],"name":"transferGovernance","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"_minimumAuthorization","type":"uint96"},{"internalType":"uint64","name":"_authorizationDecreaseDelay","type":"uint64"},{"internalType":"uint64","name":"_authorizationDecreaseChangePeriod","type":"uint64"}],"name":"updateAuthorizationParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_seedTimeout","type":"uint256"},{"internalType":"uint256","name":"_resultChallengePeriodLength","type":"uint256"},{"internalType":"uint256","name":"_resultChallengeExtraGas","type":"uint256"},{"internalType":"uint256","name":"_resultSubmissionTimeout","type":"uint256"},{"internalType":"uint256","name":"_submitterPrecedencePeriodLength","type":"uint256"}],"name":"updateDkgParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"dkgResultSubmissionGas","type":"uint256"},{"internalType":"uint256","name":"dkgResultApprovalGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifyOperatorInactivityGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifySeedTimeoutGasOffset","type":"uint256"},{"internalType":"uint256","name":"notifyDkgTimeoutNegativeGasOffset","type":"uint256"}],"name":"updateGasParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"}],"name":"updateOperatorStatus","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract ReimbursementPool","name":"_reimbursementPool","type":"address"}],"name":"updateReimbursementPool","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"maliciousDkgResultNotificationRewardMultiplier","type":"uint256"},{"internalType":"uint256","name":"sortitionPoolRewardsBanDuration","type":"uint256"}],"name":"updateRewardParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint96","name":"maliciousDkgResultSlashingAmount","type":"uint96"}],"name":"updateSlashingParameters","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IWalletOwner","name":"_walletOwner","type":"address"}],"name":"updateWalletOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IRandomBeacon","name":"_randomBeacon","type":"address"}],"name":"upgradeRandomBeacon","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"walletOwner","outputs":[{"internalType":"contract IWalletOwner","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"withdrawIneligibleRewards","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"stakingProvider","type":"address"}],"name":"withdrawRewards","outputs":[],"stateMutability":"nonpayable","type":"function"}]Contract Creation Code
60c06040523480156200001157600080fd5b5060405162005f5738038062005f57833981016040819052620000349162000133565b6001600160a01b03808316608052811660a0526200005162000059565b505062000172565b606454610100900460ff1615620000c65760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60645460ff9081161462000118576064805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b6001600160a01b03811681146200013057600080fd5b50565b600080604083850312156200014757600080fd5b825162000154816200011a565b602084015190925062000167816200011a565b809150509250929050565b60805160a051615d1e620002396000396000818161052701528181610ab801528181610e2801528181611037015281816114e301528181612018015281816123b5015261284901526000818161082301528181610b0601528181610b4301528181610b7901528181610d3d015281816110d3015281816112470152818161142d0152818161196c01528181611a7f01528181611e6b0152818161225601528181612451015281816125d701528181612660015281816126bf01526127990152615d1e6000f3fe608060405234801561001057600080fd5b50600436106103af5760003560e01c80637b35b4e6116101f4578063c88e70f41161011a578063df07ce59116100ad578063f0820c921161007c578063f0820c92146109bb578063f7186ce0146109cc578063f854a27f146109df578063fd2a4788146109f257600080fd5b8063df07ce591461095f578063e03e453514610972578063e686440f14610987578063e83ab3a51461099a57600080fd5b8063d38bfff4116100e9578063d38bfff414610905578063d855c63114610918578063d8dc404d14610920578063ded56d451461093357600080fd5b8063c88e70f4146108b7578063c9bacaad146108ca578063cc562388146108dd578063d0bcc0e3146108f257600080fd5b80639c9de02811610192578063b5e9ce8b11610161578063b5e9ce8b14610845578063c09975cd14610865578063c0c53b8b14610878578063c7c49c981461088b57600080fd5b80639c9de028146107d8578063a04e298014610803578063b13b55b214610816578063b54a23741461081e57600080fd5b8063830f9e02116101ce578063830f9e021461074857806388a59590146107775780638dcbdf4a146107b25780639879d19b146107c557600080fd5b80637b35b4e61461070f5780637e0049fd146107225780637e33cba61461073557600080fd5b80634d99f473116102d95780636b5f2bff1161027757806375e0ae5a1161024657806375e0ae5a1461061c578063770124d31461062f578063789d392a146106375780637b14729e146106b257600080fd5b80636b5f2bff146105db5780636c9ecd64146105ee5780636febd4641461060157806372cc8c6d1461061457600080fd5b80635c5b3870116102b35780635c5b38701461059a578063663032cd146105ad57806368c34948146105c05780636a7f7a90146105c857600080fd5b80634d99f47314610549578063529023011461056c5780635aa6e6751461058757600080fd5b8063227fd44f11610351578063343bb92711610320578063343bb927146104e95780633682a450146104fc57806342d866931461050f5780634cf088d91461052257600080fd5b8063227fd44f1461049c57806329b6eca9146104af5780632b47da52146104c257806331376766146104d657600080fd5b8063167f05171161038d578063167f0517146104485780631ae879e8146104505780631c5b0762146104645780631d35fa631461047757600080fd5b806308aa090b146103b457806314a8547414610407578063153622b31461041c575b600080fd5b6103bc610a05565b6040516103fe9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60405180910390f35b61041a610415366004614de5565b610a6c565b005b61010654610430906001600160a01b031681565b6040516001600160a01b0390911681526020016103fe565b61041a610b33565b61010554610430906001600160a01b031681565b61041a610472366004614e30565b610b69565b60fc546001600160601b03165b6040516001600160601b0390911681526020016103fe565b61041a6104aa366004614e4d565b610ba1565b61041a6104bd366004614e30565b610c29565b61010754610430906001600160a01b031681565b61041a6104e4366004614e6a565b610d04565b61041a6104f7366004614ea4565b610f6c565b61041a61050a366004614e30565b610fd1565b61041a61051d366004614e30565b610fdc565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b61055c610557366004614ea4565b611192565b60405190151581526020016103fe565b60fd5460fe54604080519283526020830191909152016103fe565b600054610430906001600160a01b031681565b61041a6105a8366004614e6a565b6111ad565b61041a6105bb366004614e30565b6113e4565b61055c611486565b61041a6105d6366004614de5565b611497565b61041a6105e9366004614e30565b61152e565b61041a6105fc366004614ebd565b6115a7565b61041a61060f366004614ebd565b611611565b61041a61164c565b61041a61062a366004614e30565b6116dc565b61055c6116f0565b610690610645366004614ea4565b60408051606080820183526000808352602080840182905292840181905293845260ca8252928290208251938401835280548452600181015491840191909152600201549082015290565b60408051825181526020808401519082015291810151908201526060016103fe565b6106e06065546001600160601b038116916001600160401b03600160601b8304811692600160a01b90041690565b604080516001600160601b0390941684526001600160401b0392831660208501529116908201526060016103fe565b61041a61071d366004614e30565b6116fc565b61041a610730366004614e6a565b611785565b610484610743366004614e30565b6117a9565b610769610756366004614ea4565b6101046020526000908152604090205481565b6040519081526020016103fe565b60ff5461010054610101546101025461010354604080519586526020860194909452928401919091526060830152608082015260a0016103fe565b61041a6107c0366004614edf565b6117bf565b61041a6107d3366004614f5e565b6118ac565b6107eb6107e6366004614e30565b611c1f565b6040516001600160401b0390911681526020016103fe565b61041a610811366004614fec565b611c2c565b61041a611cde565b6104307f000000000000000000000000000000000000000000000000000000000000000081565b610858610853366004614ea4565b611d45565b6040516103fe9190615081565b603254610430906001600160a01b031681565b61041a610886366004615094565b611d52565b610430610899366004614e30565b6001600160a01b039081166000908152606660205260409020541690565b61041a6108c5366004614edf565b611f39565b61041a6108d8366004614de5565b611fcc565b6108e5612063565b6040516103fe91906150ea565b61041a610900366004614e30565b61206f565b61041a610913366004614e30565b6120e8565b61041a61217c565b61041a61092e366004615112565b6121b9565b610430610941366004614e30565b6001600160a01b039081166000908152606760205260409020541690565b61055c61096d36600461518d565b61242d565b61097a6125b3565b6040516103fe9190615234565b61055c610995366004614e30565b61264e565b6109ad6109a8366004614e6a565b612685565b6040516103fe929190615247565b6065546001600160601b0316610484565b61055c6109da366004614e30565b61269d565b6104846109ed366004614e30565b61272c565b610484610a00366004614e30565b61280b565b610a376040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a0810182526099548152609a546020820152609b5491810191909152609c546060820152609d54608082015290565b610107546001600160a01b03168015610aad57336001600160a01b03821614610aa857604051630159dd6560e41b815260040160405180910390fd5b610af6565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610af657604051630159dd6560e41b815260040160405180910390fd5b610b2d610b01612832565b6065907f000000000000000000000000000000000000000000000000000000000000000087878761287c565b50505050565b610b67610b3e612832565b6065907f00000000000000000000000000000000000000000000000000000000000000006129e8565b565b610b9e610b74612832565b6065907f000000000000000000000000000000000000000000000000000000000000000084612bc2565b50565b6000546001600160a01b03163314610bd45760405162461bcd60e51b8152600401610bcb90615262565b60405180910390fd5b60fc80546001600160601b0319166001600160601b0383169081179091556040519081527fe132b87eb6644ee4d4c3c32744f7e1c3906335a2d4f99330767bf573909c7d84906020015b60405180910390a150565b606454600290610100900460ff16158015610c4b575060645460ff8083169116105b610c675760405162461bcd60e51b8152600401610bcb90615299565b6064805461ffff191660ff8316176101001790556001600160a01b038216610ca257604051631718673d60e11b815260040160405180910390fd5b61010780546001600160a01b0319166001600160a01b0384161790556064805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600080610d12609784612da1565b604051638871ca5d60e01b815263ffffffff8216600482015291935091506000906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690638871ca5d90602401602060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da891906152e7565b6040805160018082528183019092529192506000919060208083019080368337019050506001600160a01b038084166000908152606760205260409020549192501681600081518110610dfd57610dfd61531a565b6001600160a01b03928316602091820292909201015260fc5460fd546040516383ddba8f60e01b81527f0000000000000000000000000000000000000000000000000000000000000000909316926383ddba8f92610e6d926001600160601b039091169133908790600401615330565b600060405180830381600087803b158015610e8757600080fd5b505af1925050508015610e98575060015b610ef15760fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f14621289a12ab59e0737decc388bba91d929c723defb4682d5d19b9a12ecfecb910160405180910390a2610f42565b60fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f88f76c659db78142f88e94db3ca791869495394c6c1b3d412ced9022dc97c9e3910160405180910390a25b609b545a1015610f655760405163c8faa26560e01b815260040160405180910390fd5b5050505050565b610105546001600160a01b03163314610f98576040516302add3a960e41b815260040160405180910390fd5b610fa360ca8261310a565b60405181907fa6ae4af610b8ada39d3675190ead27a5552631a8e33f53e4e37dbb082f11a73e90600090a250565b610b9e606582613157565b6001600160a01b038181166000908152606660205260409020541680611015576040516331158d1160e01b815260040160405180910390fd5b604051632de9480760e01b81526001600160a01b0383811660048301526000917f000000000000000000000000000000000000000000000000000000000000000090911690632de9480790602401606060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a491906153a3565b50604051637104c0e560e11b81526001600160a01b0385811660048301528281166024830152919350600092507f00000000000000000000000000000000000000000000000000000000000000009091169063e20981ca906044016020604051808303816000875af115801561111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114291906153e5565b6040516001600160601b03821681529091506001600160a01b038516907f38532b6dea69d7266fa923c7813d190be37625f2454ddfa3d93c45c79482e3fd9060200160405180910390a250505050565b600081815260ca602052604081206001015415155b92915050565b60005a905060006111bf6097846133ba565b9050600080806111e460c08701356111da6020890189615402565b60ca9291906137af565b925092509250856040516020016111fb9190615688565b60405160208183030381529060405280519060200120837fbe8f27cef1f3d94120c9c547c3614f5b992fdb0c0a497cc920fde06546291ab460405160405180910390a38351156112d3577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928560fe544261128391906156b1565b6040518363ffffffff1660e01b81526004016112a09291906156c4565b600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505b6101055460405163547d07a160e11b81526004810185905260248101849052604481018390526001600160a01b039091169063a8fa0f4290606401600060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b5050505061134a609761382a565b603254610100546001600160a01b0390911690637ad226dc905a61136e90896156e6565b60ff5461137b91906156b1565b61138591906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610bcb90615262565b604051632a59250560e21b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063a9649414906024015b600060405180830381600087803b15801561147257600080fd5b505af1158015610f65573d6000803e3d6000fd5b6000611492609761388e565b905090565b610107546001600160a01b031680156114d857336001600160a01b038216146114d357604051630159dd6560e41b815260040160405180910390fd5b611521565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461152157604051630159dd6560e41b815260040160405180910390fd5b610b2d60658585856138df565b6000546001600160a01b031633146115585760405162461bcd60e51b8152600401610bcb90615262565b61010680546001600160a01b0319166001600160a01b0383169081179091556040519081527f2b34e21b6daa8fcf8cba1c3ed709cbed2b0231d5fb60e9ccd8c2e75a5674bcb390602001610c1e565b6000546001600160a01b031633146115d15760405162461bcd60e51b8152600401610bcb90615262565b60fd82905560fe81905560408051838152602081018390527ff3a6ee10a78fb7d212e87d9be970fb16bd7324e9dc9c38d21cd7ecde781a1d2a9101610cf8565b610106546001600160a01b0316331461163d57604051632880b08760e01b815260040160405180910390fd5b611648609783613b1a565b5050565b610105546001600160a01b03163314611678576040516302add3a960e41b815260040160405180910390fd5b6116826097613bc7565b610106546040516310da3b0360e21b81523060048201526001600160a01b0390911690634368ec0c90602401600060405180830381600087803b1580156116c857600080fd5b505af1158015610b2d573d6000803e3d6000fd5b610b9e6116e7612832565b60659083613cbe565b60006114926097613eff565b6000546001600160a01b031633146117275760405163f2be30fb60e01b815260040160405180910390fd5b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1603280546001600160a01b0319166001600160a01b0392909216919091179055565b61179e6117956020830183615402565b60ca9190613f39565b610b9e609782614092565b60006111a76117b6612832565b606590846143a2565b6000546001600160a01b031633146117e95760405162461bcd60e51b8152600401610bcb90615262565b60006117f560976143dd565b6003811115611806576118066150d4565b146118245760405163bede29c160e01b815260040160405180910390fd5b61182f609786614474565b61183a60978561449c565b609b83905561184a6097836144c4565b6118556097826144ec565b604080518681526020810186905290810184905260608101839052608081018290527f59ae8ed7b3a7e5f6dde4cff478f0ac0aa652c5edc4f4757b09a778a430b02c569060a0015b60405180910390a15050505050565b60005a8535600081815261010460205260409020549192509085146118e457604051633ab3447f60e11b815260040160405180910390fd5b6000806118f260ca846145bc565b9092509050600061190460ca8561460c565b905086866040516020016119199291906156f9565b60405160208183030381529060405280519060200120811461194e576040516394977fa560e01b815260040160405180910390fd5b6000734f06d16082a49d74957e4094fc6e9ce21a6f019063f4df04be7f00000000000000000000000000000000000000000000000000000000000000008c87876040516020016119a8929190918252602082015260400190565b6040516020818303038152906040528d8d8d6040518763ffffffff1660e01b81526004016119db9695949392919061571b565b600060405180830381865af41580156119f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a209190810190615852565b600086815261010460205260408120805492935090611a3e836158f0565b9091555050604080518a815233602082015286917f326e1ff7c130ed708307116f79cf7dbca649503e7082e5e35a19ceeee1523b39910160405180910390a27f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663942f68928260fe5442611abb91906156b1565b6040518363ffffffff1660e01b8152600401611ad89291906156c4565b600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50611b1b9250505060608b0160408c01615909565b15611b8e5761010554604051631ee74c0960e11b81526004810187905260248101869052604481018590526001600160a01b0390911690633dce981290606401600060405180830381600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b505050505b603254610101546001600160a01b0390911690637ad226dc905a611bb2908a6156e6565b611bbc91906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015611bfb57600080fd5b505af1158015611c0f573d6000803e3d6000fd5b5050505050505050505050505050565b60006111a760658361464e565b6000546001600160a01b03163314611c565760405162461bcd60e51b8152600401610bcb90615262565b606580546001600160601b0319166001600160601b038516179055611c7c6065836146e6565b611c8760658261470e565b604080516001600160601b03851681526001600160401b03848116602083015283168183015290517f544b726e42801bb47073854eeedae851903f66fe32a5bd24e626e10b90027b519181900360600190a1505050565b60005a9050611ced6097614736565b603254610102546001600160a01b0390911690637ad226dc905a611d1190856156e6565b611d1b91906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401611458565b60606111a760ca836147bd565b606454610100900460ff1615808015611d725750606454600160ff909116105b80611d8c5750303b158015611d8c575060645460ff166001145b611da85760405162461bcd60e51b8152600401610bcb90615299565b6064805460ff191660011790558015611dcb576064805461ff0019166101001790555b61010680546001600160a01b038086166001600160a01b0319928316179092556032805492851692909116919091179055611e05336147f8565b606580546001600160601b031916690878678326eac9000000179055611e2f6065623b53806146e6565b611e3d6065623b538061470e565b60fc80546001600160601b0319166815af1d78b58c400000179055606460fd556212750060fe55611e9060977f000000000000000000000000000000000000000000000000000000000000000086614852565b611e9d6097612d00614474565b611eaa6097612d0061449c565b61c350609b55611ebd60976102186144c4565b611ec9609760146144ec565b62046cd060ff55620119406101005562016b4861010155611c52610102556108fc610103558015610b2d576064805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000546001600160a01b03163314611f635760405162461bcd60e51b8152600401610bcb90615262565b60ff859055610100849055610101839055610102829055610103819055604080518681526020810186905290810184905260608101839052608081018290527f8a3e64fa6013a36bccca7362e8826b11ba41e57fb60f55309c0ca48904dad0829060a00161189d565b610107546001600160a01b0316801561200d57336001600160a01b0382161461200857604051630159dd6560e41b815260040160405180910390fd5b612056565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461205657604051630159dd6560e41b815260040160405180910390fd5b610b2d6065858585614947565b600061149260976143dd565b6000546001600160a01b031633146120995760405162461bcd60e51b8152600401610bcb90615262565b61010580546001600160a01b0319166001600160a01b0383169081179091556040519081527fa1993af5a189ba5ad4155263c920cfee33ce0593a8eb231a13bb3ce6f39459e390602001610c1e565b6000546001600160a01b031633146121125760405162461bcd60e51b8152600401610bcb90615262565b6001600160a01b0381166121735760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f206164647265604482015261737360f01b6064820152608401610bcb565b610b9e816147f8565b60005a905061218b6097614a14565b603254610103546001600160a01b0390911690637ad226dc905a6121af90856156e6565b611d1b91906156e6565b610105546001600160a01b031633146121e5576040516302add3a960e41b815260040160405180910390fd5b60006121f260ca8561460c565b905082826040516020016122079291906156f9565b60405160208183030381529060405280519060200120811461223c576040516323f9e80360e11b815260040160405180910390fd5b604051637bfcd47d60e11b81526000906001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000169063f7f9a8fa9061228d90879087906004016156f9565b600060405180830381865afa1580156122aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122d29190810190615926565b90506000836001600160401b038111156122ee576122ee615304565b604051908082528060200260200182016040528015612317578160200160208202803683370190505b50905060005b825181101561239d5761236183828151811061233b5761233b61531a565b60200260200101516001600160a01b039081166000908152606760205260409020541690565b8282815181106123735761237361531a565b6001600160a01b039092166020928302919091019091015280612395816158f0565b91505061231d565b506040516383ddba8f60e01b81526001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016906383ddba8f906123f0908c908c908c908790600401615330565b600060405180830381600087803b15801561240a57600080fd5b505af115801561241e573d6000803e3d6000fd5b50505050505050505050505050565b604051635a48b46b60e01b81526001600160a01b03838116600483015260009182917f00000000000000000000000000000000000000000000000000000000000000001690635a48b46b90602401602060405180830381865afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc91906159b4565b90508063ffffffff166000036124e55760405163427ce39560e01b815260040160405180910390fd5b60006124f260ca8961460c565b905086866040516020016125079291906156f9565b60405160208183030381529060405280519060200120811461253c576040516323f9e80360e11b815260040160405180910390fd5b600184108061254a57508584115b1561256857604051635d2de7eb60e01b815260040160405180910390fd5b63ffffffff8216878761257c6001886156e6565b81811061258b5761258b61531a565b90506020020160208101906125a091906159d1565b63ffffffff161498975050505050505050565b60a054604051636c2530b960e01b81526064600482015260248101919091526060907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690636c2530b990604401600060405180830381865afa158015612626573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114929190810190615852565b60006111a761265b612832565b6065907f000000000000000000000000000000000000000000000000000000000000000085614a93565b60006060612694609784614c07565b91509150915091565b6040516307b8c36760e51b81526001600160a01b0382811660048301526000917f00000000000000000000000000000000000000000000000000000000000000009091169063f7186ce090602401602060405180830381865afa158015612708573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a791906159ee565b600080612751836001600160a01b039081166000908152606660205260409020541690565b90506001600160a01b03811661277a576040516331158d1160e01b815260040160405180910390fd5b60405163439f18fd60e11b81526001600160a01b0382811660048301527f0000000000000000000000000000000000000000000000000000000000000000169063873e31fa90602401602060405180830381865afa1580156127e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280491906153e5565b9392505050565b6001600160a01b0381166000908152606860205260408120546001600160601b03166111a7565b610107546000906001600160a01b031661286b57507f000000000000000000000000000000000000000000000000000000000000000090565b50610107546001600160a01b031690565b6001600160a01b03808416600090815260018801602052604090205416806128a457506129e0565b6040516307b8c36760e51b81526001600160a01b03828116600483015286169063f7186ce090602401602060405180830381865afa1580156128ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290e91906159ee565b156129de57846001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa158015612951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297591906159ee565b156129d257604080516001600160601b038086168252841660208201526001600160a01b0380841692908716917f1b09380d63e78fd72c1d79a805a7e2dfadf02b22418e24bebff51376b7df33b0910160405180910390a36129de565b6129de87878784612bc2565b505b505050505050565b3360008181526002850160205260409020546001600160a01b031680612a205760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b038116600090815260038601602052604081208054909190612a57908890889086906001600160601b0316614ceb565b9050806001600160601b0316600003612ab25760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610bcb565b836001600160a01b0316836001600160a01b03167f5075aaa89894a888eb2cac81a27320c60855febb0cf1706b66bdc754e640d43360405160405180910390a3604051630483483160e31b81526001600160a01b0386169063241a418890612b209087908590600401615a35565b600060405180830381600087803b158015612b3a57600080fd5b505af1158015612b4e573d6000803e3d6000fd5b5050835467fffffffffffffffe19600160601b9091046001600160401b03160191506129de9050578654612b9290600160601b90046001600160401b031642615a57565b82546001600160401b0391909116600160601b0267ffffffffffffffff60601b1990911617825550505050505050565b6001600160a01b0380821660009081526002860160205260409020541680612bfc5760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b03808216600081815260038801602052604080822090519093861692917f1231fe5ee649a593b524a494cd53146a196380a872115a0d0fe16c0735afdf2691a36040516307b8c36760e51b81526001600160a01b03848116600483015285169063f7186ce090602401602060405180830381865afa158015612c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cad91906159ee565b15612d34578054600090612ccf908890889086906001600160601b0316614ceb565b60405163dc7520c560e01b81529091506001600160a01b0386169063dc7520c590612d009087908590600401615a35565b600060405180830381600087803b158015612d1a57600080fd5b505af1158015612d2e573d6000803e3d6000fd5b50505050505b805467fffffffffffffffe19600160601b9091046001600160401b0316016129e0578554612d7290600160601b90046001600160401b031642615a57565b81546001600160401b0391909116600160601b0267ffffffffffffffff60601b19909116178155505050505050565b6000806003612daf856143dd565b6003811115612dc057612dc06150d4565b14612e0d5760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610bcb565b6003840154600c850154612e2191906156b1565b431115612e7c5760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f642068617320616c7265616479207061736044820152621cd95960ea1b6064820152608401610bcb565b83600b015483604051602001612e929190615688565b6040516020818303038152906040528051906020012014612f1b5760405162461bcd60e51b815260206004820152603a60248201527f526573756c7420756e646572206368616c6c656e67652069732064696666657260448201527f656e74207468616e20746865207375626d6974746564206f6e650000000000006064820152608401610bcb565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92612f57928892600401615a7e565b600060405180830381865afa925050508015612f9557506040513d6000823e601f3d908101601f19168201604052612f929190810190615aa3565b60015b61300a57336001600160a01b031684600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436604051612ffd906020808252601390820152721d985b1a59185d1a5bdb881c995d995c9d1959606a1b604082015260600190565b60405180910390a3613099565b81156130505760405162461bcd60e51b8152602060048201526015602482015274756e6a7573746966696564206368616c6c656e676560581b6044820152606401610bcb565b336001600160a01b031686600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a02854368360405161308e9190615081565b60405180910390a350505b600b84015491506130ad60a0840184615b4c565b6130b9600186356156e6565b8181106130c8576130c861531a565b90506020020160208101906130dd91906159d1565b90508360080154436130ef91906156e6565b600a8501556000600b8501819055600c8501555b9250929050565b6000818152602083905260409020600101546131385760405162461bcd60e51b8152600401610bcb90615b95565b6000908152602091909152604081208181556001810182905560020155565b336001600160a01b0382166131ae5760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f722063616e206e6f74206265207a65726f20616464726573736044820152606401610bcb565b6001600160a01b038181166000908152600185016020526040902054161561322e5760405162461bcd60e51b815260206004820152602d60248201527f4f70657261746f7220616c72656164792073657420666f72207468652073746160448201526c35b4b73390383937bb34b232b960991b6064820152608401610bcb565b6001600160a01b03828116600090815260028501602052604090205416156132985760405162461bcd60e51b815260206004820152601f60248201527f4f70657261746f72206164647265737320616c726561647920696e20757365006044820152606401610bcb565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b03161561332b5760405162461bcd60e51b815260206004820152603160248201527f546865726520697320612070656e64696e6720617574686f72697a6174696f6e60448201527008191958dc99585cd9481c995c5d595cdd607a1b6064820152608401610bcb565b826001600160a01b0316826001600160a01b03167fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c160405160405180910390a3506001600160a01b03908116600081815260018501602090815260408083208054959096166001600160a01b031995861681179096559482526002909501909452919092208054909216179055565b606060036133c7846143dd565b60038111156133d8576133d86150d4565b146134255760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610bcb565b6003830154600c84015460009161343b916156b1565b90508043116134985760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f6420686173206e6f7420706173736564206044820152621e595d60ea1b6064820152608401610bcb565b83600b0154836040516020016134ae9190615688565b60405160208183030381529060405280519060200120146135375760405162461bcd60e51b815260206004820152603960248201527f526573756c7420756e64657220617070726f76616c206973206469666665726560448201527f6e74207468616e20746865207375626d6974746564206f6e65000000000000006064820152608401610bcb565b83546000906001600160a01b0316638871ca5d61355760a0870187615b4c565b613563600189356156e6565b8181106135725761357261531a565b905060200201602081019061358791906159d1565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156135c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ed91906152e7565b9050336001600160a01b03821614806136135750600685015461361090836156b1565b43115b61365f5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79207375626d69747465722063616e20617070726f7665206e6f7700006044820152606401610bcb565b61366c6040850185615b4c565b90506001600160401b0381111561368557613685615304565b6040519080825280602002602001820160405280156136ae578160200160208202803683370190505b50925060005b6136c16040860186615b4c565b9050811015613775576136d760a0860186615b4c565b60016136e66040890189615b4c565b858181106136f6576136f661531a565b905060200201602081019061370b9190615be5565b6137159190615c00565b60ff168181106137275761372761531a565b905060200201602081019061373c91906159d1565b84828151811061374e5761374e61531a565b63ffffffff909216602092830291909101909101528061376d816158f0565b9150506136b4565b50600b8501546040513391907fe6e9d5eba171e82025efb3f3d44fd35905e7283d104284cb9f3bbc5bf1e4276f90600090a3505092915050565b600080600084846040516137c4929190615c19565b60405190819003902092506137dd602060008688615c29565b6137e691615c53565b91506137f58460208188615c29565b6137fe91615c53565b600084815260209890985260409097209586555060018501819055600290940185905594929392915050565b60006008820181905560098201819055600a8201819055600b8201819055600c820181905581546040805163a69df4b560e01b815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b15801561147257600080fd5b6000600261389b836143dd565b60038111156138ac576138ac6150d4565b1480156111a757506005820154600a83015460088401546138cd91906156b1565b6138d791906156b1565b431192915050565b6001600160601b0381161580613903575083546001600160601b0390811690821610155b61396d5760405162461bcd60e51b815260206004820152603560248201527f417574686f72697a6174696f6e20616d6f756e742073686f756c642062652030604482015274206f722061626f766520746865206d696e696d756d60581b6064820152608401610bcb565b6001600160a01b03808416600090815260018601602052604081205490911690816139995750426139a3565b506001600160401b035b60006139af8486615c71565b6001600160a01b03871660009081526003890160205260409020805491925090600160601b90046001600160401b031680158015906139f757506001600160401b0381811614155b15613a8a578854613a1890600160a01b90046001600160401b031682615c91565b6001600160401b0316421015613a8a5760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f7567682074696d65207061737365642073696e636520746865604482015270081bdc9a59da5b985b081c995c5d595cdd607a1b6064820152608401610bcb565b81546001600160401b038516600160601b81026001600160a01b03199092166001600160601b0386811691909117929092178455604080518a8416815292891660208401528201526001600160a01b0386811691908a16907f545cbf267cef6fe43f11f6219417ab43a0e8e345adbaae5f626d9bc325e8535a9060600160405180910390a3505050505050505050565b6001613b25836143dd565b6003811115613b3657613b366150d4565b14613b8e5760405162461bcd60e51b815260206004820152602260248201527f43757272656e74207374617465206973206e6f74204157414954494e475f5345604482015261115160f21b6064820152608401610bcb565b60405181907fb2ad26c2940889d79df2ee9c758a8aefa00c5ca90eee119af0e5d795df3b98bb90600090a2436008830155600990910155565b6000613bd2826143dd565b6003811115613be357613be36150d4565b14613c2c5760405162461bcd60e51b815260206004820152601960248201527843757272656e74207374617465206973206e6f742049444c4560381b6044820152606401610bcb565b6040517f5c3ed2397d4d21298b2fb5027ac8e2d42e3c9c72bbb55ddb030e2a36a0cdff6b90600090a1805460408051637c1e845d60e11b815290516001600160a01b039092169163f83d08ba9160048082019260009290919082900301818387803b158015613c9a57600080fd5b505af1158015613cae573d6000803e3d6000fd5b5050505043816007018190555050565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316613d425760405162461bcd60e51b8152602060048201526024808201527f417574686f72697a6174696f6e206465637265617365206e6f742072657175656044820152631cdd195960e21b6064820152608401610bcb565b805467fffffffffffffffe19600160601b9091046001600160401b031601613dc15760405162461bcd60e51b815260206004820152602c60248201527f417574686f72697a6174696f6e2064656372656173652072657175657374206e60448201526b1bdd081858dd1a5d985d195960a21b6064820152608401610bcb565b8054600160601b90046001600160401b0316421015613e325760405162461bcd60e51b815260206004820152602760248201527f417574686f72697a6174696f6e2064656372656173652064656c6179206e6f74604482015266081c185cdcd95960ca1b6064820152608401610bcb565b6040516001600160a01b038316907f50270a522c2fef97b6b7385c2aa4a4518adda681530e0a1fe9f5e840f6f2cd9d90600090a2604051633af0572d60e11b81526001600160a01b0383811660048301528416906375e0ae5a906024016020604051808303816000875af1158015613eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ed291906153e5565b50506001600160a01b031660009081526003909201602052506040902080546001600160a01b0319169055565b60006001613f0c836143dd565b6003811115613f1d57613f1d6150d4565b1480156111a75750600282015460078301546138d791906156b1565b60408114613f895760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206c656e677468206f6620746865207075626c6963206b65796044820152606401610bcb565b60008282604051613f9b929190615c19565b6040805191829003909120600081815260208790529190912060010154909150156140205760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420776974682074686520676976656e207075626c6963206b657960448201526e20616c72656164792065786973747360881b6064820152608401610bcb565b600061402f6020828587615c29565b61403891615c53565b905080610f655760405162461bcd60e51b815260206004820152602260248201527f57616c6c6574207075626c6963206b6579206d757374206265206e6f6e2d7a65604482015261726f60f01b6064820152608401610bcb565b600261409d836143dd565b60038111156140ae576140ae6150d4565b146141075760405162461bcd60e51b8152602060048201526024808201527f43757272656e74207374617465206973206e6f74204157414954494e475f524560448201526314d5531560e21b6064820152608401610bcb565b6141108261388e565b1561415d5760405162461bcd60e51b815260206004820152601a60248201527f444b472074696d656f757420616c7265616479207061737365640000000000006044820152606401610bcb565b81546040516307b8c36760e51b81523360048201526001600160a01b0390911690819063f7186ce090602401602060405180830381865afa1580156141a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ca91906159ee565b6142225760405162461bcd60e51b815260206004820152602360248201527f5375626d6974746572206e6f7420696e2074686520736f72746974696f6e20706044820152621bdbdb60ea1b6064820152608401610bcb565b336001600160a01b038216638871ca5d61423f60a0860186615b4c565b61424b600188356156e6565b81811061425a5761425a61531a565b905060200201602081019061426f91906159d1565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156142b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d591906152e7565b6001600160a01b03161461432b5760405162461bcd60e51b815260206004820152601a60248201527f556e6578706563746564207375626d697474657220696e6465780000000000006044820152606401610bcb565b8160405160200161433c9190615688565b60408051601f19818403018152908290528051602090910120600b850181905543600c8601556009850154917f8e7fd4293d7db11807147d8890c287fad3396fbb09a4e92273fc7856076c153a90614395908690615688565b60405180910390a3505050565b6001600160a01b03811660009081526003840160205260408120546143d5908590859085906001600160601b0316614ceb565b949350505050565b805460408051632938b58d60e21b815290516000926001600160a01b03169163a4e2d6349160048083019260209291908290030181865afa158015614426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061444a91906159ee565b1561446f575060088101546001901561446f5750600c8101546002901561446f575060035b919050565b600081116144945760405162461bcd60e51b8152600401610bcb90615cb1565b600290910155565b600081116144bc5760405162461bcd60e51b8152600401610bcb90615cb1565b600390910155565b600081116144e45760405162461bcd60e51b8152600401610bcb90615cb1565b600590910155565b60006144f7836143dd565b6003811115614508576145086150d4565b146145515760405162461bcd60e51b815260206004820152601960248201527843757272656e74207374617465206973206e6f742049444c4560381b6044820152606401610bcb565b600582015481106145b45760405162461bcd60e51b815260206004820152602760248201527f56616c7565206578636565647320726573756c74207375626d697373696f6e206044820152661d1a5b595bdd5d60ca1b6064820152608401610bcb565b600690910155565b60008181526020839052604081206001015481906145ec5760405162461bcd60e51b8152600401610bcb90615b95565b505060009081526020919091526040902060018101546002909101549091565b60008181526020839052604081206001015461463a5760405162461bcd60e51b8152600401610bcb90615b95565b506000908152602091909152604090205490565b6001600160a01b03811660009081526003830160205260408120805467fffffffffffffffe19600160601b9091046001600160401b03160161469a576001600160401b039150506111a7565b805442906001600160401b03600160601b9091048116908216116146da5781546146d5908290600160601b90046001600160401b0316615c91565b6146dd565b60005b95945050505050565b81546001600160401b03909116600160601b0267ffffffffffffffff60601b19909116179055565b81546001600160401b03909116600160a01b0267ffffffffffffffff60a01b19909116179055565b61473f81613eff565b61478b5760405162461bcd60e51b815260206004820152601f60248201527f4177616974696e67207365656420686173206e6f742074696d6564206f7574006044820152606401610bcb565b6040517f68c52f05452e81639fa06f379aee3178cddee4725521fff886f244c99e868b5090600090a1610b9e8161382a565b60606000806147cc85856145bc565b604080516020810193909352828101919091528051808303820181526060909201905295945050505050565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce809101610cf8565b82546001600160a01b0316156148b55760405162461bcd60e51b815260206004820152602260248201527f536f72746974696f6e20506f6f6c206164647265737320616c72656164792073604482015261195d60f21b6064820152608401610bcb565b60018301546001600160a01b03161561491a5760405162461bcd60e51b815260206004820152602160248201527f444b472056616c696461746f72206164647265737320616c72656164792073656044820152601d60fa1b6064820152608401610bcb565b82546001600160a01b03199081166001600160a01b03938416178455600190930180549093169116179055565b83546001600160601b0390811690821610156149a55760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610bcb565b6001600160a01b0383811660008181526001870160209081526040918290205482516001600160601b03888116825287169281019290925282519416938493927f87f9f9f59204f53d57a89a817c6083a17979cd0531791c91e18551a56e3cfdd7928290030190a35050505050565b614a1d8161388e565b614a615760405162461bcd60e51b81526020600482015260156024820152741112d1c81a185cc81b9bdd081d1a5b5959081bdd5d605a1b6044820152606401610bcb565b6040517f2852b3e178dd281713b041c3d90b4815bb55b7ec812931d1e8e8d8bb2ed72d3e90600090a1610b9e8161382a565b6001600160a01b03808216600090815260028601602052604081205490911680614acf5760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b038116600090815260038701602052604081208054909190614b06908990899086906001600160601b0316614ceb565b6040516307b8c36760e51b81526001600160a01b0387811660048301529192509087169063f7186ce090602401602060405180830381865afa158015614b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b7491906159ee565b614b8c576001600160601b03161592506143d5915050565b6040516304de824f60e41b81526001600160a01b03871690634de824f090614bba9088908590600401615a35565b602060405180830381865afa158015614bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bfb91906159ee565b98975050505050505050565b600060606000846008015411614c5f5760405162461bcd60e51b815260206004820152601860248201527f444b4720686173206e6f74206265656e207374617274656400000000000000006044820152606401610bcb565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92614c9b928892600401615a7e565b600060405180830381865afa158015614cb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614ce09190810190615aa3565b915091509250929050565b604051637004922d60e11b81526001600160a01b038381166004830152306024830152600091829186169063e009245a90604401602060405180830381865afa158015614d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d6091906153e5565b90506000836001600160601b0316826001600160601b031611614d84576000614d8e565b614d8e8483615c71565b87549091506001600160601b039081169082161015614db2576000925050506143d5565b91506143d59050565b6001600160a01b0381168114610b9e57600080fd5b6001600160601b0381168114610b9e57600080fd5b600080600060608486031215614dfa57600080fd5b8335614e0581614dbb565b92506020840135614e1581614dd0565b91506040840135614e2581614dd0565b809150509250925092565b600060208284031215614e4257600080fd5b813561280481614dbb565b600060208284031215614e5f57600080fd5b813561280481614dd0565b600060208284031215614e7c57600080fd5b81356001600160401b03811115614e9257600080fd5b820160e0818503121561280457600080fd5b600060208284031215614eb657600080fd5b5035919050565b60008060408385031215614ed057600080fd5b50508035926020909101359150565b600080600080600060a08688031215614ef757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008083601f840112614f2c57600080fd5b5081356001600160401b03811115614f4357600080fd5b6020830191508360208260051b850101111561310357600080fd5b60008060008060608587031215614f7457600080fd5b84356001600160401b0380821115614f8b57600080fd5b9086019060a08289031215614f9f57600080fd5b9094506020860135935060408601359080821115614fbc57600080fd5b50614fc987828801614f1a565b95989497509550505050565b80356001600160401b038116811461446f57600080fd5b60008060006060848603121561500157600080fd5b833561500c81614dd0565b925061501a60208501614fd5565b915061502860408501614fd5565b90509250925092565b60005b8381101561504c578181015183820152602001615034565b50506000910152565b6000815180845261506d816020860160208601615031565b601f01601f19169290920160200192915050565b6020815260006128046020830184615055565b6000806000606084860312156150a957600080fd5b83356150b481614dbb565b925060208401356150c481614dbb565b91506040840135614e2581614dbb565b634e487b7160e01b600052602160045260246000fd5b602081016004831061510c57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060008060008060a0878903121561512b57600080fd5b863561513681614dd0565b955060208701359450604087013561514d81614dbb565b93506060870135925060808701356001600160401b0381111561516f57600080fd5b61517b89828a01614f1a565b979a9699509497509295939492505050565b6000806000806000608086880312156151a557600080fd5b8535945060208601356001600160401b038111156151c257600080fd5b6151ce88828901614f1a565b90955093505060408601356151e281614dbb565b949793965091946060013592915050565b600081518084526020808501945080840160005b8381101561522957815163ffffffff1687529582019590820190600101615207565b509495945050505050565b60208152600061280460208301846151f3565b82151581526040602082015260006143d56040830184615055565b6020808252601c908201527f43616c6c6572206973206e6f742074686520676f7665726e616e636500000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156152f957600080fd5b815161280481614dbb565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160601b038516815260208082018590526001600160a01b038481166040840152608060608401819052845190840181905260009285810192909160a0860190855b81811015615393578551841683529484019491840191600101615375565b50909a9950505050505050505050565b6000806000606084860312156153b857600080fd5b83516153c381614dbb565b60208501519093506153d481614dbb565b6040850151909250614e2581614dbb565b6000602082840312156153f757600080fd5b815161280481614dd0565b6000808335601e1984360301811261541957600080fd5b8301803591506001600160401b0382111561543357600080fd5b60200191503681900382131561310357600080fd5b6000808335601e1984360301811261545f57600080fd5b83016020810192503590506001600160401b0381111561547e57600080fd5b80360382131561310357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126154cd57600080fd5b83016020810192503590506001600160401b038111156154ec57600080fd5b8060051b360382131561310357600080fd5b803560ff8116811461446f57600080fd5b81835260006001600160fb1b0383111561552857600080fd5b8260051b80836020870137939093016020019392505050565b63ffffffff81168114610b9e57600080fd5b8183526000602080850194508260005b8581101561522957813561557681615541565b63ffffffff1687529582019590820190600101615563565b80358252600060206155a281840184615448565b60e0838701526155b660e08701828461548d565b9150506155c660408501856154b6565b868303604088015280835290916000919084015b818310156156025760ff6155ed856154fe565b168152928401926001929092019184016155da565b61560f6060880188615448565b95509350878103606089015261562681868661548d565b94505050505061563960808401846154b6565b858303608087015261564c83828461550f565b9250505061565d60a08401846154b6565b85830360a0870152615670838284615553565b9250505060c083013560c08501528091505092915050565b602081526000612804602083018461558e565b634e487b7160e01b600052601160045260246000fd5b808201808211156111a7576111a761569b565b6040815260006156d760408301856151f3565b90508260208301529392505050565b818103818111156111a7576111a761569b565b6020815260006143d5602083018486615553565b8015158114610b9e57600080fd5b60018060a01b038716815260a06020820152853560a0820152600061574360208801886154b6565b60a060c08501526157596101408501828461550f565b915050604088013561576a8161570d565b151560e084015261577e6060890189615448565b609f19808685030161010087015261579784838561548d565b93506157a660808c018c6154b6565b935091508086850301610120870152506157c183838361550f565b9250505082810360408401526157d78188615055565b905085606084015282810360808401526157f2818587615553565b9998505050505050505050565b604051601f8201601f191681016001600160401b038111828210171561582757615827615304565b604052919050565b60006001600160401b0382111561584857615848615304565b5060051b60200190565b6000602080838503121561586557600080fd5b82516001600160401b0381111561587b57600080fd5b8301601f8101851361588c57600080fd5b805161589f61589a8261582f565b6157ff565b81815260059190911b820183019083810190878311156158be57600080fd5b928401925b828410156158e55783516158d681615541565b825292840192908401906158c3565b979650505050505050565b6000600182016159025761590261569b565b5060010190565b60006020828403121561591b57600080fd5b81356128048161570d565b6000602080838503121561593957600080fd5b82516001600160401b0381111561594f57600080fd5b8301601f8101851361596057600080fd5b805161596e61589a8261582f565b81815260059190911b8201830190838101908783111561598d57600080fd5b928401925b828410156158e55783516159a581614dbb565b82529284019290840190615992565b6000602082840312156159c657600080fd5b815161280481615541565b6000602082840312156159e357600080fd5b813561280481615541565b600060208284031215615a0057600080fd5b81516128048161570d565b60208082526010908201526f2ab735b737bbb71037b832b930ba37b960811b604082015260600190565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160401b03818116838216019080821115615a7757615a7761569b565b5092915050565b606081526000615a91606083018661558e565b60208301949094525060400152919050565b60008060408385031215615ab657600080fd5b8251615ac18161570d565b60208401519092506001600160401b0380821115615ade57600080fd5b818501915085601f830112615af257600080fd5b815181811115615b0457615b04615304565b615b17601f8201601f19166020016157ff565b9150808252866020828501011115615b2e57600080fd5b615b3f816020840160208601615031565b5080925050509250929050565b6000808335601e19843603018112615b6357600080fd5b8301803591506001600160401b03821115615b7d57600080fd5b6020019150600581901b360382131561310357600080fd5b60208082526030908201527f57616c6c657420776974682074686520676976656e20494420686173206e6f7460408201526f081899595b881c9959da5cdd195c995960821b606082015260800190565b600060208284031215615bf757600080fd5b612804826154fe565b60ff82811682821603908111156111a7576111a761569b565b8183823760009101908152919050565b60008085851115615c3957600080fd5b83861115615c4657600080fd5b5050820193919092039150565b803560208310156111a757600019602084900360031b1b1692915050565b6001600160601b03828116828216039080821115615a7757615a7761569b565b6001600160401b03828116828216039080821115615a7757615a7761569b565b6020808252601f908201527f56616c7565206d7573742062652067726561746572207468616e207a65726f0060408201526060019056fea2646970667358221220dde34c826480318674a5b15d4f6f3483a5ee47c0ebae5b5ab0690d6c8097e3df64736f6c634300081100330000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2
Deployed Bytecode
0x608060405234801561001057600080fd5b50600436106103af5760003560e01c80637b35b4e6116101f4578063c88e70f41161011a578063df07ce59116100ad578063f0820c921161007c578063f0820c92146109bb578063f7186ce0146109cc578063f854a27f146109df578063fd2a4788146109f257600080fd5b8063df07ce591461095f578063e03e453514610972578063e686440f14610987578063e83ab3a51461099a57600080fd5b8063d38bfff4116100e9578063d38bfff414610905578063d855c63114610918578063d8dc404d14610920578063ded56d451461093357600080fd5b8063c88e70f4146108b7578063c9bacaad146108ca578063cc562388146108dd578063d0bcc0e3146108f257600080fd5b80639c9de02811610192578063b5e9ce8b11610161578063b5e9ce8b14610845578063c09975cd14610865578063c0c53b8b14610878578063c7c49c981461088b57600080fd5b80639c9de028146107d8578063a04e298014610803578063b13b55b214610816578063b54a23741461081e57600080fd5b8063830f9e02116101ce578063830f9e021461074857806388a59590146107775780638dcbdf4a146107b25780639879d19b146107c557600080fd5b80637b35b4e61461070f5780637e0049fd146107225780637e33cba61461073557600080fd5b80634d99f473116102d95780636b5f2bff1161027757806375e0ae5a1161024657806375e0ae5a1461061c578063770124d31461062f578063789d392a146106375780637b14729e146106b257600080fd5b80636b5f2bff146105db5780636c9ecd64146105ee5780636febd4641461060157806372cc8c6d1461061457600080fd5b80635c5b3870116102b35780635c5b38701461059a578063663032cd146105ad57806368c34948146105c05780636a7f7a90146105c857600080fd5b80634d99f47314610549578063529023011461056c5780635aa6e6751461058757600080fd5b8063227fd44f11610351578063343bb92711610320578063343bb927146104e95780633682a450146104fc57806342d866931461050f5780634cf088d91461052257600080fd5b8063227fd44f1461049c57806329b6eca9146104af5780632b47da52146104c257806331376766146104d657600080fd5b8063167f05171161038d578063167f0517146104485780631ae879e8146104505780631c5b0762146104645780631d35fa631461047757600080fd5b806308aa090b146103b457806314a8547414610407578063153622b31461041c575b600080fd5b6103bc610a05565b6040516103fe9190600060a082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015292915050565b60405180910390f35b61041a610415366004614de5565b610a6c565b005b61010654610430906001600160a01b031681565b6040516001600160a01b0390911681526020016103fe565b61041a610b33565b61010554610430906001600160a01b031681565b61041a610472366004614e30565b610b69565b60fc546001600160601b03165b6040516001600160601b0390911681526020016103fe565b61041a6104aa366004614e4d565b610ba1565b61041a6104bd366004614e30565b610c29565b61010754610430906001600160a01b031681565b61041a6104e4366004614e6a565b610d04565b61041a6104f7366004614ea4565b610f6c565b61041a61050a366004614e30565b610fd1565b61041a61051d366004614e30565b610fdc565b6104307f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd281565b61055c610557366004614ea4565b611192565b60405190151581526020016103fe565b60fd5460fe54604080519283526020830191909152016103fe565b600054610430906001600160a01b031681565b61041a6105a8366004614e6a565b6111ad565b61041a6105bb366004614e30565b6113e4565b61055c611486565b61041a6105d6366004614de5565b611497565b61041a6105e9366004614e30565b61152e565b61041a6105fc366004614ebd565b6115a7565b61041a61060f366004614ebd565b611611565b61041a61164c565b61041a61062a366004614e30565b6116dc565b61055c6116f0565b610690610645366004614ea4565b60408051606080820183526000808352602080840182905292840181905293845260ca8252928290208251938401835280548452600181015491840191909152600201549082015290565b60408051825181526020808401519082015291810151908201526060016103fe565b6106e06065546001600160601b038116916001600160401b03600160601b8304811692600160a01b90041690565b604080516001600160601b0390941684526001600160401b0392831660208501529116908201526060016103fe565b61041a61071d366004614e30565b6116fc565b61041a610730366004614e6a565b611785565b610484610743366004614e30565b6117a9565b610769610756366004614ea4565b6101046020526000908152604090205481565b6040519081526020016103fe565b60ff5461010054610101546101025461010354604080519586526020860194909452928401919091526060830152608082015260a0016103fe565b61041a6107c0366004614edf565b6117bf565b61041a6107d3366004614f5e565b6118ac565b6107eb6107e6366004614e30565b611c1f565b6040516001600160401b0390911681526020016103fe565b61041a610811366004614fec565b611c2c565b61041a611cde565b6104307f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a81565b610858610853366004614ea4565b611d45565b6040516103fe9190615081565b603254610430906001600160a01b031681565b61041a610886366004615094565b611d52565b610430610899366004614e30565b6001600160a01b039081166000908152606660205260409020541690565b61041a6108c5366004614edf565b611f39565b61041a6108d8366004614de5565b611fcc565b6108e5612063565b6040516103fe91906150ea565b61041a610900366004614e30565b61206f565b61041a610913366004614e30565b6120e8565b61041a61217c565b61041a61092e366004615112565b6121b9565b610430610941366004614e30565b6001600160a01b039081166000908152606760205260409020541690565b61055c61096d36600461518d565b61242d565b61097a6125b3565b6040516103fe9190615234565b61055c610995366004614e30565b61264e565b6109ad6109a8366004614e6a565b612685565b6040516103fe929190615247565b6065546001600160601b0316610484565b61055c6109da366004614e30565b61269d565b6104846109ed366004614e30565b61272c565b610484610a00366004614e30565b61280b565b610a376040518060a0016040528060008152602001600081526020016000815260200160008152602001600081525090565b506040805160a0810182526099548152609a546020820152609b5491810191909152609c546060820152609d54608082015290565b610107546001600160a01b03168015610aad57336001600160a01b03821614610aa857604051630159dd6560e41b815260040160405180910390fd5b610af6565b336001600160a01b037f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd21614610af657604051630159dd6560e41b815260040160405180910390fd5b610b2d610b01612832565b6065907f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a87878761287c565b50505050565b610b67610b3e612832565b6065907f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a6129e8565b565b610b9e610b74612832565b6065907f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a84612bc2565b50565b6000546001600160a01b03163314610bd45760405162461bcd60e51b8152600401610bcb90615262565b60405180910390fd5b60fc80546001600160601b0319166001600160601b0383169081179091556040519081527fe132b87eb6644ee4d4c3c32744f7e1c3906335a2d4f99330767bf573909c7d84906020015b60405180910390a150565b606454600290610100900460ff16158015610c4b575060645460ff8083169116105b610c675760405162461bcd60e51b8152600401610bcb90615299565b6064805461ffff191660ff8316176101001790556001600160a01b038216610ca257604051631718673d60e11b815260040160405180910390fd5b61010780546001600160a01b0319166001600160a01b0384161790556064805461ff001916905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b600080610d12609784612da1565b604051638871ca5d60e01b815263ffffffff8216600482015291935091506000906001600160a01b037f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a1690638871ca5d90602401602060405180830381865afa158015610d84573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610da891906152e7565b6040805160018082528183019092529192506000919060208083019080368337019050506001600160a01b038084166000908152606760205260409020549192501681600081518110610dfd57610dfd61531a565b6001600160a01b03928316602091820292909201015260fc5460fd546040516383ddba8f60e01b81527f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2909316926383ddba8f92610e6d926001600160601b039091169133908790600401615330565b600060405180830381600087803b158015610e8757600080fd5b505af1925050508015610e98575060015b610ef15760fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f14621289a12ab59e0737decc388bba91d929c723defb4682d5d19b9a12ecfecb910160405180910390a2610f42565b60fc54604080516001600160601b0390921682526001600160a01b038416602083015285917f88f76c659db78142f88e94db3ca791869495394c6c1b3d412ced9022dc97c9e3910160405180910390a25b609b545a1015610f655760405163c8faa26560e01b815260040160405180910390fd5b5050505050565b610105546001600160a01b03163314610f98576040516302add3a960e41b815260040160405180910390fd5b610fa360ca8261310a565b60405181907fa6ae4af610b8ada39d3675190ead27a5552631a8e33f53e4e37dbb082f11a73e90600090a250565b610b9e606582613157565b6001600160a01b038181166000908152606660205260409020541680611015576040516331158d1160e01b815260040160405180910390fd5b604051632de9480760e01b81526001600160a01b0383811660048301526000917f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd290911690632de9480790602401606060405180830381865afa158015611080573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906110a491906153a3565b50604051637104c0e560e11b81526001600160a01b0385811660048301528281166024830152919350600092507f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a9091169063e20981ca906044016020604051808303816000875af115801561111e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061114291906153e5565b6040516001600160601b03821681529091506001600160a01b038516907f38532b6dea69d7266fa923c7813d190be37625f2454ddfa3d93c45c79482e3fd9060200160405180910390a250505050565b600081815260ca602052604081206001015415155b92915050565b60005a905060006111bf6097846133ba565b9050600080806111e460c08701356111da6020890189615402565b60ca9291906137af565b925092509250856040516020016111fb9190615688565b60405160208183030381529060405280519060200120837fbe8f27cef1f3d94120c9c547c3614f5b992fdb0c0a497cc920fde06546291ab460405160405180910390a38351156112d3577f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a6001600160a01b031663942f68928560fe544261128391906156b1565b6040518363ffffffff1660e01b81526004016112a09291906156c4565b600060405180830381600087803b1580156112ba57600080fd5b505af11580156112ce573d6000803e3d6000fd5b505050505b6101055460405163547d07a160e11b81526004810185905260248101849052604481018390526001600160a01b039091169063a8fa0f4290606401600060405180830381600087803b15801561132857600080fd5b505af115801561133c573d6000803e3d6000fd5b5050505061134a609761382a565b603254610100546001600160a01b0390911690637ad226dc905a61136e90896156e6565b60ff5461137b91906156b1565b61138591906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b1580156113c457600080fd5b505af11580156113d8573d6000803e3d6000fd5b50505050505050505050565b6000546001600160a01b0316331461140e5760405162461bcd60e51b8152600401610bcb90615262565b604051632a59250560e21b81526001600160a01b0382811660048301527f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a169063a9649414906024015b600060405180830381600087803b15801561147257600080fd5b505af1158015610f65573d6000803e3d6000fd5b6000611492609761388e565b905090565b610107546001600160a01b031680156114d857336001600160a01b038216146114d357604051630159dd6560e41b815260040160405180910390fd5b611521565b336001600160a01b037f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2161461152157604051630159dd6560e41b815260040160405180910390fd5b610b2d60658585856138df565b6000546001600160a01b031633146115585760405162461bcd60e51b8152600401610bcb90615262565b61010680546001600160a01b0319166001600160a01b0383169081179091556040519081527f2b34e21b6daa8fcf8cba1c3ed709cbed2b0231d5fb60e9ccd8c2e75a5674bcb390602001610c1e565b6000546001600160a01b031633146115d15760405162461bcd60e51b8152600401610bcb90615262565b60fd82905560fe81905560408051838152602081018390527ff3a6ee10a78fb7d212e87d9be970fb16bd7324e9dc9c38d21cd7ecde781a1d2a9101610cf8565b610106546001600160a01b0316331461163d57604051632880b08760e01b815260040160405180910390fd5b611648609783613b1a565b5050565b610105546001600160a01b03163314611678576040516302add3a960e41b815260040160405180910390fd5b6116826097613bc7565b610106546040516310da3b0360e21b81523060048201526001600160a01b0390911690634368ec0c90602401600060405180830381600087803b1580156116c857600080fd5b505af1158015610b2d573d6000803e3d6000fd5b610b9e6116e7612832565b60659083613cbe565b60006114926097613eff565b6000546001600160a01b031633146117275760405163f2be30fb60e01b815260040160405180910390fd5b6040516001600160a01b03821681527f0e2d2343d31b085b7c4e56d1c8a6ec79f7ab07460386f1c9a1756239fe2533ac9060200160405180910390a1603280546001600160a01b0319166001600160a01b0392909216919091179055565b61179e6117956020830183615402565b60ca9190613f39565b610b9e609782614092565b60006111a76117b6612832565b606590846143a2565b6000546001600160a01b031633146117e95760405162461bcd60e51b8152600401610bcb90615262565b60006117f560976143dd565b6003811115611806576118066150d4565b146118245760405163bede29c160e01b815260040160405180910390fd5b61182f609786614474565b61183a60978561449c565b609b83905561184a6097836144c4565b6118556097826144ec565b604080518681526020810186905290810184905260608101839052608081018290527f59ae8ed7b3a7e5f6dde4cff478f0ac0aa652c5edc4f4757b09a778a430b02c569060a0015b60405180910390a15050505050565b60005a8535600081815261010460205260409020549192509085146118e457604051633ab3447f60e11b815260040160405180910390fd5b6000806118f260ca846145bc565b9092509050600061190460ca8561460c565b905086866040516020016119199291906156f9565b60405160208183030381529060405280519060200120811461194e576040516394977fa560e01b815260040160405180910390fd5b6000734f06d16082a49d74957e4094fc6e9ce21a6f019063f4df04be7f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a8c87876040516020016119a8929190918252602082015260400190565b6040516020818303038152906040528d8d8d6040518763ffffffff1660e01b81526004016119db9695949392919061571b565b600060405180830381865af41580156119f8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611a209190810190615852565b600086815261010460205260408120805492935090611a3e836158f0565b9091555050604080518a815233602082015286917f326e1ff7c130ed708307116f79cf7dbca649503e7082e5e35a19ceeee1523b39910160405180910390a27f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a6001600160a01b031663942f68928260fe5442611abb91906156b1565b6040518363ffffffff1660e01b8152600401611ad89291906156c4565b600060405180830381600087803b158015611af257600080fd5b505af1158015611b06573d6000803e3d6000fd5b50611b1b9250505060608b0160408c01615909565b15611b8e5761010554604051631ee74c0960e11b81526004810187905260248101869052604481018590526001600160a01b0390911690633dce981290606401600060405180830381600087803b158015611b7557600080fd5b505af1158015611b89573d6000803e3d6000fd5b505050505b603254610101546001600160a01b0390911690637ad226dc905a611bb2908a6156e6565b611bbc91906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401600060405180830381600087803b158015611bfb57600080fd5b505af1158015611c0f573d6000803e3d6000fd5b5050505050505050505050505050565b60006111a760658361464e565b6000546001600160a01b03163314611c565760405162461bcd60e51b8152600401610bcb90615262565b606580546001600160601b0319166001600160601b038516179055611c7c6065836146e6565b611c8760658261470e565b604080516001600160601b03851681526001600160401b03848116602083015283168183015290517f544b726e42801bb47073854eeedae851903f66fe32a5bd24e626e10b90027b519181900360600190a1505050565b60005a9050611ced6097614736565b603254610102546001600160a01b0390911690637ad226dc905a611d1190856156e6565b611d1b91906156b1565b6040516001600160e01b031960e084901b1681526004810191909152336024820152604401611458565b60606111a760ca836147bd565b606454610100900460ff1615808015611d725750606454600160ff909116105b80611d8c5750303b158015611d8c575060645460ff166001145b611da85760405162461bcd60e51b8152600401610bcb90615299565b6064805460ff191660011790558015611dcb576064805461ff0019166101001790555b61010680546001600160a01b038086166001600160a01b0319928316179092556032805492851692909116919091179055611e05336147f8565b606580546001600160601b031916690878678326eac9000000179055611e2f6065623b53806146e6565b611e3d6065623b538061470e565b60fc80546001600160601b0319166815af1d78b58c400000179055606460fd556212750060fe55611e9060977f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a86614852565b611e9d6097612d00614474565b611eaa6097612d0061449c565b61c350609b55611ebd60976102186144c4565b611ec9609760146144ec565b62046cd060ff55620119406101005562016b4861010155611c52610102556108fc610103558015610b2d576064805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150505050565b6000546001600160a01b03163314611f635760405162461bcd60e51b8152600401610bcb90615262565b60ff859055610100849055610101839055610102829055610103819055604080518681526020810186905290810184905260608101839052608081018290527f8a3e64fa6013a36bccca7362e8826b11ba41e57fb60f55309c0ca48904dad0829060a00161189d565b610107546001600160a01b0316801561200d57336001600160a01b0382161461200857604051630159dd6560e41b815260040160405180910390fd5b612056565b336001600160a01b037f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2161461205657604051630159dd6560e41b815260040160405180910390fd5b610b2d6065858585614947565b600061149260976143dd565b6000546001600160a01b031633146120995760405162461bcd60e51b8152600401610bcb90615262565b61010580546001600160a01b0319166001600160a01b0383169081179091556040519081527fa1993af5a189ba5ad4155263c920cfee33ce0593a8eb231a13bb3ce6f39459e390602001610c1e565b6000546001600160a01b031633146121125760405162461bcd60e51b8152600401610bcb90615262565b6001600160a01b0381166121735760405162461bcd60e51b815260206004820152602260248201527f4e657720676f7665726e616e636520697320746865207a65726f206164647265604482015261737360f01b6064820152608401610bcb565b610b9e816147f8565b60005a905061218b6097614a14565b603254610103546001600160a01b0390911690637ad226dc905a6121af90856156e6565b611d1b91906156e6565b610105546001600160a01b031633146121e5576040516302add3a960e41b815260040160405180910390fd5b60006121f260ca8561460c565b905082826040516020016122079291906156f9565b60405160208183030381529060405280519060200120811461223c576040516323f9e80360e11b815260040160405180910390fd5b604051637bfcd47d60e11b81526000906001600160a01b037f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a169063f7f9a8fa9061228d90879087906004016156f9565b600060405180830381865afa1580156122aa573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526122d29190810190615926565b90506000836001600160401b038111156122ee576122ee615304565b604051908082528060200260200182016040528015612317578160200160208202803683370190505b50905060005b825181101561239d5761236183828151811061233b5761233b61531a565b60200260200101516001600160a01b039081166000908152606760205260409020541690565b8282815181106123735761237361531a565b6001600160a01b039092166020928302919091019091015280612395816158f0565b91505061231d565b506040516383ddba8f60e01b81526001600160a01b037f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd216906383ddba8f906123f0908c908c908c908790600401615330565b600060405180830381600087803b15801561240a57600080fd5b505af115801561241e573d6000803e3d6000fd5b50505050505050505050505050565b604051635a48b46b60e01b81526001600160a01b03838116600483015260009182917f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a1690635a48b46b90602401602060405180830381865afa158015612498573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906124bc91906159b4565b90508063ffffffff166000036124e55760405163427ce39560e01b815260040160405180910390fd5b60006124f260ca8961460c565b905086866040516020016125079291906156f9565b60405160208183030381529060405280519060200120811461253c576040516323f9e80360e11b815260040160405180910390fd5b600184108061254a57508584115b1561256857604051635d2de7eb60e01b815260040160405180910390fd5b63ffffffff8216878761257c6001886156e6565b81811061258b5761258b61531a565b90506020020160208101906125a091906159d1565b63ffffffff161498975050505050505050565b60a054604051636c2530b960e01b81526064600482015260248101919091526060907f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a6001600160a01b031690636c2530b990604401600060405180830381865afa158015612626573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526114929190810190615852565b60006111a761265b612832565b6065907f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a85614a93565b60006060612694609784614c07565b91509150915091565b6040516307b8c36760e51b81526001600160a01b0382811660048301526000917f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a9091169063f7186ce090602401602060405180830381865afa158015612708573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111a791906159ee565b600080612751836001600160a01b039081166000908152606660205260409020541690565b90506001600160a01b03811661277a576040516331158d1160e01b815260040160405180910390fd5b60405163439f18fd60e11b81526001600160a01b0382811660048301527f0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a169063873e31fa90602401602060405180830381865afa1580156127e0573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061280491906153e5565b9392505050565b6001600160a01b0381166000908152606860205260408120546001600160601b03166111a7565b610107546000906001600160a01b031661286b57507f000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd290565b50610107546001600160a01b031690565b6001600160a01b03808416600090815260018801602052604090205416806128a457506129e0565b6040516307b8c36760e51b81526001600160a01b03828116600483015286169063f7186ce090602401602060405180830381865afa1580156128ea573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061290e91906159ee565b156129de57846001600160a01b031663a4e2d6346040518163ffffffff1660e01b8152600401602060405180830381865afa158015612951573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061297591906159ee565b156129d257604080516001600160601b038086168252841660208201526001600160a01b0380841692908716917f1b09380d63e78fd72c1d79a805a7e2dfadf02b22418e24bebff51376b7df33b0910160405180910390a36129de565b6129de87878784612bc2565b505b505050505050565b3360008181526002850160205260409020546001600160a01b031680612a205760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b038116600090815260038601602052604081208054909190612a57908890889086906001600160601b0316614ceb565b9050806001600160601b0316600003612ab25760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610bcb565b836001600160a01b0316836001600160a01b03167f5075aaa89894a888eb2cac81a27320c60855febb0cf1706b66bdc754e640d43360405160405180910390a3604051630483483160e31b81526001600160a01b0386169063241a418890612b209087908590600401615a35565b600060405180830381600087803b158015612b3a57600080fd5b505af1158015612b4e573d6000803e3d6000fd5b5050835467fffffffffffffffe19600160601b9091046001600160401b03160191506129de9050578654612b9290600160601b90046001600160401b031642615a57565b82546001600160401b0391909116600160601b0267ffffffffffffffff60601b1990911617825550505050505050565b6001600160a01b0380821660009081526002860160205260409020541680612bfc5760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b03808216600081815260038801602052604080822090519093861692917f1231fe5ee649a593b524a494cd53146a196380a872115a0d0fe16c0735afdf2691a36040516307b8c36760e51b81526001600160a01b03848116600483015285169063f7186ce090602401602060405180830381865afa158015612c89573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612cad91906159ee565b15612d34578054600090612ccf908890889086906001600160601b0316614ceb565b60405163dc7520c560e01b81529091506001600160a01b0386169063dc7520c590612d009087908590600401615a35565b600060405180830381600087803b158015612d1a57600080fd5b505af1158015612d2e573d6000803e3d6000fd5b50505050505b805467fffffffffffffffe19600160601b9091046001600160401b0316016129e0578554612d7290600160601b90046001600160401b031642615a57565b81546001600160401b0391909116600160601b0267ffffffffffffffff60601b19909116178155505050505050565b6000806003612daf856143dd565b6003811115612dc057612dc06150d4565b14612e0d5760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610bcb565b6003840154600c850154612e2191906156b1565b431115612e7c5760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f642068617320616c7265616479207061736044820152621cd95960ea1b6064820152608401610bcb565b83600b015483604051602001612e929190615688565b6040516020818303038152906040528051906020012014612f1b5760405162461bcd60e51b815260206004820152603a60248201527f526573756c7420756e646572206368616c6c656e67652069732064696666657260448201527f656e74207468616e20746865207375626d6974746564206f6e650000000000006064820152608401610bcb565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92612f57928892600401615a7e565b600060405180830381865afa925050508015612f9557506040513d6000823e601f3d908101601f19168201604052612f929190810190615aa3565b60015b61300a57336001600160a01b031684600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a0285436604051612ffd906020808252601390820152721d985b1a59185d1a5bdb881c995d995c9d1959606a1b604082015260600190565b60405180910390a3613099565b81156130505760405162461bcd60e51b8152602060048201526015602482015274756e6a7573746966696564206368616c6c656e676560581b6044820152606401610bcb565b336001600160a01b031686600b01547f703feb01415a2995816e8d082fd7aad0eacada1a2f63fdb3226e47f8a02854368360405161308e9190615081565b60405180910390a350505b600b84015491506130ad60a0840184615b4c565b6130b9600186356156e6565b8181106130c8576130c861531a565b90506020020160208101906130dd91906159d1565b90508360080154436130ef91906156e6565b600a8501556000600b8501819055600c8501555b9250929050565b6000818152602083905260409020600101546131385760405162461bcd60e51b8152600401610bcb90615b95565b6000908152602091909152604081208181556001810182905560020155565b336001600160a01b0382166131ae5760405162461bcd60e51b815260206004820181905260248201527f4f70657261746f722063616e206e6f74206265207a65726f20616464726573736044820152606401610bcb565b6001600160a01b038181166000908152600185016020526040902054161561322e5760405162461bcd60e51b815260206004820152602d60248201527f4f70657261746f7220616c72656164792073657420666f72207468652073746160448201526c35b4b73390383937bb34b232b960991b6064820152608401610bcb565b6001600160a01b03828116600090815260028501602052604090205416156132985760405162461bcd60e51b815260206004820152601f60248201527f4f70657261746f72206164647265737320616c726561647920696e20757365006044820152606401610bcb565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b03161561332b5760405162461bcd60e51b815260206004820152603160248201527f546865726520697320612070656e64696e6720617574686f72697a6174696f6e60448201527008191958dc99585cd9481c995c5d595cdd607a1b6064820152608401610bcb565b826001600160a01b0316826001600160a01b03167fa453db612af59e5521d6ab9284dc3e2d06af286eb1b1b7b771fce4716c19f2c160405160405180910390a3506001600160a01b03908116600081815260018501602090815260408083208054959096166001600160a01b031995861681179096559482526002909501909452919092208054909216179055565b606060036133c7846143dd565b60038111156133d8576133d86150d4565b146134255760405162461bcd60e51b815260206004820152601e60248201527f43757272656e74207374617465206973206e6f74204348414c4c454e474500006044820152606401610bcb565b6003830154600c84015460009161343b916156b1565b90508043116134985760405162461bcd60e51b815260206004820152602360248201527f4368616c6c656e676520706572696f6420686173206e6f7420706173736564206044820152621e595d60ea1b6064820152608401610bcb565b83600b0154836040516020016134ae9190615688565b60405160208183030381529060405280519060200120146135375760405162461bcd60e51b815260206004820152603960248201527f526573756c7420756e64657220617070726f76616c206973206469666665726560448201527f6e74207468616e20746865207375626d6974746564206f6e65000000000000006064820152608401610bcb565b83546000906001600160a01b0316638871ca5d61355760a0870187615b4c565b613563600189356156e6565b8181106135725761357261531a565b905060200201602081019061358791906159d1565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156135c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906135ed91906152e7565b9050336001600160a01b03821614806136135750600685015461361090836156b1565b43115b61365f5760405162461bcd60e51b815260206004820152601e60248201527f4f6e6c79207375626d69747465722063616e20617070726f7665206e6f7700006044820152606401610bcb565b61366c6040850185615b4c565b90506001600160401b0381111561368557613685615304565b6040519080825280602002602001820160405280156136ae578160200160208202803683370190505b50925060005b6136c16040860186615b4c565b9050811015613775576136d760a0860186615b4c565b60016136e66040890189615b4c565b858181106136f6576136f661531a565b905060200201602081019061370b9190615be5565b6137159190615c00565b60ff168181106137275761372761531a565b905060200201602081019061373c91906159d1565b84828151811061374e5761374e61531a565b63ffffffff909216602092830291909101909101528061376d816158f0565b9150506136b4565b50600b8501546040513391907fe6e9d5eba171e82025efb3f3d44fd35905e7283d104284cb9f3bbc5bf1e4276f90600090a3505092915050565b600080600084846040516137c4929190615c19565b60405190819003902092506137dd602060008688615c29565b6137e691615c53565b91506137f58460208188615c29565b6137fe91615c53565b600084815260209890985260409097209586555060018501819055600290940185905594929392915050565b60006008820181905560098201819055600a8201819055600b8201819055600c820181905581546040805163a69df4b560e01b815290516001600160a01b039092169263a69df4b59260048084019382900301818387803b15801561147257600080fd5b6000600261389b836143dd565b60038111156138ac576138ac6150d4565b1480156111a757506005820154600a83015460088401546138cd91906156b1565b6138d791906156b1565b431192915050565b6001600160601b0381161580613903575083546001600160601b0390811690821610155b61396d5760405162461bcd60e51b815260206004820152603560248201527f417574686f72697a6174696f6e20616d6f756e742073686f756c642062652030604482015274206f722061626f766520746865206d696e696d756d60581b6064820152608401610bcb565b6001600160a01b03808416600090815260018601602052604081205490911690816139995750426139a3565b506001600160401b035b60006139af8486615c71565b6001600160a01b03871660009081526003890160205260409020805491925090600160601b90046001600160401b031680158015906139f757506001600160401b0381811614155b15613a8a578854613a1890600160a01b90046001600160401b031682615c91565b6001600160401b0316421015613a8a5760405162461bcd60e51b815260206004820152603160248201527f4e6f7420656e6f7567682074696d65207061737365642073696e636520746865604482015270081bdc9a59da5b985b081c995c5d595cdd607a1b6064820152608401610bcb565b81546001600160401b038516600160601b81026001600160a01b03199092166001600160601b0386811691909117929092178455604080518a8416815292891660208401528201526001600160a01b0386811691908a16907f545cbf267cef6fe43f11f6219417ab43a0e8e345adbaae5f626d9bc325e8535a9060600160405180910390a3505050505050505050565b6001613b25836143dd565b6003811115613b3657613b366150d4565b14613b8e5760405162461bcd60e51b815260206004820152602260248201527f43757272656e74207374617465206973206e6f74204157414954494e475f5345604482015261115160f21b6064820152608401610bcb565b60405181907fb2ad26c2940889d79df2ee9c758a8aefa00c5ca90eee119af0e5d795df3b98bb90600090a2436008830155600990910155565b6000613bd2826143dd565b6003811115613be357613be36150d4565b14613c2c5760405162461bcd60e51b815260206004820152601960248201527843757272656e74207374617465206973206e6f742049444c4560381b6044820152606401610bcb565b6040517f5c3ed2397d4d21298b2fb5027ac8e2d42e3c9c72bbb55ddb030e2a36a0cdff6b90600090a1805460408051637c1e845d60e11b815290516001600160a01b039092169163f83d08ba9160048082019260009290919082900301818387803b158015613c9a57600080fd5b505af1158015613cae573d6000803e3d6000fd5b5050505043816007018190555050565b6001600160a01b038116600090815260038401602052604090208054600160601b90046001600160401b0316613d425760405162461bcd60e51b8152602060048201526024808201527f417574686f72697a6174696f6e206465637265617365206e6f742072657175656044820152631cdd195960e21b6064820152608401610bcb565b805467fffffffffffffffe19600160601b9091046001600160401b031601613dc15760405162461bcd60e51b815260206004820152602c60248201527f417574686f72697a6174696f6e2064656372656173652072657175657374206e60448201526b1bdd081858dd1a5d985d195960a21b6064820152608401610bcb565b8054600160601b90046001600160401b0316421015613e325760405162461bcd60e51b815260206004820152602760248201527f417574686f72697a6174696f6e2064656372656173652064656c6179206e6f74604482015266081c185cdcd95960ca1b6064820152608401610bcb565b6040516001600160a01b038316907f50270a522c2fef97b6b7385c2aa4a4518adda681530e0a1fe9f5e840f6f2cd9d90600090a2604051633af0572d60e11b81526001600160a01b0383811660048301528416906375e0ae5a906024016020604051808303816000875af1158015613eae573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190613ed291906153e5565b50506001600160a01b031660009081526003909201602052506040902080546001600160a01b0319169055565b60006001613f0c836143dd565b6003811115613f1d57613f1d6150d4565b1480156111a75750600282015460078301546138d791906156b1565b60408114613f895760405162461bcd60e51b815260206004820181905260248201527f496e76616c6964206c656e677468206f6620746865207075626c6963206b65796044820152606401610bcb565b60008282604051613f9b929190615c19565b6040805191829003909120600081815260208790529190912060010154909150156140205760405162461bcd60e51b815260206004820152602f60248201527f57616c6c657420776974682074686520676976656e207075626c6963206b657960448201526e20616c72656164792065786973747360881b6064820152608401610bcb565b600061402f6020828587615c29565b61403891615c53565b905080610f655760405162461bcd60e51b815260206004820152602260248201527f57616c6c6574207075626c6963206b6579206d757374206265206e6f6e2d7a65604482015261726f60f01b6064820152608401610bcb565b600261409d836143dd565b60038111156140ae576140ae6150d4565b146141075760405162461bcd60e51b8152602060048201526024808201527f43757272656e74207374617465206973206e6f74204157414954494e475f524560448201526314d5531560e21b6064820152608401610bcb565b6141108261388e565b1561415d5760405162461bcd60e51b815260206004820152601a60248201527f444b472074696d656f757420616c7265616479207061737365640000000000006044820152606401610bcb565b81546040516307b8c36760e51b81523360048201526001600160a01b0390911690819063f7186ce090602401602060405180830381865afa1580156141a6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906141ca91906159ee565b6142225760405162461bcd60e51b815260206004820152602360248201527f5375626d6974746572206e6f7420696e2074686520736f72746974696f6e20706044820152621bdbdb60ea1b6064820152608401610bcb565b336001600160a01b038216638871ca5d61423f60a0860186615b4c565b61424b600188356156e6565b81811061425a5761425a61531a565b905060200201602081019061426f91906159d1565b6040516001600160e01b031960e084901b16815263ffffffff919091166004820152602401602060405180830381865afa1580156142b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906142d591906152e7565b6001600160a01b03161461432b5760405162461bcd60e51b815260206004820152601a60248201527f556e6578706563746564207375626d697474657220696e6465780000000000006044820152606401610bcb565b8160405160200161433c9190615688565b60408051601f19818403018152908290528051602090910120600b850181905543600c8601556009850154917f8e7fd4293d7db11807147d8890c287fad3396fbb09a4e92273fc7856076c153a90614395908690615688565b60405180910390a3505050565b6001600160a01b03811660009081526003840160205260408120546143d5908590859085906001600160601b0316614ceb565b949350505050565b805460408051632938b58d60e21b815290516000926001600160a01b03169163a4e2d6349160048083019260209291908290030181865afa158015614426573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061444a91906159ee565b1561446f575060088101546001901561446f5750600c8101546002901561446f575060035b919050565b600081116144945760405162461bcd60e51b8152600401610bcb90615cb1565b600290910155565b600081116144bc5760405162461bcd60e51b8152600401610bcb90615cb1565b600390910155565b600081116144e45760405162461bcd60e51b8152600401610bcb90615cb1565b600590910155565b60006144f7836143dd565b6003811115614508576145086150d4565b146145515760405162461bcd60e51b815260206004820152601960248201527843757272656e74207374617465206973206e6f742049444c4560381b6044820152606401610bcb565b600582015481106145b45760405162461bcd60e51b815260206004820152602760248201527f56616c7565206578636565647320726573756c74207375626d697373696f6e206044820152661d1a5b595bdd5d60ca1b6064820152608401610bcb565b600690910155565b60008181526020839052604081206001015481906145ec5760405162461bcd60e51b8152600401610bcb90615b95565b505060009081526020919091526040902060018101546002909101549091565b60008181526020839052604081206001015461463a5760405162461bcd60e51b8152600401610bcb90615b95565b506000908152602091909152604090205490565b6001600160a01b03811660009081526003830160205260408120805467fffffffffffffffe19600160601b9091046001600160401b03160161469a576001600160401b039150506111a7565b805442906001600160401b03600160601b9091048116908216116146da5781546146d5908290600160601b90046001600160401b0316615c91565b6146dd565b60005b95945050505050565b81546001600160401b03909116600160601b0267ffffffffffffffff60601b19909116179055565b81546001600160401b03909116600160a01b0267ffffffffffffffff60a01b19909116179055565b61473f81613eff565b61478b5760405162461bcd60e51b815260206004820152601f60248201527f4177616974696e67207365656420686173206e6f742074696d6564206f7574006044820152606401610bcb565b6040517f68c52f05452e81639fa06f379aee3178cddee4725521fff886f244c99e868b5090600090a1610b9e8161382a565b60606000806147cc85856145bc565b604080516020810193909352828101919091528051808303820181526060909201905295945050505050565b600080546001600160a01b038381166001600160a01b031983168117909355604080519190921680825260208201939093527f5f56bee8cffbe9a78652a74a60705edede02af10b0bbb888ca44b79a0d42ce809101610cf8565b82546001600160a01b0316156148b55760405162461bcd60e51b815260206004820152602260248201527f536f72746974696f6e20506f6f6c206164647265737320616c72656164792073604482015261195d60f21b6064820152608401610bcb565b60018301546001600160a01b03161561491a5760405162461bcd60e51b815260206004820152602160248201527f444b472056616c696461746f72206164647265737320616c72656164792073656044820152601d60fa1b6064820152608401610bcb565b82546001600160a01b03199081166001600160a01b03938416178455600190930180549093169116179055565b83546001600160601b0390811690821610156149a55760405162461bcd60e51b815260206004820152601f60248201527f417574686f72697a6174696f6e2062656c6f7720746865206d696e696d756d006044820152606401610bcb565b6001600160a01b0383811660008181526001870160209081526040918290205482516001600160601b03888116825287169281019290925282519416938493927f87f9f9f59204f53d57a89a817c6083a17979cd0531791c91e18551a56e3cfdd7928290030190a35050505050565b614a1d8161388e565b614a615760405162461bcd60e51b81526020600482015260156024820152741112d1c81a185cc81b9bdd081d1a5b5959081bdd5d605a1b6044820152606401610bcb565b6040517f2852b3e178dd281713b041c3d90b4815bb55b7ec812931d1e8e8d8bb2ed72d3e90600090a1610b9e8161382a565b6001600160a01b03808216600090815260028601602052604081205490911680614acf5760405162461bcd60e51b8152600401610bcb90615a0b565b6001600160a01b038116600090815260038701602052604081208054909190614b06908990899086906001600160601b0316614ceb565b6040516307b8c36760e51b81526001600160a01b0387811660048301529192509087169063f7186ce090602401602060405180830381865afa158015614b50573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614b7491906159ee565b614b8c576001600160601b03161592506143d5915050565b6040516304de824f60e41b81526001600160a01b03871690634de824f090614bba9088908590600401615a35565b602060405180830381865afa158015614bd7573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614bfb91906159ee565b98975050505050505050565b600060606000846008015411614c5f5760405162461bcd60e51b815260206004820152601860248201527f444b4720686173206e6f74206265656e207374617274656400000000000000006044820152606401610bcb565b6001840154600985015460088601546040516373b33d5d60e11b81526001600160a01b039093169263e7667aba92614c9b928892600401615a7e565b600060405180830381865afa158015614cb8573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052614ce09190810190615aa3565b915091509250929050565b604051637004922d60e11b81526001600160a01b038381166004830152306024830152600091829186169063e009245a90604401602060405180830381865afa158015614d3c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190614d6091906153e5565b90506000836001600160601b0316826001600160601b031611614d84576000614d8e565b614d8e8483615c71565b87549091506001600160601b039081169082161015614db2576000925050506143d5565b91506143d59050565b6001600160a01b0381168114610b9e57600080fd5b6001600160601b0381168114610b9e57600080fd5b600080600060608486031215614dfa57600080fd5b8335614e0581614dbb565b92506020840135614e1581614dd0565b91506040840135614e2581614dd0565b809150509250925092565b600060208284031215614e4257600080fd5b813561280481614dbb565b600060208284031215614e5f57600080fd5b813561280481614dd0565b600060208284031215614e7c57600080fd5b81356001600160401b03811115614e9257600080fd5b820160e0818503121561280457600080fd5b600060208284031215614eb657600080fd5b5035919050565b60008060408385031215614ed057600080fd5b50508035926020909101359150565b600080600080600060a08688031215614ef757600080fd5b505083359560208501359550604085013594606081013594506080013592509050565b60008083601f840112614f2c57600080fd5b5081356001600160401b03811115614f4357600080fd5b6020830191508360208260051b850101111561310357600080fd5b60008060008060608587031215614f7457600080fd5b84356001600160401b0380821115614f8b57600080fd5b9086019060a08289031215614f9f57600080fd5b9094506020860135935060408601359080821115614fbc57600080fd5b50614fc987828801614f1a565b95989497509550505050565b80356001600160401b038116811461446f57600080fd5b60008060006060848603121561500157600080fd5b833561500c81614dd0565b925061501a60208501614fd5565b915061502860408501614fd5565b90509250925092565b60005b8381101561504c578181015183820152602001615034565b50506000910152565b6000815180845261506d816020860160208601615031565b601f01601f19169290920160200192915050565b6020815260006128046020830184615055565b6000806000606084860312156150a957600080fd5b83356150b481614dbb565b925060208401356150c481614dbb565b91506040840135614e2581614dbb565b634e487b7160e01b600052602160045260246000fd5b602081016004831061510c57634e487b7160e01b600052602160045260246000fd5b91905290565b60008060008060008060a0878903121561512b57600080fd5b863561513681614dd0565b955060208701359450604087013561514d81614dbb565b93506060870135925060808701356001600160401b0381111561516f57600080fd5b61517b89828a01614f1a565b979a9699509497509295939492505050565b6000806000806000608086880312156151a557600080fd5b8535945060208601356001600160401b038111156151c257600080fd5b6151ce88828901614f1a565b90955093505060408601356151e281614dbb565b949793965091946060013592915050565b600081518084526020808501945080840160005b8381101561522957815163ffffffff1687529582019590820190600101615207565b509495945050505050565b60208152600061280460208301846151f3565b82151581526040602082015260006143d56040830184615055565b6020808252601c908201527f43616c6c6572206973206e6f742074686520676f7665726e616e636500000000604082015260600190565b6020808252602e908201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160408201526d191e481a5b9a5d1a585b1a5e995960921b606082015260800190565b6000602082840312156152f957600080fd5b815161280481614dbb565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b6001600160601b038516815260208082018590526001600160a01b038481166040840152608060608401819052845190840181905260009285810192909160a0860190855b81811015615393578551841683529484019491840191600101615375565b50909a9950505050505050505050565b6000806000606084860312156153b857600080fd5b83516153c381614dbb565b60208501519093506153d481614dbb565b6040850151909250614e2581614dbb565b6000602082840312156153f757600080fd5b815161280481614dd0565b6000808335601e1984360301811261541957600080fd5b8301803591506001600160401b0382111561543357600080fd5b60200191503681900382131561310357600080fd5b6000808335601e1984360301811261545f57600080fd5b83016020810192503590506001600160401b0381111561547e57600080fd5b80360382131561310357600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6000808335601e198436030181126154cd57600080fd5b83016020810192503590506001600160401b038111156154ec57600080fd5b8060051b360382131561310357600080fd5b803560ff8116811461446f57600080fd5b81835260006001600160fb1b0383111561552857600080fd5b8260051b80836020870137939093016020019392505050565b63ffffffff81168114610b9e57600080fd5b8183526000602080850194508260005b8581101561522957813561557681615541565b63ffffffff1687529582019590820190600101615563565b80358252600060206155a281840184615448565b60e0838701526155b660e08701828461548d565b9150506155c660408501856154b6565b868303604088015280835290916000919084015b818310156156025760ff6155ed856154fe565b168152928401926001929092019184016155da565b61560f6060880188615448565b95509350878103606089015261562681868661548d565b94505050505061563960808401846154b6565b858303608087015261564c83828461550f565b9250505061565d60a08401846154b6565b85830360a0870152615670838284615553565b9250505060c083013560c08501528091505092915050565b602081526000612804602083018461558e565b634e487b7160e01b600052601160045260246000fd5b808201808211156111a7576111a761569b565b6040815260006156d760408301856151f3565b90508260208301529392505050565b818103818111156111a7576111a761569b565b6020815260006143d5602083018486615553565b8015158114610b9e57600080fd5b60018060a01b038716815260a06020820152853560a0820152600061574360208801886154b6565b60a060c08501526157596101408501828461550f565b915050604088013561576a8161570d565b151560e084015261577e6060890189615448565b609f19808685030161010087015261579784838561548d565b93506157a660808c018c6154b6565b935091508086850301610120870152506157c183838361550f565b9250505082810360408401526157d78188615055565b905085606084015282810360808401526157f2818587615553565b9998505050505050505050565b604051601f8201601f191681016001600160401b038111828210171561582757615827615304565b604052919050565b60006001600160401b0382111561584857615848615304565b5060051b60200190565b6000602080838503121561586557600080fd5b82516001600160401b0381111561587b57600080fd5b8301601f8101851361588c57600080fd5b805161589f61589a8261582f565b6157ff565b81815260059190911b820183019083810190878311156158be57600080fd5b928401925b828410156158e55783516158d681615541565b825292840192908401906158c3565b979650505050505050565b6000600182016159025761590261569b565b5060010190565b60006020828403121561591b57600080fd5b81356128048161570d565b6000602080838503121561593957600080fd5b82516001600160401b0381111561594f57600080fd5b8301601f8101851361596057600080fd5b805161596e61589a8261582f565b81815260059190911b8201830190838101908783111561598d57600080fd5b928401925b828410156158e55783516159a581614dbb565b82529284019290840190615992565b6000602082840312156159c657600080fd5b815161280481615541565b6000602082840312156159e357600080fd5b813561280481615541565b600060208284031215615a0057600080fd5b81516128048161570d565b60208082526010908201526f2ab735b737bbb71037b832b930ba37b960811b604082015260600190565b6001600160a01b039290921682526001600160601b0316602082015260400190565b6001600160401b03818116838216019080821115615a7757615a7761569b565b5092915050565b606081526000615a91606083018661558e565b60208301949094525060400152919050565b60008060408385031215615ab657600080fd5b8251615ac18161570d565b60208401519092506001600160401b0380821115615ade57600080fd5b818501915085601f830112615af257600080fd5b815181811115615b0457615b04615304565b615b17601f8201601f19166020016157ff565b9150808252866020828501011115615b2e57600080fd5b615b3f816020840160208601615031565b5080925050509250929050565b6000808335601e19843603018112615b6357600080fd5b8301803591506001600160401b03821115615b7d57600080fd5b6020019150600581901b360382131561310357600080fd5b60208082526030908201527f57616c6c657420776974682074686520676976656e20494420686173206e6f7460408201526f081899595b881c9959da5cdd195c995960821b606082015260800190565b600060208284031215615bf757600080fd5b612804826154fe565b60ff82811682821603908111156111a7576111a761569b565b8183823760009101908152919050565b60008085851115615c3957600080fd5b83861115615c4657600080fd5b5050820193919092039150565b803560208310156111a757600019602084900360031b1b1692915050565b6001600160601b03828116828216039080821115615a7757615a7761569b565b6001600160401b03828116828216039080821115615a7757615a7761569b565b6020808252601f908201527f56616c7565206d7573742062652067726561746572207468616e207a65726f0060408201526060019056fea2646970667358221220dde34c826480318674a5b15d4f6f3483a5ee47c0ebae5b5ab0690d6c8097e3df64736f6c63430008110033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2
-----Decoded View---------------
Arg [0] : _sortitionPool (address): 0x2Bb407686eF989044cb3b2Bbb51ecabdFFAe827a
Arg [1] : _staking (address): 0xC6bA8C3233eCF65B761049ef63466945c362EdD2
-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 0000000000000000000000002bb407686ef989044cb3b2bbb51ecabdffae827a
Arg [1] : 000000000000000000000000c6ba8c3233ecf65b761049ef63466945c362edd2
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.

