ETH Price: $2,331.22 (-2.59%)
 

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
Flush Entry Queu...248782482026-04-14 13:11:3524 hrs ago1776172295IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000019480.15768722
Claim Sequencer ...248782102026-04-14 13:03:5924 hrs ago1776171839IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000006450.21805469
Flush Entry Queu...248781712026-04-14 12:56:1124 hrs ago1776171371IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000017610.14253346
Flush Entry Queu...248778502026-04-14 11:51:3525 hrs ago1776167495IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000086860.617457
Flush Entry Queu...248777892026-04-14 11:39:2325 hrs ago1776166763IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000068790.64571006
Flush Entry Queu...248777672026-04-14 11:34:5925 hrs ago1776166499IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000085160.6879967
Claim Sequencer ...248770842026-04-14 9:17:5928 hrs ago1776158279IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000003740.1266193
Claim Sequencer ...248683322026-04-13 4:02:472 days ago1776052967IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000034790.55356707
Claim Sequencer ...248683262026-04-13 4:01:352 days ago1776052895IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000034670.55166553
Claim Sequencer ...248683222026-04-13 4:00:472 days ago1776052847IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000034490.54888864
Claim Sequencer ...248683142026-04-13 3:59:112 days ago1776052751IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000034420.54773742
Claim Sequencer ...248630252026-04-12 10:18:233 days ago1775989103IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000010870.17297042
Claim Sequencer ...248493962026-04-10 12:42:475 days ago1775824967IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000008550.18703947
Claim Sequencer ...248440982026-04-09 18:57:355 days ago1775761055IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000012630.20101179
Claim Sequencer ...248378142026-04-08 21:54:596 days ago1775685299IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000017840.6027052
Claim Sequencer ...248353202026-04-08 13:34:476 days ago1775655287IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000153622.44419193
Claim Sequencer ...248341062026-04-08 9:31:357 days ago1775640695IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000007190.15716729
Flush Entry Queu...248340322026-04-08 9:16:477 days ago1775639807IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000014790.11975501
Flush Entry Queu...248336922026-04-08 8:08:477 days ago1775635727IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000021750.17605722
Flush Entry Queu...248307572026-04-07 22:19:597 days ago1775600399IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000010840.087773
Flush Entry Queu...248307122026-04-07 22:10:597 days ago1775599859IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000010130.09512482
Flush Entry Queu...248306462026-04-07 21:57:477 days ago1775599067IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000010540.0989794
Flush Entry Queu...248306372026-04-07 21:55:597 days ago1775598959IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000012350.09996897
Flush Entry Queu...248305372026-04-07 21:35:597 days ago1775597759IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000011790.11069847
Flush Entry Queu...248304822026-04-07 21:24:477 days ago1775597087IN
Aztec: Ignition Chain L2 Rollup
0 ETH0.000017290.13974428
View all transactions

Latest 5 internal transactions

Advanced mode:
Parent Transaction Hash Method Block
From
To
0x60c06040237868362025-11-13 0:52:35153 days ago1762995155
Aztec: Ignition Chain L2 Rollup
 Contract Creation0 ETH
0x61014060237868362025-11-13 0:52:35153 days ago1762995155
Aztec: Ignition Chain L2 Rollup
 Contract Creation0 ETH
0x61014060237868362025-11-13 0:52:35153 days ago1762995155
Aztec: Ignition Chain L2 Rollup
 Contract Creation0 ETH
0x61030060237868362025-11-13 0:52:35153 days ago1762995155
Aztec: Ignition Chain L2 Rollup
 Contract Creation0 ETH
0x60e06040237868362025-11-13 0:52:35153 days ago1762995155
Aztec: Ignition Chain L2 Rollup
 Contract Creation0 ETH
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

Rollup

