ETH Price: $2,280.02 (-2.60%)
 

Overview

ETH Balance

0 ETH

Eth Value

$0.00

More Info

Private Name Tags

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To

There are no matching entries

Please try again later

View more zero value Internal Transactions in Advanced View mode

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Name

LineaRollup

Compiler Version
v0.8.33+commit.64118f21
Optimization Enabled
Yes with 9500 runs
Other Settings
osaka EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"ArrayLengthsDoNotMatch","type":"error"},{"inputs":[{"internalType":"uint256","name":"emptyBlobIndex","type":"uint256"}],"name":"BlobSubmissionDataEmpty","type":"error"},{"inputs":[],"name":"BlobSubmissionDataIsMissing","type":"error"},{"inputs":[],"name":"BytesLengthNotMultipleOf32","type":"error"},{"inputs":[{"internalType":"uint256","name":"bytesLength","type":"uint256"}],"name":"BytesLengthNotMultipleOfTwo","type":"error"},{"inputs":[],"name":"CallerIsNotYieldManager","type":"error"},{"inputs":[],"name":"CallerNotLSTWithdrawalRecipient","type":"error"},{"inputs":[],"name":"CallerNotProxyAdmin","type":"error"},{"inputs":[{"internalType":"bytes32","name":"currentDataHash","type":"bytes32"}],"name":"DataAlreadySubmitted","type":"error"},{"inputs":[{"internalType":"uint256","name":"index","type":"uint256"}],"name":"EmptyBlobDataAtIndex","type":"error"},{"inputs":[],"name":"EmptySubmissionData","type":"error"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"FeePaymentFailed","type":"error"},{"inputs":[],"name":"FeeTooLow","type":"error"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"FinalBlobNotSubmitted","type":"error"},{"inputs":[],"name":"FinalBlockStateEqualsZeroHash","type":"error"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"FinalShnarfWrong","type":"error"},{"inputs":[{"internalType":"uint256","name":"l2BlockTimestamp","type":"uint256"},{"internalType":"uint256","name":"currentBlockTimestamp","type":"uint256"}],"name":"FinalizationInTheFuture","type":"error"},{"inputs":[{"internalType":"bytes32","name":"expected","type":"bytes32"},{"internalType":"bytes32","name":"value","type":"bytes32"}],"name":"FinalizationStateIncorrect","type":"error"},{"inputs":[],"name":"FirstByteIsNotZero","type":"error"},{"inputs":[],"name":"InvalidMerkleProof","type":"error"},{"inputs":[],"name":"InvalidProof","type":"error"},{"inputs":[{"internalType":"string","name":"errorReason","type":"string"}],"name":"InvalidProofOrProofVerificationRanOutOfGas","type":"error"},{"inputs":[],"name":"InvalidProofType","type":"error"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"IsNotPaused","type":"error"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"IsPaused","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"name":"L1RollingHashDoesNotExistOnL1","type":"error"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"L2MerkleRootAlreadyAnchored","type":"error"},{"inputs":[],"name":"L2MerkleRootDoesNotExist","type":"error"},{"inputs":[],"name":"LSTWithdrawalRequiresDeficit","type":"error"},{"inputs":[],"name":"LastFinalizationTimeNotLapsed","type":"error"},{"inputs":[{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"uint32","name":"maxAllowedIndex","type":"uint32"}],"name":"LeafIndexOutOfBounds","type":"error"},{"inputs":[],"name":"LimitIsZero","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageIndex","type":"uint256"}],"name":"MessageAlreadyClaimed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"MessageDoesNotExistOrHasAlreadyBeenClaimed","type":"error"},{"inputs":[{"internalType":"address","name":"destination","type":"address"}],"name":"MessageSendingFailed","type":"error"},{"inputs":[{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"name":"MissingMessageNumberForRollingHash","type":"error"},{"inputs":[{"internalType":"uint256","name":"messageNumber","type":"uint256"}],"name":"MissingRollingHashForMessageNumber","type":"error"},{"inputs":[],"name":"NoEthSent","type":"error"},{"inputs":[],"name":"OnlyNonFallbackOperator","type":"error"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"ParentBlobNotSubmitted","type":"error"},{"inputs":[],"name":"PauseTypeNotUsed","type":"error"},{"inputs":[],"name":"PeriodIsZero","type":"error"},{"inputs":[],"name":"PointEvaluationFailed","type":"error"},{"inputs":[{"internalType":"uint256","name":"fieldElements","type":"uint256"},{"internalType":"uint256","name":"blsCurveModulus","type":"uint256"}],"name":"PointEvaluationResponseInvalid","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"PrecompileReturnDataLengthWrong","type":"error"},{"inputs":[],"name":"ProofIsEmpty","type":"error"},{"inputs":[{"internalType":"uint256","name":"actual","type":"uint256"},{"internalType":"uint256","name":"expected","type":"uint256"}],"name":"ProofLengthDifferentThanMerkleDepth","type":"error"},{"inputs":[],"name":"RateLimitExceeded","type":"error"},{"inputs":[],"name":"ReentrantCall","type":"error"},{"inputs":[],"name":"RolesNotDifferent","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[],"name":"StartingRootHashDoesNotMatch","type":"error"},{"inputs":[],"name":"ValueSentTooLow","type":"error"},{"inputs":[],"name":"ZeroAddressNotAllowed","type":"error"},{"inputs":[],"name":"ZeroHashNotAllowed","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"resettingAddress","type":"address"}],"name":"AmountUsedInPeriodReset","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"startBlockNumber","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"endBlockNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"shnarf","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"parentStateRootHash","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"}],"name":"DataFinalizedV3","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bytes32","name":"parentShnarf","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"shnarf","type":"bytes32"},{"indexed":false,"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"}],"name":"DataSubmittedV3","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"fallbackOperator","type":"address"}],"name":"FallbackOperatorAddressSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"caller","type":"address"},{"indexed":true,"internalType":"address","name":"fallbackOperator","type":"address"}],"name":"FallbackOperatorRoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FundingReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint8","name":"version","type":"uint8"}],"name":"Initialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"l2MerkleRoot","type":"bytes32"},{"indexed":true,"internalType":"uint256","name":"treeDepth","type":"uint256"}],"name":"L2MerkleRootAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"l2Block","type":"uint256"}],"name":"L2MessagingBlockAnchored","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"amountChangeBy","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"bool","name":"amountUsedLoweredToLimit","type":"bool"},{"indexed":false,"internalType":"bool","name":"usedAmountResetToZero","type":"bool"}],"name":"LimitAmountChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes8","name":"previousVersion","type":"bytes8"},{"indexed":true,"internalType":"bytes8","name":"newVersion","type":"bytes8"}],"name":"LineaRollupVersionChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"MessageClaimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"_from","type":"address"},{"indexed":true,"internalType":"address","name":"_to","type":"address"},{"indexed":false,"internalType":"uint256","name":"_fee","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_value","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_nonce","type":"uint256"},{"indexed":false,"internalType":"bytes","name":"_calldata","type":"bytes"},{"indexed":true,"internalType":"bytes32","name":"_messageHash","type":"bytes32"}],"name":"MessageSent","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"PauseTypeRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousRole","type":"bytes32"}],"name":"PauseTypeRoleUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"messageSender","type":"address"},{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"Paused","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"periodInSeconds","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"limitInWei","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"currentPeriodEnd","type":"uint256"}],"name":"RateLimitInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousAdminRole","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"newAdminRole","type":"bytes32"}],"name":"RoleAdminChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleGranted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"address","name":"account","type":"address"},{"indexed":true,"internalType":"address","name":"sender","type":"address"}],"name":"RoleRevoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"messageNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"rollingHash","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"RollingHashUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"unPauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"UnPauseTypeRoleSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"unPauseType","type":"uint8"},{"indexed":true,"internalType":"bytes32","name":"role","type":"bytes32"},{"indexed":true,"internalType":"bytes32","name":"previousRole","type":"bytes32"}],"name":"UnPauseTypeRoleUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"messageSender","type":"address"},{"indexed":true,"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"}],"name":"UnPaused","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"verifierAddress","type":"address"},{"indexed":true,"internalType":"uint256","name":"proofType","type":"uint256"},{"indexed":true,"internalType":"address","name":"verifierSetBy","type":"address"},{"indexed":false,"internalType":"address","name":"oldVerifierAddress","type":"address"}],"name":"VerifierAddressChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"oldYieldManagerAddress","type":"address"},{"indexed":false,"internalType":"address","name":"newYieldManagerAddress","type":"address"}],"name":"YieldManagerChanged","type":"event"},{"inputs":[],"name":"CONTRACT_VERSION","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DEFAULT_ADMIN_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INBOX_STATUS_RECEIVED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"INBOX_STATUS_UNKNOWN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OPERATOR_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_RECEIVED","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_SENT","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"OUTBOX_STATUS_UNKNOWN","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_ALL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_BLOB_SUBMISSION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_FINALIZATION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_L1_L2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_L2_L1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PAUSE_NATIVE_YIELD_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"RATE_LIMIT_SETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SET_YIELD_MANAGER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_ALL_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_BLOB_SUBMISSION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_FINALIZATION_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_L1_L2_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_L2_L1_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNPAUSE_NATIVE_YIELD_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"USED_RATE_LIMIT_RESETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERIFIER_SETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"VERIFIER_UNSETTER_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"YIELD_PROVIDER_STAKING_ROLE","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"shnarf","type":"bytes32"}],"name":"blobShnarfExists","outputs":[{"internalType":"uint256","name":"exists","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_from","type":"address"},{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"uint256","name":"_value","type":"uint256"},{"internalType":"address payable","name":"_feeRecipient","type":"address"},{"internalType":"bytes","name":"_calldata","type":"bytes"},{"internalType":"uint256","name":"_nonce","type":"uint256"}],"name":"claimMessage","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"feeRecipient","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IL1MessageService.ClaimMessageWithProofParams","name":"_params","type":"tuple"}],"name":"claimMessageWithProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32[]","name":"proof","type":"bytes32[]"},{"internalType":"uint256","name":"messageNumber","type":"uint256"},{"internalType":"uint32","name":"leafIndex","type":"uint32"},{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"fee","type":"uint256"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"address payable","name":"feeRecipient","type":"address"},{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"internalType":"struct IL1MessageService.ClaimMessageWithProofParams","name":"_params","type":"tuple"},{"internalType":"address","name":"_yieldProvider","type":"address"}],"name":"claimMessageWithProofAndWithdrawLST","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"currentFinalizedShnarf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentFinalizedState","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentL2BlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentL2StoredL1MessageNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentL2StoredL1RollingHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPeriodAmountInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentPeriodEnd","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"currentTimestamp","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"name":"dataEndingBlock","outputs":[{"internalType":"uint256","name":"endingBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"name":"dataFinalStateRootHashes","outputs":[{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"name":"dataParents","outputs":[{"internalType":"bytes32","name":"parentHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"name":"dataShnarfHashes","outputs":[{"internalType":"bytes32","name":"shnarfHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"dataHash","type":"bytes32"}],"name":"dataStartingBlock","outputs":[{"internalType":"uint256","name":"startingBlock","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fallbackOperator","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_aggregatedProof","type":"bytes"},{"internalType":"uint256","name":"_proofType","type":"uint256"},{"components":[{"internalType":"bytes32","name":"parentStateRootHash","type":"bytes32"},{"internalType":"uint256","name":"endBlockNumber","type":"uint256"},{"components":[{"internalType":"bytes32","name":"parentShnarf","type":"bytes32"},{"internalType":"bytes32","name":"snarkHash","type":"bytes32"},{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"},{"internalType":"bytes32","name":"dataEvaluationPoint","type":"bytes32"},{"internalType":"bytes32","name":"dataEvaluationClaim","type":"bytes32"}],"internalType":"struct ILineaRollup.ShnarfData","name":"shnarfData","type":"tuple"},{"internalType":"uint256","name":"lastFinalizedTimestamp","type":"uint256"},{"internalType":"uint256","name":"finalTimestamp","type":"uint256"},{"internalType":"bytes32","name":"lastFinalizedL1RollingHash","type":"bytes32"},{"internalType":"bytes32","name":"l1RollingHash","type":"bytes32"},{"internalType":"uint256","name":"lastFinalizedL1RollingHashMessageNumber","type":"uint256"},{"internalType":"uint256","name":"l1RollingHashMessageNumber","type":"uint256"},{"internalType":"uint256","name":"l2MerkleTreesDepth","type":"uint256"},{"internalType":"bytes32[]","name":"l2MerkleRoots","type":"bytes32[]"},{"internalType":"bytes","name":"l2MessagingBlocksOffsets","type":"bytes"}],"internalType":"struct ILineaRollup.FinalizationDataV3","name":"_finalizationData","type":"tuple"}],"name":"finalizeBlocks","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"fund","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"}],"name":"getRoleAdmin","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"grantRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"hasRole","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"inboxL2L1MessageStatus","outputs":[{"internalType":"uint256","name":"messageStatus","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"initialStateRootHash","type":"bytes32"},{"internalType":"uint256","name":"initialL2BlockNumber","type":"uint256"},{"internalType":"uint256","name":"genesisTimestamp","type":"uint256"},{"internalType":"address","name":"defaultVerifier","type":"address"},{"internalType":"uint256","name":"rateLimitPeriodInSeconds","type":"uint256"},{"internalType":"uint256","name":"rateLimitAmountInWei","type":"uint256"},{"components":[{"internalType":"address","name":"addressWithRole","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPermissionsManager.RoleAddress[]","name":"roleAddresses","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"pauseTypeRoles","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"unpauseTypeRoles","type":"tuple[]"},{"internalType":"address","name":"initialYieldManager","type":"address"},{"internalType":"address","name":"fallbackOperator","type":"address"},{"internalType":"address","name":"defaultAdmin","type":"address"}],"internalType":"struct ILineaRollup.InitializationData","name":"_initializationData","type":"tuple"}],"name":"initialize","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_messageNumber","type":"uint256"}],"name":"isMessageClaimed","outputs":[{"internalType":"bool","name":"isClaimed","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"isPaused","outputs":[{"internalType":"bool","name":"pauseTypeIsPaused","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"isWithdrawLSTAllowed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"merkleRoot","type":"bytes32"}],"name":"l2MerkleRootsDepths","outputs":[{"internalType":"uint256","name":"treeDepth","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"limitInWei","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nextMessageNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"messageHash","type":"bytes32"}],"name":"outboxL1L2MessageStatus","outputs":[{"internalType":"uint256","name":"messageStatus","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"pauseByType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"pauseType","type":"bytes32"}],"name":"pauseTypeStatuses","outputs":[{"internalType":"bool","name":"pauseStatus","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"periodInSeconds","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"addressWithRole","type":"address"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPermissionsManager.RoleAddress[]","name":"_roleAddresses","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"_pauseTypeRoles","type":"tuple[]"},{"components":[{"internalType":"enum IPauseManager.PauseType","name":"pauseType","type":"uint8"},{"internalType":"bytes32","name":"role","type":"bytes32"}],"internalType":"struct IPauseManager.PauseTypeRole[]","name":"_unpauseTypeRoles","type":"tuple[]"},{"internalType":"address","name":"_yieldManager","type":"address"}],"name":"reinitializeLineaRollupV7","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"_role","type":"bytes32"},{"internalType":"address","name":"_account","type":"address"}],"name":"renounceRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"},{"internalType":"address","name":"_l2YieldRecipient","type":"address"}],"name":"reportNativeYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"resetAmountUsedInPeriod","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"resetRateLimitAmount","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"role","type":"bytes32"},{"internalType":"address","name":"account","type":"address"}],"name":"revokeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"messageNumber","type":"uint256"}],"name":"rollingHashes","outputs":[{"internalType":"bytes32","name":"rollingHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_to","type":"address"},{"internalType":"uint256","name":"_fee","type":"uint256"},{"internalType":"bytes","name":"_calldata","type":"bytes"}],"name":"sendMessage","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"sender","outputs":[{"internalType":"address","name":"originalSender","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_messageNumber","type":"uint256"},{"internalType":"bytes32","name":"_rollingHash","type":"bytes32"},{"internalType":"uint256","name":"_lastFinalizedTimestamp","type":"uint256"}],"name":"setFallbackOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newVerifierAddress","type":"address"},{"internalType":"uint256","name":"_proofType","type":"uint256"}],"name":"setVerifierAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_newYieldManager","type":"address"}],"name":"setYieldManager","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"stateRootHashes","outputs":[{"internalType":"bytes32","name":"stateRootHash","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"dataEvaluationClaim","type":"uint256"},{"internalType":"bytes","name":"kzgCommitment","type":"bytes"},{"internalType":"bytes","name":"kzgProof","type":"bytes"},{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"},{"internalType":"bytes32","name":"snarkHash","type":"bytes32"}],"internalType":"struct ILineaRollup.BlobSubmission[]","name":"_blobSubmissions","type":"tuple[]"},{"internalType":"bytes32","name":"_parentShnarf","type":"bytes32"},{"internalType":"bytes32","name":"_finalBlobShnarf","type":"bytes32"}],"name":"submitBlobs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"finalStateRootHash","type":"bytes32"},{"internalType":"bytes32","name":"snarkHash","type":"bytes32"},{"internalType":"bytes","name":"compressedData","type":"bytes"}],"internalType":"struct ILineaRollup.CompressedCalldataSubmission","name":"_submission","type":"tuple"},{"internalType":"bytes32","name":"_parentShnarf","type":"bytes32"},{"internalType":"bytes32","name":"_expectedShnarf","type":"bytes32"}],"name":"submitDataAsCalldata","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"systemMigrationBlock","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"transferFundsForNativeYield","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"}],"name":"unPauseByType","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proofType","type":"uint256"}],"name":"unsetVerifierAddress","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"},{"internalType":"bytes32","name":"_newRole","type":"bytes32"}],"name":"updatePauseTypeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"enum IPauseManager.PauseType","name":"_pauseType","type":"uint8"},{"internalType":"bytes32","name":"_newRole","type":"bytes32"}],"name":"updateUnpauseTypeRole","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"proofType","type":"uint256"}],"name":"verifiers","outputs":[{"internalType":"address","name":"verifierAddress","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"yieldManager","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"}]
6080604052348015600e575f5ffd5b506015601f565b601b601f565b60d9565b5f54610100900460ff161560895760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b5f5460ff9081161460d7575f805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615e73806100e65f395ff3fe60806040526004361061058a575f3560e01c80636a906b80116102da578063ad422ff011610186578063c2116974116100dc578063d547741f11610092578063e196fb5d1161006d578063e196fb5d1461114e578063e66c2a931461116d578063f5b541a61461118c575f5ffd5b8063d547741f146110e6578063d5d4b83514611105578063d722bbfc1461111b575f5ffd5b8063cc6f7251116100c2578063cc6f72511461107d578063cd9b9e9a146110b0578063cf5b2764146110c6575f5ffd5b8063c211697414611030578063cc5782f61461104f575f5ffd5b8063b9174ba31161013c578063bf3e750511610117578063bf3e750514610fd3578063c0729ab114611006578063c1dc0f071461101b575f5ffd5b8063b9174ba314610f62578063bc61e73314610f95578063bcc3003d14610fb4575f5ffd5b8063b59faa601161016c578063b59faa6014610f12578063b60d428814610f45578063b837dbe914610f4d575f5ffd5b8063ad422ff014610ee9578063aea4f74514610efe575f5ffd5b8063914e57eb1161023b57806399467a35116101f15780639f3ce55a116101cc5780639f3ce55a14610e8e578063a217fddf14610ea1578063ac1eff6814610eb4575f5ffd5b806399467a3514610e1d5780639ac25d0814610e3c5780639ee8b21114610e6f575f5ffd5b8063921b278e11610221578063921b278e14610dd4578063923fe89414610dea578063986fcddd14610cb6575f5ffd5b8063914e57eb14610d6457806391d1485414610d90575f5ffd5b806374ce962c1161029057806380b7af181161027657806380b7af1814610cc95780638be745d114610d055780638de4948714610d31575f5ffd5b806374ce962c14610c975780637d1e8c5514610cb6575f5ffd5b80636e673843116102c05780636e67384314610c1d5780637174c55914610c5057806373bd07b714610c83575f5ffd5b80636a906b8014610bcb5780636b78317214610bfe575f5ffd5b806348922ab7116104395780635c721a0c1161039a57806363a14a4f1161035057806367e404ce1161032b57806367e404ce14610b6a5780636854f6bc14610b96578063695378f514610bb5575f5ffd5b806363a14a4f14610b005780636463fb2a14610b1f57806366f96e9814610b3e575f5ffd5b80636078bfd8116103805780636078bfd814610a7557806360e83cf314610aa15780636321315514610acd575f5ffd5b80635c721a0c14610a1e5780635ed73ceb14610a49575f5ffd5b806352abf32d116103ef5780635603c65f116103d55780635603c65f146109ea5780635879445614610a095780635b7eb4bd146108e9575f5ffd5b806352abf32d146109ac578063557eac73146109cb575f5ffd5b80634bb974131161041f5780634bb974131461092e5780634cdd389b1461094d5780635230eef214610979575f5ffd5b806348922ab7146108e9578063491e09361461090f575f5ffd5b8063248a9ca3116104ee57806336568abe116104a45780633e9ebfc21161047f5780633e9ebfc2146108805780633fc08b651461089f57806343757d82146108ca575f5ffd5b806336568abe146107d957806338b90333146107f85780633b12eccb1461084d575f5ffd5b80632c70645c116104d45780632c70645c1461078e5780632f2ff15d146107a45780632fe35274146107c3575f5ffd5b8063248a9ca314610741578063289581741461076f575f5ffd5b806312d3fa9a116105435780631e2ff94f116105295780631e2ff94f146106d35780631f443da0146106e95780632130d81214610715575f5ffd5b806312d3fa9a1461066d578063198330f8146106a0575f5ffd5b806305861180116105735780630586118014610603578063085b1c6f146106195780631065a3991461064c575f5ffd5b806301ffc9a71461058e57806303134d1d146105c2575b5f5ffd5b348015610599575f5ffd5b506105ad6105a83660046151b3565b6111bf565b60405190151581526020015b60405180910390f35b3480156105cd575f5ffd5b506105f57f1ab87f7458c0e3d07e9881c14ee67f0141703614fd48ea5b15ed987e5f4b030e81565b6040519081526020016105b9565b34801561060e575f5ffd5b506105f56101bb5481565b348015610624575f5ffd5b506105f57f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725881565b348015610657575f5ffd5b5061066b610666366004615205565b611257565b005b348015610678575f5ffd5b506105f57f67c2dca7476ee0fe1dd3cba13428c6760bfe2599a6dfe26a9ad7ef27317c6e7781565b3480156106ab575f5ffd5b506105f57f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be81565b3480156106de575f5ffd5b506105f56101185481565b3480156106f4575f5ffd5b506105f561070336600461521e565b6101b96020525f908152604090205481565b348015610720575f5ffd5b506105f561072f36600461521e565b6101be6020525f908152604090205481565b34801561074c575f5ffd5b506105f561075b36600461521e565b5f9081526065602052604090206001015490565b34801561077a575f5ffd5b5061066b61078936600461521e565b61139f565b348015610799575f5ffd5b506105f56101835481565b3480156107af575f5ffd5b5061066b6107be366004615249565b611452565b3480156107ce575f5ffd5b505f5c60ff166105ad565b3480156107e4575f5ffd5b5061066b6107f3366004615249565b61147b565b348015610803575f5ffd5b506108406040518060400160405280600381526020017f372e30000000000000000000000000000000000000000000000000000000000081525081565b6040516105b99190615277565b348015610858575f5ffd5b506105f57fb6cc65f42901ed602aec1619cc1ead29d487cd489094a37615153eaeb991d77081565b34801561088b575f5ffd5b5061066b61089a3660046152ac565b6114d2565b3480156108aa575f5ffd5b506105f56108b936600461521e565b60a56020525f908152604090205481565b3480156108d5575f5ffd5b5061066b6108e43660046152d4565b611631565b3480156108f4575f5ffd5b506108fd600181565b60405160ff90911681526020016105b9565b34801561091a575f5ffd5b5061066b610929366004615351565b6117a1565b348015610939575f5ffd5b5061066b610948366004615249565b611a57565b348015610958575f5ffd5b506105f561096736600461521e565b6101b76020525f908152604090205481565b348015610984575f5ffd5b506105f57f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf981565b3480156109b7575f5ffd5b5061066b6109c63660046152ac565b611bc0565b3480156109d6575f5ffd5b5061066b6109e536600461521e565b611d1f565b3480156109f5575f5ffd5b5061066b610a043660046153e1565b611de5565b348015610a14575f5ffd5b506105f560995481565b348015610a29575f5ffd5b506105f5610a3836600461521e565b60a66020525f908152604090205481565b348015610a54575f5ffd5b506105f5610a6336600461521e565b6101ba6020525f908152604090205481565b348015610a80575f5ffd5b506105f5610a8f36600461521e565b6101b66020525f908152604090205481565b348015610aac575f5ffd5b506105f5610abb36600461521e565b6101506020525f908152604090205481565b348015610ad8575f5ffd5b506105f57fe37c272ea30e2bb381ad7cf89ae754b49153250609f36d0cbdad8b64c184bb5c81565b348015610b0b575f5ffd5b5061066b610b1a36600461549a565b611ed8565b348015610b2a575f5ffd5b5061066b610b3936600461555d565b6120fa565b348015610b49575f5ffd5b506105f5610b5836600461521e565b6101b86020525f908152604090205481565b348015610b75575f5ffd5b50610b7e6123df565b6040516001600160a01b0390911681526020016105b9565b348015610ba1575f5ffd5b5061066b610bb0366004615597565b612417565b348015610bc0575f5ffd5b506105f56101195481565b348015610bd6575f5ffd5b506105f57fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b81565b348015610c09575f5ffd5b5061066b610c183660046155e5565b612657565b348015610c28575f5ffd5b506105f57f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c81565b348015610c5b575f5ffd5b506105f57f4b4665d8754e6ea0608430ef3e91c1b45c72aafe8800e289cd35f38d8536185881565b348015610c8e575f5ffd5b506108fd600281565b348015610ca2575f5ffd5b5061066b610cb1366004615629565b612810565b348015610cc1575f5ffd5b506108fd5f81565b348015610cd4575f5ffd5b507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316610b7e565b348015610d10575f5ffd5b506105f5610d1f36600461521e565b61011a6020525f908152604090205481565b348015610d3c575f5ffd5b506105f57fe1fce82838dd7a42cfe783f60dc6233c8aa2c4fc66e77817805e767ec5e349b681565b348015610d6f575f5ffd5b506105f5610d7e36600461521e565b61014e6020525f908152604090205481565b348015610d9b575f5ffd5b506105ad610daa366004615249565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610ddf575f5ffd5b506105f56101bf5481565b348015610df5575f5ffd5b506105f57fcc10d6eec3c757d645e27b3f3001a3ba52f692da0bce25fabf58c6ecaf37645081565b348015610e28575f5ffd5b5061066b610e37366004615644565b612843565b348015610e47575f5ffd5b506105f57f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7781565b348015610e7a575f5ffd5b506105ad610e8936600461521e565b612b2c565b61066b610e9c3660046156c1565b612b4f565b348015610eac575f5ffd5b506105f55f81565b348015610ebf575f5ffd5b50610b7e610ece36600461521e565b61011b6020525f90815260409020546001600160a01b031681565b348015610ef4575f5ffd5b506105f560985481565b348015610f09575f5ffd5b5061066b612c71565b348015610f1d575f5ffd5b506105f57fe4831f9e4316ac2c65117d1f602fbf56d38128a9973d5e3fdbc5b77265c18d4081565b61066b612ccc565b348015610f58575f5ffd5b506105f560e45481565b348015610f6d575f5ffd5b506105f57f430a7f0cb00b5ebbe63cecc96e82cf959a883e7c13a95110854f1fa6b3fbf59881565b348015610fa0575f5ffd5b506105ad610faf366004615205565b612d3a565b348015610fbf575f5ffd5b5061066b610fce366004615719565b612d5e565b348015610fde575f5ffd5b506105f57f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d8281565b348015611011575f5ffd5b506105f5609a5481565b348015611026575f5ffd5b506105f560975481565b34801561103b575f5ffd5b5061066b61104a366004615742565b612e8e565b34801561105a575f5ffd5b506105ad61106936600461521e565b60d96020525f908152604090205460ff1681565b348015611088575f5ffd5b506105f57fe8cb6172fcf5cbaae022b7c910224a4f0c20d53227e630056efff182155a5abc81565b3480156110bb575f5ffd5b506105f56101bd5481565b3480156110d1575f5ffd5b506101c054610b7e906001600160a01b031681565b3480156110f1575f5ffd5b5061066b611100366004615249565b612f94565b348015611110575f5ffd5b506105f56101bc5481565b348015611126575f5ffd5b506105f57f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a81565b348015611159575f5ffd5b5061066b611168366004615205565b612fb8565b348015611178575f5ffd5b5061066b61118736600461521e565b6130db565b348015611197575f5ffd5b506105f57f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061125157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b805f81600c81111561126b5761126b61575e565b036112a2576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60dc5f83600c8111156112b7576112b761575e565b600c8111156112c8576112c861575e565b81526020019081526020015f20546112df81613185565b6112e883612d3a565b61132957826040517f18659654000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b60405180910390fd5b82600c81111561133b5761133b61575e565b60da8054600190921b19909116905582600c81111561135c5761135c61575e565b7fd071d2b85dec4489435b541d2f0e2570db09b09db9efd8703948d44a433df65a335b6040516001600160a01b03909116815260200160405180910390a2505050565b7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a6113c981613185565b5f82815261011b602090815260408083205490516001600160a01b0390911681523392859290917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f8281526065602052604090206001015461146c81613185565b611476838361318f565b505050565b6101c0546001600160a01b03908116908216036114c4576040517f7f7497e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ce828261322f565b5050565b815f81600c8111156114e6576114e661575e565b0361151d576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7761154781613185565b5f60db5f86600c81111561155d5761155d61575e565b600c81111561156e5761156e61575e565b81526020019081526020015f205490508381036115b7576040517f1b807f5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360db5f87600c8111156115cd576115cd61575e565b600c8111156115de576115de61575e565b815260208101919091526040015f2055808486600c8111156116025761160261575e565b6040517f074bfc3728ef1e98bde10bcb5bd8cde59cff190c2bfda5d22f879f865a07bac5905f90a45050505050565b5f54610100900460ff161580801561164f57505f54600160ff909116105b806116685750303b15801561166857505f5460ff166001145b6116da5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611320565b5f805460ff191660011790558015611718575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611721826132b7565b61173b61173661014084016101208501615629565b613597565b80156114ce575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6117a961361c565b85878484875f5a90506117bc60036136b9565b6117f06117ea60017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b8f61374b565b5f6118008f8f8f8f8c8f8f613752565b905061180b816137ab565b61181d6118188d8f61580a565b613805565b5f5f8f6001600160a01b03168e8d8d60405161183a92919061581d565b5f6040518083038185875af1925050503d805f8114611874576040519150601f19603f3d011682016040523d82523d5f602084013e611879565b606091505b5091509150816118d6578051156118935780518082602001fd5b8f6040517f5461344300000000000000000000000000000000000000000000000000000000815260040161132091906001600160a01b0391909116815260200190565b61190a61190460017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b5f61374b565b60405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505086159050611a3f57855f8490036119b557853b1580156119b3573a5a61195e61bc7c8661580a565b61196891906157f7565b611972919061582c565b9150818811156119af576001600160a01b0387166108fc611993848b6157f7565b6040518115909202915f818181858888f19350505050506119b3565b8791505b505b5f6001600160a01b038416156119cb57836119cd565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f19350505050905080611a3b576040517fa57c4df40000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401611320565b5050505b505050505050611a4d61387b565b5050505050505050565b6002611a62816136b9565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03163314611ac5576040517fa1cfbf5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611b05576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f9182611b1583615843565b9091555060408051308152602081018690525f918101829052606081018790526080810183905260c060a08201819052810182905260e0902091925050611b5c82826138a9565b604080515f80825260208201889052818301859052608060608301819052820152905182916001600160a01b0387169133917fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c919081900360a00190a45050505050565b815f81600c811115611bd457611bd461575e565b03611c0b576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b611c3581613185565b5f60dc5f86600c811115611c4b57611c4b61575e565b600c811115611c5c57611c5c61575e565b81526020019081526020015f20549050838103611ca5576040517f1b807f5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360dc5f87600c811115611cbb57611cbb61575e565b600c811115611ccc57611ccc61575e565b815260208101919091526040015f2055808486600c811115611cf057611cf061575e565b6040517ff8ef9f1cde7c2c0d3aeb696678f76d7c1c3e13c3b79ea3c5160a2d9eaa821cfd905f90a45050505050565b7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d82611d4981613185565b5f5f5f426099541015611d6e57609754611d63904261580a565b609955506001611d80565b609a54851015611d8057849250600191505b60988590558080611d8e5750815b15611d9957609a8390555b60408051868152831515602082015282151581830152905133917fbc3dc0cb5c15c51c81316450d44048838bb478b9809447d01c766a06f3e9f2c8919081900360600190a25050505050565b6006611df0816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929611e1a81613185565b5f859003611e54576040517f7907d79b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610119545f81815261011a6020526040902054843514611ea0576040517fead4c30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bd545f611eaf8684613906565b90505f611ebe87848487613ba9565b9050611ecc81898c8c613c34565b50505050505050505050565b5f54600790610100900460ff16158015611ef857505f5460ff8083169116105b611f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611320565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611fa382613e88565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354336001600160a01b03821614612007576040517feca393e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120118989613ec8565b61201d8787878761405c565b61202683613597565b6040517f372e300000000000000000000000000000000000000000000000000000000000907f362e300000000000000000000000000000000000000000000000000000000000907f2f8492a7a430cf917798dfb60bc5af634f68e6c40287947df0ea6f7ec0669bd8905f90a3505f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b61210261361c565b60a081018035906121169060808401615629565b61212461012084018461585b565b612135610100860160e08701615629565b5f5a90505f612143886142f0565b905061218861217360017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b61218360808b0160608c01615629565b61374b565b5f8061219a60a08b0160808c01615629565b6001600160a01b031660c08b01356121b66101208d018d61585b565b6040516121c492919061581d565b5f6040518083038185875af1925050503d805f81146121fe576040519150601f19603f3d011682016040523d82523d5f602084013e612203565b606091505b50915091508161226b5780511561221d5780518082602001fd5b61222d60a08b0160808c01615629565b6040517f546134430000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401611320565b61229961190460017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b60405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a25050861590506123ce57855f84900361234457853b158015612342573a5a6122ed61bc7c8661580a565b6122f791906157f7565b612301919061582c565b91508188111561233e576001600160a01b0387166108fc612322848b6157f7565b6040518115909202915f818181858888f1935050505050612342565b8791505b505b5f6001600160a01b0384161561235a578361235c565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f193505050509050806123ca576040517fa57c4df40000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401611320565b5050505b5050505050506123dc61387b565b50565b5f61241261240e60017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b5c90565b905090565b6005612422816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961244c81613185565b612459604086018661585b565b90505f03612493576040517fc01eab5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526101be6020526040902054156124dc576040517f0f06cd1500000000000000000000000000000000000000000000000000000000815260048101849052602401611320565b5f8481526101be60205260408120549003612526576040517f6e5424c200000000000000000000000000000000000000000000000000000000815260048101859052602401611320565b5f612534604087018761585b565b60405161254292919061581d565b604051809103902090505f6125648760200135835f9182526020526040902090565b90505f6125b08760208a01358a358561258961258360408f018f61585b565b89614471565b604080519586526020860194909452928401919091526060830152608082015260a0902090565b90508086146125f5576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810187905260248101829052604401611320565b5f8181526101be602052604090819020600190555181907f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee07231990612645908a908c3590918252602082015260400190565b60405180910390a25050505050505050565b61265f61361c565b478260c001351161269c576040517f62d5cfe000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126ac60a0830160808401615629565b6001600160a01b0316336001600160a01b0316146126f6576040517f0a5c9f3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612700836142f0565b905060015f805c60ff19168217905d507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316633e4903b78360c086013561275660a0880160808901615629565b60405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039384166004820152602481019290925290911660448201526064015f604051808303815f87803b1580156127bc575f5ffd5b505af11580156127ce573d5f5f3e3d5ffd5b505f92505050805c60ff1916815d5060405181907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2506114ce61387b565b7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be61283a81613185565b6114ce82614572565b600461284e816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961287881613185565b5f8590036128b2576040517fb1504a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8449156128ee576040517f8019aff700000000000000000000000000000000000000000000000000000000815260048101869052602401611320565b5f8481526101be60205260408120549003612938576040517f6e5424c200000000000000000000000000000000000000000000000000000000815260048101859052602401611320565b5f8381526101be602052604090205415612981576040517f0f06cd1500000000000000000000000000000000000000000000000000000000815260048101849052602401611320565b5f5f6129b26040518060a001604052805f815260200160608152602001606081526020015f81526020015f81525090565b865f5b89811015612a8b578a8a828181106129cf576129cf6158bc565b90506020028101906129e191906158e9565b6129ea90615a06565b81499450925083612a2a576040517fc0e41e1d00000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b60808301515f8181526020869052604090209550612a5885875f1c865f015187602001518860400151614639565b6060848101518551604080519687526020870194909452928501528301869052608083015260a0909120906001016129b5565b50808714612acf576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810188905260248101829052604401611320565b5f8181526101be602090815260409182902060019055606084015182518b81529182015282917f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee072319910160405180910390a250505050505050505050565b600881901c5f90815261014f6020526040812054600160ff84161b161515611251565b6002612b5a816136b9565b6001600160a01b038516612b9a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34841115612bd4576040517fb03b693200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f9182612be483615843565b9091555090505f612bf586346157f7565b90505f612c0733898985878b8b613752565b9050612c1383826138a9565b80886001600160a01b0316336001600160a01b03167fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c8a86888c8c604051612c5f959493929190615abc565b60405180910390a45050505050505050565b7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf9612c9b81613185565b5f609a81905560405133917fba88c025b0cbb77022c0c487beef24f759f1e4be2f51a205bc427cee19c2eaa691a250565b345f03612d05576040517f717e6b7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513481527fe455499c2acd509bdadebaf5a8fd54c083da31dbe98e785f2a72cdff04e32e009060200160405180910390a1565b5f81600c811115612d4d57612d4d61575e565b60da54600190911b16151592915050565b612d6b62f099c08261580a565b421015612da4576040517f4306cbb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805184815260208101849052908101829052606090206101bf5414612e1c576101bf546040805185815260208101859052908101839052606090206040517fbc5aad1100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611320565b6101c0546001600160a01b0316612e537f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298261318f565b6040516001600160a01b0382169033907f9fc8868f8577b31b805ee65bb52325782b5e2708dbdb7f04c7467c6785fccb30905f90a350505050565b7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c612eb881613185565b6001600160a01b038316612ef8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82815261011b60209081526040918290205491516001600160a01b03928316815233928592908716917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f82815260656020526040902060010154612fae81613185565b61147683836147db565b805f81600c811115612fcc57612fcc61575e565b03613003576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60db5f83600c8111156130185761301861575e565b600c8111156130295761302961575e565b81526020019081526020015f205461304081613185565b61304983612d3a565b1561308257826040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b82600c8111156130945761309461575e565b60da8054600190921b909117905582600c8111156130b4576130b461575e565b7f534f879afd40abb4e39f8e1b77a316be4c8e3521d9cf5a3a3db8959d574d45593361137f565b60096130e6816136b9565b7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725861311081613185565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03166001600160a01b0316637ab19c10846040518263ffffffff1660e01b81526004015f604051808303818588803b158015613173575f5ffd5b505af1158015611a4d573d5f5f3e3d5ffd5b6123dc813361485c565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff166114ce575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556131eb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b03811633146132ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401611320565b6114ce82826147db565b5f6132c86080830160608401615629565b6001600160a01b031603613308576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61332b61331860e0830183615aec565b613326610100850185615aec565b61405c565b61333d81608001358260a001356148d0565b5f61335061018083016101608401615629565b6001600160a01b031603613390576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6133ab5f6133a661018084016101608501615629565b61318f565b6133c06133bb60c0830183615aec565b613ec8565b6133d06080820160608301615629565b5f80805261011b6020527f033d11f27e62ab919708ec716731da80d261a6e4253259b7acde9bf89d28ec1880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03939093169290921790915561344461016083016101408401615629565b6001600160a01b031603613484576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349661016082016101408301615629565b6101c080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556134e161016082016101408301615629565b6001600160a01b0316336001600160a01b03167f1f82add12d98b5eaed4d6a6d5f74cfc7a85e5c90c335ab5562f77f220ed45d5f60405160405180910390a36020818101356101198190555f90815261011a8252604080822084359081905581518381528085018490528083019190915260608082018490526080820184905260a09091208084526101be8552828420600190556101bd558151838152938401929092529283013592820192909252206101bf55565b5f54610100900460ff166136135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b6123dc81614572565b5f61364b61240e60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b14613682576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6136b76136b060017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b600161374b565b565b60da5481600c8111156136ce576136ce61575e565b6001901b81161561370d57816040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b60028116156114ce5760016040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b80825d5050565b5f60405188815287602082015286604082015285606082015284608082015260c060a08201528260c0820152602083065f8115613790578160200390505b848660e085013790930160e001902098975050505050505050565b5f81815260a660205260409020546001146137f5576040517f992d87c300000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b5f90815260a66020526040812055565b80156123dc5742609954101561382a57609754613822904261580a565b60995561383a565b609a54613837908261580a565b90505b609854811115613876576040517fa74c1c5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609a55565b6136b761190460017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b5f1982015f90815261014e60208181526040808420548452848252808420868552929091528083208290555190918391839186917fea3b023b4c8680d4b4824f0143132c95476359a2bb70a81d6c5a36f6918f63399190a4505050565b5f61391b836101800135846101400135614977565b6101bf54604080516101608601358152610120860135602082015260e08601359181019190915260609020146139b157604080516101608501358152610120850135602082015260e085013591810191909152606090206101bf546040517fbc5aad1100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611320565b42836101000135106139fc576040517fbf81c6e00000000000000000000000000000000000000000000000000000000081526101008401356004820152426024820152604401611320565b6080830135613a37576040517f2898482a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613a7a60408401356060850135608086013560a087013560c0880135604080519586526020860194909452928401919091526060830152608082015260a0902090565b5f8181526101be602052604081205491925003613ac6576040517fedeae83c00000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b613ae2613ad76101c0850185615b50565b856101a00135614a44565b613af9613af36101e085018561585b565b84614b50565b6020808401355f81815261011a909252604090912060808501359055610119556101bd819055613b4e610180840135610140850135610100860135604080519384526020840192909252908201526060902090565b6101bf55806020840135613b6184615843565b60408051873581526080880135602082015291955085917fa0262dc79e4ccb71ceac8574ae906311ae338aa4a2044fd4ec4b99fad5ab60cb910160405180910390a492915050565b5f604051848152836020820152604060e087016040830137826080820152602080870160a083013760a0610120870160c083013761018081016101c087013587018035602081026020830184376020029091206101608301525061018090207f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001900695945050505050565b6040805160018082528183019092525f916020808301908036833701905050905084815f81518110613c6857613c686158bc565b6020908102919091018101919091525f85815261011b90915260409020546001600160a01b031680613cc6576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f826001600160a01b0316868686604051602401613ce793929190615bb4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e4f7a8a0000000000000000000000000000000000000000000000000000000017905251613d4a9190615c25565b5f604051808303815f865af19150503d805f8114613d83576040519150601f19603f3d011682016040523d82523d5f602084013e613d88565b606091505b509150915081613e2f57805115613dcd57602081017bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81511663ca389c4460e01b178152815181fd5b6040517fca389c4400000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f556e6b6e6f776e000000000000000000000000000000000000000000000000006044820152606401611320565b5f81806020019051810190613e449190615c30565b905080613e7d576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b6001600160a01b0381166123dc576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f54610100900460ff16613f445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f5b81811015611476575f838383818110613f6157613f616158bc565b613f779260206040909202019081019150615629565b6001600160a01b031603613fb7576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828282818110613fc957613fc96158bc565b905060400201602001355f5f1b0361400d576040517f0742d05300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614054838383818110614022576140226158bc565b9050604002016020013584848481811061403e5761403e6158bc565b6133a69260206040909202019081019150615629565b600101613f46565b5f54610100900460ff166140d85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f5b838110156141e0578484828181106140f4576140f46158bc565b9050604002016020013560db5f878785818110614113576141136158bc565b6141299260206040909202019081019150615205565b600c81111561413a5761413a61575e565b600c81111561414b5761414b61575e565b815260208101919091526040015f205584848281811061416d5761416d6158bc565b90506040020160200135858583818110614189576141896158bc565b61419f9260206040909202019081019150615205565b600c8111156141b0576141b061575e565b6040517f33aa8fd1ce49e1761bc8d27fd53414bfefc45d690feed0ce55019d7d3aec6091905f90a36001016140da565b505f5b818110156142e9578282828181106141fd576141fd6158bc565b9050604002016020013560dc5f85858581811061421c5761421c6158bc565b6142329260206040909202019081019150615205565b600c8111156142435761424361575e565b600c8111156142545761425461575e565b815260208101919091526040015f2055828282818110614276576142766158bc565b90506040020160200135838383818110614292576142926158bc565b6142a89260206040909202019081019150615205565b600c8111156142b9576142b961575e565b6040517fe7bf4b8dc0c17a52dc9e52323a3ab61cb2079db35f969125b1f8a3d984c6f6c2905f90a36001016141e3565b5050505050565b5f6142fb60036136b9565b6101008201355f90815261015060205260408120549081900361434a576040517f4e68667500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6143548380615b50565b905081146143a357806143678480615b50565b6040517f5e3fd6ad0000000000000000000000000000000000000000000000000000000081526004810193909352602483015250604401611320565b6143b08360200135614bdd565b6143c561181860c085013560a086013561580a565b61440a6143d86080850160608601615629565b6143e860a0860160808701615629565b60a086013560c087013560208801356144056101208a018a61585b565b613752565b91506144358261441a8580615b50565b61442a6060880160408901615c4f565b876101000135614c55565b61446b576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b5f61447d602084615c72565b156144b4576040517f6426c6c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f729eebce00000000000000000000000000000000000000000000000000000000835b801561456957602081039050808601357fff0000000000000000000000000000000000000000000000000000000000000081161561451a57604051838152600481fd5b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001817f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001878709089350506144d7565b50509392505050565b61457b81613e88565b7feb44f28f73dc4d72ac2ee43ebf59a1e0c84c11c4d614746c0dc99d9071abd8f97f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0054604080516001600160a01b03928316815291841660208301520160405180910390a17f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001840693505f5f600a6001600160a01b03168787878787604051602001614684959493929190615caa565b60408051601f198184030181529082905261469e91615c25565b5f60405180830381855afa9150503d805f81146146d6576040519150601f19603f3d011682016040523d82523d5f602084013e6146db565b606091505b509150915081614717576040517fa71194af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081511461475f578051604080517ff75db3810000000000000000000000000000000000000000000000000000000081526113209290600401918252602082015260400190565b602081015160408201516110008214158061479a57507f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018114155b15613e7d576040517f68dcad5f0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611320565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff16156114ce575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff166114ce5761488e81614d62565b614899836020614d74565b6040516020016148aa929190615cd0565b60408051601f198184030181529082905262461bcd60e51b825261132091600401615277565b5f54610100900460ff1661494c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b614954614f9e565b61495c614f9e565b614964614f9e565b61496e828261501a565b5050600160e455565b815f036149b95780156114ce576040517f0c25659200000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b806149f3576040517f5228f4c800000000000000000000000000000000000000000000000000000000815260048101839052602401611320565b5f82815261014e602052604090205481146114ce576040517f36459fa00000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611320565b5f5b82811015614b4a576101505f858584818110614a6457614a646158bc565b9050602002013581526020019081526020015f20545f14614acd57838382818110614a9157614a916158bc565b905060200201356040517fe5d1442500000000000000000000000000000000000000000000000000000000815260040161132091815260200190565b816101505f868685818110614ae457614ae46158bc565b9050602002013581526020019081526020015f208190555081848483818110614b0f57614b0f6158bc565b905060200201357f300e6f978eee6a4b0bba78dd8400dc64fd5652dbfc868a2258e16d0977be222b60405160405180910390a3600101614a46565b50505050565b614b5b600283615c72565b15614b95576040517f0c91d77600000000000000000000000000000000000000000000000000000000815260048101839052602401611320565b5f5f5b838110156142e9576040518582013560f01c9250838301907f3c116827db9db3a30c1a25db8b0ee4bab9d2b223560209cfd839601b621c726d905f90a2600201614b98565b600881901c5f90815261014f6020526040902054600160ff83161b1615614c33576040517f335a4a9000000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b600881901c5f90815261014f602052604090208054600160ff84161b17905550565b5f80614c766001614c67876002615e1d565b614c7191906157f7565b615166565b90508063ffffffff168463ffffffff161115614cce576040517ff7ec909700000000000000000000000000000000000000000000000000000000815263ffffffff808616600483015282166024820152604401611320565b865f5b86811015614d5457600163ffffffff8716821c81169003614d1e57614d17888883818110614d0157614d016158bc565b90506020020135835f9182526020526040902090565b9150614d4c565b614d4982898984818110614d3457614d346158bc565b905060200201355f9182526020526040902090565b91505b600101614cd1565b509092149695505050505050565b60606112516001600160a01b03831660145b60605f614d8283600261582c565b614d8d90600261580a565b67ffffffffffffffff811115614da557614da5615925565b6040519080825280601f01601f191660200182016040528015614dcf576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110614e0557614e056158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110614e6757614e676158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f614ea184600261582c565b614eac90600161580a565b90505b6001811115614f48577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110614eed57614eed6158bc565b1a60f81b828281518110614f0357614f036158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060049490941c93614f4181615e28565b9050614eaf565b508315614f975760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611320565b9392505050565b5f54610100900460ff166136b75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f54610100900460ff166150965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b815f036150cf576040517fb5ed5a3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f03615108576040517fd10d72bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097829055609881905561511c824261580a565b60998190556097546098546040805192835260208301919091528101919091527f8f805c372b66240792580418b7328c0c554ae235f0932475c51b026887fe26a990606001611795565b5f63ffffffff8211156151af576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401611320565b5090565b5f602082840312156151c3575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114614f97575f5ffd5b8035600d8110615200575f5ffd5b919050565b5f60208284031215615215575f5ffd5b614f97826151f2565b5f6020828403121561522e575f5ffd5b5035919050565b6001600160a01b03811681146123dc575f5ffd5b5f5f6040838503121561525a575f5ffd5b82359150602083013561526c81615235565b809150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f604083850312156152bd575f5ffd5b6152c6836151f2565b946020939093013593505050565b5f602082840312156152e4575f5ffd5b813567ffffffffffffffff8111156152fa575f5ffd5b82016101808185031215614f97575f5ffd5b5f5f83601f84011261531c575f5ffd5b50813567ffffffffffffffff811115615333575f5ffd5b60208301915083602082850101111561534a575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60e0898b031215615368575f5ffd5b883561537381615235565b9750602089013561538381615235565b9650604089013595506060890135945060808901356153a181615235565b935060a089013567ffffffffffffffff8111156153bc575f5ffd5b6153c88b828c0161530c565b999c989b50969995989497949560c00135949350505050565b5f5f5f5f606085870312156153f4575f5ffd5b843567ffffffffffffffff81111561540a575f5ffd5b6154168782880161530c565b90955093505060208501359150604085013567ffffffffffffffff81111561543c575f5ffd5b8501610200818803121561544e575f5ffd5b939692955090935050565b5f5f83601f840112615469575f5ffd5b50813567ffffffffffffffff811115615480575f5ffd5b6020830191508360208260061b850101111561534a575f5ffd5b5f5f5f5f5f5f5f6080888a0312156154b0575f5ffd5b873567ffffffffffffffff8111156154c6575f5ffd5b6154d28a828b01615459565b909850965050602088013567ffffffffffffffff8111156154f1575f5ffd5b6154fd8a828b01615459565b909650945050604088013567ffffffffffffffff81111561551c575f5ffd5b6155288a828b01615459565b909450925050606088013561553c81615235565b8091505092959891949750929550565b5f610140828403121561446b575f5ffd5b5f6020828403121561556d575f5ffd5b813567ffffffffffffffff811115615583575f5ffd5b61558f8482850161554c565b949350505050565b5f5f5f606084860312156155a9575f5ffd5b833567ffffffffffffffff8111156155bf575f5ffd5b8401606081870312156155d0575f5ffd5b95602085013595506040909401359392505050565b5f5f604083850312156155f6575f5ffd5b823567ffffffffffffffff81111561560c575f5ffd5b6156188582860161554c565b925050602083013561526c81615235565b5f60208284031215615639575f5ffd5b8135614f9781615235565b5f5f5f5f60608587031215615657575f5ffd5b843567ffffffffffffffff81111561566d575f5ffd5b8501601f8101871361567d575f5ffd5b803567ffffffffffffffff811115615693575f5ffd5b8760208260051b84010111156156a7575f5ffd5b602091820198909750908601359560400135945092505050565b5f5f5f5f606085870312156156d4575f5ffd5b84356156df81615235565b935060208501359250604085013567ffffffffffffffff811115615701575f5ffd5b61570d8782880161530c565b95989497509550505050565b5f5f5f6060848603121561572b575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215615753575f5ffd5b82356152c681615235565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60208101600d83106157c4577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115611251576112516157ca565b80820180821115611251576112516157ca565b818382375f9101908152919050565b8082028115828204841417611251576112516157ca565b5f5f198203615854576158546157ca565b5060010190565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261588e575f5ffd5b83018035915067ffffffffffffffff8211156158a8575f5ffd5b60200191503681900382131561534a575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261591b575f5ffd5b9190910192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561597557615975615925565b60405290565b5f82601f83011261598a575f5ffd5b813567ffffffffffffffff8111156159a4576159a4615925565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156159d3576159d3615925565b6040528181528382016020018510156159ea575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60a08236031215615a16575f5ffd5b615a1e615952565b82358152602083013567ffffffffffffffff811115615a3b575f5ffd5b615a473682860161597b565b602083015250604083013567ffffffffffffffff811115615a66575f5ffd5b615a723682860161597b565b60408301525060608381013590820152608092830135928101929092525090565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b858152846020820152836040820152608060608201525f615ae1608083018486615a93565b979650505050505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615b1f575f5ffd5b83018035915067ffffffffffffffff821115615b39575f5ffd5b6020019150600681901b360382131561534a575f5ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615b83575f5ffd5b83018035915067ffffffffffffffff821115615b9d575f5ffd5b6020019150600581901b360382131561534a575f5ffd5b604081525f615bc7604083018587615a93565b82810360208401528084518083526020830191506020860192505f5b81811015615c01578351835260209384019390920191600101615be3565b5090979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f614f978284615c0e565b5f60208284031215615c40575f5ffd5b81518015158114614f97575f5ffd5b5f60208284031215615c5f575f5ffd5b813563ffffffff81168114614f97575f5ffd5b5f82615ca5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500690565b8581528460208201528360408201525f615ae1615cca6060840186615c0e565b84615c0e565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f615d016017830185615c0e565b7f206973206d697373696e6720726f6c65200000000000000000000000000000008152615d316011820185615c0e565b95945050505050565b6001815b6001841115615d7557808504811115615d5957615d596157ca565b6001841615615d6757908102905b60019390931c928002615d3e565b935093915050565b5f82615d8b57506001611251565b81615d9757505f611251565b8160018114615dad5760028114615db757615dd3565b6001915050611251565b60ff841115615dc857615dc86157ca565b50506001821b611251565b5060208310610133831016604e8410600b8410161715615df6575081810a611251565b615e025f198484615d3a565b805f1904821115615e1557615e156157ca565b029392505050565b5f614f978383615d7d565b5f81615e3657615e366157ca565b505f19019056fea264697066735822122050731879c5c51b3afa3ac82f210330fdb308ed828a242d8da57f77b5eec23fd464736f6c63430008210033
Deployed Bytecode
0x60806040526004361061058a575f3560e01c80636a906b80116102da578063ad422ff011610186578063c2116974116100dc578063d547741f11610092578063e196fb5d1161006d578063e196fb5d1461114e578063e66c2a931461116d578063f5b541a61461118c575f5ffd5b8063d547741f146110e6578063d5d4b83514611105578063d722bbfc1461111b575f5ffd5b8063cc6f7251116100c2578063cc6f72511461107d578063cd9b9e9a146110b0578063cf5b2764146110c6575f5ffd5b8063c211697414611030578063cc5782f61461104f575f5ffd5b8063b9174ba31161013c578063bf3e750511610117578063bf3e750514610fd3578063c0729ab114611006578063c1dc0f071461101b575f5ffd5b8063b9174ba314610f62578063bc61e73314610f95578063bcc3003d14610fb4575f5ffd5b8063b59faa601161016c578063b59faa6014610f12578063b60d428814610f45578063b837dbe914610f4d575f5ffd5b8063ad422ff014610ee9578063aea4f74514610efe575f5ffd5b8063914e57eb1161023b57806399467a35116101f15780639f3ce55a116101cc5780639f3ce55a14610e8e578063a217fddf14610ea1578063ac1eff6814610eb4575f5ffd5b806399467a3514610e1d5780639ac25d0814610e3c5780639ee8b21114610e6f575f5ffd5b8063921b278e11610221578063921b278e14610dd4578063923fe89414610dea578063986fcddd14610cb6575f5ffd5b8063914e57eb14610d6457806391d1485414610d90575f5ffd5b806374ce962c1161029057806380b7af181161027657806380b7af1814610cc95780638be745d114610d055780638de4948714610d31575f5ffd5b806374ce962c14610c975780637d1e8c5514610cb6575f5ffd5b80636e673843116102c05780636e67384314610c1d5780637174c55914610c5057806373bd07b714610c83575f5ffd5b80636a906b8014610bcb5780636b78317214610bfe575f5ffd5b806348922ab7116104395780635c721a0c1161039a57806363a14a4f1161035057806367e404ce1161032b57806367e404ce14610b6a5780636854f6bc14610b96578063695378f514610bb5575f5ffd5b806363a14a4f14610b005780636463fb2a14610b1f57806366f96e9814610b3e575f5ffd5b80636078bfd8116103805780636078bfd814610a7557806360e83cf314610aa15780636321315514610acd575f5ffd5b80635c721a0c14610a1e5780635ed73ceb14610a49575f5ffd5b806352abf32d116103ef5780635603c65f116103d55780635603c65f146109ea5780635879445614610a095780635b7eb4bd146108e9575f5ffd5b806352abf32d146109ac578063557eac73146109cb575f5ffd5b80634bb974131161041f5780634bb974131461092e5780634cdd389b1461094d5780635230eef214610979575f5ffd5b806348922ab7146108e9578063491e09361461090f575f5ffd5b8063248a9ca3116104ee57806336568abe116104a45780633e9ebfc21161047f5780633e9ebfc2146108805780633fc08b651461089f57806343757d82146108ca575f5ffd5b806336568abe146107d957806338b90333146107f85780633b12eccb1461084d575f5ffd5b80632c70645c116104d45780632c70645c1461078e5780632f2ff15d146107a45780632fe35274146107c3575f5ffd5b8063248a9ca314610741578063289581741461076f575f5ffd5b806312d3fa9a116105435780631e2ff94f116105295780631e2ff94f146106d35780631f443da0146106e95780632130d81214610715575f5ffd5b806312d3fa9a1461066d578063198330f8146106a0575f5ffd5b806305861180116105735780630586118014610603578063085b1c6f146106195780631065a3991461064c575f5ffd5b806301ffc9a71461058e57806303134d1d146105c2575b5f5ffd5b348015610599575f5ffd5b506105ad6105a83660046151b3565b6111bf565b60405190151581526020015b60405180910390f35b3480156105cd575f5ffd5b506105f57f1ab87f7458c0e3d07e9881c14ee67f0141703614fd48ea5b15ed987e5f4b030e81565b6040519081526020016105b9565b34801561060e575f5ffd5b506105f56101bb5481565b348015610624575f5ffd5b506105f57f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725881565b348015610657575f5ffd5b5061066b610666366004615205565b611257565b005b348015610678575f5ffd5b506105f57f67c2dca7476ee0fe1dd3cba13428c6760bfe2599a6dfe26a9ad7ef27317c6e7781565b3480156106ab575f5ffd5b506105f57f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be81565b3480156106de575f5ffd5b506105f56101185481565b3480156106f4575f5ffd5b506105f561070336600461521e565b6101b96020525f908152604090205481565b348015610720575f5ffd5b506105f561072f36600461521e565b6101be6020525f908152604090205481565b34801561074c575f5ffd5b506105f561075b36600461521e565b5f9081526065602052604090206001015490565b34801561077a575f5ffd5b5061066b61078936600461521e565b61139f565b348015610799575f5ffd5b506105f56101835481565b3480156107af575f5ffd5b5061066b6107be366004615249565b611452565b3480156107ce575f5ffd5b505f5c60ff166105ad565b3480156107e4575f5ffd5b5061066b6107f3366004615249565b61147b565b348015610803575f5ffd5b506108406040518060400160405280600381526020017f372e30000000000000000000000000000000000000000000000000000000000081525081565b6040516105b99190615277565b348015610858575f5ffd5b506105f57fb6cc65f42901ed602aec1619cc1ead29d487cd489094a37615153eaeb991d77081565b34801561088b575f5ffd5b5061066b61089a3660046152ac565b6114d2565b3480156108aa575f5ffd5b506105f56108b936600461521e565b60a56020525f908152604090205481565b3480156108d5575f5ffd5b5061066b6108e43660046152d4565b611631565b3480156108f4575f5ffd5b506108fd600181565b60405160ff90911681526020016105b9565b34801561091a575f5ffd5b5061066b610929366004615351565b6117a1565b348015610939575f5ffd5b5061066b610948366004615249565b611a57565b348015610958575f5ffd5b506105f561096736600461521e565b6101b76020525f908152604090205481565b348015610984575f5ffd5b506105f57f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf981565b3480156109b7575f5ffd5b5061066b6109c63660046152ac565b611bc0565b3480156109d6575f5ffd5b5061066b6109e536600461521e565b611d1f565b3480156109f5575f5ffd5b5061066b610a043660046153e1565b611de5565b348015610a14575f5ffd5b506105f560995481565b348015610a29575f5ffd5b506105f5610a3836600461521e565b60a66020525f908152604090205481565b348015610a54575f5ffd5b506105f5610a6336600461521e565b6101ba6020525f908152604090205481565b348015610a80575f5ffd5b506105f5610a8f36600461521e565b6101b66020525f908152604090205481565b348015610aac575f5ffd5b506105f5610abb36600461521e565b6101506020525f908152604090205481565b348015610ad8575f5ffd5b506105f57fe37c272ea30e2bb381ad7cf89ae754b49153250609f36d0cbdad8b64c184bb5c81565b348015610b0b575f5ffd5b5061066b610b1a36600461549a565b611ed8565b348015610b2a575f5ffd5b5061066b610b3936600461555d565b6120fa565b348015610b49575f5ffd5b506105f5610b5836600461521e565b6101b86020525f908152604090205481565b348015610b75575f5ffd5b50610b7e6123df565b6040516001600160a01b0390911681526020016105b9565b348015610ba1575f5ffd5b5061066b610bb0366004615597565b612417565b348015610bc0575f5ffd5b506105f56101195481565b348015610bd6575f5ffd5b506105f57fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b81565b348015610c09575f5ffd5b5061066b610c183660046155e5565b612657565b348015610c28575f5ffd5b506105f57f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c81565b348015610c5b575f5ffd5b506105f57f4b4665d8754e6ea0608430ef3e91c1b45c72aafe8800e289cd35f38d8536185881565b348015610c8e575f5ffd5b506108fd600281565b348015610ca2575f5ffd5b5061066b610cb1366004615629565b612810565b348015610cc1575f5ffd5b506108fd5f81565b348015610cd4575f5ffd5b507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316610b7e565b348015610d10575f5ffd5b506105f5610d1f36600461521e565b61011a6020525f908152604090205481565b348015610d3c575f5ffd5b506105f57fe1fce82838dd7a42cfe783f60dc6233c8aa2c4fc66e77817805e767ec5e349b681565b348015610d6f575f5ffd5b506105f5610d7e36600461521e565b61014e6020525f908152604090205481565b348015610d9b575f5ffd5b506105ad610daa366004615249565b5f9182526065602090815260408084206001600160a01b0393909316845291905290205460ff1690565b348015610ddf575f5ffd5b506105f56101bf5481565b348015610df5575f5ffd5b506105f57fcc10d6eec3c757d645e27b3f3001a3ba52f692da0bce25fabf58c6ecaf37645081565b348015610e28575f5ffd5b5061066b610e37366004615644565b612843565b348015610e47575f5ffd5b506105f57f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7781565b348015610e7a575f5ffd5b506105ad610e8936600461521e565b612b2c565b61066b610e9c3660046156c1565b612b4f565b348015610eac575f5ffd5b506105f55f81565b348015610ebf575f5ffd5b50610b7e610ece36600461521e565b61011b6020525f90815260409020546001600160a01b031681565b348015610ef4575f5ffd5b506105f560985481565b348015610f09575f5ffd5b5061066b612c71565b348015610f1d575f5ffd5b506105f57fe4831f9e4316ac2c65117d1f602fbf56d38128a9973d5e3fdbc5b77265c18d4081565b61066b612ccc565b348015610f58575f5ffd5b506105f560e45481565b348015610f6d575f5ffd5b506105f57f430a7f0cb00b5ebbe63cecc96e82cf959a883e7c13a95110854f1fa6b3fbf59881565b348015610fa0575f5ffd5b506105ad610faf366004615205565b612d3a565b348015610fbf575f5ffd5b5061066b610fce366004615719565b612d5e565b348015610fde575f5ffd5b506105f57f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d8281565b348015611011575f5ffd5b506105f5609a5481565b348015611026575f5ffd5b506105f560975481565b34801561103b575f5ffd5b5061066b61104a366004615742565b612e8e565b34801561105a575f5ffd5b506105ad61106936600461521e565b60d96020525f908152604090205460ff1681565b348015611088575f5ffd5b506105f57fe8cb6172fcf5cbaae022b7c910224a4f0c20d53227e630056efff182155a5abc81565b3480156110bb575f5ffd5b506105f56101bd5481565b3480156110d1575f5ffd5b506101c054610b7e906001600160a01b031681565b3480156110f1575f5ffd5b5061066b611100366004615249565b612f94565b348015611110575f5ffd5b506105f56101bc5481565b348015611126575f5ffd5b506105f57f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a81565b348015611159575f5ffd5b5061066b611168366004615205565b612fb8565b348015611178575f5ffd5b5061066b61118736600461521e565b6130db565b348015611197575f5ffd5b506105f57f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92981565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b00000000000000000000000000000000000000000000000000000000148061125157507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b805f81600c81111561126b5761126b61575e565b036112a2576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60dc5f83600c8111156112b7576112b761575e565b600c8111156112c8576112c861575e565b81526020019081526020015f20546112df81613185565b6112e883612d3a565b61132957826040517f18659654000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b60405180910390fd5b82600c81111561133b5761133b61575e565b60da8054600190921b19909116905582600c81111561135c5761135c61575e565b7fd071d2b85dec4489435b541d2f0e2570db09b09db9efd8703948d44a433df65a335b6040516001600160a01b03909116815260200160405180910390a2505050565b7f6b5661ddfbd1fbd525c902a513e0f47d9c74f1c1ee8a2d4f1937ad305fb8f41a6113c981613185565b5f82815261011b602090815260408083205490516001600160a01b0390911681523392859290917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000169055565b5f8281526065602052604090206001015461146c81613185565b611476838361318f565b505050565b6101c0546001600160a01b03908116908216036114c4576040517f7f7497e900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6114ce828261322f565b5050565b815f81600c8111156114e6576114e661575e565b0361151d576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f56bdc3c9ec86cb7db110a7699b2ade72f0b8819727d9f7d906b012641505fa7761154781613185565b5f60db5f86600c81111561155d5761155d61575e565b600c81111561156e5761156e61575e565b81526020019081526020015f205490508381036115b7576040517f1b807f5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360db5f87600c8111156115cd576115cd61575e565b600c8111156115de576115de61575e565b815260208101919091526040015f2055808486600c8111156116025761160261575e565b6040517f074bfc3728ef1e98bde10bcb5bd8cde59cff190c2bfda5d22f879f865a07bac5905f90a45050505050565b5f54610100900460ff161580801561164f57505f54600160ff909116105b806116685750303b15801561166857505f5460ff166001145b6116da5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611320565b5f805460ff191660011790558015611718575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff166101001790555b611721826132b7565b61173b61173661014084016101208501615629565b613597565b80156114ce575f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498906020015b60405180910390a15050565b6117a961361c565b85878484875f5a90506117bc60036136b9565b6117f06117ea60017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b8f61374b565b5f6118008f8f8f8f8c8f8f613752565b905061180b816137ab565b61181d6118188d8f61580a565b613805565b5f5f8f6001600160a01b03168e8d8d60405161183a92919061581d565b5f6040518083038185875af1925050503d805f8114611874576040519150601f19603f3d011682016040523d82523d5f602084013e611879565b606091505b5091509150816118d6578051156118935780518082602001fd5b8f6040517f5461344300000000000000000000000000000000000000000000000000000000815260040161132091906001600160a01b0391909116815260200190565b61190a61190460017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b5f61374b565b60405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2505086159050611a3f57855f8490036119b557853b1580156119b3573a5a61195e61bc7c8661580a565b61196891906157f7565b611972919061582c565b9150818811156119af576001600160a01b0387166108fc611993848b6157f7565b6040518115909202915f818181858888f19350505050506119b3565b8791505b505b5f6001600160a01b038416156119cb57836119cd565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f19350505050905080611a3b576040517fa57c4df40000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401611320565b5050505b505050505050611a4d61387b565b5050505050505050565b6002611a62816136b9565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03163314611ac5576040517fa1cfbf5900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6001600160a01b038216611b05576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f9182611b1583615843565b9091555060408051308152602081018690525f918101829052606081018790526080810183905260c060a08201819052810182905260e0902091925050611b5c82826138a9565b604080515f80825260208201889052818301859052608060608301819052820152905182916001600160a01b0387169133917fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c919081900360a00190a45050505050565b815f81600c811115611bd457611bd461575e565b03611c0b576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7fd8b4c34c2ec1f3194471108c64ad2beda340c0337ee4ca35592f9ef270f4228b611c3581613185565b5f60dc5f86600c811115611c4b57611c4b61575e565b600c811115611c5c57611c5c61575e565b81526020019081526020015f20549050838103611ca5576040517f1b807f5500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8360dc5f87600c811115611cbb57611cbb61575e565b600c811115611ccc57611ccc61575e565b815260208101919091526040015f2055808486600c811115611cf057611cf061575e565b6040517ff8ef9f1cde7c2c0d3aeb696678f76d7c1c3e13c3b79ea3c5160a2d9eaa821cfd905f90a45050505050565b7f1185e52d62bfbbea270e57d3d09733d221b53ab7a18bae82bb3c6c74bab16d82611d4981613185565b5f5f5f426099541015611d6e57609754611d63904261580a565b609955506001611d80565b609a54851015611d8057849250600191505b60988590558080611d8e5750815b15611d9957609a8390555b60408051868152831515602082015282151581830152905133917fbc3dc0cb5c15c51c81316450d44048838bb478b9809447d01c766a06f3e9f2c8919081900360600190a25050505050565b6006611df0816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b929611e1a81613185565b5f859003611e54576040517f7907d79b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610119545f81815261011a6020526040902054843514611ea0576040517fead4c30e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6101bd545f611eaf8684613906565b90505f611ebe87848487613ba9565b9050611ecc81898c8c613c34565b50505050505050505050565b5f54600790610100900460ff16158015611ef857505f5460ff8083169116105b611f6a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201527f647920696e697469616c697a65640000000000000000000000000000000000006064820152608401611320565b5f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00001660ff831617610100179055611fa382613e88565b7fb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d610354336001600160a01b03821614612007576040517feca393e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6120118989613ec8565b61201d8787878761405c565b61202683613597565b6040517f372e300000000000000000000000000000000000000000000000000000000000907f362e300000000000000000000000000000000000000000000000000000000000907f2f8492a7a430cf917798dfb60bc5af634f68e6c40287947df0ea6f7ec0669bd8905f90a3505f80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff16905560405160ff821681527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050505050565b61210261361c565b60a081018035906121169060808401615629565b61212461012084018461585b565b612135610100860160e08701615629565b5f5a90505f612143886142f0565b905061218861217360017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b61218360808b0160608c01615629565b61374b565b5f8061219a60a08b0160808c01615629565b6001600160a01b031660c08b01356121b66101208d018d61585b565b6040516121c492919061581d565b5f6040518083038185875af1925050503d805f81146121fe576040519150601f19603f3d011682016040523d82523d5f602084013e612203565b606091505b50915091508161226b5780511561221d5780518082602001fd5b61222d60a08b0160808c01615629565b6040517f546134430000000000000000000000000000000000000000000000000000000081526001600160a01b039091166004820152602401611320565b61229961190460017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b60405183907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a25050861590506123ce57855f84900361234457853b158015612342573a5a6122ed61bc7c8661580a565b6122f791906157f7565b612301919061582c565b91508188111561233e576001600160a01b0387166108fc612322848b6157f7565b6040518115909202915f818181858888f1935050505050612342565b8791505b505b5f6001600160a01b0384161561235a578361235c565b335b90505f816001600160a01b03166108fc8490811502906040515f60405180830381858888f193505050509050806123ca576040517fa57c4df40000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602401611320565b5050505b5050505050506123dc61387b565b50565b5f61241261240e60017f3095e8dc547eeb8bf90020768c67e29e974614469d8f71638ac29f39b96e48936157f7565b5c90565b905090565b6005612422816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961244c81613185565b612459604086018661585b565b90505f03612493576040517fc01eab5600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f8381526101be6020526040902054156124dc576040517f0f06cd1500000000000000000000000000000000000000000000000000000000815260048101849052602401611320565b5f8481526101be60205260408120549003612526576040517f6e5424c200000000000000000000000000000000000000000000000000000000815260048101859052602401611320565b5f612534604087018761585b565b60405161254292919061581d565b604051809103902090505f6125648760200135835f9182526020526040902090565b90505f6125b08760208a01358a358561258961258360408f018f61585b565b89614471565b604080519586526020860194909452928401919091526060830152608082015260a0902090565b90508086146125f5576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810187905260248101829052604401611320565b5f8181526101be602052604090819020600190555181907f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee07231990612645908a908c3590918252602082015260400190565b60405180910390a25050505050505050565b61265f61361c565b478260c001351161269c576040517f62d5cfe000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6126ac60a0830160808401615629565b6001600160a01b0316336001600160a01b0316146126f6576040517f0a5c9f3500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f612700836142f0565b905060015f805c60ff19168217905d507f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b0316633e4903b78360c086013561275660a0880160808901615629565b60405160e085901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039384166004820152602481019290925290911660448201526064015f604051808303815f87803b1580156127bc575f5ffd5b505af11580156127ce573d5f5f3e3d5ffd5b505f92505050805c60ff1916815d5060405181907fa4c827e719e911e8f19393ccdb85b5102f08f0910604d340ba38390b7ff2ab0e905f90a2506114ce61387b565b7f76ef52a5344b10ed112c1d48c7c06f51e919518ea6fb005f9b25b359b955e3be61283a81613185565b6114ce82614572565b600461284e816136b9565b7f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b92961287881613185565b5f8590036128b2576040517fb1504a5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8449156128ee576040517f8019aff700000000000000000000000000000000000000000000000000000000815260048101869052602401611320565b5f8481526101be60205260408120549003612938576040517f6e5424c200000000000000000000000000000000000000000000000000000000815260048101859052602401611320565b5f8381526101be602052604090205415612981576040517f0f06cd1500000000000000000000000000000000000000000000000000000000815260048101849052602401611320565b5f5f6129b26040518060a001604052805f815260200160608152602001606081526020015f81526020015f81525090565b865f5b89811015612a8b578a8a828181106129cf576129cf6158bc565b90506020028101906129e191906158e9565b6129ea90615a06565b81499450925083612a2a576040517fc0e41e1d00000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b60808301515f8181526020869052604090209550612a5885875f1c865f015187602001518860400151614639565b6060848101518551604080519687526020870194909452928501528301869052608083015260a0909120906001016129b5565b50808714612acf576040517fd3664fb30000000000000000000000000000000000000000000000000000000081526004810188905260248101829052604401611320565b5f8181526101be602090815260409182902060019055606084015182518b81529182015282917f55f4c645c36aa5cd3f443d6be44d7a7a5df9d2100d7139dfc69d4289ee072319910160405180910390a250505050505050505050565b600881901c5f90815261014f6020526040812054600160ff84161b161515611251565b6002612b5a816136b9565b6001600160a01b038516612b9a576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b34841115612bd4576040517fb03b693200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60e480545f9182612be483615843565b9091555090505f612bf586346157f7565b90505f612c0733898985878b8b613752565b9050612c1383826138a9565b80886001600160a01b0316336001600160a01b03167fe856c2b8bd4eb0027ce32eeaf595c21b0b6b4644b326e5b7bd80a1cf8db72e6c8a86888c8c604051612c5f959493929190615abc565b60405180910390a45050505050505050565b7f0cf0d2deb70d7bdac2fa48c4ac99bc558170be0ce5fcb994caefa4bf7b96edf9612c9b81613185565b5f609a81905560405133917fba88c025b0cbb77022c0c487beef24f759f1e4be2f51a205bc427cee19c2eaa691a250565b345f03612d05576040517f717e6b7b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040513481527fe455499c2acd509bdadebaf5a8fd54c083da31dbe98e785f2a72cdff04e32e009060200160405180910390a1565b5f81600c811115612d4d57612d4d61575e565b60da54600190911b16151592915050565b612d6b62f099c08261580a565b421015612da4576040517f4306cbb100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6040805184815260208101849052908101829052606090206101bf5414612e1c576101bf546040805185815260208101859052908101839052606090206040517fbc5aad1100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611320565b6101c0546001600160a01b0316612e537f97667070c54ef182b0f5858b034beac1b6f3089aa2d3188bb1e8929f4fa9b9298261318f565b6040516001600160a01b0382169033907f9fc8868f8577b31b805ee65bb52325782b5e2708dbdb7f04c7467c6785fccb30905f90a350505050565b7f32937fd5162e282df7e9a14a5073a2425321c7966eaf70ed6c838a1006d84c4c612eb881613185565b6001600160a01b038316612ef8576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f82815261011b60209081526040918290205491516001600160a01b03928316815233928592908716917f4a29db3fc6b42bda201e4b4d69ce8d575eeeba5f153509c0d0a342af0f1bd021910160405180910390a4505f90815261011b6020526040902080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b5f82815260656020526040902060010154612fae81613185565b61147683836147db565b805f81600c811115612fcc57612fcc61575e565b03613003576040517f85994c7700000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60db5f83600c8111156130185761301861575e565b600c8111156130295761302961575e565b81526020019081526020015f205461304081613185565b61304983612d3a565b1561308257826040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b82600c8111156130945761309461575e565b60da8054600190921b909117905582600c8111156130b4576130b461575e565b7f534f879afd40abb4e39f8e1b77a316be4c8e3521d9cf5a3a3db8959d574d45593361137f565b60096130e6816136b9565b7f220bd22ef7c53d75fe3eac0a09e90815a0c5ba4f9e8da8b039542cd3db34725861311081613185565b7f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df00546001600160a01b03166001600160a01b0316637ab19c10846040518263ffffffff1660e01b81526004015f604051808303818588803b158015613173575f5ffd5b505af1158015611a4d573d5f5f3e3d5ffd5b6123dc813361485c565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff166114ce575f8281526065602090815260408083206001600160a01b03851684529091529020805460ff191660011790556131eb3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6001600160a01b03811633146132ad5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c6600000000000000000000000000000000006064820152608401611320565b6114ce82826147db565b5f6132c86080830160608401615629565b6001600160a01b031603613308576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61332b61331860e0830183615aec565b613326610100850185615aec565b61405c565b61333d81608001358260a001356148d0565b5f61335061018083016101608401615629565b6001600160a01b031603613390576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6133ab5f6133a661018084016101608501615629565b61318f565b6133c06133bb60c0830183615aec565b613ec8565b6133d06080820160608301615629565b5f80805261011b6020527f033d11f27e62ab919708ec716731da80d261a6e4253259b7acde9bf89d28ec1880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03939093169290921790915561344461016083016101408401615629565b6001600160a01b031603613484576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b61349661016082016101408301615629565b6101c080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03929092169190911790556134e161016082016101408301615629565b6001600160a01b0316336001600160a01b03167f1f82add12d98b5eaed4d6a6d5f74cfc7a85e5c90c335ab5562f77f220ed45d5f60405160405180910390a36020818101356101198190555f90815261011a8252604080822084359081905581518381528085018490528083019190915260608082018490526080820184905260a09091208084526101be8552828420600190556101bd558151838152938401929092529283013592820192909252206101bf55565b5f54610100900460ff166136135760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b6123dc81614572565b5f61364b61240e60017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b14613682576040517f37ed32e800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6136b76136b060017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b600161374b565b565b60da5481600c8111156136ce576136ce61575e565b6001901b81161561370d57816040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b60028116156114ce5760016040517fc0a71b58000000000000000000000000000000000000000000000000000000008152600401611320919061578b565b80825d5050565b5f60405188815287602082015286604082015285606082015284608082015260c060a08201528260c0820152602083065f8115613790578160200390505b848660e085013790930160e001902098975050505050505050565b5f81815260a660205260409020546001146137f5576040517f992d87c300000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b5f90815260a66020526040812055565b80156123dc5742609954101561382a57609754613822904261580a565b60995561383a565b609a54613837908261580a565b90505b609854811115613876576040517fa74c1c5f00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b609a55565b6136b761190460017f084edf88d5959696dcc7aab5c8674a33a1ef78f37dda21b782ed03bddb22ade56157f7565b5f1982015f90815261014e60208181526040808420548452848252808420868552929091528083208290555190918391839186917fea3b023b4c8680d4b4824f0143132c95476359a2bb70a81d6c5a36f6918f63399190a4505050565b5f61391b836101800135846101400135614977565b6101bf54604080516101608601358152610120860135602082015260e08601359181019190915260609020146139b157604080516101608501358152610120850135602082015260e085013591810191909152606090206101bf546040517fbc5aad1100000000000000000000000000000000000000000000000000000000815260048101929092526024820152604401611320565b42836101000135106139fc576040517fbf81c6e00000000000000000000000000000000000000000000000000000000081526101008401356004820152426024820152604401611320565b6080830135613a37576040517f2898482a00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b613a7a60408401356060850135608086013560a087013560c0880135604080519586526020860194909452928401919091526060830152608082015260a0902090565b5f8181526101be602052604081205491925003613ac6576040517fedeae83c00000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b613ae2613ad76101c0850185615b50565b856101a00135614a44565b613af9613af36101e085018561585b565b84614b50565b6020808401355f81815261011a909252604090912060808501359055610119556101bd819055613b4e610180840135610140850135610100860135604080519384526020840192909252908201526060902090565b6101bf55806020840135613b6184615843565b60408051873581526080880135602082015291955085917fa0262dc79e4ccb71ceac8574ae906311ae338aa4a2044fd4ec4b99fad5ab60cb910160405180910390a492915050565b5f604051848152836020820152604060e087016040830137826080820152602080870160a083013760a0610120870160c083013761018081016101c087013587018035602081026020830184376020029091206101608301525061018090207f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000001900695945050505050565b6040805160018082528183019092525f916020808301908036833701905050905084815f81518110613c6857613c686158bc565b6020908102919091018101919091525f85815261011b90915260409020546001600160a01b031680613cc6576040517f69ed70ab00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f5f826001600160a01b0316868686604051602401613ce793929190615bb4565b60408051601f198184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e4f7a8a0000000000000000000000000000000000000000000000000000000017905251613d4a9190615c25565b5f604051808303815f865af19150503d805f8114613d83576040519150601f19603f3d011682016040523d82523d5f602084013e613d88565b606091505b509150915081613e2f57805115613dcd57602081017bffffffffffffffffffffffffffffffffffffffffffffffffffffffff81511663ca389c4460e01b178152815181fd5b6040517fca389c4400000000000000000000000000000000000000000000000000000000815260206004820152600760248201527f556e6b6e6f776e000000000000000000000000000000000000000000000000006044820152606401611320565b5f81806020019051810190613e449190615c30565b905080613e7d576040517f09bde33900000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050505050505050565b6001600160a01b0381166123dc576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5f54610100900460ff16613f445760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f5b81811015611476575f838383818110613f6157613f616158bc565b613f779260206040909202019081019150615629565b6001600160a01b031603613fb7576040517f8579befe00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b828282818110613fc957613fc96158bc565b905060400201602001355f5f1b0361400d576040517f0742d05300000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b614054838383818110614022576140226158bc565b9050604002016020013584848481811061403e5761403e6158bc565b6133a69260206040909202019081019150615629565b600101613f46565b5f54610100900460ff166140d85760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f5b838110156141e0578484828181106140f4576140f46158bc565b9050604002016020013560db5f878785818110614113576141136158bc565b6141299260206040909202019081019150615205565b600c81111561413a5761413a61575e565b600c81111561414b5761414b61575e565b815260208101919091526040015f205584848281811061416d5761416d6158bc565b90506040020160200135858583818110614189576141896158bc565b61419f9260206040909202019081019150615205565b600c8111156141b0576141b061575e565b6040517f33aa8fd1ce49e1761bc8d27fd53414bfefc45d690feed0ce55019d7d3aec6091905f90a36001016140da565b505f5b818110156142e9578282828181106141fd576141fd6158bc565b9050604002016020013560dc5f85858581811061421c5761421c6158bc565b6142329260206040909202019081019150615205565b600c8111156142435761424361575e565b600c8111156142545761425461575e565b815260208101919091526040015f2055828282818110614276576142766158bc565b90506040020160200135838383818110614292576142926158bc565b6142a89260206040909202019081019150615205565b600c8111156142b9576142b961575e565b6040517fe7bf4b8dc0c17a52dc9e52323a3ab61cb2079db35f969125b1f8a3d984c6f6c2905f90a36001016141e3565b5050505050565b5f6142fb60036136b9565b6101008201355f90815261015060205260408120549081900361434a576040517f4e68667500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6143548380615b50565b905081146143a357806143678480615b50565b6040517f5e3fd6ad0000000000000000000000000000000000000000000000000000000081526004810193909352602483015250604401611320565b6143b08360200135614bdd565b6143c561181860c085013560a086013561580a565b61440a6143d86080850160608601615629565b6143e860a0860160808701615629565b60a086013560c087013560208801356144056101208a018a61585b565b613752565b91506144358261441a8580615b50565b61442a6060880160408901615c4f565b876101000135614c55565b61446b576040517fb05e92fa00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b50919050565b5f61447d602084615c72565b156144b4576040517f6426c6c500000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b7f729eebce00000000000000000000000000000000000000000000000000000000835b801561456957602081039050808601357fff0000000000000000000000000000000000000000000000000000000000000081161561451a57604051838152600481fd5b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001817f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001878709089350506144d7565b50509392505050565b61457b81613e88565b7feb44f28f73dc4d72ac2ee43ebf59a1e0c84c11c4d614746c0dc99d9071abd8f97f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0054604080516001600160a01b03928316815291841660208301520160405180910390a17f594904a11ae10ad7613c91ac3c92c7c3bba397934d377ce6d3e0aaffbc17df0080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b7f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff00000001840693505f5f600a6001600160a01b03168787878787604051602001614684959493929190615caa565b60408051601f198184030181529082905261469e91615c25565b5f60405180830381855afa9150503d805f81146146d6576040519150601f19603f3d011682016040523d82523d5f602084013e6146db565b606091505b509150915081614717576040517fa71194af00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b604081511461475f578051604080517ff75db3810000000000000000000000000000000000000000000000000000000081526113209290600401918252602082015260400190565b602081015160408201516110008214158061479a57507f73eda753299d7d483339d80809a1d80553bda402fffe5bfeffffffff000000018114155b15613e7d576040517f68dcad5f0000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611320565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff16156114ce575f8281526065602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b5f8281526065602090815260408083206001600160a01b038516845290915290205460ff166114ce5761488e81614d62565b614899836020614d74565b6040516020016148aa929190615cd0565b60408051601f198184030181529082905262461bcd60e51b825261132091600401615277565b5f54610100900460ff1661494c5760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b614954614f9e565b61495c614f9e565b614964614f9e565b61496e828261501a565b5050600160e455565b815f036149b95780156114ce576040517f0c25659200000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b806149f3576040517f5228f4c800000000000000000000000000000000000000000000000000000000815260048101839052602401611320565b5f82815261014e602052604090205481146114ce576040517f36459fa00000000000000000000000000000000000000000000000000000000081526004810183905260248101829052604401611320565b5f5b82811015614b4a576101505f858584818110614a6457614a646158bc565b9050602002013581526020019081526020015f20545f14614acd57838382818110614a9157614a916158bc565b905060200201356040517fe5d1442500000000000000000000000000000000000000000000000000000000815260040161132091815260200190565b816101505f868685818110614ae457614ae46158bc565b9050602002013581526020019081526020015f208190555081848483818110614b0f57614b0f6158bc565b905060200201357f300e6f978eee6a4b0bba78dd8400dc64fd5652dbfc868a2258e16d0977be222b60405160405180910390a3600101614a46565b50505050565b614b5b600283615c72565b15614b95576040517f0c91d77600000000000000000000000000000000000000000000000000000000815260048101839052602401611320565b5f5f5b838110156142e9576040518582013560f01c9250838301907f3c116827db9db3a30c1a25db8b0ee4bab9d2b223560209cfd839601b621c726d905f90a2600201614b98565b600881901c5f90815261014f6020526040902054600160ff83161b1615614c33576040517f335a4a9000000000000000000000000000000000000000000000000000000000815260048101829052602401611320565b600881901c5f90815261014f602052604090208054600160ff84161b17905550565b5f80614c766001614c67876002615e1d565b614c7191906157f7565b615166565b90508063ffffffff168463ffffffff161115614cce576040517ff7ec909700000000000000000000000000000000000000000000000000000000815263ffffffff808616600483015282166024820152604401611320565b865f5b86811015614d5457600163ffffffff8716821c81169003614d1e57614d17888883818110614d0157614d016158bc565b90506020020135835f9182526020526040902090565b9150614d4c565b614d4982898984818110614d3457614d346158bc565b905060200201355f9182526020526040902090565b91505b600101614cd1565b509092149695505050505050565b60606112516001600160a01b03831660145b60605f614d8283600261582c565b614d8d90600261580a565b67ffffffffffffffff811115614da557614da5615925565b6040519080825280601f01601f191660200182016040528015614dcf576020820181803683370190505b5090507f3000000000000000000000000000000000000000000000000000000000000000815f81518110614e0557614e056158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110614e6757614e676158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a9053505f614ea184600261582c565b614eac90600161580a565b90505b6001811115614f48577f303132333435363738396162636465660000000000000000000000000000000085600f1660108110614eed57614eed6158bc565b1a60f81b828281518110614f0357614f036158bc565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff191690815f1a90535060049490941c93614f4181615e28565b9050614eaf565b508315614f975760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401611320565b9392505050565b5f54610100900460ff166136b75760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b5f54610100900460ff166150965760405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201527f6e697469616c697a696e670000000000000000000000000000000000000000006064820152608401611320565b815f036150cf576040517fb5ed5a3b00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805f03615108576040517fd10d72bb00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6097829055609881905561511c824261580a565b60998190556097546098546040805192835260208301919091528101919091527f8f805c372b66240792580418b7328c0c554ae235f0932475c51b026887fe26a990606001611795565b5f63ffffffff8211156151af576040517f6dfcc6500000000000000000000000000000000000000000000000000000000081526020600482015260248101839052604401611320565b5090565b5f602082840312156151c3575f5ffd5b81357fffffffff0000000000000000000000000000000000000000000000000000000081168114614f97575f5ffd5b8035600d8110615200575f5ffd5b919050565b5f60208284031215615215575f5ffd5b614f97826151f2565b5f6020828403121561522e575f5ffd5b5035919050565b6001600160a01b03811681146123dc575f5ffd5b5f5f6040838503121561525a575f5ffd5b82359150602083013561526c81615235565b809150509250929050565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b5f5f604083850312156152bd575f5ffd5b6152c6836151f2565b946020939093013593505050565b5f602082840312156152e4575f5ffd5b813567ffffffffffffffff8111156152fa575f5ffd5b82016101808185031215614f97575f5ffd5b5f5f83601f84011261531c575f5ffd5b50813567ffffffffffffffff811115615333575f5ffd5b60208301915083602082850101111561534a575f5ffd5b9250929050565b5f5f5f5f5f5f5f5f60e0898b031215615368575f5ffd5b883561537381615235565b9750602089013561538381615235565b9650604089013595506060890135945060808901356153a181615235565b935060a089013567ffffffffffffffff8111156153bc575f5ffd5b6153c88b828c0161530c565b999c989b50969995989497949560c00135949350505050565b5f5f5f5f606085870312156153f4575f5ffd5b843567ffffffffffffffff81111561540a575f5ffd5b6154168782880161530c565b90955093505060208501359150604085013567ffffffffffffffff81111561543c575f5ffd5b8501610200818803121561544e575f5ffd5b939692955090935050565b5f5f83601f840112615469575f5ffd5b50813567ffffffffffffffff811115615480575f5ffd5b6020830191508360208260061b850101111561534a575f5ffd5b5f5f5f5f5f5f5f6080888a0312156154b0575f5ffd5b873567ffffffffffffffff8111156154c6575f5ffd5b6154d28a828b01615459565b909850965050602088013567ffffffffffffffff8111156154f1575f5ffd5b6154fd8a828b01615459565b909650945050604088013567ffffffffffffffff81111561551c575f5ffd5b6155288a828b01615459565b909450925050606088013561553c81615235565b8091505092959891949750929550565b5f610140828403121561446b575f5ffd5b5f6020828403121561556d575f5ffd5b813567ffffffffffffffff811115615583575f5ffd5b61558f8482850161554c565b949350505050565b5f5f5f606084860312156155a9575f5ffd5b833567ffffffffffffffff8111156155bf575f5ffd5b8401606081870312156155d0575f5ffd5b95602085013595506040909401359392505050565b5f5f604083850312156155f6575f5ffd5b823567ffffffffffffffff81111561560c575f5ffd5b6156188582860161554c565b925050602083013561526c81615235565b5f60208284031215615639575f5ffd5b8135614f9781615235565b5f5f5f5f60608587031215615657575f5ffd5b843567ffffffffffffffff81111561566d575f5ffd5b8501601f8101871361567d575f5ffd5b803567ffffffffffffffff811115615693575f5ffd5b8760208260051b84010111156156a7575f5ffd5b602091820198909750908601359560400135945092505050565b5f5f5f5f606085870312156156d4575f5ffd5b84356156df81615235565b935060208501359250604085013567ffffffffffffffff811115615701575f5ffd5b61570d8782880161530c565b95989497509550505050565b5f5f5f6060848603121561572b575f5ffd5b505081359360208301359350604090920135919050565b5f5f60408385031215615753575f5ffd5b82356152c681615235565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b60208101600d83106157c4577f4e487b71000000000000000000000000000000000000000000000000000000005f52602160045260245ffd5b91905290565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b81810381811115611251576112516157ca565b80820180821115611251576112516157ca565b818382375f9101908152919050565b8082028115828204841417611251576112516157ca565b5f5f198203615854576158546157ca565b5060010190565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe184360301811261588e575f5ffd5b83018035915067ffffffffffffffff8211156158a8575f5ffd5b60200191503681900382131561534a575f5ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b5f82357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6183360301811261591b575f5ffd5b9190910192915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60405160a0810167ffffffffffffffff8111828210171561597557615975615925565b60405290565b5f82601f83011261598a575f5ffd5b813567ffffffffffffffff8111156159a4576159a4615925565b604051601f8201601f19908116603f0116810167ffffffffffffffff811182821017156159d3576159d3615925565b6040528181528382016020018510156159ea575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f60a08236031215615a16575f5ffd5b615a1e615952565b82358152602083013567ffffffffffffffff811115615a3b575f5ffd5b615a473682860161597b565b602083015250604083013567ffffffffffffffff811115615a66575f5ffd5b615a723682860161597b565b60408301525060608381013590820152608092830135928101929092525090565b81835281816020850137505f602082840101525f6020601f19601f840116840101905092915050565b858152846020820152836040820152608060608201525f615ae1608083018486615a93565b979650505050505050565b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615b1f575f5ffd5b83018035915067ffffffffffffffff821115615b39575f5ffd5b6020019150600681901b360382131561534a575f5ffd5b5f5f83357fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1843603018112615b83575f5ffd5b83018035915067ffffffffffffffff821115615b9d575f5ffd5b6020019150600581901b360382131561534a575f5ffd5b604081525f615bc7604083018587615a93565b82810360208401528084518083526020830191506020860192505f5b81811015615c01578351835260209384019390920191600101615be3565b5090979650505050505050565b5f81518060208401855e5f93019283525090919050565b5f614f978284615c0e565b5f60208284031215615c40575f5ffd5b81518015158114614f97575f5ffd5b5f60208284031215615c5f575f5ffd5b813563ffffffff81168114614f97575f5ffd5b5f82615ca5577f4e487b71000000000000000000000000000000000000000000000000000000005f52601260045260245ffd5b500690565b8581528460208201528360408201525f615ae1615cca6060840186615c0e565b84615c0e565b7f416363657373436f6e74726f6c3a206163636f756e742000000000000000000081525f615d016017830185615c0e565b7f206973206d697373696e6720726f6c65200000000000000000000000000000008152615d316011820185615c0e565b95945050505050565b6001815b6001841115615d7557808504811115615d5957615d596157ca565b6001841615615d6757908102905b60019390931c928002615d3e565b935093915050565b5f82615d8b57506001611251565b81615d9757505f611251565b8160018114615dad5760028114615db757615dd3565b6001915050611251565b60ff841115615dc857615dc86157ca565b50506001821b611251565b5060208310610133831016604e8410600b8410161715615df6575081810a611251565b615e025f198484615d3a565b805f1904821115615e1557615e156157ca565b029392505050565b5f614f978383615d7d565b5f81615e3657615e366157ca565b505f19019056fea264697066735822122050731879c5c51b3afa3ac82f210330fdb308ed828a242d8da57f77b5eec23fd464736f6c63430008210033
🤖 Code Reader Beta

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

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

A contract address hosts a smart contract, which is a set of code stored on the blockchain that runs when predetermined conditions are met. Learn more about addresses in our Knowledge Base.