Compiler Version
v0.8.30+commit.73712a01
Optimization Enabled
Yes with 200 runs
Other Settings
prague EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"contract IERC20","name":"_feeAsset","type":"address"},{"internalType":"contract IERC20","name":"_stakingAsset","type":"address"},{"internalType":"contract GSE","name":"_gse","type":"address"},{"internalType":"contract IVerifier","name":"_epochProofVerifier","type":"address"},{"internalType":"address","name":"_governance","type":"address"},{"components":[{"internalType":"bytes32","name":"vkTreeRoot","type":"bytes32"},{"internalType":"bytes32","name":"protocolContractTreeRoot","type":"bytes32"},{"internalType":"bytes32","name":"genesisArchiveRoot","type":"bytes32"}],"internalType":"struct GenesisState","name":"_genesisState","type":"tuple"},{"components":[{"internalType":"uint256","name":"aztecSlotDuration","type":"uint256"},{"internalType":"uint256","name":"aztecEpochDuration","type":"uint256"},{"internalType":"uint256","name":"targetCommitteeSize","type":"uint256"},{"internalType":"uint256","name":"lagInEpochs","type":"uint256"},{"internalType":"uint256","name":"aztecProofSubmissionEpochs","type":"uint256"},{"internalType":"uint256","name":"slashingQuorum","type":"uint256"},{"internalType":"uint256","name":"slashingRoundSize","type":"uint256"},{"internalType":"uint256","name":"slashingLifetimeInRounds","type":"uint256"},{"internalType":"uint256","name":"slashingExecutionDelayInRounds","type":"uint256"},{"internalType":"uint256[3]","name":"slashAmounts","type":"uint256[3]"},{"internalType":"uint256","name":"slashingOffsetInRounds","type":"uint256"},{"internalType":"enum SlasherFlavor","name":"slasherFlavor","type":"uint8"},{"internalType":"address","name":"slashingVetoer","type":"address"},{"internalType":"uint256","name":"slashingDisableDuration","type":"uint256"},{"internalType":"uint256","name":"manaTarget","type":"uint256"},{"internalType":"uint256","name":"exitDelaySeconds","type":"uint256"},{"internalType":"uint32","name":"version","type":"uint32"},{"internalType":"EthValue","name":"provingCostPerMana","type":"uint256"},{"components":[{"internalType":"contract IRewardDistributor","name":"rewardDistributor","type":"address"},{"internalType":"Bps","name":"sequencerBps","type":"uint32"},{"internalType":"contract IBoosterCore","name":"booster","type":"address"},{"internalType":"uint96","name":"blockReward","type":"uint96"}],"internalType":"struct RewardConfig","name":"rewardConfig","type":"tuple"},{"components":[{"internalType":"uint32","name":"increment","type":"uint32"},{"internalType":"uint32","name":"maxScore","type":"uint32"},{"internalType":"uint32","name":"a","type":"uint32"},{"internalType":"uint32","name":"minimum","type":"uint32"},{"internalType":"uint32","name":"k","type":"uint32"}],"internalType":"struct RewardBoostConfig","name":"rewardBoostConfig","type":"tuple"},{"components":[{"internalType":"uint256","name":"bootstrapValidatorSetSize","type":"uint256"},{"internalType":"uint256","name":"bootstrapFlushSize","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeMin","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeQuotient","type":"uint256"},{"internalType":"uint256","name":"maxQueueFlushSize","type":"uint256"}],"internalType":"struct StakingQueueConfig","name":"stakingQueueConfig","type":"tuple"},{"internalType":"uint256","name":"localEjectionThreshold","type":"uint256"},{"internalType":"Timestamp","name":"earliestRewardsClaimableTimestamp","type":"uint256"}],"internalType":"struct RollupConfigInput","name":"_config","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"InvalidShortString","type":"error"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"OwnableInvalidOwner","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"OwnableUnauthorizedAccount","type":"error"},{"inputs":[{"internalType":"uint256","name":"expected","type":"uint256"},{"internalType":"uint256","name":"actual","type":"uint256"}],"name":"Rollup__InvalidBlockNumber","type":"error"},{"inputs":[{"internalType":"uint256","name":"minimum","type":"uint256"},{"internalType":"uint256","name":"provided","type":"uint256"}],"name":"Rollup__InvalidManaTarget","type":"error"},{"inputs":[{"internalType":"uint256","name":"blockNumber","type":"uint256"},{"internalType":"uint256","name":"pendingBlockNumber","type":"uint256"},{"internalType":"uint256","name":"upperLimit","type":"uint256"}],"name":"Rollup__UnavailableTempBlockLog","type":"error"},{"inputs":[{"internalType":"int256","name":"value","type":"int256"}],"name":"SafeCastOverflowedIntToUint","type":"error"},{"inputs":[{"internalType":"uint8","name":"bits","type":"uint8"},{"internalType":"uint256","name":"value","type":"uint256"}],"name":"SafeCastOverflowedUintDowncast","type":"error"},{"inputs":[],"name":"Staking__InvalidNormalFlushSizeQuotient","type":"error"},{"inputs":[],"name":"Staking__InvalidStakingQueueConfig","type":"error"},{"inputs":[{"internalType":"string","name":"str","type":"string"}],"name":"StringTooLong","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"blockNumber","type":"uint256"}],"name":"BlockInvalidated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"indexed":false,"internalType":"struct G1Point","name":"publicKeyInG1","type":"tuple"},{"components":[{"internalType":"uint256","name":"x0","type":"uint256"},{"internalType":"uint256","name":"x1","type":"uint256"},{"internalType":"uint256","name":"y0","type":"uint256"},{"internalType":"uint256","name":"y1","type":"uint256"}],"indexed":false,"internalType":"struct G2Point","name":"publicKeyInG2","type":"tuple"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"indexed":false,"internalType":"struct G1Point","name":"proofOfPossession","type":"tuple"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Deposit","type":"event"},{"anonymous":false,"inputs":[],"name":"EIP712DomainChanged","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"indexed":false,"internalType":"struct G1Point","name":"publicKeyInG1","type":"tuple"},{"components":[{"internalType":"uint256","name":"x0","type":"uint256"},{"internalType":"uint256","name":"x1","type":"uint256"},{"internalType":"uint256","name":"y0","type":"uint256"},{"internalType":"uint256","name":"y1","type":"uint256"}],"indexed":false,"internalType":"struct G2Point","name":"publicKeyInG2","type":"tuple"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"indexed":false,"internalType":"struct G1Point","name":"proofOfPossession","type":"tuple"}],"name":"FailedDeposit","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":true,"internalType":"bytes32","name":"archive","type":"bytes32"},{"indexed":false,"internalType":"bytes32[]","name":"versionedBlobHashes","type":"bytes32[]"}],"name":"L2BlockProposed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"blockNumber","type":"uint256"},{"indexed":true,"internalType":"address","name":"proverId","type":"address"}],"name":"L2ProofVerified","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"oldLocalEjectionThreshold","type":"uint256"},{"indexed":true,"internalType":"uint256","name":"newLocalEjectionThreshold","type":"uint256"}],"name":"LocalEjectionThresholdUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"manaTarget","type":"uint256"}],"name":"ManaTargetUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"previousOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"provenBlockNumber","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"pendingBlockNumber","type":"uint256"}],"name":"PrunedPending","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"contract IRewardDistributor","name":"rewardDistributor","type":"address"},{"internalType":"Bps","name":"sequencerBps","type":"uint32"},{"internalType":"contract IBoosterCore","name":"booster","type":"address"},{"internalType":"uint96","name":"blockReward","type":"uint96"}],"indexed":false,"internalType":"struct RewardConfig","name":"rewardConfig","type":"tuple"}],"name":"RewardConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"bool","name":"isRewardsClaimable","type":"bool"}],"name":"RewardsClaimableUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Slashed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldSlasher","type":"address"},{"indexed":true,"internalType":"address","name":"newSlasher","type":"address"}],"name":"SlasherUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint256","name":"bootstrapValidatorSetSize","type":"uint256"},{"internalType":"uint256","name":"bootstrapFlushSize","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeMin","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeQuotient","type":"uint256"},{"internalType":"uint256","name":"maxQueueFlushSize","type":"uint256"}],"indexed":false,"internalType":"struct StakingQueueConfig","name":"config","type":"tuple"}],"name":"StakingQueueConfigUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":true,"internalType":"address","name":"withdrawer","type":"address"}],"name":"ValidatorQueued","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawFinalized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"attester","type":"address"},{"indexed":true,"internalType":"address","name":"recipient","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"WithdrawInitiated","type":"event"},{"inputs":[],"name":"L1_BLOCK_AT_GENESIS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"archive","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"archiveAt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"},{"internalType":"bytes32","name":"_archive","type":"bytes32"},{"internalType":"address","name":"_who","type":"address"}],"name":"canProposeAtTime","outputs":[{"internalType":"Slot","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"canPruneAtTime","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkBlob","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"checkpointRandao","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_coinbase","type":"address"},{"internalType":"Epoch[]","name":"_epochs","type":"uint256[]"}],"name":"claimProverRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_coinbase","type":"address"}],"name":"claimSequencerRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"},{"internalType":"address","name":"_withdrawer","type":"address"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"_publicKeyInG1","type":"tuple"},{"components":[{"internalType":"uint256","name":"x0","type":"uint256"},{"internalType":"uint256","name":"x1","type":"uint256"},{"internalType":"uint256","name":"y0","type":"uint256"},{"internalType":"uint256","name":"y1","type":"uint256"}],"internalType":"struct G2Point","name":"_publicKeyInG2","type":"tuple"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"_proofOfPossession","type":"tuple"},{"internalType":"bool","name":"_moveWithLatestRollup","type":"bool"}],"name":"deposit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"eip712Domain","outputs":[{"internalType":"bytes1","name":"fields","type":"bytes1"},{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"version","type":"string"},{"internalType":"uint256","name":"chainId","type":"uint256"},{"internalType":"address","name":"verifyingContract","type":"address"},{"internalType":"bytes32","name":"salt","type":"bytes32"},{"internalType":"uint256[]","name":"extensions","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"}],"name":"finalizeWithdraw","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"flushEntryQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_toAdd","type":"uint256"}],"name":"flushEntryQueue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getActivationThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getActiveAttesterCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getAttesterAtIndex","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"}],"name":"getAttesterView","outputs":[{"components":[{"internalType":"enum Status","name":"status","type":"uint8"},{"internalType":"uint256","name":"effectiveBalance","type":"uint256"},{"components":[{"internalType":"uint256","name":"withdrawalId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"Timestamp","name":"exitableAt","type":"uint256"},{"internalType":"address","name":"recipientOrWithdrawer","type":"address"},{"internalType":"bool","name":"isRecipient","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Exit","name":"exit","type":"tuple"},{"components":[{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"publicKey","type":"tuple"},{"internalType":"address","name":"withdrawer","type":"address"}],"internalType":"struct AttesterConfig","name":"config","type":"tuple"}],"internalType":"struct AttesterView","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getAvailableValidatorFlushes","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"getBlobCommitmentsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"getBlock","outputs":[{"components":[{"internalType":"bytes32","name":"archive","type":"bytes32"},{"internalType":"bytes32","name":"headerHash","type":"bytes32"},{"internalType":"bytes32","name":"blobCommitmentsHash","type":"bytes32"},{"internalType":"bytes32","name":"attestationsHash","type":"bytes32"},{"internalType":"bytes32","name":"payloadDigest","type":"bytes32"},{"internalType":"Slot","name":"slotNumber","type":"uint256"},{"components":[{"internalType":"uint256","name":"excessMana","type":"uint256"},{"internalType":"uint256","name":"manaUsed","type":"uint256"},{"internalType":"uint256","name":"feeAssetPriceNumerator","type":"uint256"},{"internalType":"uint256","name":"congestionCost","type":"uint256"},{"internalType":"uint256","name":"proverCost","type":"uint256"}],"internalType":"struct FeeHeader","name":"feeHeader","type":"tuple"}],"internalType":"struct BlockLog","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBlockReward","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getBurnAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"Epoch","name":"_epoch","type":"uint256"}],"name":"getCollectiveProverRewardsForEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getCommitteeAt","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getCommitteeCommitmentAt","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"}],"name":"getConfig","outputs":[{"components":[{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"publicKey","type":"tuple"},{"internalType":"address","name":"withdrawer","type":"address"}],"internalType":"struct AttesterConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentBlobCommitmentsHash","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpoch","outputs":[{"internalType":"Epoch","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentEpochCommittee","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentProposer","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getCurrentSampleSeed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getCurrentSlot","outputs":[{"internalType":"Slot","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEarliestRewardsClaimableTimestamp","outputs":[{"internalType":"Timestamp","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEjectionThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_index","type":"uint256"}],"name":"getEntryQueueAt","outputs":[{"components":[{"internalType":"address","name":"attester","type":"address"},{"internalType":"address","name":"withdrawer","type":"address"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"publicKeyInG1","type":"tuple"},{"components":[{"internalType":"uint256","name":"x0","type":"uint256"},{"internalType":"uint256","name":"x1","type":"uint256"},{"internalType":"uint256","name":"y0","type":"uint256"},{"internalType":"uint256","name":"y1","type":"uint256"}],"internalType":"struct G2Point","name":"publicKeyInG2","type":"tuple"},{"components":[{"internalType":"uint256","name":"x","type":"uint256"},{"internalType":"uint256","name":"y","type":"uint256"}],"internalType":"struct G1Point","name":"proofOfPossession","type":"tuple"},{"internalType":"bool","name":"moveWithLatestRollup","type":"bool"}],"internalType":"struct DepositArgs","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEntryQueueFlushSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getEntryQueueLength","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getEpochAt","outputs":[{"internalType":"Epoch","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Slot","name":"_slotNumber","type":"uint256"}],"name":"getEpochAtSlot","outputs":[{"internalType":"Epoch","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Epoch","name":"_epoch","type":"uint256"}],"name":"getEpochCommittee","outputs":[{"internalType":"address[]","name":"","type":"address[]"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"Epoch","name":"_epoch","type":"uint256"}],"name":"getEpochCommitteeCommitment","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getEpochDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"getEpochForBlock","outputs":[{"internalType":"Epoch","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_start","type":"uint256"},{"internalType":"uint256","name":"_end","type":"uint256"},{"components":[{"internalType":"bytes32","name":"previousArchive","type":"bytes32"},{"internalType":"bytes32","name":"endArchive","type":"bytes32"},{"internalType":"address","name":"proverId","type":"address"}],"internalType":"struct PublicInputArgs","name":"_args","type":"tuple"},{"internalType":"bytes32[]","name":"_fees","type":"bytes32[]"},{"internalType":"bytes","name":"_blobPublicInputs","type":"bytes"}],"name":"getEpochProofPublicInputs","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"}],"name":"getExit","outputs":[{"components":[{"internalType":"uint256","name":"withdrawalId","type":"uint256"},{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"Timestamp","name":"exitableAt","type":"uint256"},{"internalType":"address","name":"recipientOrWithdrawer","type":"address"},{"internalType":"bool","name":"isRecipient","type":"bool"},{"internalType":"bool","name":"exists","type":"bool"}],"internalType":"struct Exit","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getExitDelay","outputs":[{"internalType":"Timestamp","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAsset","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAssetPerEth","outputs":[{"internalType":"FeeAssetPerEthE9","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getFeeAssetPortal","outputs":[{"internalType":"contract IFeeJuicePortal","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"}],"name":"getFeeHeader","outputs":[{"components":[{"internalType":"uint256","name":"excessMana","type":"uint256"},{"internalType":"uint256","name":"manaUsed","type":"uint256"},{"internalType":"uint256","name":"feeAssetPriceNumerator","type":"uint256"},{"internalType":"uint256","name":"congestionCost","type":"uint256"},{"internalType":"uint256","name":"proverCost","type":"uint256"}],"internalType":"struct FeeHeader","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGSE","outputs":[{"internalType":"contract GSE","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getGenesisTime","outputs":[{"internalType":"Timestamp","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_prover","type":"address"},{"internalType":"Epoch","name":"_epoch","type":"uint256"}],"name":"getHasClaimed","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Epoch","name":"_epoch","type":"uint256"},{"internalType":"uint256","name":"_length","type":"uint256"},{"internalType":"address","name":"_prover","type":"address"}],"name":"getHasSubmitted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getInbox","outputs":[{"internalType":"contract IInbox","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getIsBootstrapped","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_timestamp","type":"uint256"}],"name":"getL1FeesAt","outputs":[{"components":[{"internalType":"uint256","name":"baseFee","type":"uint256"},{"internalType":"uint256","name":"blobFee","type":"uint256"}],"internalType":"struct L1FeeData","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLagInEpochs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getLocalEjectionThreshold","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_timestamp","type":"uint256"},{"internalType":"bool","name":"_inFeeAsset","type":"bool"}],"name":"getManaBaseFeeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_timestamp","type":"uint256"},{"internalType":"bool","name":"_inFeeAsset","type":"bool"}],"name":"getManaBaseFeeComponentsAt","outputs":[{"components":[{"internalType":"uint256","name":"congestionCost","type":"uint256"},{"internalType":"uint256","name":"congestionMultiplier","type":"uint256"},{"internalType":"uint256","name":"sequencerCost","type":"uint256"},{"internalType":"uint256","name":"proverCost","type":"uint256"}],"internalType":"struct ManaBaseFeeComponents","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManaLimit","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getManaTarget","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getNextFlushableEpoch","outputs":[{"internalType":"Epoch","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getOutbox","outputs":[{"internalType":"contract IOutbox","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getPendingBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProofSubmissionEpochs","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getProposerAt","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"getProvenBlockNumber","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProvingCostPerManaInEth","outputs":[{"internalType":"EthValue","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getProvingCostPerManaInFeeAsset","outputs":[{"internalType":"FeeAssetValue","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardConfig","outputs":[{"components":[{"internalType":"contract IRewardDistributor","name":"rewardDistributor","type":"address"},{"internalType":"Bps","name":"sequencerBps","type":"uint32"},{"internalType":"contract IBoosterCore","name":"booster","type":"address"},{"internalType":"uint96","name":"blockReward","type":"uint96"}],"internalType":"struct RewardConfig","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getRewardDistributor","outputs":[{"internalType":"contract IRewardDistributor","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getSampleSeedAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getSamplingSizeAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sequencer","type":"address"}],"name":"getSequencerRewards","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_prover","type":"address"}],"name":"getSharesFor","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSlasher","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Timestamp","name":"_ts","type":"uint256"}],"name":"getSlotAt","outputs":[{"internalType":"Slot","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getSlotDuration","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Epoch","name":"_epoch","type":"uint256"},{"internalType":"address","name":"_prover","type":"address"}],"name":"getSpecificProverRewardsForEpoch","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getStakingAsset","outputs":[{"internalType":"contract IERC20","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"}],"name":"getStatus","outputs":[{"internalType":"enum Status","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTargetCommitteeSize","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"Slot","name":"_slotNumber","type":"uint256"}],"name":"getTimestampForSlot","outputs":[{"internalType":"Timestamp","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getTips","outputs":[{"components":[{"internalType":"uint256","name":"pendingBlockNumber","type":"uint256"},{"internalType":"uint256","name":"provenBlockNumber","type":"uint256"}],"internalType":"struct ChainTips","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getVersion","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"},{"internalType":"address","name":"_recipient","type":"address"}],"name":"initiateWithdraw","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"components":[{"internalType":"bytes","name":"signatureIndices","type":"bytes"},{"internalType":"bytes","name":"signaturesOrAddresses","type":"bytes"}],"internalType":"struct CommitteeAttestations","name":"_attestations","type":"tuple"},{"internalType":"address[]","name":"_committee","type":"address[]"},{"internalType":"uint256","name":"_invalidIndex","type":"uint256"}],"name":"invalidateBadAttestation","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_blockNumber","type":"uint256"},{"components":[{"internalType":"bytes","name":"signatureIndices","type":"bytes"},{"internalType":"bytes","name":"signaturesOrAddresses","type":"bytes"}],"internalType":"struct CommitteeAttestations","name":"_attestations","type":"tuple"},{"internalType":"address[]","name":"_committee","type":"address[]"}],"name":"invalidateInsufficientAttestations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"isRewardsClaimable","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"archive","type":"bytes32"},{"components":[{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint32","name":"nextAvailableLeafIndex","type":"uint32"}],"internalType":"struct AppendOnlyTreeSnapshot","name":"l1ToL2MessageTree","type":"tuple"},{"components":[{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint32","name":"nextAvailableLeafIndex","type":"uint32"}],"internalType":"struct AppendOnlyTreeSnapshot","name":"noteHashTree","type":"tuple"},{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint32","name":"nextAvailableLeafIndex","type":"uint32"}],"internalType":"struct AppendOnlyTreeSnapshot","name":"nullifierTree","type":"tuple"},{"components":[{"internalType":"bytes32","name":"root","type":"bytes32"},{"internalType":"uint32","name":"nextAvailableLeafIndex","type":"uint32"}],"internalType":"struct AppendOnlyTreeSnapshot","name":"publicDataTree","type":"tuple"}],"internalType":"struct PartialStateReference","name":"partialStateReference","type":"tuple"}],"internalType":"struct StateReference","name":"stateReference","type":"tuple"},{"components":[{"internalType":"int256","name":"feeAssetPriceModifier","type":"int256"}],"internalType":"struct OracleInput","name":"oracleInput","type":"tuple"},{"components":[{"internalType":"bytes32","name":"lastArchiveRoot","type":"bytes32"},{"components":[{"internalType":"bytes32","name":"blobsHash","type":"bytes32"},{"internalType":"bytes32","name":"inHash","type":"bytes32"},{"internalType":"bytes32","name":"outHash","type":"bytes32"}],"internalType":"struct ContentCommitment","name":"contentCommitment","type":"tuple"},{"internalType":"Slot","name":"slotNumber","type":"uint256"},{"internalType":"Timestamp","name":"timestamp","type":"uint256"},{"internalType":"address","name":"coinbase","type":"address"},{"internalType":"bytes32","name":"feeRecipient","type":"bytes32"},{"components":[{"internalType":"uint128","name":"feePerDaGas","type":"uint128"},{"internalType":"uint128","name":"feePerL2Gas","type":"uint128"}],"internalType":"struct GasFees","name":"gasFees","type":"tuple"},{"internalType":"uint256","name":"totalManaUsed","type":"uint256"}],"internalType":"struct ProposedHeader","name":"header","type":"tuple"}],"internalType":"struct ProposeArgs","name":"_args","type":"tuple"},{"components":[{"internalType":"bytes","name":"signatureIndices","type":"bytes"},{"internalType":"bytes","name":"signaturesOrAddresses","type":"bytes"}],"internalType":"struct CommitteeAttestations","name":"_attestations","type":"tuple"},{"internalType":"address[]","name":"_signers","type":"address[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature","name":"_attestationsAndSignersSignature","type":"tuple"},{"internalType":"bytes","name":"_blobInput","type":"bytes"}],"name":"propose","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"prune","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_localEjectionThreshold","type":"uint256"}],"name":"setLocalEjectionThreshold","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"EthValue","name":"_provingCostPerMana","type":"uint256"}],"name":"setProvingCostPerMana","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"contract IRewardDistributor","name":"rewardDistributor","type":"address"},{"internalType":"Bps","name":"sequencerBps","type":"uint32"},{"internalType":"contract IBoosterCore","name":"booster","type":"address"},{"internalType":"uint96","name":"blockReward","type":"uint96"}],"internalType":"struct RewardConfig","name":"_config","type":"tuple"}],"name":"setRewardConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bool","name":"_isRewardsClaimable","type":"bool"}],"name":"setRewardsClaimable","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_slasher","type":"address"}],"name":"setSlasher","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"setupEpoch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_attester","type":"address"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"slash","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_myHeaderBlockNumber","type":"uint256"}],"name":"status","outputs":[{"internalType":"uint256","name":"provenBlockNumber","type":"uint256"},{"internalType":"bytes32","name":"provenArchive","type":"bytes32"},{"internalType":"uint256","name":"pendingBlockNumber","type":"uint256"},{"internalType":"bytes32","name":"pendingArchive","type":"bytes32"},{"internalType":"bytes32","name":"archiveOfMyBlock","type":"bytes32"},{"internalType":"Epoch","name":"provenEpochNumber","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"start","type":"uint256"},{"internalType":"uint256","name":"end","type":"uint256"},{"components":[{"internalType":"bytes32","name":"previousArchive","type":"bytes32"},{"internalType":"bytes32","name":"endArchive","type":"bytes32"},{"internalType":"address","name":"proverId","type":"address"}],"internalType":"struct PublicInputArgs","name":"args","type":"tuple"},{"internalType":"bytes32[]","name":"fees","type":"bytes32[]"},{"components":[{"internalType":"bytes","name":"signatureIndices","type":"bytes"},{"internalType":"bytes","name":"signaturesOrAddresses","type":"bytes"}],"internalType":"struct CommitteeAttestations","name":"attestations","type":"tuple"},{"internalType":"bytes","name":"blobInputs","type":"bytes"},{"internalType":"bytes","name":"proof","type":"bytes"}],"internalType":"struct SubmitEpochRootProofArgs","name":"_args","type":"tuple"}],"name":"submitEpochRootProof","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"updateL1GasFeeOracle","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_manaTarget","type":"uint256"}],"name":"updateManaTarget","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint256","name":"bootstrapValidatorSetSize","type":"uint256"},{"internalType":"uint256","name":"bootstrapFlushSize","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeMin","type":"uint256"},{"internalType":"uint256","name":"normalFlushSizeQuotient","type":"uint256"},{"internalType":"uint256","name":"maxQueueFlushSize","type":"uint256"}],"internalType":"struct StakingQueueConfig","name":"_config","type":"tuple"}],"name":"updateStakingQueueConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"_blobsInput","type":"bytes"}],"name":"validateBlobs","outputs":[{"internalType":"bytes32[]","name":"","type":"bytes32[]"},{"internalType":"bytes32","name":"","type":"bytes32"},{"internalType":"bytes[]","name":"","type":"bytes[]"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"bytes32","name":"lastArchiveRoot","type":"bytes32"},{"components":[{"internalType":"bytes32","name":"blobsHash","type":"bytes32"},{"internalType":"bytes32","name":"inHash","type":"bytes32"},{"internalType":"bytes32","name":"outHash","type":"bytes32"}],"internalType":"struct ContentCommitment","name":"contentCommitment","type":"tuple"},{"internalType":"Slot","name":"slotNumber","type":"uint256"},{"internalType":"Timestamp","name":"timestamp","type":"uint256"},{"internalType":"address","name":"coinbase","type":"address"},{"internalType":"bytes32","name":"feeRecipient","type":"bytes32"},{"components":[{"internalType":"uint128","name":"feePerDaGas","type":"uint128"},{"internalType":"uint128","name":"feePerL2Gas","type":"uint128"}],"internalType":"struct GasFees","name":"gasFees","type":"tuple"},{"internalType":"uint256","name":"totalManaUsed","type":"uint256"}],"internalType":"struct ProposedHeader","name":"_header","type":"tuple"},{"components":[{"internalType":"bytes","name":"signatureIndices","type":"bytes"},{"internalType":"bytes","name":"signaturesOrAddresses","type":"bytes"}],"internalType":"struct CommitteeAttestations","name":"_attestations","type":"tuple"},{"internalType":"address[]","name":"_signers","type":"address[]"},{"components":[{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"internalType":"struct Signature","name":"_attestationsAndSignersSignature","type":"tuple"},{"internalType":"bytes32","name":"_digest","type":"bytes32"},{"internalType":"bytes32","name":"_blobsHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"ignoreDA","type":"bool"}],"internalType":"struct BlockHeaderValidationFlags","name":"_flags","type":"tuple"}],"name":"validateHeaderWithAttestations","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"_proposalId","type":"uint256"}],"name":"vote","outputs":[],"stateMutability":"nonpayable","type":"function"}]
6101806040525f6003556004805460ff19166001179055348015610021575f5ffd5b50604051619d14380380619d148339810160408190526100409161138a565b86868686868686826040518060400160405280600c81526020016b0417a74656320526f6c6c75760a41b815250604051806040016040528060018152602001603160f81b81525061009a5f8361092860201b90919060201c565b610120526100a9816001610928565b61014052815160208084019190912060e052815190820120610100524660a05261013560e05161010051604080517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60208201529081019290925260608201524660808201523060a08201525f9060c00160405160208183030381529060405280519060200120905090565b60805250503060c0526001600160a01b03811661016c57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b6101758161095a565b505f816102800151604001511161019f57604051632c171d3d60e01b815260040160405180910390fd5b5f81610280015160600151116101c85760405163087d960960e41b815260040160405180910390fd5b6101e542825f0151836020015184608001516109ab60201b60201c565b6101e081015160408201515f90158061021357505f836101600151600281111561021157610211611446565b145b1561021f57505f6103ca565b6001836101600151600281111561023857610238611446565b036102fd57733ae7e14c379d78c1fcac060be4f148021e40ae03637600b5e330856101800151888760a001518860c001518960e001518a61010001518b61012001518c604001518d602001518e61014001518f6101a001516040518d63ffffffff1660e01b81526004016102b79c9b9a9998979695949392919061145a565b602060405180830381865af41580156102d2573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102f691906114ed565b90506103ca565b61018083015160a084015160c085015160e08601516101008701516101a08801516040516304aea16760e01b81523060048201526001600160a01b039687166024820152958b1660448701526064860194909452608485019290925260a484015260c483015260e482015273253187a9a2a4b36334be685478b2290944c75619906304aea1679061010401602060405180830381865af41580156103a3573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103c791906114ed565b90505b6103e888888484876102800151886102a00151610a7160201b60201c565b73e525c64ee3bb9a0ed18e42504d313128ed19fd3163e98d290d846040015185606001516040518363ffffffff1660e01b8152600401610432929190918252602082015260400190565b5f6040518083038186803b158015610448575f5ffd5b505af415801561045a573d5f5f3e3d5ffd5b50505050610240830151604001516001600160a01b031661053d5761026083015160408051632f3f868760e21b8152825163ffffffff90811660048301526020840151811660248301529183015182166044820152606083015182166064820152608090920151166084820152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063bcfe1a1c9060a401602060405180830381865af4158015610501573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061052591906114ed565b6102408401516001600160a01b039091166040909101525b6102c083015160405163fe4b84df60e01b81526004810191909152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063fe4b84df906024015f6040518083038186803b15801561058d575f5ffd5b505af415801561059f573d5f5f3e3d5ffd5b505050506102408301516040805163e3a6a60b60e01b815282516001600160a01b039081166004830152602084015163ffffffff1660248301529183015190911660448201526060909101516001600160601b03166064820152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063e3a6a60b906084015f6040518083038186803b15801561062e575f5ffd5b505af4158015610640573d5f5f3e3d5ffd5b50504361016052505083517f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf8706364556020808501517f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf87063655560408501515f80527f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf87063629091527f29ef88b893d1dfe89544ac7e4713c3260f6160a135a86e4886e02ddf210e2e90557f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636680547f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636880546001600160a01b0319166001600160a01b038a8116919091179091556102008601516001600160c01b0319909216640100000000918d169190910263ffffffff19161763ffffffff8216179091556040517f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636191905f9030908d9084906004906107b190610fa6565b6001600160a01b03948516815293909216602084015263ffffffff1660408301526060820152608001604051809103905ff0801580156107f3573d5f5f3e3d5ffd5b506008840180546001600160a01b0319166001600160a01b0383161790556040519091503090839061082490610fb3565b6001600160a01b03909216825263ffffffff166020820152604001604051809103905ff080158015610858573d5f5f3e3d5ffd5b506009840180546001600160a01b0319166001600160a01b0392831617905560408051638ccf6b9560e01b8152905191831691638ccf6b95916004808201926020929091908290030181865afa1580156108b4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906108d891906114ed565b6006840180546001600160a01b0319166001600160a01b03929092169190911790556101c08601516102208701516109109190610b88565b505050505050505050505050505050505050506116e0565b5f6020835110156109435761093c83610cc8565b9050610954565b8161094e848261158c565b5060ff90505b92915050565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b7fcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe06109d585610d05565b81546001600160801b0319166001600160801b03919091161781556109f984610d3c565b815463ffffffff91909116600160801b0263ffffffff60801b19909116178155610a2283610d3c565b815463ffffffff91909116600160a01b0263ffffffff60a01b19909116178155610a4b82610d3c565b815463ffffffff91909116600160c01b0263ffffffff60c01b1990911617905550505050565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cad80546001600160a01b038881166001600160a01b03199283161783557fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68caf805491891691909216179055610ae485610d6c565b60028201805463ffffffff60a01b1916600160a01b63ffffffff93909316929092029190911790556001810180546001600160a01b0319166001600160a01b038616179055610b3283610d76565b60048201557001000000000000000000000000000000016006820155610b5782610e18565b8160010160146101000a8154816001600160601b0302191690836001600160601b0316021790555050505050505050565b60408051606081019091528281527f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652c90610bea90602081016305f5e100610bd36332f1b33688611646565b610bdd9190611669565b8152602001849052610e4b565b81556040805160a08101909152633b9aca0060608201908152600160808301528190610c1590610eb4565b6001600160701b03168152602001610c4c6040518060400160405280488152602001610c45610f0760201b60201c565b9052610eb4565b6001600160701b03168152602001610c646005610d6c565b63ffffffff9081169091528151600190930180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b0319909416949095169390931791909117929092161790555050565b5f5f829050601f81511115610cf2578260405163305a27a960e01b81526004016101639190611688565b8051610cfd826116bd565b179392505050565b5f6001600160801b03821115610d38576040516306dfcc6560e41b81526080600482015260248101839052604401610163565b5090565b5f63ffffffff821115610d38576040516306dfcc6560e41b81526020600482015260248101839052604401610163565b5f61095482610d3c565b60808101515f908190610d8890610d3c565b63ffffffff16811790506020610da78460600151610d3c60201b60201c565b63ffffffff16901b811790506040610dc88460400151610d3c60201b60201c565b63ffffffff16901b811790506060610de98460200151610d3c60201b60201c565b63ffffffff16901b811790506080610e09845f0151610d3c60201b60201c565b63ffffffff16901b1792915050565b5f6001600160601b03821115610d38576040516306dfcc6560e41b81526060600482015260248101839052604401610163565b60408101515f908190610e5d90610f0b565b6001600160401b0316811790506040610e7f8460200151610d0560201b60201c565b6001600160801b0316901b8117905060c0610ea2845f0151610f0b60201b60201c565b6001600160401b0316901b1792915050565b60208101515f9081908190610ec890610f40565b66ffffffffffffff16901b811790506038610eeb845f0151610f4060201b60201c565b66ffffffffffffff16901b17610f0081610f73565b9392505050565b4a90565b5f6001600160401b03821115610d3857604080516306dfcc6560e41b8152600481019190915260248101839052604401610163565b5f66ffffffffffffff821115610d38576040516306dfcc6560e41b81526038600482015260248101839052604401610163565b5f6001600160701b03821115610d38576040516306dfcc6560e41b81526070600482015260248101839052604401610163565b611d448061740783390190565b610bc98061914b83390190565b6001600160a01b0381168114610fd4575f5ffd5b50565b8051610fe281610fc0565b919050565b634e487b7160e01b5f52604160045260245ffd5b604051606081016001600160401b038111828210171561101d5761101d610fe7565b60405290565b60405160a081016001600160401b038111828210171561101d5761101d610fe7565b6040516102e081016001600160401b038111828210171561101d5761101d610fe7565b5f82601f830112611077575f5ffd5b61107f610ffb565b806060840185811115611090575f5ffd5b845b818110156110aa578051845260209384019301611092565b509095945050505050565b805160038110610fe2575f5ffd5b63ffffffff81168114610fd4575f5ffd5b8051610fe2816110c3565b5f608082840312156110ef575f5ffd5b604051608081016001600160401b038111828210171561111157611111610fe7565b8060405250809150825161112481610fc0565b81526020830151611134816110c3565b6020820152604083015161114781610fc0565b604082015260608301516001600160601b0381168114611165575f5ffd5b6060919091015292915050565b5f60a08284031215611182575f5ffd5b61118a611023565b90508151611197816110c3565b815260208201516111a7816110c3565b602082015260408201516111ba816110c3565b604082015260608201516111cd816110c3565b606082015260808201516111e0816110c3565b608082015292915050565b5f60a082840312156111fb575f5ffd5b611203611023565b825181526020808401519082015260408084015190820152606080840151908201526080928301519281019290925250919050565b5f6104808284031215611249575f5ffd5b611251611045565b825181526020808401519082015260408084015190820152606080840151908201526080808401519082015260a0808401519082015260c0808401519082015260e08084015190820152610100808401519082015290506112b6836101208401611068565b6101208201526101808201516101408201526112d56101a083016110b5565b6101608201526112e86101c08301610fd7565b6101808201526101e0828101516101a08301526102008301516101c08301526102208301519082015261131e61024083016110d4565b61020082015261026082015161022082015261133e8361028084016110df565b610240820152611352836103008401611172565b610260820152611366836103a084016111eb565b6102808201526104408201516102a0820152610460909101516102c0820152919050565b5f5f5f5f5f5f5f8789036105808112156113a2575f5ffd5b88516113ad81610fc0565b60208a01519098506113be81610fc0565b60408a01519097506113cf81610fc0565b60608a01519096506113e081610fc0565b60808a01519095506113f181610fc0565b93506060609f1982011215611404575f5ffd5b5061140d610ffb565b60a0890151815260c0890151602082015260e089015160408201529150611438896101008a01611238565b905092959891949750929550565b634e487b7160e01b5f52602160045260245ffd5b6001600160a01b038d811682528c811660208301528b166040820152606081018a90526080810189905260a0810188905260c081018790526101c0810160e08201875f5b60038110156114bd57815183526020928301929091019060010161149e565b505050856101408301528461016083015283610180830152826101a08301529d9c50505050505050505050505050565b5f602082840312156114fd575f5ffd5b8151610f0081610fc0565b600181811c9082168061151c57607f821691505b60208210810361153a57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f82111561158757805f5260205f20601f840160051c810160208510156115655750805b601f840160051c820191505b81811015611584575f8155600101611571565b50505b505050565b81516001600160401b038111156115a5576115a5610fe7565b6115b9816115b38454611508565b84611540565b6020601f8211600181146115eb575f83156115d45750848201515b5f19600385901b1c1916600184901b178455611584565b5f84815260208120601f198516915b8281101561161a57878501518255602094850194600190920191016115fa565b508482101561163757868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b808202811582820484141761095457634e487b7160e01b5f52601160045260245ffd5b5f8261168357634e487b7160e01b5f52601260045260245ffd5b500490565b602081525f82518060208401528060208501604085015e5f604082850101526040601f19601f83011684010191505092915050565b8051602080830151919081101561153a575f1960209190910360031b1b16919050565b60805160a05160c05160e05161010051610120516101405161016051615cdb61172c5f395f610ae001525f612fbd01525f612f9101525f50505f50505f50505f50505f5050615cdb5ff3fe608060405234801561000f575f5ffd5b50600436106106bf575f3560e01c8063850bee3511610375578063c4014c12116101d4578063e199c05911610109578063ee3b8dc2116100a9578063f85494de11610084578063f85494de14610fe1578063f89d408614610ff4578063fcb3f6ba1461102b578063fd55f8a31461105d575f5ffd5b8063ee3b8dc214610fb3578063f1babf7414610fc6578063f2fde38b14610fce575f5ffd5b8063e6e28440116100e4578063e6e2844014610ed2578063ec14780614610ee5578063ed9187b714610f8e578063ede57c3414610fab575f5ffd5b8063e199c05914610e97578063e3380b7914610eaa578063e48a5f7b14610eb2575f5ffd5b8063d43b51d111610174578063dc1bb8f41161014f578063dc1bb8f414610e27578063dfff3ebc14610e3a578063e09e424e14610e4d578063e0fae2a914610e84575f5ffd5b8063d43b51d114610e04578063d768df6e14610e0c578063d8e3784c14610e1f575f5ffd5b8063ca3dc9ec116101af578063ca3dc9ec14610d89578063cf20d87214610d91578063d03b2bae14610dc1578063d0c80f1314610dd4575f5ffd5b8063c4014c1214610d42578063c7523d7914610d63578063c9d1e01214610d76575f5ffd5b8063a2429e88116102aa578063af584dd31161024a578063b97dd9e211610225578063b97dd9e214610d0c578063b9d0916314610d14578063c27f08b514610d27578063c2cac49d14610d3a575f5ffd5b8063af584dd314610ce9578063b1ba85ab14610cfc578063b67d057b14610d04575f5ffd5b8063aa10df4c11610285578063aa10df4c14610ca8578063aabc249614610cb0578063ae36b7be14610cc3578063ae89558114610cd6575f5ffd5b8063a2429e8814610c7a578063a32fbb7b14610c8d578063a7f8e64614610c95575f5ffd5b806390a3b386116103155780639ca03702116102f05780639ca0370214610c135780639e0fedd814610c335780639f2b315414610c55578063a011f6a914610c5d575f5ffd5b806390a3b38614610be357806391ee8b6414610beb578063966ab4ee14610c0b575f5ffd5b80638990cf69116103505780638990cf6914610b815780638ccf6b9514610bb75780638da5cb5b14610bbf5780638fcc697a14610bd0575f5ffd5b8063850bee3514610b5e5780638789a13214610b6657806388e4a07314610b79575f5ffd5b806348b9e57b11610521578063715018a611610456578063754eddb7116103f65780637de3ca89116103d15780637de3ca8914610b1557806380207deb14610b1d57806380edb5bd14610b3057806384b0196e14610b43575f5ffd5b8063754eddb714610ac857806379ed8ead14610adb5780637afeed2814610b02575f5ffd5b8063730d652c11610431578063730d652c14610a6d5780637468582f14610a8057806374af185e14610a8d57806374e0a89d14610aa0575f5ffd5b8063715018a614610a28578063723d8e9614610a3057806372c6c71014610a4d575f5ffd5b80635f82401f116104c15780636902c67b1161049c5780636902c67b146109da57806369457a6f146109ed57806370192e5614610a005780637125dc1314610a20575f5ffd5b80635f82401f1461099457806365e50a3e146109b457806368faa778146109c7575f5ffd5b80635a97eaa1116104fc5780635a97eaa1146109385780635c82926c1461094b5780635d3ea8f1146109535780635dc0ff9414610974575f5ffd5b806348b9e57b146109205780634eb4a4d614610928578063508ac49b14610930575f5ffd5b80632b6df14b116105f757806338b39d29116105975780634267d0bd116105725780634267d0bd146108b257806342d21ef7146108ba57806346c6dfdf146108fa57806348aeda191461090d575f5ffd5b806338b39d29146108885780633b10244b146108a25780633f47ad06146108aa575f5ffd5b806334a51ed5116105d257806334a51ed514610813578063368c093c146108335780633777e86314610853578063386f56fc14610866575f5ffd5b80632b6df14b146107cd57806330ccebb5146107e05780633334f7dc14610800575f5ffd5b80631cfe28781161066257806328e07ac31161063d57806328e07ac31461079757806329176625146107aa5780632980c31e146107bd57806329c24030146107c5575f5ffd5b80631cfe28781461074e5780631d9349751461076e57806325b2236614610776575f5ffd5b806304c075691161069d57806304c07569146107165780630d8e6e2c1461073657806310073ff01461073e5780631b56a0e714610746575f5ffd5b80630121b93f146106c357806302a21460146106d857806302fb4d85146106f3575b5f5ffd5b6106d66106d1366004614026565b611070565b005b6106e06110d3565b6040519081526020015b60405180910390f35b610706610701366004614061565b611105565b60405190151581526020016106ea565b610729610724366004614026565b611192565b6040516106ea919061408b565b6106e0611212565b6106e061122a565b6106e061129b565b61076161075c366004614026565b6112a4565b6040516106ea919061410d565b6106d66112b2565b5f516020615c665f395f51905f5254600160c01b900463ffffffff166106e0565b6107066107a5366004614061565b611313565b6106e06107b8366004614026565b61131e565b6106e061139f565b6106e06113e7565b6106d66107db366004614026565b6113f0565b6107f36107ee366004614158565b611430565b6040516106ea91906141a7565b61070661080e3660046141b5565b61143a565b610826610821366004614158565b611493565b6040516106ea919061425a565b61083b6114a4565b6040516001600160a01b0390911681526020016106ea565b6106e0610861366004614026565b6114bf565b6106e05f516020615c465f395f51905f5254600160a01b900463ffffffff1690565b734355415548584943414c4c49000000000000000061083b565b61083b6114f1565b6106e06114fb565b6106e0611504565b6108cd6108c8366004614026565b61151e565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016106ea565b6106d661090836600461429d565b61158e565b6106d661091b366004614527565b6115c5565b6106e0611645565b6106e0611658565b6106d6611661565b6106e0610946366004614026565b61166b565b6106e06116ad565b5f516020615c665f395f51905f5254600160a01b900463ffffffff166106e0565b610987610982366004614158565b6116ce565b6040516106ea91906145ed565b6109a76109a2366004614026565b6116df565b6040516106ea91906145fb565b6106d66109c2366004614612565b6116fb565b6106e06109d536600461467e565b61173a565b6106d66109e83660046146f3565b611745565b6107616109fb366004614026565b6117ba565b610a13610a0e3660046147a0565b611831565b6040516106ea91906147c3565b6106e0611862565b6106d6611891565b5f516020615c665f395f51905f52546001600160801b03166106e0565b610a60610a5b366004614026565b6118a2565b6040516106ea91906147ee565b6106d6610a7b366004614838565b6118e0565b6004546107069060ff1681565b6106e0610a9b366004614026565b611985565b610ab3610aae366004614026565b61198f565b604080519283526020830191909152016106ea565b6106e0610ad63660046147a0565b611a0e565b6106e07f000000000000000000000000000000000000000000000000000000000000000081565b6106e0610b10366004614026565b611a21565b6106e0611a45565b6106d6610b2b3660046148fd565b611a8d565b6106e0610b3e366004614026565b611b47565b610b4b611b51565b6040516106ea9796959493929190614a17565b61083b611b93565b6106e0610b74366004614158565b611bb6565b6109a7611bf2565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb45468010000000000000000900460ff16610706565b61083b611c16565b6002546001600160a01b031661083b565b6106d6610bde366004614aad565b611c31565b6106e0611ccc565b610bfe610bf9366004614ac8565b611cd6565b6040516106ea9190614b74565b610761611d69565b610c26610c21366004614026565b611d76565b6040516106ea9190614b86565b610c46610c41366004614c1c565b611d87565b6040516106ea93929190614c5a565b6106d6611e1b565b5f516020615c265f395f51905f52546001600160a01b031661083b565b6106d6610c88366004614026565b611e5d565b61083b611e71565b61083b610ca3366004614026565b611e8c565b6106e0611e96565b6106d6610cbe366004614158565b611ee9565b610ab3610cd13660046141b5565b611f31565b6106d6610ce4366004614d66565b611fc8565b6106d6610cf7366004614dd9565b612037565b6106e06120a3565b6106e06120f6565b6106e061210f565b6106e0610d22366004614026565b612119565b61083b610d35366004614026565b612123565b6106d66121a4565b5f516020615c665f395f51905f5254600160801b900463ffffffff166106e0565b6106e0610d71366004614158565b6121e6565b6106e0610d84366004614026565b612228565b6106e0612232565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163a546001600160a01b031661083b565b6106e0610dcf366004614026565b612261565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cae546001600160a01b031661083b565b6106e061226b565b6106e0610e1a366004614e44565b61227f565b6106e06122f9565b610706610e35366004614026565b612303565b6106e0610e48366004614158565b61230d565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cae54600160a01b90046001600160601b03166106e0565b610ab3610e92366004614026565b612317565b6106d6610ea5366004614026565b61235a565b6106d6612392565b610ec5610ec0366004614158565b6123d4565b6040516106ea9190614ee9565b6106d6610ee0366004614026565b6123ff565b610f81604080516080810182525f8082526020820181905291810182905260608101919091527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a16376040805160808101825260038301546001600160a01b038082168352600160a01b9182900463ffffffff1660208401526004909401549384169282019290925291046001600160601b03166060820152919050565b6040516106ea9190614ef7565b5f516020615c465f395f51905f52546001600160a01b031661083b565b6106e061250c565b610706610fc1366004614f3f565b612568565b6106e06125b2565b6106d6610fdc366004614158565b6125fa565b6106d6610fef366004614158565b612634565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163b54600160a01b90046001600160601b03166106e0565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163c54640100000000900460ff16610706565b6106e061106b366004614026565b612674565b604051630121b93f60e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd3190630121b93f906024015b5f6040518083038186803b1580156110ba575f5ffd5b505af41580156110cc573d5f5f3e3d5ffd5b5050505050565b5f5f6110dd61267e565b9050806001015f6110f1835f015460801c90565b81526020019081526020015f205491505090565b6040516302fb4d8560e01b81526001600160a01b0383166004820152602481018290525f9073e525c64ee3bb9a0ed18e42504d313128ed19fd31906302fb4d85906044015b602060405180830381865af4158015611165573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190614f6b565b90505b92915050565b61119a613e4b565b5f6111a4836126a2565b90506040518060e001604052806111b961267e565b6001015f8681526020019081526020015f20548152602001825f01518152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a00151815250915050919050565b5f61121b61267e565b6005015463ffffffff16919050565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd316310073ff06040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112969190614f86565b905090565b5f611296612704565b606061118c6109fb83612228565b60405163e199c05960e01b81525f19600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063e199c059906024015f6040518083038186803b1580156112fb575f5ffd5b505af415801561130d573d5f5f3e3d5ffd5b50505050565b5f611189838361272e565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31632917662561134284612228565b6040518263ffffffff1660e01b815260040161136091815260200190565b602060405180830381865af415801561137b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190614f86565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31632980c31e6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b5f611296612783565b6113f86127a4565b604051632b6df14b60e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd3190632b6df14b906024016110a4565b5f61118c826127d1565b5f8381527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163860209081526040808320858452600190810183528184206001600160a01b03861685520190915290205415155b9392505050565b61149b613eac565b61118c826128a2565b5f6114ad61267e565b600801546001600160a01b0316919050565b5f5f6114c961267e565b805490915060801c8311156114de575f61148c565b5f92835260010160205250604090205490565b5f61129642612123565b5f611296612979565b5f61129661151061226b565b611518612990565b906129af565b5f5f5f5f5f5f5f61152d61267e565b90505f61153c825f01546129c1565b6020808201515f8181526001860190925260408083205484518085529190932054939450909261156b8d6114bf565b6115788660200151611b47565b949e939d50919b50995097509095509350505050565b604051630f484ad560e01b8152731e0a5d9f39c4393b71dd4c6d038be4b77266c1a490630f484ad5906110a49084906004016150c5565b60048054604051630a8f70b360e31b8152731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49263547b859892611610928c928c928c928c928c928c928c9260ff90921691016152c1565b5f6040518083038186803b158015611626575f5ffd5b505af4158015611638573d5f5f3e3d5ffd5b5050505050505050505050565b5f61129661165161267e565b5460801c90565b5f611296612990565b6116696129fd565b565b5f8181527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a16386020526040812054600160801b90046001600160801b031661118c565b5f5f6116b761267e565b80549091506116c89060801c612b35565b91505090565b6116d6613ef7565b61118c82612b49565b604080518082019091525f808252602082015261118c82612bd5565b6117036127a4565b6040516347817b3960e11b815273e525c64ee3bb9a0ed18e42504d313128ed19fd3190638f02f672906110a49084906004016147ee565b5f6111898383612ca4565b604051630f0ec5ad60e41b815273e525c64ee3bb9a0ed18e42504d313128ed19fd319063f0ec5ad09061178690899089908990899089908990600401615404565b5f6040518083038186803b15801561179c575f5ffd5b505af41580156117ae573d5f5f3e3d5ffd5b50505050505050505050565b60405163039fc50f60e31b81526004810182905260609073e525c64ee3bb9a0ed18e42504d313128ed19fd3190631cfe2878906024015f60405180830381865af415801561180a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261118c9190810190615480565b61185860405180608001604052805f81526020015f81526020015f81526020015f81525090565b6111898383612dbd565b5f6112967f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163c5463ffffffff1690565b6118996127a4565b6116695f612dfb565b6118cf6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b61118c6118db83612e4c565b612e60565b6118e86127a4565b60405163e3a6a60b60e01b8152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063e3a6a60b9061191f908490600401614ef7565b5f6040518083038186803b158015611935575f5ffd5b505af4158015611947573d5f5f3e3d5ffd5b505050507f36375d1f1abd9940cbda583ace84a7a8a60c2e1d6a12156d68d35a5cbd7793c28160405161197a9190614ef7565b60405180910390a150565b5f61118c82612ef1565b60405163e0fae2a960e01b8152600481018290525f90819073e525c64ee3bb9a0ed18e42504d313128ed19fd319063e0fae2a9906024015b6040805180830381865af41580156119e1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a05919061550f565b91509150915091565b5f611189611a1c8484611831565b612f18565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637afeed2861134284612228565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637de3ca896040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b5f429050731e0a5d9f39c4393b71dd4c6d038be4b77266c1a463f436059e6040518060a001604052808c803603810190611ac791906155a6565b8152602001878152602001611add856001611a0e565b8152602001868152602001858152508a8a8a8a6040518663ffffffff1660e01b8152600401611b1095949392919061562c565b5f6040518083038186803b158015611b26575f5ffd5b505af4158015611b38573d5f5f3e3d5ffd5b50505050505050505050505050565b5f61118c82612f3a565b5f6060805f5f5f6060611b62612f8a565b611b6a612fb6565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f611b9c61267e565b6005015464010000000090046001600160a01b0316919050565b6001600160a01b0381165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a1637602052604081205461118c565b604080518082019091525f8082526020820152611296611c1061267e565b546129c1565b5f611c1f61267e565b600601546001600160a01b0316919050565b611c396127a4565b60405163c0ebae5360e01b81528115156004820152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063c0ebae53906024015f6040518083038186803b158015611c83575f5ffd5b505af4158015611c95573d5f5f3e3d5ffd5b505050507ffa50fc5c953ca42e5b6a7acac6e13c95c2ec283b259630f1d839e445fcec8c948160405161197a911515815260200190565b5f61129642612fe3565b60405163d99537c960e01b8152606090731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49063d99537c990611d1c908b908b908b908b908b908b908b90600401615742565b5f60405180830381865af4158015611d36573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d5d91908101906157ea565b98975050505050505050565b60606112966109fb61210f565b611d7e613f34565b61118c8261303d565b6004805460405163f711e6c360e01b81526060925f928492731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49263f711e6c392611dcd928a928a9260ff16910161581b565b5f60405180830381865af4158015611de7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e0e9190810190615840565b9250925092509250925092565b731e0a5d9f39c4393b71dd4c6d038be4b77266c1a4639f2b31546040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b611e656127a4565b611e6e8161306f565b50565b5f611e7a61267e565b600901546001600160a01b0316919050565b5f61118c826130a3565b5f516020615c465f395f51905f525460408051635a56229b60e11b815290515f926001600160a01b03169163b4ac45369160048083019260209291908290030181865afa158015611272573d5f5f3e3d5ffd5b611ef16127a4565b60405163555e124b60e11b81526001600160a01b038216600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063aabc2496906024016110a4565b60405163571b5bdf60e11b815260048101849052602481018390526001600160a01b03821660448201525f90819073e525c64ee3bb9a0ed18e42504d313128ed19fd319063ae36b7be906064016040805180830381865af4158015611f98573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbc919061550f565b91509150935093915050565b60405163029553b560e21b815273e525c64ee3bb9a0ed18e42504d313128ed19fd3190630a554ed49061200590879087908790879060040161599e565b5f6040518083038186803b15801561201b575f5ffd5b505af415801561202d573d5f5f3e3d5ffd5b5050505050505050565b6040516333ab76ab60e01b815273e525c64ee3bb9a0ed18e42504d313128ed19fd31906333ab76ab90612072908690869086906004016159da565b5f6040518083038186803b158015612088575f5ffd5b505af415801561209a573d5f5f3e3d5ffd5b50505050505050565b5f516020615c465f395f51905f525460408051636de42ba960e11b815290515f926001600160a01b03169163dbc857529160048083019260209291908290030181865afa158015611272573d5f5f3e3d5ffd5b5f61129661210261267e565b546001600160801b031690565b5f61129642613106565b5f61118c82613162565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163c27f08b561214784613162565b6040518263ffffffff1660e01b815260040161216591815260200190565b602060405180830381865af4158015612180573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190615a04565b73e525c64ee3bb9a0ed18e42504d313128ed19fd3163c2cac49d6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b60405163c7523d7960e01b81526001600160a01b03821660048201525f90730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063c7523d7990602401611360565b5f61118c82613106565b5f6112967fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb45463ffffffff1690565b5f61118c82613196565b5f61129661227a61165161267e565b6131cf565b604051636bb46fb760e11b81525f90730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063d768df6e906122ba9086908690600401615a1f565b602060405180830381865af41580156122d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190614f86565b5f61129642613162565b5f61118c826131f2565b5f61118c82613263565b5f5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163e0fae2a961233c85612228565b6040518263ffffffff1660e01b81526004016119c791815260200190565b60405163e199c05960e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd319063e199c059906024016110a4565b73e525c64ee3bb9a0ed18e42504d313128ed19fd3163e3380b796040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b604080516080810182525f918101828152606082018390528152602081019190915261118c826132b4565b6124076127a4565b5f6124215f516020615c865f395f51905f525b5460c01c90565b905080828181101561245457604051630d1bff9560e21b8152600481019290925260248201526044015b60405180910390fd5b505061245f82613351565b8015801561246c57505f82115b156124de575f61247a61267e565b60088101548154604051631d2fab4d60e31b815260809190911c60048201529192506001600160a01b03169063e97d5a68906024015f604051808303815f87803b1580156124c6575f5ffd5b505af11580156124d8573d5f5f3e3d5ffd5b50505050505b60405182907faaa1053539ab4621b2aecf54a7ccf2096610ff768f32261f667aca9ae3069482905f90a25050565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637afeed2861252f61210f565b6040518263ffffffff1660e01b815260040161254d91815260200190565b602060405180830381865af4158015611272573d5f5f3e3d5ffd5b60405163771dc6e160e11b81526001600160a01b038084166004830152821660248201525f9073e525c64ee3bb9a0ed18e42504d313128ed19fd319063ee3b8dc29060440161114a565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163f1babf746040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b6126026127a4565b6001600160a01b03811661262b57604051631e4fbdf760e01b81525f600482015260240161244b565b611e6e81612dfb565b604051637c2a4a6f60e11b81526001600160a01b038216600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063f85494de906024016110a4565b5f61118c82612b35565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b6126aa613fd0565b61118c6126b68361339c565b6040805160c081018252825481526001830154602082015260028301549181019190915260038201546060820152600482015463ffffffff16608082015260059091015460a0820152613438565b5f6112967fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb261349b565b6001600160a01b0382165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163960209081526040808320600885901c8452909152812054600160ff84161b161515611189565b5f516020615c865f395f51905f5280545f91906116c89060c01c6002615a88565b6002546001600160a01b031633146116695760405163118cdaa760e01b815233600482015260240161244b565b5f5f6127dc83612b49565b90505f5f516020615c265f395f51905f5260020154604051630a6718eb60e31b81523060048201526001600160a01b03868116602483015290911690635338c75890604401602060405180830381865afa15801561283c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128609190614f86565b90505f8260a001511561288757826080015161287d576002612880565b60035b905061289a565b5f8211612894575f612897565b60015b90505b949350505050565b6128aa613eac565b60405180608001604052806128be846127d1565b60038111156128cf576128cf614173565b81526020015f516020615c265f395f51905f5260020154604051630a6718eb60e31b81523060048201526001600160a01b03868116602483015290911690635338c75890604401602060405180830381865afa158015612931573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129559190614f86565b815260200161296384612b49565b8152602001612971846132b4565b905292915050565b5f6112965f516020615c865f395f51905f5261241a565b5f6112965f516020615c865f395f51905f52546001600160401b031690565b5f6111898383633b9aca0060016134ce565b604080518082019091525f808252602082015260405180604001604052806129e98460801c90565b81526020016001600160801b038416612971565b5f612a0742613162565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652d549091505f516020615c865f395f51905f52905f90612a5f90600160e01b900463ffffffff16612a5a60056002613510565b61351b565b905082811115612a6e57505050565b604080516060810182526001840154600160701b90046001600160701b03168152815180830190925248825290602080830191612aaf9181014a9052613526565b6001600160701b03168152602001612ad0612acb86600261351b565b61356b565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b5f612b3f8261339c565b6001015492915050565b612b51613ef7565b5f516020615c265f395f51905f526001600160a01b039283165f90815260039182016020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252910154928316606082015260ff600160a01b8404811615156080830152600160a81b909304909216151560a08301525090565b604080518082019091525f80825260208201525f516020615c865f395f51905f52612c19612c0284613162565b6001830154600160e01b900463ffffffff165b1190565b612c645760018101546040805180820182525f8082526020918201528151808301909252600160701b909204603881901c66ffffffffffffff9081168352169181019190915261148c565b60018101546040805180820182525f808252602091820152815180830190925266ffffffffffffff603884901c811683529092169181019190915261148c565b6001600160a01b0381165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163960209081526040808320600886901c84529091528120547f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163790600160ff86161b1615612d22575f91505061118c565b5f84815260018083016020908152604080842080546001600160801b0316855280840183528185206001600160a01b0389168652938401909252832054909203612d71575f935050505061118c565b805482546001600160a01b0387165f908152600184016020526040902054612da991600160801b90046001600160801b031690615a88565b612db39190615ab3565b9695505050505050565b612de460405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f612dee84613575565b905061289a8185856135af565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f612e568261339c565b6005015492915050565b612e8d6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506040805160a081018252602083811c65ffffffffffff908116835263ffffffff851691830191909152605084901c1691810191909152608082811c6001600160401b0316606083015260c09290921c677fffffffffffffff169181019190915290565b5f5f516020615c665f395f51905f525461118c90600160a01b900463ffffffff1683615ab3565b8051606082015160408301515f9291612f3091615ac6565b61118c9190615ac6565b5f5f612f4461267e565b805490915060801c8381811115612f775760405163e5edf84760e01b81526004810192909252602482015260440161244b565b505061148c612f85846137b6565b612ef1565b60606112967f00000000000000000000000000000000000000000000000000000000000000005f6137d0565b60606112967f000000000000000000000000000000000000000000000000000000000000000060016137d0565b5f516020615c465f395f51905f525460405163ec6e69db60e01b8152306004820152602481018390525f916001600160a01b03169063ec6e69db906044015b602060405180830381865afa15801561137b573d5f5f3e3d5ffd5b613045613f34565b61118c7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb283613879565b5f516020615c865f395f51905f5280545f9061308a90613959565b60408101849052905061309c816139bb565b9091555050565b5f5f516020615c265f395f51905f526002015460405163a9cd26c960e01b8152306004820152602481018490524260448201526001600160a01b039091169063a9cd26c990606401602060405180830381865afa158015612180573d5f5f3e3d5ffd5b5f516020615c665f395f51905f5280545f91906131399063ffffffff600160801b8204811691600160a01b900416615ad9565b815463ffffffff9190911690613158906001600160801b031685615af8565b61148c9190615ab3565b5f516020615c665f395f51905f5280545f9190600160801b810463ffffffff1690613158906001600160801b031685615af8565b5f516020615c665f395f51905f5280545f919061148c906001600160801b03811690612a5a90600160801b900463ffffffff1686615a88565b5f61118c6131ed6131df84612e4c565b60501c65ffffffffffff1690565b613a18565b5f5f6131fc61267e565b80549091506001600160801b0381166132158260801c90565b0361322357505f9392505050565b5f61324061323b6001600160801b0384166001615ac6565b612f3a565b90505f61324c86613106565b90506132588282613a2d565b159695505050505050565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163b546040516337ffcfaf60e21b81526001600160a01b0383811660048301525f92169063dfff3ebc90602401613022565b604080516080810182525f91810182815260608201839052815260208101919091525f516020615c265f395f51905f526002015460405163e48a5f7b60e01b81526001600160a01b0384811660048301529091169063e48a5f7b90602401606060405180830381865afa15801561332d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190615b0b565b5f516020615c865f395f51905f5280545f9061336c90613959565b83815290506305f5e1006133846332f1b33685615a88565b61338e9190615ab3565b602082015261309c816139bb565b5f5f6133a961165161267e565b90505f6133b4613a3b565b90505f6133c18286615ac6565b90505f8386111580156133d357508184105b9050858483836134075760405163054c607760e11b815260048101939093526024830191909152604482015260640161244b565b50505061341261267e565b6002015f6134208589615b6a565b81526020019081526020015f20945050505050919050565b613440613fd0565b6040518060c00160405280835f01518152602001836020015181526020018360400151815260200183606001518152602001613489846080015163ffffffff1663ffffffff1690565b81526020016129718460a00151612e60565b60018101545f906134bf906001600160801b0380821691600160801b900416615b7d565b6001600160801b031692915050565b5f6134fb6134db83613a4f565b80156134f657505f84806134f1576134f1615a9f565b868809115b151590565b613506868686613a7b565b6128979190615ac6565b5f6111898284615af8565b5f6111898284615ac6565b5f5f5f90505f6135398460200151613b2b565b66ffffffffffffff16901b811790506038613556845f0151613b2b565b66ffffffffffffff16901b1761148c81613b62565b5f61118c82613b95565b5f5f61357f61267e565b805490915061358d846131f2565b6135a05761359b8160801c90565b61289a565b6001600160801b03811661289a565b6135d660405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f516020615c865f395f51905f52805460c01c5f81900361361b5760405180608001604052805f81526020015f81526020015f81526020015f8152509250505061148c565b5f5f5f5f61362889612bd5565b90505f81602001516202000060036136409190615a88565b61364a9190615a88565b825161365990620493e0615a88565b6136639190615ac6565b90506136738160018860016134ce565b9450506136ca6136ba6136b0620f4240845f015161369b5f516020615c665f395f51905f5290565b54600160a01b900463ffffffff1660016134ce565b60018860016134ce565b87546001600160401b031661351b565b92506136d6848461351b565b9150505f6136e38a612e4c565b90505f61371a63ffffffff83166137028460201c65ffffffffffff1690565b61370c9190615ac6565b61371588615b9c565b613bc5565b90505f61372682613c0c565b90505f61374261373c8684633b9aca005f6134ce565b86613510565b90505f8b61375457633b9aca0061375d565b61375d8e6131cf565b9050604051806080016040528061377d83856129af90919063ffffffff16565b8152602081018590526040016137938a846129af565b81526020016137a289846129af565b90529e9d5050505050505050505050505050565b5f61118c6137c38361339c565b6004015463ffffffff1690565b606060ff83146137ea576137e383613c42565b905061118c565b8180546137f690615bb6565b80601f016020809104026020016040519081016040528092919081815260200182805461382290615bb6565b801561386d5780601f106138445761010080835404028352916020019161386d565b820191905f5260205f20905b81548152906001019060200180831161385057829003601f168201915b5050505050905061118c565b613881613f34565b600183015483905f9061389e9085906001600160801b0316615ac6565b815260208082019290925260409081015f20815160c08101835281546001600160a01b0390811682526001830154168185015282518084018452600283015481526003830154818601528184015282516080808201855260048401548252600584015482870152600684015482860152600784015460608381019190915283019190915283518085019094526008830154845260098301549484019490945292830191909152600a015460ff16151560a08201529392505050565b61397a60405180606001604052805f81526020015f81526020015f81525090565b604051806060016040528061398f8460c01c90565b81526020016139a78460401c6001600160801b031690565b81526020016001600160401b038416612971565b5f5f5f90506139cd8360400151613c7f565b6001600160401b03168117905060406139e98460200151613cb4565b6001600160801b0316901b8117905060c0613a06845f0151613c7f565b6001600160401b0316901b1792915050565b5f61118c6402540be400836305f5e100613ce7565b5f61118982612c1585613d52565b5f613a44613d8e565b611296906001615ac6565b5f6002826003811115613a6457613a64614173565b613a6e9190615be8565b60ff166001149050919050565b5f5f5f613a888686613dd2565b91509150815f03613aac57838181613aa257613aa2615a9f565b049250505061148c565b818411613ac357613ac36003851502601118613dee565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f66ffffffffffffff821115613b5e576040516306dfcc6560e41b8152603860048201526024810183905260440161244b565b5090565b5f6001600160701b03821115613b5e576040516306dfcc6560e41b8152607060048201526024810183905260440161244b565b5f63ffffffff821115613b5e576040516306dfcc6560e41b8152602060048201526024810183905260440161244b565b5f5f8212613be057613bd682613dff565b6137e39084615ac6565b60ff82901d8083011880841115613c0357613bfb8185615af8565b91505061118c565b505f9392505050565b5f805f516020615c865f395f51905f52905061148c633b9aca0084613c3d845f015460401c6001600160801b031690565b613ce7565b60605f613c4e83613e24565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6001600160401b03821115613b5e57604080516306dfcc6560e41b815260048101919091526024810183905260440161244b565b5f6001600160801b03821115613b5e576040516306dfcc6560e41b8152608060048201526024810183905260440161244b565b5f60018180613cf68588615a88565b90505b8015613d3d57613d098183615ac6565b9150613d158386615a88565b613d1f8783615a88565b613d299190615ab3565b9050613d36600184615ac6565b9250613cf9565b613d478583615ab3565b979650505050505050565b5f516020615c665f395f51905f5280545f919061148c908490613d8390600160c01b900463ffffffff166001615c09565b63ffffffff1661351b565b5f516020615c665f395f51905f5280545f9190613db990600160c01b900463ffffffff166001615ac6565b81546116c89190600160a01b900463ffffffff16615a88565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f5f821215613b5e57604051635467221960e11b81526004810183905260240161244b565b5f60ff8216601f81111561118c57604051632cd44ac360e21b815260040160405180910390fd5b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001613ea76040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b905290565b604080516080810182525f8082526020820152908101613eca613ef7565b8152602001613ea7604080516080810182525f918101828152606082018390528152602081019190915290565b6040518060c001604052805f81526020015f81526020015f81526020015f6001600160a01b031681526020015f151581526020015f151581525090565b6040518060c001604052805f6001600160a01b031681526020015f6001600160a01b03168152602001613f7860405180604001604052805f81526020015f81525090565b8152602001613fa460405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001613fc460405180604001604052805f81526020015f81525090565b81525f60209091015290565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f8152602001613ea76040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f60208284031215614036575f5ffd5b5035919050565b6001600160a01b0381168114611e6e575f5ffd5b803561405c8161403d565b919050565b5f5f60408385031215614072575f5ffd5b823561407d8161403d565b946020939093013593505050565b5f61016082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015161410660c084018280518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5092915050565b602080825282518282018190525f918401906040840190835b8181101561414d5783516001600160a01b0316835260209384019390920191600101614126565b509095945050505050565b5f60208284031215614168575f5ffd5b813561148c8161403d565b634e487b7160e01b5f52602160045260245ffd5b600481106141a357634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161118c8284614187565b5f5f5f606084860312156141c7575f5ffd5b833592506020840135915060408401356141e08161403d565b809150509250925092565b8051825260208082015190830152604080820151908301526060808201516001600160a01b03169083015260808082015115159083015260a0908101511515910152565b61424482825180518252602090810151910152565b602001516001600160a01b031660409190910152565b5f6101608201905061426d828451614187565b60208301516020830152604083015161428960408401826141eb565b50606083015161410661010084018261422f565b5f602082840312156142ad575f5ffd5b81356001600160401b038111156142c2575f5ffd5b8201610120818503121561148c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561430a5761430a6142d4565b60405290565b604051608081016001600160401b038111828210171561430a5761430a6142d4565b604051606081016001600160401b038111828210171561430a5761430a6142d4565b60405161010081016001600160401b038111828210171561430a5761430a6142d4565b604051601f8201601f191681016001600160401b038111828210171561439f5761439f6142d4565b604052919050565b5f6001600160401b038211156143bf576143bf6142d4565b50601f01601f191660200190565b5f82601f8301126143dc575f5ffd5b81356143ef6143ea826143a7565b614377565b818152846020838601011115614403575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6040828403121561442f575f5ffd5b6144376142e8565b905081356001600160401b0381111561444e575f5ffd5b61445a848285016143cd565b82525060208201356001600160401b03811115614475575f5ffd5b614481848285016143cd565b60208301525092915050565b5f5f83601f84011261449d575f5ffd5b5081356001600160401b038111156144b3575f5ffd5b6020830191508360208260051b85010111156144cd575f5ffd5b9250929050565b5f606082840312156144e4575f5ffd5b50919050565b5f5f83601f8401126144fa575f5ffd5b5081356001600160401b03811115614510575f5ffd5b6020830191508360208285010111156144cd575f5ffd5b5f5f5f5f5f5f5f87890361036081121561453f575f5ffd5b6102a081121561454d575f5ffd5b508796506102a08801356001600160401b0381111561456a575f5ffd5b6145768a828b0161441f565b9650506102c08801356001600160401b03811115614592575f5ffd5b61459e8a828b0161448d565b90965094506145b39050896102e08a016144d4565b92506103408801356001600160401b038111156145ce575f5ffd5b6145da8a828b016144ea565b989b979a50959850939692959293505050565b60c0810161118c82846141eb565b81518152602080830151908201526040810161118c565b5f60a0828403128015614623575f5ffd5b5060405160a081016001600160401b0381118282101715614646576146466142d4565b604090815283358252602080850135908301528381013590820152606080840135908201526080928301359281019290925250919050565b5f5f6040838503121561468f575f5ffd5b8235915060208301356146a18161403d565b809150509250929050565b5f604082840312156146bc575f5ffd5b6146c46142e8565b823581526020928301359281019290925250919050565b8015158114611e6e575f5ffd5b803561405c816146db565b5f5f5f5f5f5f86880361016081121561470a575f5ffd5b87356147158161403d565b965060208801356147258161403d565b95506147348960408a016146ac565b94506080607f1982011215614747575f5ffd5b50614750614310565b6080880135815260a0880135602082015260c0880135604082015260e0880135606082015292506147858861010089016146ac565b915061479461014088016146e8565b90509295509295509295565b5f5f604083850312156147b1575f5ffd5b8235915060208301356146a1816146db565b815181526020808301519082015260408083015190820152606080830151908201526080810161118c565b60a0810161118c828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b63ffffffff81168114611e6e575f5ffd5b5f6080828403128015614849575f5ffd5b50614852614310565b823561485d8161403d565b8152602083013561486d81614827565b602082015260408301356148808161403d565b604082015260608301356001600160601b038116811461489e575f5ffd5b60608201529392505050565b803560ff8116811461405c575f5ffd5b5f602082840312156148ca575f5ffd5b604051602081016001600160401b03811182821017156148ec576148ec6142d4565b6040529050808235612971816146db565b5f5f5f5f5f5f5f5f888a03610260811215614916575f5ffd5b610160811215614924575f5ffd5b8998506101608a01356001600160401b03811115614940575f5ffd5b61494c8c828d0161441f565b9850506101808a01356001600160401b03811115614968575f5ffd5b6149748c828d0161448d565b909850965050606061019f198201121561498c575f5ffd5b50614995614332565b6149a26101a08b016148aa565b81526101c08a013560208201526101e08a013560408201529350610200890135925061022089013591506149da8a6102408b016148ba565b90509295985092959890939650565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f614a3560e08301896149e9565b8281036040840152614a4781896149e9565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015614a9c578351835260209384019390920191600101614a7e565b50909b9a5050505050505050505050565b5f60208284031215614abd575f5ffd5b813561148c816146db565b5f5f5f5f5f5f5f60e0888a031215614ade575f5ffd5b8735965060208801359550614af68960408a016144d4565b945060a08801356001600160401b03811115614b10575f5ffd5b614b1c8a828b0161448d565b90955093505060c08801356001600160401b038111156145ce575f5ffd5b5f8151808452602084019350602083015f5b82811015614b6a578151865260209586019590910190600101614b4c565b5093949350505050565b602081525f6111896020830184614b3a565b81516001600160a01b03908116825260208084015190911690820152604080830151610160830191614bc49084018280518252602090810151910152565b5060608381015180516080850152602081015160a0850152604081015160c08501529081015160e0840152506080830151805161010084015260208101516101208401525060a0830151151561014083015292915050565b5f5f60208385031215614c2d575f5ffd5b82356001600160401b03811115614c42575f5ffd5b614c4e858286016144ea565b90969095509350505050565b606081525f614c6c6060830186614b3a565b846020840152828103604084015280845180835260208301915060208160051b840101602087015f5b83811015614cc757601f19868403018552614cb18383516149e9565b6020958601959093509190910190600101614c95565b50909998505050505050505050565b5f6001600160401b03821115614cee57614cee6142d4565b5060051b60200190565b5f82601f830112614d07575f5ffd5b8135614d156143ea82614cd6565b8082825260208201915060208360051b860101925085831115614d36575f5ffd5b602085015b83811015614d5c578035614d4e8161403d565b835260209283019201614d3b565b5095945050505050565b5f5f5f5f60808587031215614d79575f5ffd5b8435935060208501356001600160401b03811115614d95575f5ffd5b614da18782880161441f565b93505060408501356001600160401b03811115614dbc575f5ffd5b614dc887828801614cf8565b949793965093946060013593505050565b5f5f5f60608486031215614deb575f5ffd5b8335925060208401356001600160401b03811115614e07575f5ffd5b614e138682870161441f565b92505060408401356001600160401b03811115614e2e575f5ffd5b614e3a86828701614cf8565b9150509250925092565b5f5f60408385031215614e55575f5ffd5b8235614e608161403d565b915060208301356001600160401b03811115614e7a575f5ffd5b8301601f81018513614e8a575f5ffd5b8035614e986143ea82614cd6565b8082825260208201915060208360051b850101925087831115614eb9575f5ffd5b6020840193505b82841015614edb578335825260209384019390910190614ec0565b809450505050509250929050565b6060810161118c828461422f565b81516001600160a01b03908116825260208084015163ffffffff1690830152604080840151909116908201526060808301516001600160601b0316908201526080810161118c565b5f5f60408385031215614f50575f5ffd5b8235614f5b8161403d565b915060208301356146a18161403d565b5f60208284031215614f7b575f5ffd5b815161148c816146db565b5f60208284031215614f96575f5ffd5b5051919050565b80358252602080820135908301526040810135614fb98161403d565b6001600160a01b03166040929092019190915250565b8183525f6001600160fb1b03831115614fe6575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8235603e19833603018112615013575f5ffd5b90910192915050565b5f5f8335601e19843603018112615031575f5ffd5b83016020810192503590506001600160401b0381111561504f575f5ffd5b8036038213156144cd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f615090828361501c565b604085526150a260408601828461505d565b9150506150b2602084018461501c565b8583036020870152612db383828461505d565b60208082528235828201528201356040808301919091525f906150ee9060608401908501614f9d565b60a0830135601e19843603018112615104575f5ffd5b83016020810190356001600160401b0381111561511f575f5ffd5b8060051b3603821315615130575f5ffd5b61012060c085015261514761014085018284614fcf565b91505061515760c0850185614fff565b838203601f190160e085015261516d8282615085565b91505061517d60e085018561501c565b848303601f190161010086015261519583828461505d565b925050506151a761010085018561501c565b848303601f1901610120860152612db383828461505d565b8035825260208101356151d181614827565b63ffffffff81166020840152505050565b80356001600160801b038116811461405c575f5ffd5b6001600160801b03615209826151e2565b1682526001600160801b03615220602083016151e2565b1660208301525050565b5f81516040845261523e60408501826149e9565b90506020830151848203602086015261525782826149e9565b95945050505050565b8183526020830192505f815f5b84811015614b6a5781356152808161403d565b6001600160a01b03168652602095860195919091019060010161526d565b60ff6152a9826148aa565b16825260208181013590830152604090810135910152565b883581525f6152d66020808401908c016151bf565b6152e66060830160608c016151bf565b6152f660a0830160a08c016151bf565b61530660e0830160e08c016151bf565b6101208a81013590830152610140808b013590830152610160808b013590830152610180808b0135908301526101a0808b0135908301526101c0808b0135908301526101e0808b0135908301526153606102008b01614051565b6001600160a01b03166102008301526102208a8101359083015261538b610240808401908c016151f8565b6102808a810135908301526103806102a083018190526153ad9083018a61522a565b8281036102c08401526153c181898b615260565b90506153d16102e084018861529e565b8281036103408401526153e581868861505d565b9150506153f761036083018415159052565b9998505050505050505050565b6001600160a01b038781168252861660208201526101608101615434604083018780518252602090810151910152565b84516080830152602085015160a0830152604085015160c0830152606085015160e083015283516101008301526020840151610120830152821515610140830152979650505050505050565b5f60208284031215615490575f5ffd5b81516001600160401b038111156154a5575f5ffd5b8201601f810184136154b5575f5ffd5b80516154c36143ea82614cd6565b8082825260208201915060208360051b8501019250868311156154e4575f5ffd5b6020840193505b82841015612db35783516154fe8161403d565b8252602093840193909101906154eb565b5f5f60408385031215615520575f5ffd5b505080516020909101519092909150565b5f60608284031215615541575f5ffd5b615549614332565b82358152602080840135908201526040928301359281019290925250919050565b5f6040828403121561557a575f5ffd5b6155826142e8565b905061558d826151e2565b815261559b602083016151e2565b602082015292915050565b5f6101608284031280156155b8575f5ffd5b506155c1614354565b823581526155d28460208501615531565b60208201526080830135604082015260a083013560608201526155f760c08401614051565b608082015260e083013560a082015261561484610100850161556a565b60c0820152610140929092013560e083015250919050565b5f86518051835260208101518051602085015260208101516040850152604081015160608501525060408101516080840152606081015160a0840152608081015161568260c08501826001600160a01b03169052565b5060a081015160e084015260c081015180516001600160801b039081166101008601526020820151166101208501525060e001516101408301526020870151610160830152604087015161018083015260608701516101a08301526080870151805115156101c0840152506102806101e083015261570461028083018761522a565b828103610200840152615718818688615260565b845160ff16610220850152602085015161024085015260408501516102608501529150612db39050565b8781528660208201526157586040820187614f9d565b60e060a08201525f61576e60e083018688614fcf565b82810360c084015261578181858761505d565b9a9950505050505050505050565b5f82601f83011261579e575f5ffd5b81516157ac6143ea82614cd6565b8082825260208201915060208360051b8601019250858311156157cd575f5ffd5b602085015b83811015614d5c5780518352602092830192016157d2565b5f602082840312156157fa575f5ffd5b81516001600160401b0381111561580f575f5ffd5b61289a8482850161578f565b604081525f61582e60408301858761505d565b90508215156020830152949350505050565b5f5f5f60608486031215615852575f5ffd5b83516001600160401b03811115615867575f5ffd5b6158738682870161578f565b60208601516040870151919550935090506001600160401b03811115615897575f5ffd5b8401601f810186136158a7575f5ffd5b80516158b56143ea82614cd6565b8082825260208201915060208360051b8501019250888311156158d6575f5ffd5b602084015b838110156159565780516001600160401b038111156158f8575f5ffd5b8501603f81018b13615908575f5ffd5b60208101516159196143ea826143a7565b8181526040838301018d101561592d575f5ffd5b8160408401602083015e5f602083830101528086525050506020830192506020810190506158db565b50809450505050509250925092565b5f8151808452602084019350602083015f5b82811015614b6a5781516001600160a01b0316865260209586019590910190600101615977565b848152608060208201525f6159b6608083018661522a565b82810360408401526159c88186615965565b91505082606083015295945050505050565b838152606060208201525f6159f2606083018561522a565b8281036040840152612db38185615965565b5f60208284031215615a14575f5ffd5b815161148c8161403d565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b81811015615a68578351835260209384019390920191600101615a4a565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761118c5761118c615a74565b634e487b7160e01b5f52601260045260245ffd5b5f82615ac157615ac1615a9f565b500490565b8082018082111561118c5761118c615a74565b63ffffffff818116838216029081169081811461410657614106615a74565b8181038181111561118c5761118c615a74565b5f818303606081128015615b1d575f5ffd5b50615b266142e8565b6040821215615b33575f5ffd5b615b3b6142e8565b8451815260208086015190820152815260408401519150615b5b8261403d565b60208101919091529392505050565b5f82615b7857615b78615a9f565b500690565b6001600160801b03828116828216039081111561118c5761118c615a74565b5f600160ff1b8201615bb057615bb0615a74565b505f0390565b600181811c90821680615bca57607f821691505b6020821081036144e457634e487b7160e01b5f52602260045260245ffd5b5f60ff831680615bfa57615bfa615a9f565b8060ff84160691505092915050565b63ffffffff818116838216019081111561118c5761118c615a7456febba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cadbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cafcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe02e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652ca26469706673582212203a4dc2ef336203461e323a7693f00d3d1d313bd5b8ea8d0c5dd6160236d8d2f964736f6c634300081e0033610140604052348015610010575f5ffd5b50604051611d44380380611d4483398101604081905261002f91610418565b6001600160a01b03841660805260a082905260e0819052610051816002610554565b61010052604080516060810182525f8082526020820152908101610076600180610566565b6001600160401b03908116909152815160028054602085015160409095015160809390931c6001600160c01b031990911617600160801b94841694909402939093176001600160c01b0316600160c01b91909216021790556100d85f82610184565b6101135f60e0516101005160015f6001806100f39190610566565b6001600160401b0316815260208101919091526040015f2092919061022d565b610120818152505083833060a05160405161012d906103f4565b6001600160a01b0394851681529284166020840152921660408201526060810191909152608001604051809103905ff08015801561016d573d5f5f3e3d5ffd5b506001600160a01b031660c0525061062d92505050565b5f8080526020839052604081205560015b81811161022857610208835f6101ac600185610585565b81526020019081526020015f2054845f015f6001856101cb9190610585565b81526020019081526020015f20546040516020016101f3929190918252602082015260400190565b60408051601f1981840301815291905261032e565b5f828152602085905260409020558061022081610598565b915050610195565b505050565b83545f9080820361024d5750505f82815260208490526040902054610326565b82810361026b5750505f828152600185016020526040902054610326565b5f610277600183610585565b90505f610283826103c9565b5f81815260018a01602052604090205490915082821c825b8881101561031d5760018083161480156102e2575f82815260018d016020908152604091829020548251918201529081018590526102db906060016101f3565b9350610310565b5f82815260208c815260409182902054915161030d926101f392889201918252602082015260400190565b93505b50600191821c910161029b565b50909450505050505b949350505050565b6040805160018082528183019092525f916020820181803683370190505060028360405161035c91906105c7565b602060405180830381855afa158015610377573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061039a91906105d2565b6040516020016103ab9291906105e9565b6040516020818303038152906040526103c390610607565b92915050565b5f80825b806001166001036103ed57816103e281610598565b92505060011c6103cd565b5092915050565b6107f88061154c83390190565b6001600160a01b0381168114610415575f5ffd5b50565b5f5f5f5f6080858703121561042b575f5ffd5b845161043681610401565b602086015190945061044781610401565b6040860151606090960151949790965092505050565b634e487b7160e01b5f52601160045260245ffd5b6001815b60018411156104ac578085048111156104905761049061045d565b600184161561049e57908102905b60019390931c928002610475565b935093915050565b5f826104c2575060016103c3565b816104ce57505f6103c3565b81600181146104e457600281146104ee5761050a565b60019150506103c3565b60ff8411156104ff576104ff61045d565b50506001821b6103c3565b5060208310610133831016604e8410600b841016171561052d575081810a6103c3565b6105395f198484610471565b805f190482111561054c5761054c61045d565b029392505050565b5f61055f83836104b4565b9392505050565b6001600160401b0381811683821601908111156103c3576103c361045d565b818103818111156103c3576103c361045d565b5f600182016105a9576105a961045d565b5060010190565b5f81518060208401855e5f93019283525090919050565b5f61055f82846105b0565b5f602082840312156105e2575f5ffd5b5051919050565b5f6105f482856105b0565b60ff199390931683525050601f01919050565b80516020808301519190811015610627575f198160200360031b1b821691505b50919050565b60805160a05160c05160e0516101005161012051610e926106ba5f395f6107e201525f8181610514015281816105660152818161083e01526108ee01525f818161081d01526108cd01525f818161018b0152818161023301526105bb01525f81816102c3015261034001525f81816102740152818161041a0152818161076f01526109230152610e925ff3fe608060405234801561000f575f5ffd5b50600436106100b1575f3560e01c80638ccf6b951161006e5780638ccf6b95146102315780639500ac30146102575780639611c5c21461026f5780639b24b3b014610296578063e97d5a68146102a9578063ffa1ad74146102be575f5ffd5b80631865c57d146100b55780631f6d510b1461015e5780632fb131c814610186578063483f31ab146101c55780635fd3c809146101e65780637a50802214610212575b5f5ffd5b61011c604080516060810182525f808252602082018190529181019190915250604080516060810182526002546001600160801b0319608082901b1682526001600160401b03600160801b820481166020840152600160c01b909104169181019190915290565b6040805182516001600160801b03191681526020808401516001600160401b039081169183019190915292820151909216908201526060015b60405180910390f35b61017161016c366004610cc9565b6102e5565b60408051928352602083019190915201610155565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610155565b6101d86101d3366004610d40565b610763565b604051908152602001610155565b600254600160c01b90046001600160401b03165b6040516001600160401b039091168152602001610155565b6101d8610220366004610d40565b60016020525f908152604090205481565b7f00000000000000000000000000000000000000000000000000000000000000006101ad565b600254600160801b90046001600160401b03166101fa565b6101ad7f000000000000000000000000000000000000000000000000000000000000000081565b6101d86102a4366004610d40565b6108b9565b6102bc6102b7366004610d40565b610918565b005b6101d87f000000000000000000000000000000000000000000000000000000000000000081565b82515f9081907f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f0000000811115610338576040516353bb503760e11b815260040161032f91815260200190565b60405180910390fd5b5060208501517f000000000000000000000000000000000000000000000000000000000000000081811461038857604051632e26721160e21b81526004810192909252602482015260440161032f565b508490507f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f00000008111156103d0576040516311d1480560e21b815260040161032f91815260200190565b50827f30644e72e131a029b85045b68181585d2833e84879b9709143e1f593f000000081111561041657604051633b379f8b60e21b815260040161032f91815260200190565b505f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316633f47ad066040518163ffffffff1660e01b8152600401602060405180830381865afa158015610474573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906104989190610d57565b116104b657604051630c0a9fb960e11b815260040160405180910390fd5b604080516060810182526002546001600160801b0319608082901b168083526001600160401b03600160801b830481166020808601829052600160c01b9094049091168486018190525f8181526001909452949092208054939491937f00000000000000000000000000000000000000000000000000000000000000000361056057610543600183610d82565b6001600160401b0381165f90815260016020526040902090925090505b80545f907f000000000000000000000000000000000000000000000000000000000000000061059960016001600160401b038716610da1565b6105a39190610db4565b6105ad9190610dcb565b90505f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146105e657336105e9565b60055b6040805160e0810182526001600160a01b03831660a082019081524660c08301528152602081018f90529081018d9052606081018c9052608081018490529091505f610634826109cc565b90506106408582610a4e565b506040516001600160801b031989166020820152603081018290525f9060500160408051601f198184030181528282528051602091820120606084019092526001600160801b031982168352909250810161069c8a6001610d82565b6001600160401b0390811682528981166020928301819052835160028054948601516040968701518516600160c01b026001600160c01b0391909516600160801b026001600160c01b031990961660809390931c9290921794909417169190911790915590518391907fe3afb584bcff3adb9d452d2e1ccbcd4aee164ae2a8cdab637aecf866a53fbb779061074790899086909182526001600160801b031916602082015260400190565b60405180910390a3509d929c50919a5050505050505050505050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107ad5760405163e5336a6b60e01b815260040160405180910390fd5b600254600160c01b90046001600160401b03168083106107e05760405163c490199960e01b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001841115610865575f848152600160205260408120610862917f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610acf565b90505b6001600160401b03821661087a856001610dcb565b036108b25761088a826001610d82565b600280546001600160401b0392909216600160c01b026001600160c01b039092169190911790555b9392505050565b5f81815260016020526040812061091290827f00000000000000000000000000000000000000000000000000000000000000007f0000000000000000000000000000000000000000000000000000000000000000610acf565b92915050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146109615760405163e5336a6b60e01b815260040160405180910390fd5b61097461096f826002610dcb565b610bd0565b600280546001600160c01b0316600160c01b6001600160401b03938416810291909117918290556040519104909116907f826300da0d32306d628f39d6b4b0460fe249f87d056ac97243499ed3c6d7fcdc905f90a250565b5f610912825f01518360200151846040015185606001518660800151604051602001610a3a95949392919085516001600160a01b03168152602095860151868201528451604082015293909401516060840152608083019190915260a082015260c081019190915260e00190565b604051602081830303815290604052610c09565b81545f9081610a5c82610c9e565b9050835f5b82811015610a9f575f81815260018801602090815260409182902054825191820152908101839052610a9590606001610a3a565b9150600101610a61565b505f82815260018701602052604081208290558654908790610ac083610dde565b90915550929695505050505050565b83545f90808203610aef5750505f82815260208490526040902054610bc8565b828103610b0d5750505f828152600185016020526040902054610bc8565b5f610b19600183610da1565b90505f610b2582610c9e565b5f81815260018a01602052604090205490915082821c825b88811015610bbf576001808316148015610b84575f82815260018d01602090815260409182902054825191820152908101859052610b7d90606001610a3a565b9350610bb2565b5f82815260208c8152604091829020549151610baf92610a3a92889201918252602082015260400190565b93505b50600191821c9101610b3d565b50909450505050505b949350505050565b5f6001600160401b03821115610c0557604080516306dfcc6560e41b815260048101919091526024810183905260440161032f565b5090565b6040805160018082528183019092525f9160208201818036833701905050600283604051610c379190610e0d565b602060405180830381855afa158015610c52573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610c759190610d57565b604051602001610c86929190610e18565b60405160208183030381529060405261091290610e36565b5f80825b80600116600103610cc25781610cb781610dde565b92505060011c610ca2565b5092915050565b5f5f5f8385036080811215610cdc575f5ffd5b6040811215610ce9575f5ffd5b50604051604081018181106001600160401b0382111715610d1857634e487b7160e01b5f52604160045260245ffd5b6040908152853582526020808701359083015290969085013595506060909401359392505050565b5f60208284031215610d50575f5ffd5b5035919050565b5f60208284031215610d67575f5ffd5b5051919050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b03818116838216019081111561091257610912610d6e565b8181038181111561091257610912610d6e565b808202811582820484141761091257610912610d6e565b8082018082111561091257610912610d6e565b5f60018201610def57610def610d6e565b5060010190565b5f81518060208401855e5f93019283525090919050565b5f6108b28284610df6565b5f610e238285610df6565b60ff199390931683525050601f01919050565b80516020808301519190811015610e56575f198160200360031b1b821691505b5091905056fea2646970667358221220a4b2196b9eae2c5fb5b3b0df3ced3b5e3555a51ba56dd63071d3dafa7fe2861e64736f6c634300081e0033610100604052348015610010575f5ffd5b506040516107f83803806107f883398101604081905261002f91610067565b6001600160a01b0393841660805290831660a052911660c05260e0526100b7565b6001600160a01b0381168114610064575f5ffd5b50565b5f5f5f5f6080858703121561007a575f5ffd5b845161008581610050565b602086015190945061009681610050565b60408601519093506100a781610050565b6060959095015193969295505050565b60805160a05160c05160e0516106ec61010c5f395f8181610168015261019901525f818161014101528181610218015261039601525f818161011a015261027a01525f818160db015261034b01526106ec5ff3fe608060405234801561000f575f5ffd5b506004361061007a575f3560e01c80639611c5c2116100585780639611c5c2146100d6578063b701069714610115578063c5d664c61461013c578063ffa1ad7414610163575f5ffd5b8063284b5dc61461007e5780632dc81c62146100ab57806348fef595146100c1575b5f5ffd5b61009161008c3660046105b2565b61018a565b604080519283526020830191909152015b60405180910390f35b6100b3600581565b6040519081526020016100a2565b6100d46100cf3660046105db565b610340565b005b6100fd7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020016100a2565b6100fd7f000000000000000000000000000000000000000000000000000000000000000081565b6100fd7f000000000000000000000000000000000000000000000000000000000000000081565b6100b37f000000000000000000000000000000000000000000000000000000000000000081565b604080518082018252600581527f00000000000000000000000000000000000000000000000000000000000000006020820152905160248101859052604481018490525f91829182906102099060640160408051601f198184030181529190526020810180516001600160e01b0316630c7e892d60e31b179052610404565b90506102406001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001633308961049f565b604051631f6d510b60e01b8152825160048201526020830151602482015260448101829052606481018690525f9081906001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690631f6d510b9060840160408051808303815f875af11580156102bf573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e39190610610565b604080518b8152602081018b905290810183905260608101829052919350915089907fcb43dda0de11e57048e9d074ae7474446335afc906a0e5789d624fa5422629e39060800160405180910390a2909890975095505050505050565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610389576040516333f1b48f60e11b815260040160405180910390fd5b6103bd6001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016838361050c565b816001600160a01b03167f63be20cc905d5ba0cf65db405c4999f99f2575e521875f13a8009d6eed7a09d9826040516103f891815260200190565b60405180910390a25050565b6040805160018082528183019092525f91602082018180368337019050506002836040516104329190610649565b602060405180830381855afa15801561044d573d5f5f3e3d5ffd5b5050506040513d601f19601f82011682018060405250810190610470919061065b565b604051602001610481929190610672565b60405160208183030381529060405261049990610690565b92915050565b6040516001600160a01b0384811660248301528381166044830152606482018390526105069186918216906323b872dd906084015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050610542565b50505050565b6040516001600160a01b0383811660248301526044820183905261053d91859182169063a9059cbb906064016104d4565b505050565b5f5f60205f8451602086015f885af180610561576040513d5f823e3d81fd5b50505f513d91508115610578578060011415610585565b6001600160a01b0384163b155b1561050657604051635274afe760e01b81526001600160a01b038516600482015260240160405180910390fd5b5f5f5f606084860312156105c4575f5ffd5b505081359360208301359350604090920135919050565b5f5f604083850312156105ec575f5ffd5b82356001600160a01b0381168114610602575f5ffd5b946020939093013593505050565b5f5f60408385031215610621575f5ffd5b505080516020909101519092909150565b5f81518060208401855e5f93019283525090919050565b5f6106548284610632565b9392505050565b5f6020828403121561066b575f5ffd5b5051919050565b5f61067d8285610632565b60ff199390931683525050601f01919050565b805160208083015191908110156106b0575f198160200360031b1b821691505b5091905056fea2646970667358221220b305768de4b9e20a47bee039b8760dbcae38a9bb40de0aef62c14d2c5062452264736f6c634300081e003360c060405234801561000f575f5ffd5b50604051610bc9380380610bc983398101604081905261002e91610044565b6001600160a01b0390911660805260a05261007b565b5f5f60408385031215610055575f5ffd5b82516001600160a01b038116811461006b575f5ffd5b6020939093015192949293505050565b60805160a051610b0b6100be5f395f8181610119015261031501525f818160da0152818161013e0152818161026a0152818161051001526105500152610b0b5ff3fe608060405234801561000f575f5ffd5b5060043610610060575f3560e01c80632249f6531461006457806369d2854e1461008a5780637fb34967146100ad57806394596433146100c25780639611c5c2146100d5578063ffa1ad7414610114575b5f5ffd5b61007761007236600461082f565b61013b565b6040519081526020015b60405180910390f35b61009d610098366004610846565b6101dc565b6040519015158152602001610081565b6100c06100bb366004610866565b610211565b005b6100c06100d0366004610846565b610505565b6100fc7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b039091168152602001610081565b6100777f000000000000000000000000000000000000000000000000000000000000000081565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa158015610198573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101bc91906108ff565b8211156101ca57505f919050565b505f9081526020819052604090205490565b5f82815260208181526040808320600885901c8452600190810190925282205460ff84169190911b1615155b90505b92915050565b61010081106102335760405163879f16c160e01b815260040160405180910390fd5b82816001811b82106102665760405163d49140f560e01b8152600481019290925260248201526044015b60405180910390fd5b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156102c4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906102e891906108ff565b841115849061030d57604051630e194a6d60e01b815260040161025d91815260200190565b5060208501357f000000000000000000000000000000000000000000000000000000000000000081811461035d5760405163deae896760e01b81526004810192909252602482015260440161025d565b5061037090506060860160408701610931565b6001600160a01b0316331461038b6060870160408801610931565b3390916103be576040516357aad58160e01b81526001600160a01b0392831660048201529116602482015260440161025d565b5050466060860135146103e4576040516315dfb1f160e21b815260040160405180910390fd5b5f8481526020819052604090208054858161041557604051635228479160e11b815260040161025d91815260200190565b505f610424866001861b61094a565b600881901c5f90815260018581016020526040909120549192508891839160ff83161b161561046f57604051633f5c70b560e21b81526004810192909252602482015260440161025d565b505f905061048a610485368b90038b018b6109cd565b610631565b90506104998686838a8761069a565b600882901c5f90815260018581016020526040909120805460ff85169290921b90911790558083897f34bc3301c4660a5642d2246e175e7fea498c94258d39dcaa555a52464dbb083d856040516104f291815260200190565b60405180910390a4505050505050505050565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461054e5760405163164a486160e11b815260040160405180910390fd5b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031663b67d057b6040518163ffffffff1660e01b8152600401602060405180830381865afa1580156105aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105ce91906108ff565b821182906105f257604051633374167360e21b815260040161025d91815260200190565b505f8281526020819052604080822083905551829184917f47e13ec4cc37e31e3a4f25115640068ffbe4bee53b32f0953fa593388e69fc0f9190a35050565b80518051602091820151828401518051908401516040808701518151968701959095528501929092526bffffffffffffffffffffffff19606091821b1690840152607483015260948201525f9061020b9060b4015b60405160208183030381529060405261079a565b82825f5b8681101561073357600180831614806106ed576106e8848a8a858181106106c7576106c7610a5b565b90506020020135604051602001610686929190918252602082015260400190565b610724565b61072489898481811061070257610702610a5b565b9050602002013585604051602001610686929190918252602082015260400190565b935050600191821c910161069e565b508015610753576040516398e37ec960e01b815260040160405180910390fd5b8282868682841461078d57604051635f216bf160e01b8152600481019490945260248401929092526044830152606482015260840161025d565b5050505050505050505050565b6040805160018082528183019092525f91602082018180368337019050506002836040516107c89190610a86565b602060405180830381855afa1580156107e3573d5f5f3e3d5ffd5b5050506040513d601f19601f8201168201806040525081019061080691906108ff565b604051602001610817929190610a91565b60405160208183030381529060405261020b90610aaf565b5f6020828403121561083f575f5ffd5b5035919050565b5f5f60408385031215610857575f5ffd5b50508035926020909101359150565b5f5f5f5f5f85870361010081121561087c575f5ffd5b60a0811215610889575f5ffd5b5085945060a0850135935060c0850135925060e085013567ffffffffffffffff8111156108b4575f5ffd5b8601601f810188136108c4575f5ffd5b803567ffffffffffffffff8111156108da575f5ffd5b8860208260051b84010111156108ee575f5ffd5b959894975092955050506020019190565b5f6020828403121561090f575f5ffd5b5051919050565b80356001600160a01b038116811461092c575f5ffd5b919050565b5f60208284031215610941575f5ffd5b61020882610916565b8082018082111561020b57634e487b7160e01b5f52601160045260245ffd5b6040516060810167ffffffffffffffff8111828210171561099857634e487b7160e01b5f52604160045260245ffd5b60405290565b6040805190810167ffffffffffffffff8111828210171561099857634e487b7160e01b5f52604160045260245ffd5b5f81830360a0811280156109df575f5ffd5b506109e8610969565b60408212156109f5575f5ffd5b6109fd61099e565b843581526020808601359082015281526040603f1983011215610a1e575f5ffd5b610a2661099e565b9150610a3460408501610916565b82526060840135602080840191909152810191909152608090920135604083015250919050565b634e487b7160e01b5f52603260045260245ffd5b5f81518060208401855e5f93019283525090919050565b5f6102088284610a6f565b5f610a9c8285610a6f565b60ff199390931683525050601f01919050565b80516020808301519190811015610acf575f198160200360031b1b821691505b5091905056fea2646970667358221220197fd3a9fb1a0256994492f1f3c0d2e7ed8f2a83360a36431806c733206e27d564736f6c634300081e0033000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2000000000000000000000000a92ecfd0e70c9cd5e5cd76c50af0f7da93567a4f00000000000000000000000077e3ba096355510e0e9f60d292010b42d662d2b50000000000000000000000001102471eb3378fee427121c9efcea452e4b6b75e229eadb7c540c82204b5373633d3c25557f8264ad8fca760660fe853e5275e3912e9aa367b065eff3e48912b8cae62209970117d34a8c9ef1e9e4116e41bc8d61f9c798be7975bb34c3e605a4c92c75796eae7b9a08644bc9a6a55354ed470be00000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bbb4af368d02827945748b28cd4b2d42e4a37480000000000000000000000000000000000000000000000000000000000003f48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d6a1b00c830c5f278fc5dfb3f6ff0b74db6dfe00000000000000000000000000000000000000000000000000000000000001b580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000001e8480000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000029812e690b7e7280000000000000000000000000000000000000000000000000000000000000698c8b60
Deployed Bytecode
0x608060405234801561000f575f5ffd5b50600436106106bf575f3560e01c8063850bee3511610375578063c4014c12116101d4578063e199c05911610109578063ee3b8dc2116100a9578063f85494de11610084578063f85494de14610fe1578063f89d408614610ff4578063fcb3f6ba1461102b578063fd55f8a31461105d575f5ffd5b8063ee3b8dc214610fb3578063f1babf7414610fc6578063f2fde38b14610fce575f5ffd5b8063e6e28440116100e4578063e6e2844014610ed2578063ec14780614610ee5578063ed9187b714610f8e578063ede57c3414610fab575f5ffd5b8063e199c05914610e97578063e3380b7914610eaa578063e48a5f7b14610eb2575f5ffd5b8063d43b51d111610174578063dc1bb8f41161014f578063dc1bb8f414610e27578063dfff3ebc14610e3a578063e09e424e14610e4d578063e0fae2a914610e84575f5ffd5b8063d43b51d114610e04578063d768df6e14610e0c578063d8e3784c14610e1f575f5ffd5b8063ca3dc9ec116101af578063ca3dc9ec14610d89578063cf20d87214610d91578063d03b2bae14610dc1578063d0c80f1314610dd4575f5ffd5b8063c4014c1214610d42578063c7523d7914610d63578063c9d1e01214610d76575f5ffd5b8063a2429e88116102aa578063af584dd31161024a578063b97dd9e211610225578063b97dd9e214610d0c578063b9d0916314610d14578063c27f08b514610d27578063c2cac49d14610d3a575f5ffd5b8063af584dd314610ce9578063b1ba85ab14610cfc578063b67d057b14610d04575f5ffd5b8063aa10df4c11610285578063aa10df4c14610ca8578063aabc249614610cb0578063ae36b7be14610cc3578063ae89558114610cd6575f5ffd5b8063a2429e8814610c7a578063a32fbb7b14610c8d578063a7f8e64614610c95575f5ffd5b806390a3b386116103155780639ca03702116102f05780639ca0370214610c135780639e0fedd814610c335780639f2b315414610c55578063a011f6a914610c5d575f5ffd5b806390a3b38614610be357806391ee8b6414610beb578063966ab4ee14610c0b575f5ffd5b80638990cf69116103505780638990cf6914610b815780638ccf6b9514610bb75780638da5cb5b14610bbf5780638fcc697a14610bd0575f5ffd5b8063850bee3514610b5e5780638789a13214610b6657806388e4a07314610b79575f5ffd5b806348b9e57b11610521578063715018a611610456578063754eddb7116103f65780637de3ca89116103d15780637de3ca8914610b1557806380207deb14610b1d57806380edb5bd14610b3057806384b0196e14610b43575f5ffd5b8063754eddb714610ac857806379ed8ead14610adb5780637afeed2814610b02575f5ffd5b8063730d652c11610431578063730d652c14610a6d5780637468582f14610a8057806374af185e14610a8d57806374e0a89d14610aa0575f5ffd5b8063715018a614610a28578063723d8e9614610a3057806372c6c71014610a4d575f5ffd5b80635f82401f116104c15780636902c67b1161049c5780636902c67b146109da57806369457a6f146109ed57806370192e5614610a005780637125dc1314610a20575f5ffd5b80635f82401f1461099457806365e50a3e146109b457806368faa778146109c7575f5ffd5b80635a97eaa1116104fc5780635a97eaa1146109385780635c82926c1461094b5780635d3ea8f1146109535780635dc0ff9414610974575f5ffd5b806348b9e57b146109205780634eb4a4d614610928578063508ac49b14610930575f5ffd5b80632b6df14b116105f757806338b39d29116105975780634267d0bd116105725780634267d0bd146108b257806342d21ef7146108ba57806346c6dfdf146108fa57806348aeda191461090d575f5ffd5b806338b39d29146108885780633b10244b146108a25780633f47ad06146108aa575f5ffd5b806334a51ed5116105d257806334a51ed514610813578063368c093c146108335780633777e86314610853578063386f56fc14610866575f5ffd5b80632b6df14b146107cd57806330ccebb5146107e05780633334f7dc14610800575f5ffd5b80631cfe28781161066257806328e07ac31161063d57806328e07ac31461079757806329176625146107aa5780632980c31e146107bd57806329c24030146107c5575f5ffd5b80631cfe28781461074e5780631d9349751461076e57806325b2236614610776575f5ffd5b806304c075691161069d57806304c07569146107165780630d8e6e2c1461073657806310073ff01461073e5780631b56a0e714610746575f5ffd5b80630121b93f146106c357806302a21460146106d857806302fb4d85146106f3575b5f5ffd5b6106d66106d1366004614026565b611070565b005b6106e06110d3565b6040519081526020015b60405180910390f35b610706610701366004614061565b611105565b60405190151581526020016106ea565b610729610724366004614026565b611192565b6040516106ea919061408b565b6106e0611212565b6106e061122a565b6106e061129b565b61076161075c366004614026565b6112a4565b6040516106ea919061410d565b6106d66112b2565b5f516020615c665f395f51905f5254600160c01b900463ffffffff166106e0565b6107066107a5366004614061565b611313565b6106e06107b8366004614026565b61131e565b6106e061139f565b6106e06113e7565b6106d66107db366004614026565b6113f0565b6107f36107ee366004614158565b611430565b6040516106ea91906141a7565b61070661080e3660046141b5565b61143a565b610826610821366004614158565b611493565b6040516106ea919061425a565b61083b6114a4565b6040516001600160a01b0390911681526020016106ea565b6106e0610861366004614026565b6114bf565b6106e05f516020615c465f395f51905f5254600160a01b900463ffffffff1690565b734355415548584943414c4c49000000000000000061083b565b61083b6114f1565b6106e06114fb565b6106e0611504565b6108cd6108c8366004614026565b61151e565b604080519687526020870195909552938501929092526060840152608083015260a082015260c0016106ea565b6106d661090836600461429d565b61158e565b6106d661091b366004614527565b6115c5565b6106e0611645565b6106e0611658565b6106d6611661565b6106e0610946366004614026565b61166b565b6106e06116ad565b5f516020615c665f395f51905f5254600160a01b900463ffffffff166106e0565b610987610982366004614158565b6116ce565b6040516106ea91906145ed565b6109a76109a2366004614026565b6116df565b6040516106ea91906145fb565b6106d66109c2366004614612565b6116fb565b6106e06109d536600461467e565b61173a565b6106d66109e83660046146f3565b611745565b6107616109fb366004614026565b6117ba565b610a13610a0e3660046147a0565b611831565b6040516106ea91906147c3565b6106e0611862565b6106d6611891565b5f516020615c665f395f51905f52546001600160801b03166106e0565b610a60610a5b366004614026565b6118a2565b6040516106ea91906147ee565b6106d6610a7b366004614838565b6118e0565b6004546107069060ff1681565b6106e0610a9b366004614026565b611985565b610ab3610aae366004614026565b61198f565b604080519283526020830191909152016106ea565b6106e0610ad63660046147a0565b611a0e565b6106e07f00000000000000000000000000000000000000000000000000000000016af55481565b6106e0610b10366004614026565b611a21565b6106e0611a45565b6106d6610b2b3660046148fd565b611a8d565b6106e0610b3e366004614026565b611b47565b610b4b611b51565b6040516106ea9796959493929190614a17565b61083b611b93565b6106e0610b74366004614158565b611bb6565b6109a7611bf2565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb45468010000000000000000900460ff16610706565b61083b611c16565b6002546001600160a01b031661083b565b6106d6610bde366004614aad565b611c31565b6106e0611ccc565b610bfe610bf9366004614ac8565b611cd6565b6040516106ea9190614b74565b610761611d69565b610c26610c21366004614026565b611d76565b6040516106ea9190614b86565b610c46610c41366004614c1c565b611d87565b6040516106ea93929190614c5a565b6106d6611e1b565b5f516020615c265f395f51905f52546001600160a01b031661083b565b6106d6610c88366004614026565b611e5d565b61083b611e71565b61083b610ca3366004614026565b611e8c565b6106e0611e96565b6106d6610cbe366004614158565b611ee9565b610ab3610cd13660046141b5565b611f31565b6106d6610ce4366004614d66565b611fc8565b6106d6610cf7366004614dd9565b612037565b6106e06120a3565b6106e06120f6565b6106e061210f565b6106e0610d22366004614026565b612119565b61083b610d35366004614026565b612123565b6106d66121a4565b5f516020615c665f395f51905f5254600160801b900463ffffffff166106e0565b6106e0610d71366004614158565b6121e6565b6106e0610d84366004614026565b612228565b6106e0612232565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163a546001600160a01b031661083b565b6106e0610dcf366004614026565b612261565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cae546001600160a01b031661083b565b6106e061226b565b6106e0610e1a366004614e44565b61227f565b6106e06122f9565b610706610e35366004614026565b612303565b6106e0610e48366004614158565b61230d565b7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cae54600160a01b90046001600160601b03166106e0565b610ab3610e92366004614026565b612317565b6106d6610ea5366004614026565b61235a565b6106d6612392565b610ec5610ec0366004614158565b6123d4565b6040516106ea9190614ee9565b6106d6610ee0366004614026565b6123ff565b610f81604080516080810182525f8082526020820181905291810182905260608101919091527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a16376040805160808101825260038301546001600160a01b038082168352600160a01b9182900463ffffffff1660208401526004909401549384169282019290925291046001600160601b03166060820152919050565b6040516106ea9190614ef7565b5f516020615c465f395f51905f52546001600160a01b031661083b565b6106e061250c565b610706610fc1366004614f3f565b612568565b6106e06125b2565b6106d6610fdc366004614158565b6125fa565b6106d6610fef366004614158565b612634565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163b54600160a01b90046001600160601b03166106e0565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163c54640100000000900460ff16610706565b6106e061106b366004614026565b612674565b604051630121b93f60e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd3190630121b93f906024015b5f6040518083038186803b1580156110ba575f5ffd5b505af41580156110cc573d5f5f3e3d5ffd5b5050505050565b5f5f6110dd61267e565b9050806001015f6110f1835f015460801c90565b81526020019081526020015f205491505090565b6040516302fb4d8560e01b81526001600160a01b0383166004820152602481018290525f9073e525c64ee3bb9a0ed18e42504d313128ed19fd31906302fb4d85906044015b602060405180830381865af4158015611165573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190614f6b565b90505b92915050565b61119a613e4b565b5f6111a4836126a2565b90506040518060e001604052806111b961267e565b6001015f8681526020019081526020015f20548152602001825f01518152602001826020015181526020018260400151815260200182606001518152602001826080015181526020018260a00151815250915050919050565b5f61121b61267e565b6005015463ffffffff16919050565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd316310073ff06040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906112969190614f86565b905090565b5f611296612704565b606061118c6109fb83612228565b60405163e199c05960e01b81525f19600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063e199c059906024015f6040518083038186803b1580156112fb575f5ffd5b505af415801561130d573d5f5f3e3d5ffd5b50505050565b5f611189838361272e565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31632917662561134284612228565b6040518263ffffffff1660e01b815260040161136091815260200190565b602060405180830381865af415801561137b573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190614f86565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31632980c31e6040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b5f611296612783565b6113f86127a4565b604051632b6df14b60e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd3190632b6df14b906024016110a4565b5f61118c826127d1565b5f8381527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163860209081526040808320858452600190810183528184206001600160a01b03861685520190915290205415155b9392505050565b61149b613eac565b61118c826128a2565b5f6114ad61267e565b600801546001600160a01b0316919050565b5f5f6114c961267e565b805490915060801c8311156114de575f61148c565b5f92835260010160205250604090205490565b5f61129642612123565b5f611296612979565b5f61129661151061226b565b611518612990565b906129af565b5f5f5f5f5f5f5f61152d61267e565b90505f61153c825f01546129c1565b6020808201515f8181526001860190925260408083205484518085529190932054939450909261156b8d6114bf565b6115788660200151611b47565b949e939d50919b50995097509095509350505050565b604051630f484ad560e01b8152731e0a5d9f39c4393b71dd4c6d038be4b77266c1a490630f484ad5906110a49084906004016150c5565b60048054604051630a8f70b360e31b8152731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49263547b859892611610928c928c928c928c928c928c928c9260ff90921691016152c1565b5f6040518083038186803b158015611626575f5ffd5b505af4158015611638573d5f5f3e3d5ffd5b5050505050505050505050565b5f61129661165161267e565b5460801c90565b5f611296612990565b6116696129fd565b565b5f8181527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a16386020526040812054600160801b90046001600160801b031661118c565b5f5f6116b761267e565b80549091506116c89060801c612b35565b91505090565b6116d6613ef7565b61118c82612b49565b604080518082019091525f808252602082015261118c82612bd5565b6117036127a4565b6040516347817b3960e11b815273e525c64ee3bb9a0ed18e42504d313128ed19fd3190638f02f672906110a49084906004016147ee565b5f6111898383612ca4565b604051630f0ec5ad60e41b815273e525c64ee3bb9a0ed18e42504d313128ed19fd319063f0ec5ad09061178690899089908990899089908990600401615404565b5f6040518083038186803b15801561179c575f5ffd5b505af41580156117ae573d5f5f3e3d5ffd5b50505050505050505050565b60405163039fc50f60e31b81526004810182905260609073e525c64ee3bb9a0ed18e42504d313128ed19fd3190631cfe2878906024015f60405180830381865af415801561180a573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405261118c9190810190615480565b61185860405180608001604052805f81526020015f81526020015f81526020015f81525090565b6111898383612dbd565b5f6112967f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163c5463ffffffff1690565b6118996127a4565b6116695f612dfb565b6118cf6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b61118c6118db83612e4c565b612e60565b6118e86127a4565b60405163e3a6a60b60e01b8152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063e3a6a60b9061191f908490600401614ef7565b5f6040518083038186803b158015611935575f5ffd5b505af4158015611947573d5f5f3e3d5ffd5b505050507f36375d1f1abd9940cbda583ace84a7a8a60c2e1d6a12156d68d35a5cbd7793c28160405161197a9190614ef7565b60405180910390a150565b5f61118c82612ef1565b60405163e0fae2a960e01b8152600481018290525f90819073e525c64ee3bb9a0ed18e42504d313128ed19fd319063e0fae2a9906024015b6040805180830381865af41580156119e1573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a05919061550f565b91509150915091565b5f611189611a1c8484611831565b612f18565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637afeed2861134284612228565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637de3ca896040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b5f429050731e0a5d9f39c4393b71dd4c6d038be4b77266c1a463f436059e6040518060a001604052808c803603810190611ac791906155a6565b8152602001878152602001611add856001611a0e565b8152602001868152602001858152508a8a8a8a6040518663ffffffff1660e01b8152600401611b1095949392919061562c565b5f6040518083038186803b158015611b26575f5ffd5b505af4158015611b38573d5f5f3e3d5ffd5b50505050505050505050505050565b5f61118c82612f3a565b5f6060805f5f5f6060611b62612f8a565b611b6a612fb6565b604080515f80825260208201909252600f60f81b9b939a50919850469750309650945092509050565b5f611b9c61267e565b6005015464010000000090046001600160a01b0316919050565b6001600160a01b0381165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a1637602052604081205461118c565b604080518082019091525f8082526020820152611296611c1061267e565b546129c1565b5f611c1f61267e565b600601546001600160a01b0316919050565b611c396127a4565b60405163c0ebae5360e01b81528115156004820152730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063c0ebae53906024015f6040518083038186803b158015611c83575f5ffd5b505af4158015611c95573d5f5f3e3d5ffd5b505050507ffa50fc5c953ca42e5b6a7acac6e13c95c2ec283b259630f1d839e445fcec8c948160405161197a911515815260200190565b5f61129642612fe3565b60405163d99537c960e01b8152606090731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49063d99537c990611d1c908b908b908b908b908b908b908b90600401615742565b5f60405180830381865af4158015611d36573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611d5d91908101906157ea565b98975050505050505050565b60606112966109fb61210f565b611d7e613f34565b61118c8261303d565b6004805460405163f711e6c360e01b81526060925f928492731e0a5d9f39c4393b71dd4c6d038be4b77266c1a49263f711e6c392611dcd928a928a9260ff16910161581b565b5f60405180830381865af4158015611de7573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052611e0e9190810190615840565b9250925092509250925092565b731e0a5d9f39c4393b71dd4c6d038be4b77266c1a4639f2b31546040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b611e656127a4565b611e6e8161306f565b50565b5f611e7a61267e565b600901546001600160a01b0316919050565b5f61118c826130a3565b5f516020615c465f395f51905f525460408051635a56229b60e11b815290515f926001600160a01b03169163b4ac45369160048083019260209291908290030181865afa158015611272573d5f5f3e3d5ffd5b611ef16127a4565b60405163555e124b60e11b81526001600160a01b038216600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063aabc2496906024016110a4565b60405163571b5bdf60e11b815260048101849052602481018390526001600160a01b03821660448201525f90819073e525c64ee3bb9a0ed18e42504d313128ed19fd319063ae36b7be906064016040805180830381865af4158015611f98573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fbc919061550f565b91509150935093915050565b60405163029553b560e21b815273e525c64ee3bb9a0ed18e42504d313128ed19fd3190630a554ed49061200590879087908790879060040161599e565b5f6040518083038186803b15801561201b575f5ffd5b505af415801561202d573d5f5f3e3d5ffd5b5050505050505050565b6040516333ab76ab60e01b815273e525c64ee3bb9a0ed18e42504d313128ed19fd31906333ab76ab90612072908690869086906004016159da565b5f6040518083038186803b158015612088575f5ffd5b505af415801561209a573d5f5f3e3d5ffd5b50505050505050565b5f516020615c465f395f51905f525460408051636de42ba960e11b815290515f926001600160a01b03169163dbc857529160048083019260209291908290030181865afa158015611272573d5f5f3e3d5ffd5b5f61129661210261267e565b546001600160801b031690565b5f61129642613106565b5f61118c82613162565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163c27f08b561214784613162565b6040518263ffffffff1660e01b815260040161216591815260200190565b602060405180830381865af4158015612180573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190615a04565b73e525c64ee3bb9a0ed18e42504d313128ed19fd3163c2cac49d6040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b60405163c7523d7960e01b81526001600160a01b03821660048201525f90730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063c7523d7990602401611360565b5f61118c82613106565b5f6112967fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb45463ffffffff1690565b5f61118c82613196565b5f61129661227a61165161267e565b6131cf565b604051636bb46fb760e11b81525f90730eacc6ccb04fa57f85ee3cf5a6ddfd74a84c6cba9063d768df6e906122ba9086908690600401615a1f565b602060405180830381865af41580156122d5573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906111899190614f86565b5f61129642613162565b5f61118c826131f2565b5f61118c82613263565b5f5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163e0fae2a961233c85612228565b6040518263ffffffff1660e01b81526004016119c791815260200190565b60405163e199c05960e01b81526004810182905273e525c64ee3bb9a0ed18e42504d313128ed19fd319063e199c059906024016110a4565b73e525c64ee3bb9a0ed18e42504d313128ed19fd3163e3380b796040518163ffffffff1660e01b81526004015f6040518083038186803b1580156112fb575f5ffd5b604080516080810182525f918101828152606082018390528152602081019190915261118c826132b4565b6124076127a4565b5f6124215f516020615c865f395f51905f525b5460c01c90565b905080828181101561245457604051630d1bff9560e21b8152600481019290925260248201526044015b60405180910390fd5b505061245f82613351565b8015801561246c57505f82115b156124de575f61247a61267e565b60088101548154604051631d2fab4d60e31b815260809190911c60048201529192506001600160a01b03169063e97d5a68906024015f604051808303815f87803b1580156124c6575f5ffd5b505af11580156124d8573d5f5f3e3d5ffd5b50505050505b60405182907faaa1053539ab4621b2aecf54a7ccf2096610ff768f32261f667aca9ae3069482905f90a25050565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd31637afeed2861252f61210f565b6040518263ffffffff1660e01b815260040161254d91815260200190565b602060405180830381865af4158015611272573d5f5f3e3d5ffd5b60405163771dc6e160e11b81526001600160a01b038084166004830152821660248201525f9073e525c64ee3bb9a0ed18e42504d313128ed19fd319063ee3b8dc29060440161114a565b5f73e525c64ee3bb9a0ed18e42504d313128ed19fd3163f1babf746040518163ffffffff1660e01b8152600401602060405180830381865af4158015611272573d5f5f3e3d5ffd5b6126026127a4565b6001600160a01b03811661262b57604051631e4fbdf760e01b81525f600482015260240161244b565b611e6e81612dfb565b604051637c2a4a6f60e11b81526001600160a01b038216600482015273e525c64ee3bb9a0ed18e42504d313128ed19fd319063f85494de906024016110a4565b5f61118c82612b35565b7f0958201b72d64259285941dffd868dac55267471fcc73e8a06e1fd9cf870636190565b6126aa613fd0565b61118c6126b68361339c565b6040805160c081018252825481526001830154602082015260028301549181019190915260038201546060820152600482015463ffffffff16608082015260059091015460a0820152613438565b5f6112967fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb261349b565b6001600160a01b0382165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163960209081526040808320600885901c8452909152812054600160ff84161b161515611189565b5f516020615c865f395f51905f5280545f91906116c89060c01c6002615a88565b6002546001600160a01b031633146116695760405163118cdaa760e01b815233600482015260240161244b565b5f5f6127dc83612b49565b90505f5f516020615c265f395f51905f5260020154604051630a6718eb60e31b81523060048201526001600160a01b03868116602483015290911690635338c75890604401602060405180830381865afa15801561283c573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906128609190614f86565b90505f8260a001511561288757826080015161287d576002612880565b60035b905061289a565b5f8211612894575f612897565b60015b90505b949350505050565b6128aa613eac565b60405180608001604052806128be846127d1565b60038111156128cf576128cf614173565b81526020015f516020615c265f395f51905f5260020154604051630a6718eb60e31b81523060048201526001600160a01b03868116602483015290911690635338c75890604401602060405180830381865afa158015612931573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129559190614f86565b815260200161296384612b49565b8152602001612971846132b4565b905292915050565b5f6112965f516020615c865f395f51905f5261241a565b5f6112965f516020615c865f395f51905f52546001600160401b031690565b5f6111898383633b9aca0060016134ce565b604080518082019091525f808252602082015260405180604001604052806129e98460801c90565b81526020016001600160801b038416612971565b5f612a0742613162565b7f2e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652d549091505f516020615c865f395f51905f52905f90612a5f90600160e01b900463ffffffff16612a5a60056002613510565b61351b565b905082811115612a6e57505050565b604080516060810182526001840154600160701b90046001600160701b03168152815180830190925248825290602080830191612aaf9181014a9052613526565b6001600160701b03168152602001612ad0612acb86600261351b565b61356b565b63ffffffff9081169091528151600190940180546020840151604090940151909216600160e01b026001600160e01b036001600160701b03948516600160701b026001600160e01b031990941694909616939093179190911793909316179091555050565b5f612b3f8261339c565b6001015492915050565b612b51613ef7565b5f516020615c265f395f51905f526001600160a01b039283165f90815260039182016020908152604091829020825160c08101845281548152600182015492810192909252600281015492820192909252910154928316606082015260ff600160a01b8404811615156080830152600160a81b909304909216151560a08301525090565b604080518082019091525f80825260208201525f516020615c865f395f51905f52612c19612c0284613162565b6001830154600160e01b900463ffffffff165b1190565b612c645760018101546040805180820182525f8082526020918201528151808301909252600160701b909204603881901c66ffffffffffffff9081168352169181019190915261148c565b60018101546040805180820182525f808252602091820152815180830190925266ffffffffffffff603884901c811683529092169181019190915261148c565b6001600160a01b0381165f9081527f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163960209081526040808320600886901c84529091528120547f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163790600160ff86161b1615612d22575f91505061118c565b5f84815260018083016020908152604080842080546001600160801b0316855280840183528185206001600160a01b0389168652938401909252832054909203612d71575f935050505061118c565b805482546001600160a01b0387165f908152600184016020526040902054612da991600160801b90046001600160801b031690615a88565b612db39190615ab3565b9695505050505050565b612de460405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f612dee84613575565b905061289a8185856135af565b600280546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b5f612e568261339c565b6005015492915050565b612e8d6040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b506040805160a081018252602083811c65ffffffffffff908116835263ffffffff851691830191909152605084901c1691810191909152608082811c6001600160401b0316606083015260c09290921c677fffffffffffffff169181019190915290565b5f5f516020615c665f395f51905f525461118c90600160a01b900463ffffffff1683615ab3565b8051606082015160408301515f9291612f3091615ac6565b61118c9190615ac6565b5f5f612f4461267e565b805490915060801c8381811115612f775760405163e5edf84760e01b81526004810192909252602482015260440161244b565b505061148c612f85846137b6565b612ef1565b60606112967f417a74656320526f6c6c7570000000000000000000000000000000000000000c5f6137d0565b60606112967f310000000000000000000000000000000000000000000000000000000000000160016137d0565b5f516020615c465f395f51905f525460405163ec6e69db60e01b8152306004820152602481018390525f916001600160a01b03169063ec6e69db906044015b602060405180830381865afa15801561137b573d5f5f3e3d5ffd5b613045613f34565b61118c7fbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cb283613879565b5f516020615c865f395f51905f5280545f9061308a90613959565b60408101849052905061309c816139bb565b9091555050565b5f5f516020615c265f395f51905f526002015460405163a9cd26c960e01b8152306004820152602481018490524260448201526001600160a01b039091169063a9cd26c990606401602060405180830381865afa158015612180573d5f5f3e3d5ffd5b5f516020615c665f395f51905f5280545f91906131399063ffffffff600160801b8204811691600160a01b900416615ad9565b815463ffffffff9190911690613158906001600160801b031685615af8565b61148c9190615ab3565b5f516020615c665f395f51905f5280545f9190600160801b810463ffffffff1690613158906001600160801b031685615af8565b5f516020615c665f395f51905f5280545f919061148c906001600160801b03811690612a5a90600160801b900463ffffffff1686615a88565b5f61118c6131ed6131df84612e4c565b60501c65ffffffffffff1690565b613a18565b5f5f6131fc61267e565b80549091506001600160801b0381166132158260801c90565b0361322357505f9392505050565b5f61324061323b6001600160801b0384166001615ac6565b612f3a565b90505f61324c86613106565b90506132588282613a2d565b159695505050505050565b7f7da2ae3c4a8197dbe64388763d16e7945dd85ef9823a62323a7cdcce718a163b546040516337ffcfaf60e21b81526001600160a01b0383811660048301525f92169063dfff3ebc90602401613022565b604080516080810182525f91810182815260608201839052815260208101919091525f516020615c265f395f51905f526002015460405163e48a5f7b60e01b81526001600160a01b0384811660048301529091169063e48a5f7b90602401606060405180830381865afa15801561332d573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061118c9190615b0b565b5f516020615c865f395f51905f5280545f9061336c90613959565b83815290506305f5e1006133846332f1b33685615a88565b61338e9190615ab3565b602082015261309c816139bb565b5f5f6133a961165161267e565b90505f6133b4613a3b565b90505f6133c18286615ac6565b90505f8386111580156133d357508184105b9050858483836134075760405163054c607760e11b815260048101939093526024830191909152604482015260640161244b565b50505061341261267e565b6002015f6134208589615b6a565b81526020019081526020015f20945050505050919050565b613440613fd0565b6040518060c00160405280835f01518152602001836020015181526020018360400151815260200183606001518152602001613489846080015163ffffffff1663ffffffff1690565b81526020016129718460a00151612e60565b60018101545f906134bf906001600160801b0380821691600160801b900416615b7d565b6001600160801b031692915050565b5f6134fb6134db83613a4f565b80156134f657505f84806134f1576134f1615a9f565b868809115b151590565b613506868686613a7b565b6128979190615ac6565b5f6111898284615af8565b5f6111898284615ac6565b5f5f5f90505f6135398460200151613b2b565b66ffffffffffffff16901b811790506038613556845f0151613b2b565b66ffffffffffffff16901b1761148c81613b62565b5f61118c82613b95565b5f5f61357f61267e565b805490915061358d846131f2565b6135a05761359b8160801c90565b61289a565b6001600160801b03811661289a565b6135d660405180608001604052805f81526020015f81526020015f81526020015f81525090565b5f516020615c865f395f51905f52805460c01c5f81900361361b5760405180608001604052805f81526020015f81526020015f81526020015f8152509250505061148c565b5f5f5f5f61362889612bd5565b90505f81602001516202000060036136409190615a88565b61364a9190615a88565b825161365990620493e0615a88565b6136639190615ac6565b90506136738160018860016134ce565b9450506136ca6136ba6136b0620f4240845f015161369b5f516020615c665f395f51905f5290565b54600160a01b900463ffffffff1660016134ce565b60018860016134ce565b87546001600160401b031661351b565b92506136d6848461351b565b9150505f6136e38a612e4c565b90505f61371a63ffffffff83166137028460201c65ffffffffffff1690565b61370c9190615ac6565b61371588615b9c565b613bc5565b90505f61372682613c0c565b90505f61374261373c8684633b9aca005f6134ce565b86613510565b90505f8b61375457633b9aca0061375d565b61375d8e6131cf565b9050604051806080016040528061377d83856129af90919063ffffffff16565b8152602081018590526040016137938a846129af565b81526020016137a289846129af565b90529e9d5050505050505050505050505050565b5f61118c6137c38361339c565b6004015463ffffffff1690565b606060ff83146137ea576137e383613c42565b905061118c565b8180546137f690615bb6565b80601f016020809104026020016040519081016040528092919081815260200182805461382290615bb6565b801561386d5780601f106138445761010080835404028352916020019161386d565b820191905f5260205f20905b81548152906001019060200180831161385057829003601f168201915b5050505050905061118c565b613881613f34565b600183015483905f9061389e9085906001600160801b0316615ac6565b815260208082019290925260409081015f20815160c08101835281546001600160a01b0390811682526001830154168185015282518084018452600283015481526003830154818601528184015282516080808201855260048401548252600584015482870152600684015482860152600784015460608381019190915283019190915283518085019094526008830154845260098301549484019490945292830191909152600a015460ff16151560a08201529392505050565b61397a60405180606001604052805f81526020015f81526020015f81525090565b604051806060016040528061398f8460c01c90565b81526020016139a78460401c6001600160801b031690565b81526020016001600160401b038416612971565b5f5f5f90506139cd8360400151613c7f565b6001600160401b03168117905060406139e98460200151613cb4565b6001600160801b0316901b8117905060c0613a06845f0151613c7f565b6001600160401b0316901b1792915050565b5f61118c6402540be400836305f5e100613ce7565b5f61118982612c1585613d52565b5f613a44613d8e565b611296906001615ac6565b5f6002826003811115613a6457613a64614173565b613a6e9190615be8565b60ff166001149050919050565b5f5f5f613a888686613dd2565b91509150815f03613aac57838181613aa257613aa2615a9f565b049250505061148c565b818411613ac357613ac36003851502601118613dee565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010185841190960395909502919093039390930492909217029150509392505050565b5f66ffffffffffffff821115613b5e576040516306dfcc6560e41b8152603860048201526024810183905260440161244b565b5090565b5f6001600160701b03821115613b5e576040516306dfcc6560e41b8152607060048201526024810183905260440161244b565b5f63ffffffff821115613b5e576040516306dfcc6560e41b8152602060048201526024810183905260440161244b565b5f5f8212613be057613bd682613dff565b6137e39084615ac6565b60ff82901d8083011880841115613c0357613bfb8185615af8565b91505061118c565b505f9392505050565b5f805f516020615c865f395f51905f52905061148c633b9aca0084613c3d845f015460401c6001600160801b031690565b613ce7565b60605f613c4e83613e24565b6040805160208082528183019092529192505f91906020820181803683375050509182525060208101929092525090565b5f6001600160401b03821115613b5e57604080516306dfcc6560e41b815260048101919091526024810183905260440161244b565b5f6001600160801b03821115613b5e576040516306dfcc6560e41b8152608060048201526024810183905260440161244b565b5f60018180613cf68588615a88565b90505b8015613d3d57613d098183615ac6565b9150613d158386615a88565b613d1f8783615a88565b613d299190615ab3565b9050613d36600184615ac6565b9250613cf9565b613d478583615ab3565b979650505050505050565b5f516020615c665f395f51905f5280545f919061148c908490613d8390600160c01b900463ffffffff166001615c09565b63ffffffff1661351b565b5f516020615c665f395f51905f5280545f9190613db990600160c01b900463ffffffff166001615ac6565b81546116c89190600160a01b900463ffffffff16615a88565b5f805f1983850993909202808410938190039390930393915050565b634e487b715f52806020526024601cfd5b5f5f821215613b5e57604051635467221960e11b81526004810183905260240161244b565b5f60ff8216601f81111561118c57604051632cd44ac360e21b815260040160405180910390fd5b6040518060e001604052805f81526020015f81526020015f81526020015f81526020015f81526020015f8152602001613ea76040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b905290565b604080516080810182525f8082526020820152908101613eca613ef7565b8152602001613ea7604080516080810182525f918101828152606082018390528152602081019190915290565b6040518060c001604052805f81526020015f81526020015f81526020015f6001600160a01b031681526020015f151581526020015f151581525090565b6040518060c001604052805f6001600160a01b031681526020015f6001600160a01b03168152602001613f7860405180604001604052805f81526020015f81525090565b8152602001613fa460405180608001604052805f81526020015f81526020015f81526020015f81525090565b8152602001613fc460405180604001604052805f81526020015f81525090565b81525f60209091015290565b6040518060c001604052805f81526020015f81526020015f81526020015f81526020015f8152602001613ea76040518060a001604052805f81526020015f81526020015f81526020015f81526020015f81525090565b5f60208284031215614036575f5ffd5b5035919050565b6001600160a01b0381168114611e6e575f5ffd5b803561405c8161403d565b919050565b5f5f60408385031215614072575f5ffd5b823561407d8161403d565b946020939093013593505050565b5f61016082019050825182526020830151602083015260408301516040830152606083015160608301526080830151608083015260a083015160a083015260c083015161410660c084018280518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b5092915050565b602080825282518282018190525f918401906040840190835b8181101561414d5783516001600160a01b0316835260209384019390920191600101614126565b509095945050505050565b5f60208284031215614168575f5ffd5b813561148c8161403d565b634e487b7160e01b5f52602160045260245ffd5b600481106141a357634e487b7160e01b5f52602160045260245ffd5b9052565b6020810161118c8284614187565b5f5f5f606084860312156141c7575f5ffd5b833592506020840135915060408401356141e08161403d565b809150509250925092565b8051825260208082015190830152604080820151908301526060808201516001600160a01b03169083015260808082015115159083015260a0908101511515910152565b61424482825180518252602090810151910152565b602001516001600160a01b031660409190910152565b5f6101608201905061426d828451614187565b60208301516020830152604083015161428960408401826141eb565b50606083015161410661010084018261422f565b5f602082840312156142ad575f5ffd5b81356001600160401b038111156142c2575f5ffd5b8201610120818503121561148c575f5ffd5b634e487b7160e01b5f52604160045260245ffd5b604080519081016001600160401b038111828210171561430a5761430a6142d4565b60405290565b604051608081016001600160401b038111828210171561430a5761430a6142d4565b604051606081016001600160401b038111828210171561430a5761430a6142d4565b60405161010081016001600160401b038111828210171561430a5761430a6142d4565b604051601f8201601f191681016001600160401b038111828210171561439f5761439f6142d4565b604052919050565b5f6001600160401b038211156143bf576143bf6142d4565b50601f01601f191660200190565b5f82601f8301126143dc575f5ffd5b81356143ef6143ea826143a7565b614377565b818152846020838601011115614403575f5ffd5b816020850160208301375f918101602001919091529392505050565b5f6040828403121561442f575f5ffd5b6144376142e8565b905081356001600160401b0381111561444e575f5ffd5b61445a848285016143cd565b82525060208201356001600160401b03811115614475575f5ffd5b614481848285016143cd565b60208301525092915050565b5f5f83601f84011261449d575f5ffd5b5081356001600160401b038111156144b3575f5ffd5b6020830191508360208260051b85010111156144cd575f5ffd5b9250929050565b5f606082840312156144e4575f5ffd5b50919050565b5f5f83601f8401126144fa575f5ffd5b5081356001600160401b03811115614510575f5ffd5b6020830191508360208285010111156144cd575f5ffd5b5f5f5f5f5f5f5f87890361036081121561453f575f5ffd5b6102a081121561454d575f5ffd5b508796506102a08801356001600160401b0381111561456a575f5ffd5b6145768a828b0161441f565b9650506102c08801356001600160401b03811115614592575f5ffd5b61459e8a828b0161448d565b90965094506145b39050896102e08a016144d4565b92506103408801356001600160401b038111156145ce575f5ffd5b6145da8a828b016144ea565b989b979a50959850939692959293505050565b60c0810161118c82846141eb565b81518152602080830151908201526040810161118c565b5f60a0828403128015614623575f5ffd5b5060405160a081016001600160401b0381118282101715614646576146466142d4565b604090815283358252602080850135908301528381013590820152606080840135908201526080928301359281019290925250919050565b5f5f6040838503121561468f575f5ffd5b8235915060208301356146a18161403d565b809150509250929050565b5f604082840312156146bc575f5ffd5b6146c46142e8565b823581526020928301359281019290925250919050565b8015158114611e6e575f5ffd5b803561405c816146db565b5f5f5f5f5f5f86880361016081121561470a575f5ffd5b87356147158161403d565b965060208801356147258161403d565b95506147348960408a016146ac565b94506080607f1982011215614747575f5ffd5b50614750614310565b6080880135815260a0880135602082015260c0880135604082015260e0880135606082015292506147858861010089016146ac565b915061479461014088016146e8565b90509295509295509295565b5f5f604083850312156147b1575f5ffd5b8235915060208301356146a1816146db565b815181526020808301519082015260408083015190820152606080830151908201526080810161118c565b60a0810161118c828480518252602081015160208301526040810151604083015260608101516060830152608081015160808301525050565b63ffffffff81168114611e6e575f5ffd5b5f6080828403128015614849575f5ffd5b50614852614310565b823561485d8161403d565b8152602083013561486d81614827565b602082015260408301356148808161403d565b604082015260608301356001600160601b038116811461489e575f5ffd5b60608201529392505050565b803560ff8116811461405c575f5ffd5b5f602082840312156148ca575f5ffd5b604051602081016001600160401b03811182821017156148ec576148ec6142d4565b6040529050808235612971816146db565b5f5f5f5f5f5f5f5f888a03610260811215614916575f5ffd5b610160811215614924575f5ffd5b8998506101608a01356001600160401b03811115614940575f5ffd5b61494c8c828d0161441f565b9850506101808a01356001600160401b03811115614968575f5ffd5b6149748c828d0161448d565b909850965050606061019f198201121561498c575f5ffd5b50614995614332565b6149a26101a08b016148aa565b81526101c08a013560208201526101e08a013560408201529350610200890135925061022089013591506149da8a6102408b016148ba565b90509295985092959890939650565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b60ff60f81b8816815260e060208201525f614a3560e08301896149e9565b8281036040840152614a4781896149e9565b606084018890526001600160a01b038716608085015260a0840186905283810360c0850152845180825260208087019350909101905f5b81811015614a9c578351835260209384019390920191600101614a7e565b50909b9a5050505050505050505050565b5f60208284031215614abd575f5ffd5b813561148c816146db565b5f5f5f5f5f5f5f60e0888a031215614ade575f5ffd5b8735965060208801359550614af68960408a016144d4565b945060a08801356001600160401b03811115614b10575f5ffd5b614b1c8a828b0161448d565b90955093505060c08801356001600160401b038111156145ce575f5ffd5b5f8151808452602084019350602083015f5b82811015614b6a578151865260209586019590910190600101614b4c565b5093949350505050565b602081525f6111896020830184614b3a565b81516001600160a01b03908116825260208084015190911690820152604080830151610160830191614bc49084018280518252602090810151910152565b5060608381015180516080850152602081015160a0850152604081015160c08501529081015160e0840152506080830151805161010084015260208101516101208401525060a0830151151561014083015292915050565b5f5f60208385031215614c2d575f5ffd5b82356001600160401b03811115614c42575f5ffd5b614c4e858286016144ea565b90969095509350505050565b606081525f614c6c6060830186614b3a565b846020840152828103604084015280845180835260208301915060208160051b840101602087015f5b83811015614cc757601f19868403018552614cb18383516149e9565b6020958601959093509190910190600101614c95565b50909998505050505050505050565b5f6001600160401b03821115614cee57614cee6142d4565b5060051b60200190565b5f82601f830112614d07575f5ffd5b8135614d156143ea82614cd6565b8082825260208201915060208360051b860101925085831115614d36575f5ffd5b602085015b83811015614d5c578035614d4e8161403d565b835260209283019201614d3b565b5095945050505050565b5f5f5f5f60808587031215614d79575f5ffd5b8435935060208501356001600160401b03811115614d95575f5ffd5b614da18782880161441f565b93505060408501356001600160401b03811115614dbc575f5ffd5b614dc887828801614cf8565b949793965093946060013593505050565b5f5f5f60608486031215614deb575f5ffd5b8335925060208401356001600160401b03811115614e07575f5ffd5b614e138682870161441f565b92505060408401356001600160401b03811115614e2e575f5ffd5b614e3a86828701614cf8565b9150509250925092565b5f5f60408385031215614e55575f5ffd5b8235614e608161403d565b915060208301356001600160401b03811115614e7a575f5ffd5b8301601f81018513614e8a575f5ffd5b8035614e986143ea82614cd6565b8082825260208201915060208360051b850101925087831115614eb9575f5ffd5b6020840193505b82841015614edb578335825260209384019390910190614ec0565b809450505050509250929050565b6060810161118c828461422f565b81516001600160a01b03908116825260208084015163ffffffff1690830152604080840151909116908201526060808301516001600160601b0316908201526080810161118c565b5f5f60408385031215614f50575f5ffd5b8235614f5b8161403d565b915060208301356146a18161403d565b5f60208284031215614f7b575f5ffd5b815161148c816146db565b5f60208284031215614f96575f5ffd5b5051919050565b80358252602080820135908301526040810135614fb98161403d565b6001600160a01b03166040929092019190915250565b8183525f6001600160fb1b03831115614fe6575f5ffd5b8260051b80836020870137939093016020019392505050565b5f8235603e19833603018112615013575f5ffd5b90910192915050565b5f5f8335601e19843603018112615031575f5ffd5b83016020810192503590506001600160401b0381111561504f575f5ffd5b8036038213156144cd575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f615090828361501c565b604085526150a260408601828461505d565b9150506150b2602084018461501c565b8583036020870152612db383828461505d565b60208082528235828201528201356040808301919091525f906150ee9060608401908501614f9d565b60a0830135601e19843603018112615104575f5ffd5b83016020810190356001600160401b0381111561511f575f5ffd5b8060051b3603821315615130575f5ffd5b61012060c085015261514761014085018284614fcf565b91505061515760c0850185614fff565b838203601f190160e085015261516d8282615085565b91505061517d60e085018561501c565b848303601f190161010086015261519583828461505d565b925050506151a761010085018561501c565b848303601f1901610120860152612db383828461505d565b8035825260208101356151d181614827565b63ffffffff81166020840152505050565b80356001600160801b038116811461405c575f5ffd5b6001600160801b03615209826151e2565b1682526001600160801b03615220602083016151e2565b1660208301525050565b5f81516040845261523e60408501826149e9565b90506020830151848203602086015261525782826149e9565b95945050505050565b8183526020830192505f815f5b84811015614b6a5781356152808161403d565b6001600160a01b03168652602095860195919091019060010161526d565b60ff6152a9826148aa565b16825260208181013590830152604090810135910152565b883581525f6152d66020808401908c016151bf565b6152e66060830160608c016151bf565b6152f660a0830160a08c016151bf565b61530660e0830160e08c016151bf565b6101208a81013590830152610140808b013590830152610160808b013590830152610180808b0135908301526101a0808b0135908301526101c0808b0135908301526101e0808b0135908301526153606102008b01614051565b6001600160a01b03166102008301526102208a8101359083015261538b610240808401908c016151f8565b6102808a810135908301526103806102a083018190526153ad9083018a61522a565b8281036102c08401526153c181898b615260565b90506153d16102e084018861529e565b8281036103408401526153e581868861505d565b9150506153f761036083018415159052565b9998505050505050505050565b6001600160a01b038781168252861660208201526101608101615434604083018780518252602090810151910152565b84516080830152602085015160a0830152604085015160c0830152606085015160e083015283516101008301526020840151610120830152821515610140830152979650505050505050565b5f60208284031215615490575f5ffd5b81516001600160401b038111156154a5575f5ffd5b8201601f810184136154b5575f5ffd5b80516154c36143ea82614cd6565b8082825260208201915060208360051b8501019250868311156154e4575f5ffd5b6020840193505b82841015612db35783516154fe8161403d565b8252602093840193909101906154eb565b5f5f60408385031215615520575f5ffd5b505080516020909101519092909150565b5f60608284031215615541575f5ffd5b615549614332565b82358152602080840135908201526040928301359281019290925250919050565b5f6040828403121561557a575f5ffd5b6155826142e8565b905061558d826151e2565b815261559b602083016151e2565b602082015292915050565b5f6101608284031280156155b8575f5ffd5b506155c1614354565b823581526155d28460208501615531565b60208201526080830135604082015260a083013560608201526155f760c08401614051565b608082015260e083013560a082015261561484610100850161556a565b60c0820152610140929092013560e083015250919050565b5f86518051835260208101518051602085015260208101516040850152604081015160608501525060408101516080840152606081015160a0840152608081015161568260c08501826001600160a01b03169052565b5060a081015160e084015260c081015180516001600160801b039081166101008601526020820151166101208501525060e001516101408301526020870151610160830152604087015161018083015260608701516101a08301526080870151805115156101c0840152506102806101e083015261570461028083018761522a565b828103610200840152615718818688615260565b845160ff16610220850152602085015161024085015260408501516102608501529150612db39050565b8781528660208201526157586040820187614f9d565b60e060a08201525f61576e60e083018688614fcf565b82810360c084015261578181858761505d565b9a9950505050505050505050565b5f82601f83011261579e575f5ffd5b81516157ac6143ea82614cd6565b8082825260208201915060208360051b8601019250858311156157cd575f5ffd5b602085015b83811015614d5c5780518352602092830192016157d2565b5f602082840312156157fa575f5ffd5b81516001600160401b0381111561580f575f5ffd5b61289a8482850161578f565b604081525f61582e60408301858761505d565b90508215156020830152949350505050565b5f5f5f60608486031215615852575f5ffd5b83516001600160401b03811115615867575f5ffd5b6158738682870161578f565b60208601516040870151919550935090506001600160401b03811115615897575f5ffd5b8401601f810186136158a7575f5ffd5b80516158b56143ea82614cd6565b8082825260208201915060208360051b8501019250888311156158d6575f5ffd5b602084015b838110156159565780516001600160401b038111156158f8575f5ffd5b8501603f81018b13615908575f5ffd5b60208101516159196143ea826143a7565b8181526040838301018d101561592d575f5ffd5b8160408401602083015e5f602083830101528086525050506020830192506020810190506158db565b50809450505050509250925092565b5f8151808452602084019350602083015f5b82811015614b6a5781516001600160a01b0316865260209586019590910190600101615977565b848152608060208201525f6159b6608083018661522a565b82810360408401526159c88186615965565b91505082606083015295945050505050565b838152606060208201525f6159f2606083018561522a565b8281036040840152612db38185615965565b5f60208284031215615a14575f5ffd5b815161148c8161403d565b6001600160a01b03831681526040602080830182905283519183018290525f91908401906060840190835b81811015615a68578351835260209384019390920191600101615a4a565b50909695505050505050565b634e487b7160e01b5f52601160045260245ffd5b808202811582820484141761118c5761118c615a74565b634e487b7160e01b5f52601260045260245ffd5b5f82615ac157615ac1615a9f565b500490565b8082018082111561118c5761118c615a74565b63ffffffff818116838216029081169081811461410657614106615a74565b8181038181111561118c5761118c615a74565b5f818303606081128015615b1d575f5ffd5b50615b266142e8565b6040821215615b33575f5ffd5b615b3b6142e8565b8451815260208086015190820152815260408401519150615b5b8261403d565b60208101919091529392505050565b5f82615b7857615b78615a9f565b500690565b6001600160801b03828116828216039081111561118c5761118c615a74565b5f600160ff1b8201615bb057615bb0615a74565b505f0390565b600181811c90821680615bca57607f821691505b6020821081036144e457634e487b7160e01b5f52602260045260245ffd5b5f60ff831680615bfa57615bfa615a9f565b8060ff84160691505092915050565b63ffffffff818116838216019081111561118c5761118c615a7456febba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cadbba4a4d3c3eeb229c4f06863ce3d3d8cddab9e4dee538d785fc67e2ed9d68cafcc2bde3d21ba778aa5c156bb6fc47381978b0054c8a1ef73f44234164324cbe02e57d696f4035f6dfbf369d367f6b4aaf23baac5f6ee9a3a5207d71c56de652ca26469706673582212203a4dc2ef336203461e323a7693f00d3d1d313bd5b8ea8d0c5dd6160236d8d2f964736f6c634300081e0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2000000000000000000000000a92ecfd0e70c9cd5e5cd76c50af0f7da93567a4f00000000000000000000000077e3ba096355510e0e9f60d292010b42d662d2b50000000000000000000000001102471eb3378fee427121c9efcea452e4b6b75e229eadb7c540c82204b5373633d3c25557f8264ad8fca760660fe853e5275e3912e9aa367b065eff3e48912b8cae62209970117d34a8c9ef1e9e4116e41bc8d61f9c798be7975bb34c3e605a4c92c75796eae7b9a08644bc9a6a55354ed470be00000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000004100000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000022000000000000000000000000000000000000000000000000000000000000001c00000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000006c6b935b8bbd40000000000000000000000000000000000000000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000001000000000000000000000000bbb4af368d02827945748b28cd4b2d42e4a37480000000000000000000000000000000000000000000000000000000000003f48000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054600000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003d6a1b00c830c5f278fc5dfb3f6ff0b74db6dfe00000000000000000000000000000000000000000000000000000000000001b580000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000015af1d78b58c400000000000000000000000000000000000000000000000000000000000000001e8480000000000000000000000000000000000000000000000000000000000e4e1c000000000000000000000000000000000000000000000000000000000000003e800000000000000000000000000000000000000000000000000000000000186a000000000000000000000000000000000000000000000000000000000000f424000000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000000000000000000000000080000000000000000000000000000000000000000000029812e690b7e7280000000000000000000000000000000000000000000000000000000000000698c8b60

-----Decoded View---------------
Arg [0] : _feeAsset (address): 0xA27EC0006e59f245217Ff08CD52A7E8b169E62D2
Arg [1] : _stakingAsset (address): 0xA27EC0006e59f245217Ff08CD52A7E8b169E62D2
Arg [2] : _gse (address): 0xa92ecFD0E70c9cd5E5cd76c50Af0F7Da93567a4f
Arg [3] : _epochProofVerifier (address): 0x77e3bA096355510e0E9f60D292010B42d662d2B5
Arg [4] : _governance (address): 0x1102471Eb3378FEE427121c9EfcEa452E4B6B75e
Arg [5] : _genesisState (tuple):
Arg [1] : vkTreeRoot (bytes32): 0x229eadb7c540c82204b5373633d3c25557f8264ad8fca760660fe853e5275e39
Arg [2] : protocolContractTreeRoot (bytes32): 0x12e9aa367b065eff3e48912b8cae62209970117d34a8c9ef1e9e4116e41bc8d6
Arg [3] : genesisArchiveRoot (bytes32): 0x1f9c798be7975bb34c3e605a4c92c75796eae7b9a08644bc9a6a55354ed470be

Arg [6] : _config (tuple):
Arg [1] : aztecSlotDuration (uint256): 72
Arg [2] : aztecEpochDuration (uint256): 32
Arg [3] : targetCommitteeSize (uint256): 24
Arg [4] : lagInEpochs (uint256): 2
Arg [5] : aztecProofSubmissionEpochs (uint256): 1
Arg [6] : slashingQuorum (uint256): 65
Arg [7] : slashingRoundSize (uint256): 128
Arg [8] : slashingLifetimeInRounds (uint256): 34
Arg [9] : slashingExecutionDelayInRounds (uint256): 28
Arg [10] : slashAmounts (uint256[3]): 2000000000000000000000,2000000000000000000000,2000000000000000000000
Arg [11] : slashingOffsetInRounds (uint256): 2
Arg [12] : slasherFlavor (uint8): 1
Arg [13] : slashingVetoer (address): 0xBbB4aF368d02827945748b28CD4b2D42e4A37480
Arg [14] : slashingDisableDuration (uint256): 259200
Arg [15] : manaTarget (uint256): 0
Arg [16] : exitDelaySeconds (uint256): 345600
Arg [17] : version (uint32): 0
Arg [18] : provingCostPerMana (uint256): 0
Arg [19] : rewardConfig (tuple):
Arg [1] : rewardDistributor (address): 0x3D6A1B00C830C5f278FC5dFb3f6Ff0b74Db6dfe0
Arg [2] : sequencerBps (uint32): 7000
Arg [3] : booster (address): 0x0000000000000000000000000000000000000000
Arg [4] : blockReward (uint96): 400000000000000000000

Arg [20] : rewardBoostConfig (tuple):
Arg [1] : increment (uint32): 125000
Arg [2] : maxScore (uint32): 15000000
Arg [3] : a (uint32): 1000
Arg [4] : minimum (uint32): 100000
Arg [5] : k (uint32): 1000000

Arg [21] : stakingQueueConfig (tuple):
Arg [1] : bootstrapValidatorSetSize (uint256): 500
Arg [2] : bootstrapFlushSize (uint256): 500
Arg [3] : normalFlushSizeMin (uint256): 1
Arg [4] : normalFlushSizeQuotient (uint256): 2048
Arg [5] : maxQueueFlushSize (uint256): 8

Arg [22] : localEjectionThreshold (uint256): 196000000000000000000000
Arg [23] : earliestRewardsClaimableTimestamp (uint256): 1770818400


-----Encoded View---------------
44 Constructor Arguments found :
Arg [0] : 000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2
Arg [1] : 000000000000000000000000a27ec0006e59f245217ff08cd52a7e8b169e62d2
Arg [2] : 000000000000000000000000a92ecfd0e70c9cd5e5cd76c50af0f7da93567a4f
Arg [3] : 00000000000000000000000077e3ba096355510e0e9f60d292010b42d662d2b5
Arg [4] : 0000000000000000000000001102471eb3378fee427121c9efcea452e4b6b75e
Arg [5] : 229eadb7c540c82204b5373633d3c25557f8264ad8fca760660fe853e5275e39
Arg [6] : 12e9aa367b065eff3e48912b8cae62209970117d34a8c9ef1e9e4116e41bc8d6
Arg [7] : 1f9c798be7975bb34c3e605a4c92c75796eae7b9a08644bc9a6a55354ed470be
Arg [8] : 0000000000000000000000000000000000000000000000000000000000000048
Arg [9] : 0000000000000000000000000000000000000000000000000000000000000020
Arg [10] : 0000000000000000000000000000000000000000000000000000000000000018
Arg [11] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [12] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [13] : 0000000000000000000000000000000000000000000000000000000000000041
Arg [14] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [15] : 0000000000000000000000000000000000000000000000000000000000000022
Arg [16] : 000000000000000000000000000000000000000000000000000000000000001c
Arg [17] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [18] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [19] : 00000000000000000000000000000000000000000000006c6b935b8bbd400000
Arg [20] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [21] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [22] : 000000000000000000000000bbb4af368d02827945748b28cd4b2d42e4a37480
Arg [23] : 000000000000000000000000000000000000000000000000000000000003f480
Arg [24] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [25] : 0000000000000000000000000000000000000000000000000000000000054600
Arg [26] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [27] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [28] : 0000000000000000000000003d6a1b00c830c5f278fc5dfb3f6ff0b74db6dfe0
Arg [29] : 0000000000000000000000000000000000000000000000000000000000001b58
Arg [30] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [31] : 000000000000000000000000000000000000000000000015af1d78b58c400000
Arg [32] : 000000000000000000000000000000000000000000000000000000000001e848
Arg [33] : 0000000000000000000000000000000000000000000000000000000000e4e1c0
Arg [34] : 00000000000000000000000000000000000000000000000000000000000003e8
Arg [35] : 00000000000000000000000000000000000000000000000000000000000186a0
Arg [36] : 00000000000000000000000000000000000000000000000000000000000f4240
Arg [37] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [38] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [39] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [40] : 0000000000000000000000000000000000000000000000000000000000000800
Arg [41] : 0000000000000000000000000000000000000000000000000000000000000008
Arg [42] : 0000000000000000000000000000000000000000000029812e690b7e72800000
Arg [43] : 00000000000000000000000000000000000000000000000000000000698c8b60

🤖 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
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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.