Unichain Sepolia Testnet

Contract

0x0F41715dc432692b66A5aDF8dCfef6Ac407b20c8
Source Code Source Code

Overview

ETH Balance

0 ETH

More Info

Multichain Info

N/A
Transaction Hash
Method
Block
From
To
Amount

There are no matching entries

Please try again later

Parent Transaction Hash Block From To Amount
View All Internal Transactions

Loading...
Loading
Source Code Verified Exact Match

Contract Name

GlueHook

Compiler Version
v0.8.35+commit.47b9dedd
Optimization Enabled
Yes with 1 runs
Other Settings
prague EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract ABI
API
[{"inputs":[{"internalType":"address","name":"_poolManager","type":"address"},{"internalType":"address","name":"_nativeWrap","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"BadConfig","type":"error"},{"inputs":[],"name":"BadDonation","type":"error"},{"inputs":[],"name":"BadRoles","type":"error"},{"inputs":[],"name":"FailedCall","type":"error"},{"inputs":[{"internalType":"uint256","name":"balance","type":"uint256"},{"internalType":"uint256","name":"needed","type":"uint256"}],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"NotAllowed","type":"error"},{"inputs":[],"name":"PotAlreadyReady","type":"error"},{"inputs":[],"name":"PotNotReady","type":"error"},{"inputs":[],"name":"QuoteMismatch","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0Used","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Used","type":"uint256"}],"name":"Compounded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"},{"indexed":false,"internalType":"enum IGlueHook.Delivery","name":"mode","type":"uint8"}],"name":"Delivered","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"donor","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Donated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"FlushedDirect","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"mainFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"secondaryFees","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"burned","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"fueled","type":"uint256"}],"name":"Harvested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Owed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"address","name":"asset","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Paid","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"main","type":"address"},{"indexed":false,"internalType":"address","name":"secondary","type":"address"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"PotInitialized","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"admin","type":"address"}],"name":"PotOpened","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"components":[{"internalType":"uint64","name":"buybackShareWad","type":"uint64"},{"internalType":"uint64","name":"burnShareWad","type":"uint64"},{"internalType":"uint64","name":"compoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potCompoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potBurnShareWad","type":"uint64"},{"internalType":"bool","name":"publicHarvest","type":"bool"},{"internalType":"address","name":"secondaryRecipient","type":"address"},{"internalType":"address","name":"mainRecipient","type":"address"},{"internalType":"uint256","name":"minMain","type":"uint256"},{"internalType":"uint256","name":"minSecondary","type":"uint256"}],"indexed":false,"internalType":"struct IGlueHook.ProgramConfig","name":"config","type":"tuple"}],"name":"ProgramConfigured","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"int24","name":"tickLower","type":"int24"},{"indexed":false,"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"ProgramCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0Used","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1Used","type":"uint256"}],"name":"ProgramLiquidityAdded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"},{"indexed":false,"internalType":"uint256","name":"amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"amount1","type":"uint256"},{"indexed":false,"internalType":"address","name":"to","type":"address"}],"name":"ProgramLiquidityRemoved","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"newOperator","type":"address"}],"name":"ProgramOperatorSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"ProgramOwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"spent","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"bought","type":"uint256"}],"name":"Pumped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"recipient","type":"address"}],"name":"RecipientSet","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"absorbed","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"paid","type":"uint256"}],"name":"Shielded","type":"event"},{"inputs":[],"name":"GLUE_STICK","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"NATIVEWRAP","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"REQUIRED_HOOK_FLAGS","outputs":[{"internalType":"uint160","name":"","type":"uint160"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"address","name":"owner","type":"address"}],"name":"addLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"address","name":"owner","type":"address"},{"components":[{"internalType":"uint64","name":"buybackShareWad","type":"uint64"},{"internalType":"uint64","name":"burnShareWad","type":"uint64"},{"internalType":"uint64","name":"compoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potCompoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potBurnShareWad","type":"uint64"},{"internalType":"bool","name":"publicHarvest","type":"bool"},{"internalType":"address","name":"secondaryRecipient","type":"address"},{"internalType":"address","name":"mainRecipient","type":"address"},{"internalType":"uint256","name":"minMain","type":"uint256"},{"internalType":"uint256","name":"minSecondary","type":"uint256"}],"internalType":"struct IGlueHook.ProgramConfig","name":"config","type":"tuple"}],"name":"addLiquidityAdvanced","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"addProgramLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManagerMin.SwapParams","name":"params","type":"tuple"},{"internalType":"int256","name":"delta","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"int128","name":"hookDelta","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint160","name":"","type":"uint160"}],"name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct IPoolManagerMin.SwapParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"selector","type":"bytes4"},{"internalType":"int256","name":"hookDelta","type":"int256"},{"internalType":"uint24","name":"lpFeeOverride","type":"uint24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"claim","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"donate","outputs":[{"internalType":"uint256","name":"credited","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bool","name":"inUnlock","type":"bool"}],"name":"executeCompound","outputs":[{"internalType":"uint256","name":"used0","type":"uint256"},{"internalType":"uint256","name":"used1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"bool","name":"mainIsZero","type":"bool"}],"name":"executeHarvest","outputs":[{"internalType":"uint256","name":"burnLeg","type":"uint256"},{"internalType":"uint256","name":"mainLeg","type":"uint256"},{"internalType":"uint256","name":"secLeg","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"id","type":"bytes32"},{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"uint256","name":"spend","type":"uint256"},{"internalType":"uint256","name":"minOut","type":"uint256"}],"name":"executePump","outputs":[{"internalType":"uint256","name":"bought","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"name":"flushDirect","outputs":[{"internalType":"uint256","name":"delivered","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"}],"name":"harvest","outputs":[{"internalType":"uint256","name":"mainFees","type":"uint256"},{"internalType":"uint256","name":"secondaryFees","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"heldOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"address","name":"main","type":"address"},{"internalType":"address","name":"recipient","type":"address"}],"name":"initPot","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"address","name":"main","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"address","name":"owner","type":"address"},{"components":[{"internalType":"uint64","name":"buybackShareWad","type":"uint64"},{"internalType":"uint64","name":"burnShareWad","type":"uint64"},{"internalType":"uint64","name":"compoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potCompoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potBurnShareWad","type":"uint64"},{"internalType":"bool","name":"publicHarvest","type":"bool"},{"internalType":"address","name":"secondaryRecipient","type":"address"},{"internalType":"address","name":"mainRecipient","type":"address"},{"internalType":"uint256","name":"minMain","type":"uint256"},{"internalType":"uint256","name":"minSecondary","type":"uint256"}],"internalType":"struct IGlueHook.ProgramConfig","name":"config","type":"tuple"}],"name":"launchPool","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"obligationOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"address","name":"asset","type":"address"}],"name":"owedOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"name":"parkedDirectOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"asset","type":"address"}],"name":"parkedOf","outputs":[{"internalType":"uint256","name":"amount","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"name":"potOf","outputs":[{"components":[{"internalType":"address","name":"admin","type":"address"},{"internalType":"address","name":"main","type":"address"},{"internalType":"address","name":"secondary","type":"address"},{"internalType":"address","name":"recipient","type":"address"},{"internalType":"bool","name":"configured","type":"bool"},{"internalType":"uint256","name":"balance","type":"uint256"}],"internalType":"struct IGlueHook.Pot","name":"pot","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"}],"name":"programOf","outputs":[{"components":[{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"bool","name":"exists","type":"bool"},{"internalType":"bool","name":"publicHarvest","type":"bool"},{"internalType":"uint64","name":"buybackShareWad","type":"uint64"},{"internalType":"address","name":"owner","type":"address"},{"internalType":"uint64","name":"burnShareWad","type":"uint64"},{"internalType":"address","name":"secondaryRecipient","type":"address"},{"internalType":"uint64","name":"compoundShareWad","type":"uint64"},{"internalType":"address","name":"mainRecipient","type":"address"},{"internalType":"uint64","name":"potCompoundShareWad","type":"uint64"},{"internalType":"address","name":"operator","type":"address"},{"internalType":"uint64","name":"potBurnShareWad","type":"uint64"},{"internalType":"uint256","name":"minMain","type":"uint256"},{"internalType":"uint256","name":"minSecondary","type":"uint256"},{"internalType":"uint256","name":"carryMain","type":"uint256"},{"internalType":"uint256","name":"carrySecondary","type":"uint256"}],"internalType":"struct IGlueHook.Program","name":"program","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint256","name":"userAmountIn","type":"uint256"}],"name":"quotePump","outputs":[{"internalType":"uint256","name":"spend","type":"uint256"},{"internalType":"uint256","name":"minOut","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"int256","name":"amountSpecified","type":"int256"}],"name":"quoteShield","outputs":[{"internalType":"uint256","name":"absorbed","type":"uint256"},{"internalType":"uint256","name":"paid","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"address","name":"currency0","type":"address"},{"internalType":"address","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"address","name":"hooks","type":"address"}],"internalType":"struct IPoolManagerMin.PoolKey","name":"key","type":"tuple"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"address","name":"to","type":"address"}],"name":"removeProgramLiquidity","outputs":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"components":[{"internalType":"uint64","name":"buybackShareWad","type":"uint64"},{"internalType":"uint64","name":"burnShareWad","type":"uint64"},{"internalType":"uint64","name":"compoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potCompoundShareWad","type":"uint64"},{"internalType":"uint64","name":"potBurnShareWad","type":"uint64"},{"internalType":"bool","name":"publicHarvest","type":"bool"},{"internalType":"address","name":"secondaryRecipient","type":"address"},{"internalType":"address","name":"mainRecipient","type":"address"},{"internalType":"uint256","name":"minMain","type":"uint256"},{"internalType":"uint256","name":"minSecondary","type":"uint256"}],"internalType":"struct IGlueHook.ProgramConfig","name":"config","type":"tuple"}],"name":"setProgramConfig","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"newOperator","type":"address"}],"name":"setProgramOperator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"recipient","type":"address"}],"name":"setRecipient","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolId","type":"bytes32"},{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferProgramOwnership","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes","name":"data","type":"bytes"}],"name":"unlockCallback","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
60c03461014d57601f615dfa38819003918201601f19168301916001600160401b0383118484101761015157808492604094855283398101031261014d57610052602061004b83610165565b9201610165565b906001600160a01b0381161561013f576080526120c8613fff3016036101305760a052604051615c80908161017a8239608051818181610a4f01528181610dca0152818161129001528181611442015281816118ef015281816119fa015281816120ec01528181612545015281816126330152818161293e01528181612cbb015281816130d70152818161339801528181613609015281816138f901528181613b1501528181613d3201528181613f23015281816140840152818161427f01526142d2015260a051818181610d1a015281816113980152612a000152f35b637f974cc960e01b5f5260045ffd5b6282b42960e81b5f5260045ffd5b5f80fd5b634e487b7160e01b5f52604160045260245ffd5b51906001600160a01b038216820361014d5756fe6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063010999841461022957806316b3e9bb146102245780631e83409a1461021f578063286e08f01461021a57806346a7ecb214610215578063473ca926146102105780634c95a8481461020b5780634fe6b80b14610206578063569a2d7d14610201578063575e24b4146101fc578063578ea4a0146101f75780635f98872e146101f257806369f99990146101ed5780636ec9a743146101e857806371246487146101e35780637639bc1e146101de5780637e03657d146101d957806383ea96a9146101d457806391dd7346146101cf5780639743af26146101ca578063ac4e4054146101c5578063acbf9f16146101c0578063b47b2fb1146101bb578063c0a17662146101b6578063c5afbcb4146101b1578063c66f3cb4146101ac578063d2ac2d8a146101a7578063d2d5f19e146101a2578063d7b636e91461019d578063d7ca239a14610198578063dc98354e14610193578063e148b2751461018e5763facba08d0361000e57611a7e565b61199c565b6118bc565b6117f7565b6117d1565b61173d565b611702565b6115d4565b61159e565b611570565b6114da565b6113e3565b6113c7565b611383565b61131e565b6112b9565b6111ba565b61114c565b6110df565b611071565b610ed7565b610d61565b610c98565b610c14565b610bac565b610af3565b6109c0565b6108dc565b610668565b610559565b61047d565b610355565b610265565b60a090600319011261023f57600490565b5f80fd5b60a090602319011261023f57602490565b908152602081019190915260400190565b3461023f5760a036600319011261023f5761027f3661022e565b610287612c0e565b61029081612c41565b5f81815260016020526040902080549192916001600160801b038116156103205760b81c60ff16159081610300575b506102f1576102cd91612c67565b905f5f516020615c345f395f51905f525d6102ed60405192839283610254565b0390f35b631eb49d6d60e11b5f5260045ffd5b61031791506001610312910154610453565b610453565b3314155f6102bf565b6305af2e7f60e31b5f5260045ffd5b61014090602319011261023f57602490565b6101409061012319011261023f5761012490565b3461023f5761016036600319011261023f576004356103733661032f565b61037c82611ad0565b9061039361038f835460ff9060b01c1690565b1590565b610320576103a76103126004840154610453565b33036102f1577374eccf857176cb538aab1642a972444857f7860f803b1561023f57815f916103ec94604051809681948293634351a29760e11b845260048401611c49565b03915af490811561044e577fb95b352c3b5f439cc1b93c773d987e3382f3b7e2972f37f0b11b6008cddaa51d9261042f92610434575b5060405191829182611c6b565b0390a2005b806104425f61044893611b3a565b80611366565b5f610422565b611c60565b6001600160a01b031690565b6001600160a01b0381160361023f57565b359061047b8261045f565b565b3461023f57602036600319011261023f5760043561049a8161045f565b6104a2612c0e565b335f5260076020526104b78160405f20611cae565b548015610320576102ed91335f5260076020525f6104d88260408320611cae565b556104e281611c7c565b6104ed838254611cf7565b90556104fa823383612e28565b6040518281526001600160a01b039091169033907ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839080602081015b0390a35f5f516020615c345f395f51905f525d6040519081529081906020820190565b60c036600319011261023f5761056e3661022e565b61058260a4359161057d612c0e565b612c41565b61058b81611ade565b906105a161038f600384015460ff9060a01c1690565b610320576105b26002830154610453565b926001600160a01b03841661064b57803414155b61063c576105d690303386612edc565b91821561063c576102ed9360046105fa92016105f3858254611d4a565b9055611c95565b610605838254611d4a565b90556040518281523391907f54c25c010675db5311551a80c00f48292c63e3d9072b58265bc8340584ef5af4908060208101610536565b6301f2cced60e01b5f5260045ffd5b3415156105c6565b8015150361023f57565b359061047b82610653565b3461023f5761012036600319011261023f5760043561068636610243565b60c4359161069383610653565b60e4359161010435903033036102f1576106f5846106b085611ade565b966106f060046106c360028b0154610453565b9901946106d1848754611cf7565b86556106dc8a611c95565b6106e7858254611cf7565b90553690611da2565b6130b9565b94908096828210610762575b505050508210610753577fef85bac7805b280938cdf45de486b073bb9da505f8733a5c0ff5dc9d741563c5826102ed9461074060405192839283610254565b0390a26040519081529081906020820190565b630eb3a8f560e21b5f5260045ffd5b61077261077e9261078694611cf7565b936105f3858254611d4a565b918254611d4a565b90555f808581610701565b6001600160801b031690565b6001600160401b03169052565b6001600160a01b03169052565b81516001600160801b031681526102408101929161022090819060208181015160020b9085015260408181015160020b9085015260608181015115159085015260808181015115159085015261081560a082015160a086019061079d565b61082760c082015160c08601906107aa565b61083960e082015160e086019061079d565b61084d6101008201516101008601906107aa565b61086161012082015161012086019061079d565b6108756101408201516101408601906107aa565b61088961016082015161016086019061079d565b61089d6101808201516101808601906107aa565b6108b16101a08201516101a086019061079d565b6101c08101516101c08501526101e08101516101e08501526102008101516102008501520151910152565b3461023f57602036600319011261023f576102ed61097d6109786004355f610220610905611d57565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a0820152826101c0820152826101e0820152826102008201520152611ad0565b611e33565b604051918291826107b7565b8060020b0361023f57565b60e435906001600160801b038216820361023f57565b60a435906001600160801b038216820361023f57565b61026036600319011261023f576109d63661022e565b604060a4356109e481610989565b60c435926109f184610989565b610a786109fc610994565b61010435610a098161045f565b610a1236610341565b91610a1b612c0e565b610a2485612c41565b97885f525f602052875f2096895f526001602052885f209689519a8b998a9963c7bbeb8f60e01b8b527f00000000000000000000000000000000000000000000000000000000000000009160048c01612042565b03817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92610ac1575b505f5f516020615c345f395f51905f525d6102ed60405192839283610254565b9050610ae5915060403d604011610aec575b610add8183611b3a565b810190611faf565b905f610aa1565b503d610ad3565b3461023f57602036600319011261023f57600435610b108161045f565b6001600160a01b0381165f90815260026020908152604080832054600390925290912054810191908210610ba7576001600160a01b0381165f908152600560205260409020548201809211610ba757610b6881611c7c565b548201809211610ba7576001600160a01b03165f9081526009602052604090206102ed91610b97915490611d4a565b6040519081529081906020820190565b611cc3565b3461023f57602036600319011261023f576004355f526004602052602060405f2054604051908152f35b60609060c319011261023f5760c490565b9181601f8401121561023f578235916001600160401b03831161023f576020838186019501011161023f57565b3461023f5761014036600319011261023f57600435610c328161045f565b610c3b36610243565b90610c4536610bd6565b61012435906001600160401b03821161023f5760609362ffffff93610c71610c78943690600401610be7565b50506120e5565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b3461023f575f60e036600319011261023f57610cb33661022e565b60a43590610cc08261045f565b60c43591610ccd8361045f565b610cd682612c41565b7374eccf857176cb538aab1642a972444857f7860f90805f525f60205260405f2093823b1561023f57610d435f95604051978896879586956336a7664f60e21b87527f00000000000000000000000000000000000000000000000000000000000000009460048801612277565b03915af4801561044e57610d55575080f35b61001891505f90611b3a565b3461023f5760e036600319011261023f57600435610d7e36610243565b9060c43590610d8c82610653565b3033036102f157610d9c81611ad0565b6040805163caf75a2760e01b81527374eccf857176cb538aab1642a972444857f7860f92918180610df289867f0000000000000000000000000000000000000000000000000000000000000000600485016122bb565b0381865af490811561044e576060955f915f93610eb4575b5015610eab57610e3d90915b610e1f86611ade565b604051634ad5f90b60e01b81529889978896879693600488016122fe565b03915af4801561044e575f905f925f91610e74575b506102ed90604051938493846040919493926060820195825260208201520152565b90506102ed9250610e9d915060603d606011610ea4575b610e958183611b3a565b8101906122e3565b9092610e52565b503d610e8b565b610e3d90610e16565b909250610ed0915060403d604011610aec57610add8183611b3a565b915f610e0a565b3461023f5760e036600319011261023f57610ef13661022e565b610ef96109aa565b60c43591610f068361045f565b610f0e612c0e565b610f1781612c41565b90610f2182613751565b6001600160801b0384168015908115611056575b508015611045575b6110365781610fd491610f717f5d7b14cab4f85e6bf22756544b9d2ef4f30c5630b685f29e7edff9d42757dbd09486612c67565b5050610fa5610f8987610f848454610791565b612373565b82546001600160801b0319166001600160801b03909116178255565b5486610fc1610fb78360801c60020b90565b9260981c60020b90565b9287610fcf30923690611da2565b613875565b805160208083018051604080516001600160801b0399909916895292880193909352908601919091526001600160a01b0395909516606085015292608090a2519051905f5f516020615c345f395f51905f525d6102ed60405192839283610254565b6301f30c8760e21b5f5260045ffd5b506001600160a01b03851615610f3d565b905061106a6110658354610791565b610791565b105f610f35565b3461023f575f604036600319011261023f576004356024356110928161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f52600160205260405f2091803b1561023f57610d43935f936040519586948593849363336df76760e21b85526004850161238c565b3461023f575f604036600319011261023f576004356024356111008161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f525f60205260405f2091803b1561023f57610d43935f93604051958694859384936327baff8b60e01b85526004850161238c565b3461023f575f604036600319011261023f5760043560243561116d8161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f52600160205260405f2091803b1561023f57610d43935f9360405195869485938493632b3e9cb160e11b85526004850161238c565b61012036600319011261023f576111d03661022e565b604060a4356111de81610989565b60c435906111eb82610989565b610a786111f6610994565b94610104356112048161045f565b61120c612c0e565b61121582612c41565b9661121f88611ade565b9561122989611ad0565b95611232611d67565b945f86525f60208701525f8a8701525f60608701525f60808701525f60a08701526112608560c08801611e24565b61126d8560e08801611e24565b5f196101008701819052610120870152895163c7bbeb8f60e01b81529a8b998a997f00000000000000000000000000000000000000000000000000000000000000009160048c016123ad565b3461023f57602036600319011261023f576004356112d68161045f565b60018060a01b03165f526003602052602060405f2054604051908152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461023f57602036600319011261023f576004356001600160401b03811161023f5761135a6113546102ed923690600401610be7565b90612542565b604051918291826112f4565b5f91031261023f57565b6001600160a01b03909116815260200190565b3461023f575f36600319011261023f576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b3461023f575f36600319011261023f5760206040516120c88152f35b60c036600319011261023f576113f83661022e565b6114006109aa565b611408612c0e565b61147e61141483612c41565b9261141e84613751565b936114298282612c67565b505060405163e761a98160e01b815260048101959095527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316602486015260448501526064840190611fc5565b6001600160801b0316610104820152604081610124817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92610ac157505f5f516020615c345f395f51905f525d6102ed60405192839283610254565b3461023f5761016036600319011261023f576004356114f88161045f565b61150136610243565b61150a36610bd6565b61014435916101243591906001600160401b03841161023f57604094611537611546953690600401610be7565b5050611541612c0e565b612629565b5f5f516020615c345f395f51905f525d82516001600160e01b03199092168252600f0b6020820152f35b3461023f575f36600319011261023f57602060405173dac0cbf141e6270c5de6dd2d6532992562810b388152f35b3461023f5760c036600319011261023f576115c46115bb3661022e565b60a43590612895565b906102ed60405192839283610254565b3461023f57602036600319011261023f576004355f60a06040516115f781611aff565b82815282602082015282604082015282606082015282608082015201525f525f6020526102ed60405f2060046040519161163083611aff565b80546001600160a01b0390811684526001820154611652911660208501611e24565b61166b6116626002830154610453565b60408501611e24565b61169d611694600383015461168b61168282610453565b60608801611e24565b60a01c60ff1690565b15156080850152565b015460a08281019182526040805184516001600160a01b039081168252602080870151821690830152828601518116928201929092526060808601519092169181019190915260809384015115159381019390935290519082015290819060c0820190565b3461023f57602036600319011261023f5760043561171f8161045f565b60018060a01b03165f526005602052602060405f2054604051908152f35b6102c036600319011261023f576117533661022e565b60a435906117608261045f565b60c43561176c8161045f565b60e4356117788161045f565b6101043561178581610989565b610124359061179382610989565b61014435926001600160801b038416840361023f5761016435946117b68661045f565b6101403661018319011261023f576115c497610184976128ed565b3461023f5760c036600319011261023f576115c46117ee3661022e565b60a43590612b59565b3461023f57602036600319011261023f57600435611813612c0e565b805f525f60205260405f209060405191631afa9aa560e01b835260048301526002602483015260448201526020816064817374eccf857176cb538aab1642a972444857f7860f5af4801561044e576102ed915f9161188d575b505f5f516020615c345f395f51905f525d6040519081529081906020820190565b6118af915060203d6020116118b5575b6118a78183611b3a565b8101906125ea565b5f61186c565b503d61189d565b3461023f5760e036600319011261023f576004356118d98161045f565b6118e236610243565b6118ed60c43561045f565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f1576280000062ffffff604083013561193381611d95565b16146110365761194290612c41565b61196e8261194f83611ade565b80546001600160a01b0319166001600160a01b03909216919091179055565b604051916001600160a01b0316905f516020615c545f395f51905f525f80a3636e4c1aa760e11b8152602090f35b3461023f5761012036600319011261023f576004356119ba36610243565b90610104359060c43560e4356119cf84610653565b3033036102f157604093611a23916119e685611ad0565b865163066648b560e41b81529788968796927f00000000000000000000000000000000000000000000000000000000000000009060048901612bc8565b03817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92611a5c575b506102ed60405192839283610254565b9050611a77915060403d604011610aec57610add8183611b3a565b905f611a4c565b3461023f57604036600319011261023f576020611ac7600435611aa08161045f565b60243590611aad8261045f565b6001600160a01b03165f9081526007845260409020611cae565b54604051908152f35b5f52600160205260405f2090565b5f525f60205260405f2090565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b03821117611b1a57604052565b611aeb565b60a081019081106001600160401b03821117611b1a57604052565b601f909101601f19168101906001600160401b03821190821017611b1a57604052565b35906001600160401b038216820361023f57565b6101208091611b8884611b8383611b5d565b61079d565b611ba1611b9760208301611b5d565b602086019061079d565b611bba611bb060408301611b5d565b604086019061079d565b611bd3611bc960608301611b5d565b606086019061079d565b611bec611be260808301611b5d565b608086019061079d565b611c04611bfb60a0830161065d565b151560a0860152565b611c1d611c1360c08301610470565b60c08601906107aa565b611c36611c2c60e08301610470565b60e08601906107aa565b6101008101356101008501520135910152565b9081526101608101929161047b9160200190611b71565b6040513d5f823e3d90fd5b6101408101929161047b9190611b71565b6001600160a01b03165f90815260086020526040902090565b6001600160a01b03165f90815260026020526040902090565b9060018060a01b03165f5260205260405f2090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610ba757565b620f42400390620f42408211610ba757565b91908203918211610ba757565b9060068201809211610ba757565b9060018201809211610ba757565b9060028201809211610ba757565b9060058201809211610ba757565b9060048201809211610ba757565b91908201809211610ba757565b6040519061047b61024083611b3a565b6040519061047b61014083611b3a565b6040519061047b606083611b3a565b6040519061047b608083611b3a565b62ffffff81160361023f57565b91908260a091031261023f57604051611dba81611b1f565b60808082948035611dca8161045f565b84526020810135611dda8161045f565b60208501526040810135611ded81611d95565b60408501526060810135611e0081610989565b6060850152013591611e118361045f565b0152565b6001600160401b039091169052565b6001600160a01b039091169052565b906008611e3e611d57565b92611ecb611ec28254611e60611e5382610791565b6001600160801b03168852565b611e7a611e708260801c60020b90565b60020b6020890152565b611e94611e8a8260981c60020b90565b60020b6040890152565b611ea860b082901c60ff1615156060890152565b611ebc60b882901c60ff1615156080890152565b60c01c90565b60a08601611e15565b611f03611efa6001830154611eeb611ee282610453565b60c08901611e24565b60a01c6001600160401b031690565b60e08601611e15565b611f2e611f246002830154611eeb611f1a82610453565b6101008901611e24565b6101208601611e15565b611f59611f4f6003830154611eeb611f4582610453565b6101408901611e24565b6101608601611e15565b611f84611f7a6004830154611eeb611f7082610453565b6101808901611e24565b6101a08601611e15565b60058101546101c085015260068101546101e085015260078101546102008501520154610220830152565b919082604091031261023f576020825192015190565b608080918035611fd48161045f565b6001600160a01b031684526020810135611fed8161045f565b6001600160a01b0316602085015262ffffff604082013561200d81611d95565b166040850152606081013561202181610989565b60020b606085015201356120348161045f565b6001600160a01b0316910152565b959194612080919b9a98946101a0989461047b9b976102e08a019e8a5260208a015260018060a01b0316604089015260608801526080870190611fc5565b600290810b6101208601520b6101408401526001600160801b03166101608301526001600160a01b03166101808201520190611b71565b356120c18161045f565b90565b356120c181610653565b600f0b60016001607f1b03198114610ba7575f0390565b92915f91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f1576315d7892d60e21b946001600160a01b0316301461226e5761213b82612c41565b9061214582611ade565b9261215b61038f600386015460ff9060a01c1690565b8015612262575b612257576121736001850154610453565b61217f610312836120b7565b6001600160a01b03909116149182612196826120c4565b15150361223357906121b4916020600487015491013593849261337d565b9390928315801561224f575b6122335760016001607f1b038411801561223f575b6122335784845f94936121e7936135ca565b1215612212576121fc61220f92600f0b6120ce565b6001600160801b031660809190911b1790565b91565b61222161220f92600f0b6120ce565b60801b6001600160801b039091161790565b5050505050505f905f90565b5060016001607f1b0385116121d5565b5084156121c0565b50505050505f905f90565b50600484015415612162565b5050505f905f90565b949192612297610120959298979461014088019988526020880190611fc5565b60c08601526001600160a01b0390811660e086015290811661010085015216910152565b6001600160a01b039091168152602081019190915260e08101929161047b9160400190611fc5565b9081606091031261023f578051916040602083015192015190565b9261016094612331916001979399989461018087019a875260208701526002604087015260608601526080850190611fc5565b6101208301526101408201520152565b9261016094612331915f979399989461018087019a875260208701526002604087015260608601526080850190611fc5565b6001600160801b039182169082160391908211610ba757565b90815260208101919091526001600160a01b03909116604082015260600190565b98946102c0989461012098946123ea939d9c98946102e08d019e8d5260208d015260018060a01b031660408c015260608b015260808a0190611fc5565b600290810b888701520b6101408701526001600160801b03166101608601526001600160a01b03166101808501528051612429906101a086019061079d565b61243c60208201516101c086019061079d565b61244f60408201516101e086019061079d565b612462606082015161020086019061079d565b612475608082015161022086019061079d565b60a0810151151561024085015261249560c08201516102608601906107aa565b6124a860e08201516102808601906107aa565b6101008101516102a08501520151910152565b909291928360201161023f57831161023f5760200191601f190190565b9081602091031261023f573560ff8116810361023f5790565b6001600160401b038111611b1a57601f01601f191660200190565b929192612518826124f1565b916125266040519384611b3a565b82948184528183011161023f578281602093845f960137010152565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036125dc578060201161023f5761259f61259860ff928061259260208701876124d8565b956124bb565b369161250c565b9116600181036125b357506120c190613cf2565b600281149081156125d1575b506125c8575f80fd5b6120c190613ab1565b60039150145f6125bf565b6282b42960e81b5f5260045ffd5b9081602091031261023f575190565b919261261961010094979695929761012085019885526020850190611fc5565b151560c083015260e08201520152565b935f9390929091907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f15763b47b2fb160e01b956001600160a01b0316301461288d5761268282612c41565b9061268c82611ade565b936126a261038f600387015460ff9060a01c1690565b6128835760018501946126b58654610453565b6126c1610312876120b7565b6001600160a01b03909116146126d8818787613ec9565b97919890955f9560048601549185831515918261286d575b5050612796575b50505050507374eccf857176cb538aab1642a972444857f7860f9261271b85611ad0565b92843b1561023f575f9661277792604051998a98899788976366a9ddc960e01b89526004890193909796959260e0959261010086019986526020860152600260408601526060850152608084015260a083015260c08201520152565b03915af4801561044e576127885750565b806104425f61047b93611b3a565b6127a48160801d91600f0b90565b91908515612865575f905b600f0b1380612859575b156126f7576127da6110656107916127d46127e19654610453565b946120ce565b918461404a565b919092836127f0575b806126f7565b6128146020936040519586948594632353f65960e11b865215908c600487016125f9565b03815f305af15f9181612838575b50612830575b8080806127ea565b91505f612828565b61285291925060203d6020116118b5576118a78183611b3a565b905f612822565b505f82600f0b126127b9565b915f906127af565b6128789192506120c4565b15151415855f6126f0565b505f955050505050565b505f93505050565b9061289f82612c41565b5f525f60205260405f209160ff600384015460a01c161580156128e1575b61226e576128dd92600460018060a01b036001830154169101549161404a565b9091565b506004830154156128bd565b9392969897909598949194612900612c0e565b61290c608086016120b7565b306001600160a01b0390911603612b00576280000062ffffff61293160408801612b0f565b16146110365761297960207f0000000000000000000000000000000000000000000000000000000000000000986040518093819263313b65df60e11b83528a60048401612b39565b03815f6001600160a01b038d165af1801561044e57612ad3575b5061299d85612c41565b996129ab3361194f8d611ade565b338b5f516020615c545f395f51905f525f80a37374eccf857176cb538aab1642a972444857f7860f966129dd8c611ade565b90883b1561023f578c612a295f936040519d8e9485946336a7664f60e21b86528d7f00000000000000000000000000000000000000000000000000000000000000009460048801612277565b03818a5af493841561044e57604099612a7295612abf575b50612a4b8c611ade565b95612a558d611ad0565b978b519d8e9b8c9a8b9a63c7bbeb8f60e01b8c5260048c01612042565b03915af491821561044e575f905f93612a9b575b5091905f5f516020615c345f395f51905f525d565b9050612ab791925060403d604011610aec57610add8183611b3a565b91905f612a86565b806104425f612acd93611b3a565b5f612a41565b612af49060203d602011612af9575b612aec8183611b3a565b810190612b24565b612993565b503d612ae2565b637f974cc960e01b5f5260045ffd5b356120c181611d95565b519061047b82610989565b9081602091031261023f57516120c181610989565b90929160a090612b4d8360c0810196611fc5565b600180831b0316910152565b90612b6382612c41565b5f525f60205260405f2060ff600382015460a01c16158015612bbc575b61226e5760018101546128dd936001600160a01b039091169160048235612ba68161045f565b910154926001600160a01b03909116149061337d565b50600481015415612b80565b959293612bfb91989794610140969361016089019a895260018060a01b0316602089015260408801526060870190611fc5565b6101008501526101208401521515910152565b5f516020615c345f395f51905f525c612c345760015f516020615c345f395f51905f525d565b63ab143c065f526004601cfd5b604051612c52602082018093611fc5565b60a08152612c6160c082611b3a565b51902090565b9091612c7282611ad0565b80546001600160801b0390612c8690610791565b1615612e1f57604080516306d523ff60e01b81527374eccf857176cb538aab1642a972444857f7860f9490918280612ce389877f0000000000000000000000000000000000000000000000000000000000000000600485016122bb565b0381885af494851561044e575f925f96612df8575b50612d0282611ade565b92612d106001850154610453565b612d1c6103128a6120b7565b6001600160a01b0390911603612df25795935b606085978099612d566040519889938493634ad5f90b60e01b855289888c60048801612341565b0381855af493841561044e575f955f905f96612dca575b50833b1561023f575f9561277791604051988997889687966366a9ddc960e01b885260048801929360e0945f969298979361010086019986526020860152600260408601526060850152608084015260a083015260c08201520152565b91965050612de891945060603d606011610ea457610e958183611b3a565b949195905f612d6d565b93612d2f565b909550612e1591925060403d604011610aec57610add8183611b3a565b919091945f612cf8565b505f9250829150565b8215612ed7576001600160a01b031680612e5b57506001600160a01b031690308214612e575761047b91614189565b5050565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af160015f5114811615612eb8575b60409190915215612e9d5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516612ece573d15833b15151616612e8f565b503d5f823e3d90fd5b505050565b929091928115612ff4576001600160a01b0316928315612fca576040516370a0823160e01b81529360208580612f158560048301611370565b0381845afa92831561044e57612f57955f94612fa2575b50612f3c908360209596846141ed565b60405180809681946370a0823160e01b835260048301611370565b03915afa91821561044e575f92612f81575b5080821115612f7b576120c191611cf7565b50505f90565b612f9b91925060203d6020116118b5576118a78183611b3a565b905f612f69565b602094509083612fc1612f3c93873d89116118b5576118a78183611b3a565b95505090612f2c565b9150809250341061063c576001600160a01b031681308203612feb57505090565b6120c191614189565b505050505f90565b600160ff1b8114610ba7575f0390565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b909161305e826101409461300c565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9291909281156133735783156133545761314460206401000276a45b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316946131299061310d90612ffc565b91613116611d77565b8915158152928484015260408301611e24565b60405180938192633cf3645360e21b8352866004840161304f565b03815f875af1801561044e57613168915f91613335575b50908160801d91600f0b90565b9281600f0b5f81129081613314575b85600f0b925f80851292836132ea575b13938461327a575b5f12958661320a575b505087156131ef5750156131e9576131b5611065610791846120ce565b95156131d3575050156131ce576001600160801b031690565b505f90565b915091505f146131ce576001600160801b031690565b5f6131b5565b1590506131e957613205611065610791866120ce565b6131b5565b6020613217910151610453565b90803b1561023f57604051630b0d9c0960e01b8152915f918391829084908290613251906001600160801b038f1690309060048501613097565b03925af1801561044e57613266575b80613198565b806104425f61327493611b3a565b5f613260565b6132848751610453565b90823b1561023f57604051630b0d9c0960e01b8152915f90839081906132ba906001600160801b038c1690309060048501613097565b038183875af191821561044e575f926132d6575b50905061318f565b80610442846132e493611b3a565b5f6132ce565b61330f6132fa60208a0151610453565b6133096110656107918d6120ce565b90614256565b613187565b6133306133218651610453565b613309611065610791886120ce565b613177565b61334e915060203d6020116118b5576118a78183611b3a565b5f61315b565b613144602073fffd8963efd1fc6a506488495d951d5263988d256130d5565b505090505f905f90565b90929391835f146135b857613391826120b7565b945b6133be7f00000000000000000000000000000000000000000000000000000000000000008097614378565b9283156135ac575f82126134ce57828210156134c5576133ea825b876133e43685611da2565b8a614426565b96909787848a159182156134bc575b82156134b2575b50506134a457858911613416575b505050505050565b90919294975061343c93965061343661342e89612ffc565b933690611da2565b90614426565b949085948196821594851561349b575b8515613491575b508415613487575b5050821561347d575b5050613475575f808080808061340e565b5f9250829150565b1190505f80613464565b1192505f8061345b565b811194505f613453565b8115955061344c565b505f97508796505050505050565b119050845f613400565b801592506133f9565b6133ea836133d9565b9394919295906134dd90612ffc565b93868510156135a0576135036134f286612ffc565b846134fd3685611da2565b85614426565b908015828115613597575b50613588578582111561357d5750509061343661352e9493923690611da2565b9093819480938115938415613574575b50831561356a575b508215613560575b5050613558579190565b505f91508190565b1190505f8061354e565b811192505f613546565b1593505f61353e565b975095945050505050565b5050505050505090505f905f90565b9050155f61350e565b6135036134f288612ffc565b505f9550859450505050565b6135c4602083016120b7565b94613393565b909192600483016135dc828254611cf7565b905560028301906135f56135f08354610453565b611c95565b613600828254611cf7565b905560018401547f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316919061363c90610453565b91803b1561023f57865f9161366a9483604051809781958294630b0d9c0960e01b8452309060048501613097565b03925af190811561044e576136b5816136b087967f2bfe994f111356b802e03edadeab67c5985f55f870815a336b4d6466f91e20bc966136c29661373d575b5054610453565b614256565b6040519182918883610254565b0390a27374eccf857176cb538aab1642a972444857f7860f6136e382611ad0565b813b1561023f575f93612777604051968795869485946366a9ddc960e01b8652600486019094939260e092610100830196835260208301526002604083015260608201525f60808201525f60a08201525f60c08201520152565b806104425f61374b93611b3a565b5f6136a9565b5f52600160205260405f209060ff825460b01c16156103205760018201546001600160a01b031633036102f157565b60408051919082016001600160401b03811183821017611b1a576040525f6020838281520152565b939095949192610120936137c961014087019860028852602088019061300c565b60c086015260e085015260020b61010084015260020b910152565b60208183031261023f578051906001600160401b03821161023f570181601f8201121561023f57805190613817826124f1565b926138256040519485611b3a565b8284526020838301011161023f57815f9260208093018386015e8301015290565b519081600f0b820361023f57565b919082604091031261023f576120c1602061386e84613846565b9301613846565b959493929095613883613780565b966001600160801b031680156125dc576138f4955f956138bd6103126138b76138cc956138b26138da996145b0565b612ffc565b97610453565b604051968795602087016137a8565b03601f198101835282611b3a565b604051809381926348c8949160e01b8352600483016112f4565b0381837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561044e57613944915f9161398e575b5060208082518301019101613854565b905f81600f0b135f14613987576001600160801b03165b83525f81600f0b135f14613980576001600160801b03165b602083015261047b6145bb565b505f613973565b505f61395b565b6139aa91503d805f833e6139a28183611b3a565b8101906137e4565b5f613934565b809103610120811261023f5760a01361023f576040516139cf81611b1f565b81516139da8161045f565b815260208201516139ea8161045f565b602082015260408201516139fd81611d95565b60408201526060820151613a1081610989565b60608201526080820151613a238161045f565b60808201529160a08201519160c0810151916120c1610100613a4760e08501612b19565b9301612b19565b9061016092613a5f8360609361300c565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b815291900b602082015260400190565b613ac490602080825183010191016139b0565b909290600284900b158181613ce6575b50613cc2575b613afd90613af3613ae9611d86565b95869060020b9052565b60020b6020850152565b60408301526060820152613b50604060018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692815180938192632d35e7ed60e11b83528760048401613a4e565b03815f865af1801561044e57613b73915f91613ca25750908160801d91600f0b90565b92613b7c6151c0565b5c906001600160a01b03821615613c9a575b5f83600f0b13613c30575b5f85600f0b13613bbd575b50506120c191506138cc60405193849260208401613a9c565b6020613bca910151610453565b833b1561023f57604051630b0d9c0960e01b8152935f928592839185918391613c02916001600160801b038c16919060048501613097565b03925af191821561044e576120c192613c1c575b80613ba4565b806104425f613c2a93611b3a565b5f613c16565b613c3a8151610453565b843b1561023f57604051630b0d9c0960e01b8152905f9082908190613c6f906001600160801b03891690889060048501613097565b038183895af1801561044e57613c86575b50613b99565b806104425f613c9493611b3a565b5f613c80565b309150613b8e565b613cbb915060403d604011610aec57610add8183611b3a565b505f61315b565b50613afd9250613cde613cd9606086015160020b90565b6145fd565b909350613ada565b905060020b155f613ad4565b613d08613d1a91602080825183010191016139b0565b613af3613ae996929596949394611d86565b60408301526060820152613d6d604060018060a01b037f00000000000000000000000000000000000000000000000000000000000000001692815180938192632d35e7ed60e11b83528760048401613a4e565b03815f865af1801561044e57613d90915f91613ca25750908160801d91600f0b90565b9281600f0b905f8212613e86575b84600f0b5f8112613e62575b613db26151c0565b5c926001600160a01b03841615613e5a575b5f12613dea575b5f12613bbd5750506120c191506138cc60405193849260208401613a9c565b613df48251610453565b90853b1561023f57604051630b0d9c0960e01b8152915f9083908190613e2a906001600160801b038a1690899060048501613097565b0381838a5af191821561044e575f92613e46575b509050613dcb565b8061044284613e5493611b3a565b5f613e3e565b309350613dc4565b613e81613e726020840151610453565b6133096110656107918a6120ce565b613daa565b613ea2613e938251610453565b613309611065610791876120ce565b613d9e565b9192613ec260c092959460e085019685526020850190611fc5565b1515910152565b9091925f935f935f93613edb81611ad0565b80546001600160801b03613eee82610791565b161561400b5780613f12613f08613f479360801c60020b90565b9160981c60020b90565b613f1e61031230610453565b9130867f0000000000000000000000000000000000000000000000000000000000000000614634565b908515614005575b81811715613ff4576005830154119182613fe6575b5050613fd85790606091613f8c6040519485938493632fcc439760e11b855260048501613ea7565b03815f305af15f815f935f93613fb0575b50613fa757505050565b95509093509150565b91509250613fcd915060603d606011610ea457610e958183611b3a565b92919092915f613f9d565b505f95508594508493505050565b600601541190505f80613f64565b505f98508897508796505050505050565b90613f4f565b505f975087965086955050505050565b634e487b7160e01b5f52601260045260245ffd5b801561403b575f190490565b61401b565b811561403b570490565b9193929084158015614181575b61415957614067610312846120b7565b6001600160a01b0390911614159061407e83612c41565b946141037f00000000000000000000000000000000000000000000000000000000000000009662ffffff6140fc866140d5818c6140cf6140be88836148b0565b976140c98951610453565b92614969565b906149f2565b936140f660606140eb604084015162ffffff1690565b92015162ffffff1690565b90614a61565b1690614ab9565b8015614174576141289291908082101561416c5750905b818110614164575b50614b24565b9384156141595790614141929161343661342e87612ffc565b90508015613558576120c190620f4240810490611cf7565b50505090505f905f90565b90505f614122565b90509061411a565b505050505090505f905f90565b508115614057565b8147106141d6575f918291604051916141a3602084611b3a565b8383528392602001916001600160a01b03165af1156141be57565b3d15155f03611c605763d6bda27560e01b5f5260045ffd5b504763cf47918160e01b5f5260045260245260445ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615614240575b6040919091525f60605215612e9d5750565b6001811516612ece573d15833b1515161661422e565b6001600160a01b0381166142cf5750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af1801561044e576142b7575b50565b6142b49060203d6020116118b5576118a78183611b3a565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811690813b1561023f57604051632961046560e21b8152925f84806143218860048301611370565b038183875af191821561044e575f9560209561434294614364575b50614d2a565b600460405180948193630476982d60e21b83525af1801561044e576142b75750565b806104428961437293611b3a565b5f61433c565b6001600160a01b03168061438b57503190565b6040516370a0823160e01b81526001600160a01b039092166004830152602090829060249082905afa90811561044e575f916143c5575090565b6120c1915060203d6020116118b5576118a78183611b3a565b60a08101929161047b919061300c565b60020b5f190190627fffff198212627fffff831317610ba757565b600291820b910b0390627fffff198212627fffff831317610ba757565b9092919282156145a6576040516020810190614446816138cc85856143de565b5190209361445485846148b0565b9460018060a01b036144668751610453565b1615612233576144768185614969565b936001600160801b038516156145995760208701906144b284606061449c855160020b90565b9701966144aa885160020b90565b908685614dd8565b819691966144c36103128c51610453565b6001600160a01b039091161461451c575b50505050509161450e939161450886946144f2614518999851610453565b956140f660606140eb604084015162ffffff1690565b93615039565b9190949250611d4a565b9190565b80919293949596509015614591575b614583576145589361455261454a61454588965160020b90565b6143ee565b925160020b90565b92614dd8565b5090816145686103128751610453565b6001600160a01b039091161015612257575f808080806144d4565b50505050505050505f905f90565b50841561452b565b505050505050505f905f90565b505050505f905f90565b6145b86151c0565b5d565b5f6145b86151c0565b60020b9060020b90811561403b57627fffff1981145f19831416610ba7570590565b9060020b9060020b02908160020b918203610ba757565b8060020b905f8213156125dc57811561403b5761461e91620d89e8056145e6565b908160020b627fffff198114610ba7575f039190565b949593919092958660020b1580614851575b61483f575b60405160609290921b6001600160601b0319166020830190815260e888811b603485015284901b6037840152603a8301919091529061468d81605a81016138cc565b5190206138cc6146c86146b760405160208101906146af816138cc8a85614890565b519020611d04565b6040519283916020830195866148a0565b519020604051631e2eaeaf60e01b815260048101829052909590946001600160a01b0381169390602087602481885afa801561044e5761473e975f91614820575b506001600160801b031694602061471f8a611d12565b604051809a8192631e2eaeaf60e01b8352600483019190602083019252565b0381845afa97881561044e575f986147f2575b506020906147646147859798999a611d20565b906040518080998194631e2eaeaf60e01b8352600483019190602083019252565b03915afa94851561044e575f956147d1575b5085156147c357926147bb926147b2926120c19796956151f7565b96900383614b91565b940390614b91565b50505050505090505f905f90565b6147eb91955060203d6020116118b5576118a78183611b3a565b935f614797565b6147859697985090614764614815602093843d86116118b5576118a78183611b3a565b999897505090614751565b614839915060203d6020116118b5576118a78183611b3a565b5f614709565b620d8977199650620d8978925061464b565b508260020b15614646565b60405190608082016001600160401b03811183821017611b1a576040525f6060838281528260208201528260408201520152565b6040918152600660208201520190565b9091604092825260208201520190565b60206148fa919392936148c161485c565b946040516148d6816138cc8682019485614890565b519020906040518080958194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa801561044e5762ffffff915f9161494a575b506001600160a01b038116845260a081901c60020b602085015260b881901c8216604085015260d01c166060830152565b614963915060203d6020116118b5576118a78183611b3a565b5f614919565b9060405161497f816138cc602082019485614890565b5190209060038201809211610ba757604051631e2eaeaf60e01b81526004810192909252602090829060249082906001600160a01b03165afa90811561044e575f916149d3575b506001600160801b031690565b6149ec915060203d6020116118b5576118a78183611b3a565b5f6149c6565b90916001600160a01b039091169081158015614a3d575b614a365715614a24576120c1916001600160801b0316614c21565b6120c1916001600160801b0316614bd9565b5050505f90565b506001600160801b03831615614a09565b81810292918115918404141715610ba757565b610fff9062ffffff92935f14614ab057165b16908115614aab5762ffffff1680820191828111610ba757620f424091614a9991614a4e565b048103908111610ba75762ffffff1690565b905090565b600c1c16614a73565b5f1982820982820291828083109203918083039283620f424011156125dc5714614b18577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b5f19611f408209611f4082029081808210910390808203918261271011156125dc5714614b8757612710611f407fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91940990828211900360fc1b910360041c170290565b5061271091500490565b5f198282099082810292838084109303928084039384600160801b11156125dc5714614bd057600160801b910990828211900360801b910360801c1790565b50505060801c90565b5f198282099082810292838084109303928084039384600160601b11156125dc5714614c1857600160601b910990828211900360a01b910360601c1790565b50505060601c90565b5f19600160601b8209918160601b918280851094039380850394858411156125dc5714614ca2578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90915f1983830992808302928380861095039480860395868511156125dc5714614d22579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b91907f1bde310958327eb1c8a9046a2bb97d1e21ae8a0e23960bbeb793bdf7f87b6f8b5c6001600160a01b038116614d66575061047b92612e28565b6142b493612edc565b9060020b90811561403b5760020b0790565b60020b627fffff198114610ba7575f190190565b60ff1660ff039060ff8211610ba757565b9060ff8091169116039060ff8211610ba757565b9060020b9060020b0190627fffff198212627fffff831317610ba757565b93929192614de683856145c4565b93835f8260020b12918261501b575b505061500b575b15614f3a57614e3890614e1e614e188560020b60081d60020b90565b60010b90565b90614e32610100600287900b075b60ff1690565b9561538a565b614e4e614e4485614d95565b60ff5f1991161c90565b1680158015949190614f205792614edb614ed0614e2c614ee194614eca614ee6988060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b90614da6565b62ffffff1660020b90565b90614409565b6145e6565b620d89e719808260020b12614f18575b50620d89e88160020b13614f0e575b61220f906153f1565b50620d89e8614f05565b90505f614ef6565b50614f359260ff614ee1921660020b90614409565b614ee6565b916001614f59910160020b92614e1e614e188560020b60081d60020b90565b614f68600160ff86161b611cd7565b191680158015949190614ff45792614fee614ed0614e2c614ee194614fe9614f3598805f03168060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b614da6565b90614dba565b50614f3592614fee614ed0614e2c614ee194614d95565b9261501590614d81565b92614dfc565b61503092509061502a91614d6f565b60020b90565b1515835f614df5565b939492936001600160a01b0380831690821610159290915f8612156151175761507a62ffffff61506888612ffc565b98169761507489611ce5565b90614ab9565b84156151065761508b8385846157c1565b965b8782106150da5750508096620f424081145f146150c15750855b935b156150b8579161220f92615837565b61220f92615757565b806150ce6150d592611ce5565b90886158fc565b6150a7565b915095506150fb9650615100866150f386828688615928565b988993612ffc565b611cf7565b936150a9565b61511183838661587b565b9661508d565b929594939286156151af5761512d828483615837565b945b8581106151735750906120c1929180975b15615165579161514f926157c1565b62ffffff81951661515f81611ce5565b916158fc565b61516e9261587b565b61514f565b945050615182868583856158e4565b956001600160a01b0387161561519e5790866120c19392615140565b505050925050505f905f905f905f90565b6151ba828285615757565b9461512f565b60405160208101903060601b82527010d85b1b189858dad49958da5c1a595b9d607a1b603482015260258152612c61604582611b3a565b9392919061520581866148b0565b615226604051602081019061521e816138cc8785614890565b519020611d12565b604051631e2eaeaf60e01b815260048101829052969094906001600160a01b038116602089602481845afa96871561044e57615291995f98615362575b5090615270602092611d12565b9060405180809c8194631e2eaeaf60e01b8352600483019190602083019252565b03915afa97881561044e575f98615336575b50906152ea826152c4836152bc898960209a9998615940565b979093615940565b96909401966152d4885160020b90565b600291820b910b1261531c5793955b5160020b90565b600291820b910b12156153025791935b030393030390565b61530f6153169186611cf7565b9287611cf7565b936152fa565b6153296153309189611cf7565b948a611cf7565b956152e3565b60209493929198506153576152ea91863d88116118b5576118a78183611b3a565b9891929394506152a3565b60209291985061538161527091843d86116118b5576118a78183611b3a565b98919250615263565b6153c9926138cc6148d66153b66020956040516153ae816138cc8a82019485614890565b519020611d2e565b6040519283918783019560010b866148a0565b03916001600160a01b03165afa90811561044e575f916143c5575090565b811561403b570690565b60020b5f81121561575157805f03905b620d89e882116125dc576001821615615747576ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316916002811661572b575b6004811661570f575b600881166156f3575b601081166156d7575b602081166156bb575b6040811661569f575b60808116615683575b6101008116615667575b610200811661564b575b610400811661562f575b6108008116615613575b61100081166155f7575b61200081166155db575b61400081166155bf575b61800081166155a3575b620100008116615587575b62020000811661556c575b620400008116615551575b6208000016615538575b5f1261552a575b6155086154fe8260201c90565b9163ffffffff1690565b615522575f905b60ff91909116016001600160a01b031690565b60019061550f565b6155339061402f565b6154f1565b6b048a170391f7dc42444e8fa290910260801c906154ea565b6d2216e584f5fa1ea926041bedfe9890920260801c916154e0565b916e5d6af8dedb81196699c329225ee6040260801c916154d5565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916154ca565b916f31be135f97d08fd981231505542fcfa60260801c916154bf565b916f70d869a156d2a1b890bb3df62baf32f70260801c916154b5565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916154ab565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916154a1565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91615497565b916ff3392b0822b70005940c7a398e4b70f30260801c9161548d565b916ff987a7253ac413176f2b074cf7815e540260801c91615483565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91615479565b916ffe5dee046a99a2a811c461f1969c30530260801c9161546f565b916fff2ea16466c96a3843ec78b326b528610260801c91615466565b916fff973b41fa98c081472e6896dfb254c00260801c9161545d565b916fffcb9843d60f6159c9db58835c9266440260801c91615454565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161544b565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91615442565b916ffff97272373d413259a46990580e213a0260801c91615439565b600160801b615426565b80615401565b91906001600160a01b03808216908416116157bb575b6001600160a01b039283169216828103818111610ba75783821480156157aa575b612ff4576140409260601b600160601b600160e01b0316614ca9565b506001600160801b0383161561578e565b9161576d565b91906001600160a01b0380821690841611615831575b6001600160a01b039283169216828103818111610ba7578382148015615820575b612ff4576158149260601b600160601b600160e01b03166158fc565b90808206151591040190565b506001600160801b038316156157f8565b916157d7565b906001600160a01b0380821690831611615875575b6001600160a01b039182169116908103908111610ba7576120c1916001600160801b0316614bd9565b9061584c565b91906001600160a01b03808216908416116158de575b6001600160a01b039283169216918203918211610ba7576001600160801b03166158c0600160601b8383614ca9565b91600160601b91096158cf5790565b5f198110156125dc5760010190565b91615891565b92156158f3576120c192615a9d565b6120c192615a2e565b92919061590a828286614ca9565b93821561403b570961591857565b905f198110156125dc5760010190565b9215615937576120c192615ba3565b6120c192615b2f565b92916138cc61598061596c6159b794604051615964816138cc602082019485614890565b519020611d3c565b604051928391602083019560020b866148a0565b519020926001600160a01b0316602061599885611d12565b60405180948192631e2eaeaf60e01b8352600483019190602083019252565b0381845afa90811561044e576159db6020926159fc945f91615a11575b5095611d20565b906040518080958194631e2eaeaf60e01b8352600483019190602083019252565b03915afa90811561044e575f916143c5575090565b615a289150843d86116118b5576118a78183611b3a565b5f6159d4565b91908115615a985760601b600160601b600160e01b0316916001600160a01b03169081615a5b8183614a4e565b91820403614a365780831115614a3657820390828211610ba757615a7e926158fc565b6001600160a01b0381116131ce576001600160a01b031690565b505090565b918015615a98576001600160a01b038111615aec5760601b9060018060801b03168082061515910401905b6001600160a01b03169080821115612f7b578103908111610ba7576120c190610453565b906001600160801b0316615b0581600160601b84614ca9565b91811561403b57600160601b9009615b1e575b90615ac8565b5f198110156125dc57600101615b18565b91908115615a98576001600160a01b038211615b88576001600160801b031690811561403b5760601b04905b6001600160a01b0316908101908110610ba7576001600160a01b0381116125dc576001600160a01b031690565b615b9d916001600160801b0390911690614c21565b90615b5b565b91908115615a985760601b600160601b600160e01b0316916001600160a01b031681810281615bd28483614040565b14615c1f575b5090615be7615bf89284614040565b01615bf28184614040565b926153e7565b615c17575b6001600160a01b0381116125dc576001600160a01b031690565b600101615bfd565b8301838110615bd8579150615bfd926158fc56fe165848338463d30c17057f5abfcc323310dd08e72aea99ae6ce410ff3a16adf00b1805a2a2d444856f9d64ad1693826cc51023abe99cddf83f065c9152465a2da164736f6c6343000823000a00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac0000000000000000000000004200000000000000000000000000000000000006
Deployed Bytecode
0x6080604052600436101561001a575b3615610018575f80fd5b005b5f3560e01c8063010999841461022957806316b3e9bb146102245780631e83409a1461021f578063286e08f01461021a57806346a7ecb214610215578063473ca926146102105780634c95a8481461020b5780634fe6b80b14610206578063569a2d7d14610201578063575e24b4146101fc578063578ea4a0146101f75780635f98872e146101f257806369f99990146101ed5780636ec9a743146101e857806371246487146101e35780637639bc1e146101de5780637e03657d146101d957806383ea96a9146101d457806391dd7346146101cf5780639743af26146101ca578063ac4e4054146101c5578063acbf9f16146101c0578063b47b2fb1146101bb578063c0a17662146101b6578063c5afbcb4146101b1578063c66f3cb4146101ac578063d2ac2d8a146101a7578063d2d5f19e146101a2578063d7b636e91461019d578063d7ca239a14610198578063dc98354e14610193578063e148b2751461018e5763facba08d0361000e57611a7e565b61199c565b6118bc565b6117f7565b6117d1565b61173d565b611702565b6115d4565b61159e565b611570565b6114da565b6113e3565b6113c7565b611383565b61131e565b6112b9565b6111ba565b61114c565b6110df565b611071565b610ed7565b610d61565b610c98565b610c14565b610bac565b610af3565b6109c0565b6108dc565b610668565b610559565b61047d565b610355565b610265565b60a090600319011261023f57600490565b5f80fd5b60a090602319011261023f57602490565b908152602081019190915260400190565b3461023f5760a036600319011261023f5761027f3661022e565b610287612c0e565b61029081612c41565b5f81815260016020526040902080549192916001600160801b038116156103205760b81c60ff16159081610300575b506102f1576102cd91612c67565b905f5f516020615c345f395f51905f525d6102ed60405192839283610254565b0390f35b631eb49d6d60e11b5f5260045ffd5b61031791506001610312910154610453565b610453565b3314155f6102bf565b6305af2e7f60e31b5f5260045ffd5b61014090602319011261023f57602490565b6101409061012319011261023f5761012490565b3461023f5761016036600319011261023f576004356103733661032f565b61037c82611ad0565b9061039361038f835460ff9060b01c1690565b1590565b610320576103a76103126004840154610453565b33036102f1577374eccf857176cb538aab1642a972444857f7860f803b1561023f57815f916103ec94604051809681948293634351a29760e11b845260048401611c49565b03915af490811561044e577fb95b352c3b5f439cc1b93c773d987e3382f3b7e2972f37f0b11b6008cddaa51d9261042f92610434575b5060405191829182611c6b565b0390a2005b806104425f61044893611b3a565b80611366565b5f610422565b611c60565b6001600160a01b031690565b6001600160a01b0381160361023f57565b359061047b8261045f565b565b3461023f57602036600319011261023f5760043561049a8161045f565b6104a2612c0e565b335f5260076020526104b78160405f20611cae565b548015610320576102ed91335f5260076020525f6104d88260408320611cae565b556104e281611c7c565b6104ed838254611cf7565b90556104fa823383612e28565b6040518281526001600160a01b039091169033907ff7a40077ff7a04c7e61f6f26fb13774259ddf1b6bce9ecf26a8276cdd39926839080602081015b0390a35f5f516020615c345f395f51905f525d6040519081529081906020820190565b60c036600319011261023f5761056e3661022e565b61058260a4359161057d612c0e565b612c41565b61058b81611ade565b906105a161038f600384015460ff9060a01c1690565b610320576105b26002830154610453565b926001600160a01b03841661064b57803414155b61063c576105d690303386612edc565b91821561063c576102ed9360046105fa92016105f3858254611d4a565b9055611c95565b610605838254611d4a565b90556040518281523391907f54c25c010675db5311551a80c00f48292c63e3d9072b58265bc8340584ef5af4908060208101610536565b6301f2cced60e01b5f5260045ffd5b3415156105c6565b8015150361023f57565b359061047b82610653565b3461023f5761012036600319011261023f5760043561068636610243565b60c4359161069383610653565b60e4359161010435903033036102f1576106f5846106b085611ade565b966106f060046106c360028b0154610453565b9901946106d1848754611cf7565b86556106dc8a611c95565b6106e7858254611cf7565b90553690611da2565b6130b9565b94908096828210610762575b505050508210610753577fef85bac7805b280938cdf45de486b073bb9da505f8733a5c0ff5dc9d741563c5826102ed9461074060405192839283610254565b0390a26040519081529081906020820190565b630eb3a8f560e21b5f5260045ffd5b61077261077e9261078694611cf7565b936105f3858254611d4a565b918254611d4a565b90555f808581610701565b6001600160801b031690565b6001600160401b03169052565b6001600160a01b03169052565b81516001600160801b031681526102408101929161022090819060208181015160020b9085015260408181015160020b9085015260608181015115159085015260808181015115159085015261081560a082015160a086019061079d565b61082760c082015160c08601906107aa565b61083960e082015160e086019061079d565b61084d6101008201516101008601906107aa565b61086161012082015161012086019061079d565b6108756101408201516101408601906107aa565b61088961016082015161016086019061079d565b61089d6101808201516101808601906107aa565b6108b16101a08201516101a086019061079d565b6101c08101516101c08501526101e08101516101e08501526102008101516102008501520151910152565b3461023f57602036600319011261023f576102ed61097d6109786004355f610220610905611d57565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e08201528261010082015282610120820152826101408201528261016082015282610180820152826101a0820152826101c0820152826101e0820152826102008201520152611ad0565b611e33565b604051918291826107b7565b8060020b0361023f57565b60e435906001600160801b038216820361023f57565b60a435906001600160801b038216820361023f57565b61026036600319011261023f576109d63661022e565b604060a4356109e481610989565b60c435926109f184610989565b610a786109fc610994565b61010435610a098161045f565b610a1236610341565b91610a1b612c0e565b610a2485612c41565b97885f525f602052875f2096895f526001602052885f209689519a8b998a9963c7bbeb8f60e01b8b527f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac9160048c01612042565b03817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92610ac1575b505f5f516020615c345f395f51905f525d6102ed60405192839283610254565b9050610ae5915060403d604011610aec575b610add8183611b3a565b810190611faf565b905f610aa1565b503d610ad3565b3461023f57602036600319011261023f57600435610b108161045f565b6001600160a01b0381165f90815260026020908152604080832054600390925290912054810191908210610ba7576001600160a01b0381165f908152600560205260409020548201809211610ba757610b6881611c7c565b548201809211610ba7576001600160a01b03165f9081526009602052604090206102ed91610b97915490611d4a565b6040519081529081906020820190565b611cc3565b3461023f57602036600319011261023f576004355f526004602052602060405f2054604051908152f35b60609060c319011261023f5760c490565b9181601f8401121561023f578235916001600160401b03831161023f576020838186019501011161023f57565b3461023f5761014036600319011261023f57600435610c328161045f565b610c3b36610243565b90610c4536610bd6565b61012435906001600160401b03821161023f5760609362ffffff93610c71610c78943690600401610be7565b50506120e5565b906040939293519363ffffffff60e01b1684526020840152166040820152f35b3461023f575f60e036600319011261023f57610cb33661022e565b60a43590610cc08261045f565b60c43591610ccd8361045f565b610cd682612c41565b7374eccf857176cb538aab1642a972444857f7860f90805f525f60205260405f2093823b1561023f57610d435f95604051978896879586956336a7664f60e21b87527f00000000000000000000000042000000000000000000000000000000000000069460048801612277565b03915af4801561044e57610d55575080f35b61001891505f90611b3a565b3461023f5760e036600319011261023f57600435610d7e36610243565b9060c43590610d8c82610653565b3033036102f157610d9c81611ad0565b6040805163caf75a2760e01b81527374eccf857176cb538aab1642a972444857f7860f92918180610df289867f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac600485016122bb565b0381865af490811561044e576060955f915f93610eb4575b5015610eab57610e3d90915b610e1f86611ade565b604051634ad5f90b60e01b81529889978896879693600488016122fe565b03915af4801561044e575f905f925f91610e74575b506102ed90604051938493846040919493926060820195825260208201520152565b90506102ed9250610e9d915060603d606011610ea4575b610e958183611b3a565b8101906122e3565b9092610e52565b503d610e8b565b610e3d90610e16565b909250610ed0915060403d604011610aec57610add8183611b3a565b915f610e0a565b3461023f5760e036600319011261023f57610ef13661022e565b610ef96109aa565b60c43591610f068361045f565b610f0e612c0e565b610f1781612c41565b90610f2182613751565b6001600160801b0384168015908115611056575b508015611045575b6110365781610fd491610f717f5d7b14cab4f85e6bf22756544b9d2ef4f30c5630b685f29e7edff9d42757dbd09486612c67565b5050610fa5610f8987610f848454610791565b612373565b82546001600160801b0319166001600160801b03909116178255565b5486610fc1610fb78360801c60020b90565b9260981c60020b90565b9287610fcf30923690611da2565b613875565b805160208083018051604080516001600160801b0399909916895292880193909352908601919091526001600160a01b0395909516606085015292608090a2519051905f5f516020615c345f395f51905f525d6102ed60405192839283610254565b6301f30c8760e21b5f5260045ffd5b506001600160a01b03851615610f3d565b905061106a6110658354610791565b610791565b105f610f35565b3461023f575f604036600319011261023f576004356024356110928161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f52600160205260405f2091803b1561023f57610d43935f936040519586948593849363336df76760e21b85526004850161238c565b3461023f575f604036600319011261023f576004356024356111008161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f525f60205260405f2091803b1561023f57610d43935f93604051958694859384936327baff8b60e01b85526004850161238c565b3461023f575f604036600319011261023f5760043560243561116d8161045f565b7374eccf857176cb538aab1642a972444857f7860f90825f52600160205260405f2091803b1561023f57610d43935f9360405195869485938493632b3e9cb160e11b85526004850161238c565b61012036600319011261023f576111d03661022e565b604060a4356111de81610989565b60c435906111eb82610989565b610a786111f6610994565b94610104356112048161045f565b61120c612c0e565b61121582612c41565b9661121f88611ade565b9561122989611ad0565b95611232611d67565b945f86525f60208701525f8a8701525f60608701525f60808701525f60a08701526112608560c08801611e24565b61126d8560e08801611e24565b5f196101008701819052610120870152895163c7bbeb8f60e01b81529a8b998a997f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac9160048c016123ad565b3461023f57602036600319011261023f576004356112d68161045f565b60018060a01b03165f526003602052602060405f2054604051908152f35b602060409281835280519182918282860152018484015e5f828201840152601f01601f1916010190565b3461023f57602036600319011261023f576004356001600160401b03811161023f5761135a6113546102ed923690600401610be7565b90612542565b604051918291826112f4565b5f91031261023f57565b6001600160a01b03909116815260200190565b3461023f575f36600319011261023f576040517f00000000000000000000000042000000000000000000000000000000000000066001600160a01b03168152602090f35b3461023f575f36600319011261023f5760206040516120c88152f35b60c036600319011261023f576113f83661022e565b6114006109aa565b611408612c0e565b61147e61141483612c41565b9261141e84613751565b936114298282612c67565b505060405163e761a98160e01b815260048101959095527f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b0316602486015260448501526064840190611fc5565b6001600160801b0316610104820152604081610124817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92610ac157505f5f516020615c345f395f51905f525d6102ed60405192839283610254565b3461023f5761016036600319011261023f576004356114f88161045f565b61150136610243565b61150a36610bd6565b61014435916101243591906001600160401b03841161023f57604094611537611546953690600401610be7565b5050611541612c0e565b612629565b5f5f516020615c345f395f51905f525d82516001600160e01b03199092168252600f0b6020820152f35b3461023f575f36600319011261023f57602060405173dac0cbf141e6270c5de6dd2d6532992562810b388152f35b3461023f5760c036600319011261023f576115c46115bb3661022e565b60a43590612895565b906102ed60405192839283610254565b3461023f57602036600319011261023f576004355f60a06040516115f781611aff565b82815282602082015282604082015282606082015282608082015201525f525f6020526102ed60405f2060046040519161163083611aff565b80546001600160a01b0390811684526001820154611652911660208501611e24565b61166b6116626002830154610453565b60408501611e24565b61169d611694600383015461168b61168282610453565b60608801611e24565b60a01c60ff1690565b15156080850152565b015460a08281019182526040805184516001600160a01b039081168252602080870151821690830152828601518116928201929092526060808601519092169181019190915260809384015115159381019390935290519082015290819060c0820190565b3461023f57602036600319011261023f5760043561171f8161045f565b60018060a01b03165f526005602052602060405f2054604051908152f35b6102c036600319011261023f576117533661022e565b60a435906117608261045f565b60c43561176c8161045f565b60e4356117788161045f565b6101043561178581610989565b610124359061179382610989565b61014435926001600160801b038416840361023f5761016435946117b68661045f565b6101403661018319011261023f576115c497610184976128ed565b3461023f5760c036600319011261023f576115c46117ee3661022e565b60a43590612b59565b3461023f57602036600319011261023f57600435611813612c0e565b805f525f60205260405f209060405191631afa9aa560e01b835260048301526002602483015260448201526020816064817374eccf857176cb538aab1642a972444857f7860f5af4801561044e576102ed915f9161188d575b505f5f516020615c345f395f51905f525d6040519081529081906020820190565b6118af915060203d6020116118b5575b6118a78183611b3a565b8101906125ea565b5f61186c565b503d61189d565b3461023f5760e036600319011261023f576004356118d98161045f565b6118e236610243565b6118ed60c43561045f565b7f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b031633036102f1576280000062ffffff604083013561193381611d95565b16146110365761194290612c41565b61196e8261194f83611ade565b80546001600160a01b0319166001600160a01b03909216919091179055565b604051916001600160a01b0316905f516020615c545f395f51905f525f80a3636e4c1aa760e11b8152602090f35b3461023f5761012036600319011261023f576004356119ba36610243565b90610104359060c43560e4356119cf84610653565b3033036102f157604093611a23916119e685611ad0565b865163066648b560e41b81529788968796927f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac9060048901612bc8565b03817374eccf857176cb538aab1642a972444857f7860f5af490811561044e575f905f92611a5c575b506102ed60405192839283610254565b9050611a77915060403d604011610aec57610add8183611b3a565b905f611a4c565b3461023f57604036600319011261023f576020611ac7600435611aa08161045f565b60243590611aad8261045f565b6001600160a01b03165f9081526007845260409020611cae565b54604051908152f35b5f52600160205260405f2090565b5f525f60205260405f2090565b634e487b7160e01b5f52604160045260245ffd5b60c081019081106001600160401b03821117611b1a57604052565b611aeb565b60a081019081106001600160401b03821117611b1a57604052565b601f909101601f19168101906001600160401b03821190821017611b1a57604052565b35906001600160401b038216820361023f57565b6101208091611b8884611b8383611b5d565b61079d565b611ba1611b9760208301611b5d565b602086019061079d565b611bba611bb060408301611b5d565b604086019061079d565b611bd3611bc960608301611b5d565b606086019061079d565b611bec611be260808301611b5d565b608086019061079d565b611c04611bfb60a0830161065d565b151560a0860152565b611c1d611c1360c08301610470565b60c08601906107aa565b611c36611c2c60e08301610470565b60e08601906107aa565b6101008101356101008501520135910152565b9081526101608101929161047b9160200190611b71565b6040513d5f823e3d90fd5b6101408101929161047b9190611b71565b6001600160a01b03165f90815260086020526040902090565b6001600160a01b03165f90815260026020526040902090565b9060018060a01b03165f5260205260405f2090565b634e487b7160e01b5f52601160045260245ffd5b5f19810191908211610ba757565b620f42400390620f42408211610ba757565b91908203918211610ba757565b9060068201809211610ba757565b9060018201809211610ba757565b9060028201809211610ba757565b9060058201809211610ba757565b9060048201809211610ba757565b91908201809211610ba757565b6040519061047b61024083611b3a565b6040519061047b61014083611b3a565b6040519061047b606083611b3a565b6040519061047b608083611b3a565b62ffffff81160361023f57565b91908260a091031261023f57604051611dba81611b1f565b60808082948035611dca8161045f565b84526020810135611dda8161045f565b60208501526040810135611ded81611d95565b60408501526060810135611e0081610989565b6060850152013591611e118361045f565b0152565b6001600160401b039091169052565b6001600160a01b039091169052565b906008611e3e611d57565b92611ecb611ec28254611e60611e5382610791565b6001600160801b03168852565b611e7a611e708260801c60020b90565b60020b6020890152565b611e94611e8a8260981c60020b90565b60020b6040890152565b611ea860b082901c60ff1615156060890152565b611ebc60b882901c60ff1615156080890152565b60c01c90565b60a08601611e15565b611f03611efa6001830154611eeb611ee282610453565b60c08901611e24565b60a01c6001600160401b031690565b60e08601611e15565b611f2e611f246002830154611eeb611f1a82610453565b6101008901611e24565b6101208601611e15565b611f59611f4f6003830154611eeb611f4582610453565b6101408901611e24565b6101608601611e15565b611f84611f7a6004830154611eeb611f7082610453565b6101808901611e24565b6101a08601611e15565b60058101546101c085015260068101546101e085015260078101546102008501520154610220830152565b919082604091031261023f576020825192015190565b608080918035611fd48161045f565b6001600160a01b031684526020810135611fed8161045f565b6001600160a01b0316602085015262ffffff604082013561200d81611d95565b166040850152606081013561202181610989565b60020b606085015201356120348161045f565b6001600160a01b0316910152565b959194612080919b9a98946101a0989461047b9b976102e08a019e8a5260208a015260018060a01b0316604089015260608801526080870190611fc5565b600290810b6101208601520b6101408401526001600160801b03166101608301526001600160a01b03166101808201520190611b71565b356120c18161045f565b90565b356120c181610653565b600f0b60016001607f1b03198114610ba7575f0390565b92915f91907f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b031633036102f1576315d7892d60e21b946001600160a01b0316301461226e5761213b82612c41565b9061214582611ade565b9261215b61038f600386015460ff9060a01c1690565b8015612262575b612257576121736001850154610453565b61217f610312836120b7565b6001600160a01b03909116149182612196826120c4565b15150361223357906121b4916020600487015491013593849261337d565b9390928315801561224f575b6122335760016001607f1b038411801561223f575b6122335784845f94936121e7936135ca565b1215612212576121fc61220f92600f0b6120ce565b6001600160801b031660809190911b1790565b91565b61222161220f92600f0b6120ce565b60801b6001600160801b039091161790565b5050505050505f905f90565b5060016001607f1b0385116121d5565b5084156121c0565b50505050505f905f90565b50600484015415612162565b5050505f905f90565b949192612297610120959298979461014088019988526020880190611fc5565b60c08601526001600160a01b0390811660e086015290811661010085015216910152565b6001600160a01b039091168152602081019190915260e08101929161047b9160400190611fc5565b9081606091031261023f578051916040602083015192015190565b9261016094612331916001979399989461018087019a875260208701526002604087015260608601526080850190611fc5565b6101208301526101408201520152565b9261016094612331915f979399989461018087019a875260208701526002604087015260608601526080850190611fc5565b6001600160801b039182169082160391908211610ba757565b90815260208101919091526001600160a01b03909116604082015260600190565b98946102c0989461012098946123ea939d9c98946102e08d019e8d5260208d015260018060a01b031660408c015260608b015260808a0190611fc5565b600290810b888701520b6101408701526001600160801b03166101608601526001600160a01b03166101808501528051612429906101a086019061079d565b61243c60208201516101c086019061079d565b61244f60408201516101e086019061079d565b612462606082015161020086019061079d565b612475608082015161022086019061079d565b60a0810151151561024085015261249560c08201516102608601906107aa565b6124a860e08201516102808601906107aa565b6101008101516102a08501520151910152565b909291928360201161023f57831161023f5760200191601f190190565b9081602091031261023f573560ff8116810361023f5790565b6001600160401b038111611b1a57601f01601f191660200190565b929192612518826124f1565b916125266040519384611b3a565b82948184528183011161023f578281602093845f960137010152565b907f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b031633036125dc578060201161023f5761259f61259860ff928061259260208701876124d8565b956124bb565b369161250c565b9116600181036125b357506120c190613cf2565b600281149081156125d1575b506125c8575f80fd5b6120c190613ab1565b60039150145f6125bf565b6282b42960e81b5f5260045ffd5b9081602091031261023f575190565b919261261961010094979695929761012085019885526020850190611fc5565b151560c083015260e08201520152565b935f9390929091907f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b031633036102f15763b47b2fb160e01b956001600160a01b0316301461288d5761268282612c41565b9061268c82611ade565b936126a261038f600387015460ff9060a01c1690565b6128835760018501946126b58654610453565b6126c1610312876120b7565b6001600160a01b03909116146126d8818787613ec9565b97919890955f9560048601549185831515918261286d575b5050612796575b50505050507374eccf857176cb538aab1642a972444857f7860f9261271b85611ad0565b92843b1561023f575f9661277792604051998a98899788976366a9ddc960e01b89526004890193909796959260e0959261010086019986526020860152600260408601526060850152608084015260a083015260c08201520152565b03915af4801561044e576127885750565b806104425f61047b93611b3a565b6127a48160801d91600f0b90565b91908515612865575f905b600f0b1380612859575b156126f7576127da6110656107916127d46127e19654610453565b946120ce565b918461404a565b919092836127f0575b806126f7565b6128146020936040519586948594632353f65960e11b865215908c600487016125f9565b03815f305af15f9181612838575b50612830575b8080806127ea565b91505f612828565b61285291925060203d6020116118b5576118a78183611b3a565b905f612822565b505f82600f0b126127b9565b915f906127af565b6128789192506120c4565b15151415855f6126f0565b505f955050505050565b505f93505050565b9061289f82612c41565b5f525f60205260405f209160ff600384015460a01c161580156128e1575b61226e576128dd92600460018060a01b036001830154169101549161404a565b9091565b506004830154156128bd565b9392969897909598949194612900612c0e565b61290c608086016120b7565b306001600160a01b0390911603612b00576280000062ffffff61293160408801612b0f565b16146110365761297960207f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac986040518093819263313b65df60e11b83528a60048401612b39565b03815f6001600160a01b038d165af1801561044e57612ad3575b5061299d85612c41565b996129ab3361194f8d611ade565b338b5f516020615c545f395f51905f525f80a37374eccf857176cb538aab1642a972444857f7860f966129dd8c611ade565b90883b1561023f578c612a295f936040519d8e9485946336a7664f60e21b86528d7f00000000000000000000000042000000000000000000000000000000000000069460048801612277565b03818a5af493841561044e57604099612a7295612abf575b50612a4b8c611ade565b95612a558d611ad0565b978b519d8e9b8c9a8b9a63c7bbeb8f60e01b8c5260048c01612042565b03915af491821561044e575f905f93612a9b575b5091905f5f516020615c345f395f51905f525d565b9050612ab791925060403d604011610aec57610add8183611b3a565b91905f612a86565b806104425f612acd93611b3a565b5f612a41565b612af49060203d602011612af9575b612aec8183611b3a565b810190612b24565b612993565b503d612ae2565b637f974cc960e01b5f5260045ffd5b356120c181611d95565b519061047b82610989565b9081602091031261023f57516120c181610989565b90929160a090612b4d8360c0810196611fc5565b600180831b0316910152565b90612b6382612c41565b5f525f60205260405f2060ff600382015460a01c16158015612bbc575b61226e5760018101546128dd936001600160a01b039091169160048235612ba68161045f565b910154926001600160a01b03909116149061337d565b50600481015415612b80565b959293612bfb91989794610140969361016089019a895260018060a01b0316602089015260408801526060870190611fc5565b6101008501526101208401521515910152565b5f516020615c345f395f51905f525c612c345760015f516020615c345f395f51905f525d565b63ab143c065f526004601cfd5b604051612c52602082018093611fc5565b60a08152612c6160c082611b3a565b51902090565b9091612c7282611ad0565b80546001600160801b0390612c8690610791565b1615612e1f57604080516306d523ff60e01b81527374eccf857176cb538aab1642a972444857f7860f9490918280612ce389877f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac600485016122bb565b0381885af494851561044e575f925f96612df8575b50612d0282611ade565b92612d106001850154610453565b612d1c6103128a6120b7565b6001600160a01b0390911603612df25795935b606085978099612d566040519889938493634ad5f90b60e01b855289888c60048801612341565b0381855af493841561044e575f955f905f96612dca575b50833b1561023f575f9561277791604051988997889687966366a9ddc960e01b885260048801929360e0945f969298979361010086019986526020860152600260408601526060850152608084015260a083015260c08201520152565b91965050612de891945060603d606011610ea457610e958183611b3a565b949195905f612d6d565b93612d2f565b909550612e1591925060403d604011610aec57610add8183611b3a565b919091945f612cf8565b505f9250829150565b8215612ed7576001600160a01b031680612e5b57506001600160a01b031690308214612e575761047b91614189565b5050565b916040519163a9059cbb60e01b5f5260018060a01b031660045260245260205f60448180865af160015f5114811615612eb8575b60409190915215612e9d5750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b6001811516612ece573d15833b15151616612e8f565b503d5f823e3d90fd5b505050565b929091928115612ff4576001600160a01b0316928315612fca576040516370a0823160e01b81529360208580612f158560048301611370565b0381845afa92831561044e57612f57955f94612fa2575b50612f3c908360209596846141ed565b60405180809681946370a0823160e01b835260048301611370565b03915afa91821561044e575f92612f81575b5080821115612f7b576120c191611cf7565b50505f90565b612f9b91925060203d6020116118b5576118a78183611b3a565b905f612f69565b602094509083612fc1612f3c93873d89116118b5576118a78183611b3a565b95505090612f2c565b9150809250341061063c576001600160a01b031681308203612feb57505090565b6120c191614189565b505050505f90565b600160ff1b8114610ba7575f0390565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b909161305e826101409461300c565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261012061010082018190525f908201520190565b6001600160a01b03918216815291166020820152604081019190915260600190565b9291909281156133735783156133545761314460206401000276a45b7f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b0316946131299061310d90612ffc565b91613116611d77565b8915158152928484015260408301611e24565b60405180938192633cf3645360e21b8352866004840161304f565b03815f875af1801561044e57613168915f91613335575b50908160801d91600f0b90565b9281600f0b5f81129081613314575b85600f0b925f80851292836132ea575b13938461327a575b5f12958661320a575b505087156131ef5750156131e9576131b5611065610791846120ce565b95156131d3575050156131ce576001600160801b031690565b505f90565b915091505f146131ce576001600160801b031690565b5f6131b5565b1590506131e957613205611065610791866120ce565b6131b5565b6020613217910151610453565b90803b1561023f57604051630b0d9c0960e01b8152915f918391829084908290613251906001600160801b038f1690309060048501613097565b03925af1801561044e57613266575b80613198565b806104425f61327493611b3a565b5f613260565b6132848751610453565b90823b1561023f57604051630b0d9c0960e01b8152915f90839081906132ba906001600160801b038c1690309060048501613097565b038183875af191821561044e575f926132d6575b50905061318f565b80610442846132e493611b3a565b5f6132ce565b61330f6132fa60208a0151610453565b6133096110656107918d6120ce565b90614256565b613187565b6133306133218651610453565b613309611065610791886120ce565b613177565b61334e915060203d6020116118b5576118a78183611b3a565b5f61315b565b613144602073fffd8963efd1fc6a506488495d951d5263988d256130d5565b505090505f905f90565b90929391835f146135b857613391826120b7565b945b6133be7f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac8097614378565b9283156135ac575f82126134ce57828210156134c5576133ea825b876133e43685611da2565b8a614426565b96909787848a159182156134bc575b82156134b2575b50506134a457858911613416575b505050505050565b90919294975061343c93965061343661342e89612ffc565b933690611da2565b90614426565b949085948196821594851561349b575b8515613491575b508415613487575b5050821561347d575b5050613475575f808080808061340e565b5f9250829150565b1190505f80613464565b1192505f8061345b565b811194505f613453565b8115955061344c565b505f97508796505050505050565b119050845f613400565b801592506133f9565b6133ea836133d9565b9394919295906134dd90612ffc565b93868510156135a0576135036134f286612ffc565b846134fd3685611da2565b85614426565b908015828115613597575b50613588578582111561357d5750509061343661352e9493923690611da2565b9093819480938115938415613574575b50831561356a575b508215613560575b5050613558579190565b505f91508190565b1190505f8061354e565b811192505f613546565b1593505f61353e565b975095945050505050565b5050505050505090505f905f90565b9050155f61350e565b6135036134f288612ffc565b505f9550859450505050565b6135c4602083016120b7565b94613393565b909192600483016135dc828254611cf7565b905560028301906135f56135f08354610453565b611c95565b613600828254611cf7565b905560018401547f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b0316919061363c90610453565b91803b1561023f57865f9161366a9483604051809781958294630b0d9c0960e01b8452309060048501613097565b03925af190811561044e576136b5816136b087967f2bfe994f111356b802e03edadeab67c5985f55f870815a336b4d6466f91e20bc966136c29661373d575b5054610453565b614256565b6040519182918883610254565b0390a27374eccf857176cb538aab1642a972444857f7860f6136e382611ad0565b813b1561023f575f93612777604051968795869485946366a9ddc960e01b8652600486019094939260e092610100830196835260208301526002604083015260608201525f60808201525f60a08201525f60c08201520152565b806104425f61374b93611b3a565b5f6136a9565b5f52600160205260405f209060ff825460b01c16156103205760018201546001600160a01b031633036102f157565b60408051919082016001600160401b03811183821017611b1a576040525f6020838281520152565b939095949192610120936137c961014087019860028852602088019061300c565b60c086015260e085015260020b61010084015260020b910152565b60208183031261023f578051906001600160401b03821161023f570181601f8201121561023f57805190613817826124f1565b926138256040519485611b3a565b8284526020838301011161023f57815f9260208093018386015e8301015290565b519081600f0b820361023f57565b919082604091031261023f576120c1602061386e84613846565b9301613846565b959493929095613883613780565b966001600160801b031680156125dc576138f4955f956138bd6103126138b76138cc956138b26138da996145b0565b612ffc565b97610453565b604051968795602087016137a8565b03601f198101835282611b3a565b604051809381926348c8949160e01b8352600483016112f4565b0381837f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b03165af1801561044e57613944915f9161398e575b5060208082518301019101613854565b905f81600f0b135f14613987576001600160801b03165b83525f81600f0b135f14613980576001600160801b03165b602083015261047b6145bb565b505f613973565b505f61395b565b6139aa91503d805f833e6139a28183611b3a565b8101906137e4565b5f613934565b809103610120811261023f5760a01361023f576040516139cf81611b1f565b81516139da8161045f565b815260208201516139ea8161045f565b602082015260408201516139fd81611d95565b60408201526060820151613a1081610989565b60608201526080820151613a238161045f565b60808201529160a08201519160c0810151916120c1610100613a4760e08501612b19565b9301612b19565b9061016092613a5f8360609361300c565b805160020b60a0840152602081015160020b60c0840152604081015160e084015201516101008201526101406101208201525f6101408201520190565b600f91820b815291900b602082015260400190565b613ac490602080825183010191016139b0565b909290600284900b158181613ce6575b50613cc2575b613afd90613af3613ae9611d86565b95869060020b9052565b60020b6020850152565b60408301526060820152613b50604060018060a01b037f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac1692815180938192632d35e7ed60e11b83528760048401613a4e565b03815f865af1801561044e57613b73915f91613ca25750908160801d91600f0b90565b92613b7c6151c0565b5c906001600160a01b03821615613c9a575b5f83600f0b13613c30575b5f85600f0b13613bbd575b50506120c191506138cc60405193849260208401613a9c565b6020613bca910151610453565b833b1561023f57604051630b0d9c0960e01b8152935f928592839185918391613c02916001600160801b038c16919060048501613097565b03925af191821561044e576120c192613c1c575b80613ba4565b806104425f613c2a93611b3a565b5f613c16565b613c3a8151610453565b843b1561023f57604051630b0d9c0960e01b8152905f9082908190613c6f906001600160801b03891690889060048501613097565b038183895af1801561044e57613c86575b50613b99565b806104425f613c9493611b3a565b5f613c80565b309150613b8e565b613cbb915060403d604011610aec57610add8183611b3a565b505f61315b565b50613afd9250613cde613cd9606086015160020b90565b6145fd565b909350613ada565b905060020b155f613ad4565b613d08613d1a91602080825183010191016139b0565b613af3613ae996929596949394611d86565b60408301526060820152613d6d604060018060a01b037f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac1692815180938192632d35e7ed60e11b83528760048401613a4e565b03815f865af1801561044e57613d90915f91613ca25750908160801d91600f0b90565b9281600f0b905f8212613e86575b84600f0b5f8112613e62575b613db26151c0565b5c926001600160a01b03841615613e5a575b5f12613dea575b5f12613bbd5750506120c191506138cc60405193849260208401613a9c565b613df48251610453565b90853b1561023f57604051630b0d9c0960e01b8152915f9083908190613e2a906001600160801b038a1690899060048501613097565b0381838a5af191821561044e575f92613e46575b509050613dcb565b8061044284613e5493611b3a565b5f613e3e565b309350613dc4565b613e81613e726020840151610453565b6133096110656107918a6120ce565b613daa565b613ea2613e938251610453565b613309611065610791876120ce565b613d9e565b9192613ec260c092959460e085019685526020850190611fc5565b1515910152565b9091925f935f935f93613edb81611ad0565b80546001600160801b03613eee82610791565b161561400b5780613f12613f08613f479360801c60020b90565b9160981c60020b90565b613f1e61031230610453565b9130867f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac614634565b908515614005575b81811715613ff4576005830154119182613fe6575b5050613fd85790606091613f8c6040519485938493632fcc439760e11b855260048501613ea7565b03815f305af15f815f935f93613fb0575b50613fa757505050565b95509093509150565b91509250613fcd915060603d606011610ea457610e958183611b3a565b92919092915f613f9d565b505f95508594508493505050565b600601541190505f80613f64565b505f98508897508796505050505050565b90613f4f565b505f975087965086955050505050565b634e487b7160e01b5f52601260045260245ffd5b801561403b575f190490565b61401b565b811561403b570490565b9193929084158015614181575b61415957614067610312846120b7565b6001600160a01b0390911614159061407e83612c41565b946141037f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac9662ffffff6140fc866140d5818c6140cf6140be88836148b0565b976140c98951610453565b92614969565b906149f2565b936140f660606140eb604084015162ffffff1690565b92015162ffffff1690565b90614a61565b1690614ab9565b8015614174576141289291908082101561416c5750905b818110614164575b50614b24565b9384156141595790614141929161343661342e87612ffc565b90508015613558576120c190620f4240810490611cf7565b50505090505f905f90565b90505f614122565b90509061411a565b505050505090505f905f90565b508115614057565b8147106141d6575f918291604051916141a3602084611b3a565b8383528392602001916001600160a01b03165af1156141be57565b3d15155f03611c605763d6bda27560e01b5f5260045ffd5b504763cf47918160e01b5f5260045260245260445ffd5b6040516323b872dd60e01b5f9081526001600160a01b039384166004529290931660245260449390935260209060648180865af160015f5114811615614240575b6040919091525f60605215612e9d5750565b6001811516612ece573d15833b1515161661422e565b6001600160a01b0381166142cf5750604051630476982d60e21b815290602090829060049082907f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b03165af1801561044e576142b7575b50565b6142b49060203d6020116118b5576118a78183611b3a565b907f00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac6001600160a01b03811690813b1561023f57604051632961046560e21b8152925f84806143218860048301611370565b038183875af191821561044e575f9560209561434294614364575b50614d2a565b600460405180948193630476982d60e21b83525af1801561044e576142b75750565b806104428961437293611b3a565b5f61433c565b6001600160a01b03168061438b57503190565b6040516370a0823160e01b81526001600160a01b039092166004830152602090829060249082905afa90811561044e575f916143c5575090565b6120c1915060203d6020116118b5576118a78183611b3a565b60a08101929161047b919061300c565b60020b5f190190627fffff198212627fffff831317610ba757565b600291820b910b0390627fffff198212627fffff831317610ba757565b9092919282156145a6576040516020810190614446816138cc85856143de565b5190209361445485846148b0565b9460018060a01b036144668751610453565b1615612233576144768185614969565b936001600160801b038516156145995760208701906144b284606061449c855160020b90565b9701966144aa885160020b90565b908685614dd8565b819691966144c36103128c51610453565b6001600160a01b039091161461451c575b50505050509161450e939161450886946144f2614518999851610453565b956140f660606140eb604084015162ffffff1690565b93615039565b9190949250611d4a565b9190565b80919293949596509015614591575b614583576145589361455261454a61454588965160020b90565b6143ee565b925160020b90565b92614dd8565b5090816145686103128751610453565b6001600160a01b039091161015612257575f808080806144d4565b50505050505050505f905f90565b50841561452b565b505050505050505f905f90565b505050505f905f90565b6145b86151c0565b5d565b5f6145b86151c0565b60020b9060020b90811561403b57627fffff1981145f19831416610ba7570590565b9060020b9060020b02908160020b918203610ba757565b8060020b905f8213156125dc57811561403b5761461e91620d89e8056145e6565b908160020b627fffff198114610ba7575f039190565b949593919092958660020b1580614851575b61483f575b60405160609290921b6001600160601b0319166020830190815260e888811b603485015284901b6037840152603a8301919091529061468d81605a81016138cc565b5190206138cc6146c86146b760405160208101906146af816138cc8a85614890565b519020611d04565b6040519283916020830195866148a0565b519020604051631e2eaeaf60e01b815260048101829052909590946001600160a01b0381169390602087602481885afa801561044e5761473e975f91614820575b506001600160801b031694602061471f8a611d12565b604051809a8192631e2eaeaf60e01b8352600483019190602083019252565b0381845afa97881561044e575f986147f2575b506020906147646147859798999a611d20565b906040518080998194631e2eaeaf60e01b8352600483019190602083019252565b03915afa94851561044e575f956147d1575b5085156147c357926147bb926147b2926120c19796956151f7565b96900383614b91565b940390614b91565b50505050505090505f905f90565b6147eb91955060203d6020116118b5576118a78183611b3a565b935f614797565b6147859697985090614764614815602093843d86116118b5576118a78183611b3a565b999897505090614751565b614839915060203d6020116118b5576118a78183611b3a565b5f614709565b620d8977199650620d8978925061464b565b508260020b15614646565b60405190608082016001600160401b03811183821017611b1a576040525f6060838281528260208201528260408201520152565b6040918152600660208201520190565b9091604092825260208201520190565b60206148fa919392936148c161485c565b946040516148d6816138cc8682019485614890565b519020906040518080958194631e2eaeaf60e01b8352600483019190602083019252565b03916001600160a01b03165afa801561044e5762ffffff915f9161494a575b506001600160a01b038116845260a081901c60020b602085015260b881901c8216604085015260d01c166060830152565b614963915060203d6020116118b5576118a78183611b3a565b5f614919565b9060405161497f816138cc602082019485614890565b5190209060038201809211610ba757604051631e2eaeaf60e01b81526004810192909252602090829060249082906001600160a01b03165afa90811561044e575f916149d3575b506001600160801b031690565b6149ec915060203d6020116118b5576118a78183611b3a565b5f6149c6565b90916001600160a01b039091169081158015614a3d575b614a365715614a24576120c1916001600160801b0316614c21565b6120c1916001600160801b0316614bd9565b5050505f90565b506001600160801b03831615614a09565b81810292918115918404141715610ba757565b610fff9062ffffff92935f14614ab057165b16908115614aab5762ffffff1680820191828111610ba757620f424091614a9991614a4e565b048103908111610ba75762ffffff1690565b905090565b600c1c16614a73565b5f1982820982820291828083109203918083039283620f424011156125dc5714614b18577fde8f6cefed634549b62c77574f722e1ac57e23f24d8fd5cb790fb65668c2613993620f4240910990828211900360fa1b910360061c170290565b5050620f424091500490565b5f19611f408209611f4082029081808210910390808203918261271011156125dc5714614b8757612710611f407fbc01a36e2eb1c432ca57a786c226809d495182a9930be0ded288ce703afb7e91940990828211900360fc1b910360041c170290565b5061271091500490565b5f198282099082810292838084109303928084039384600160801b11156125dc5714614bd057600160801b910990828211900360801b910360801c1790565b50505060801c90565b5f198282099082810292838084109303928084039384600160601b11156125dc5714614c1857600160601b910990828211900360a01b910360601c1790565b50505060601c90565b5f19600160601b8209918160601b918280851094039380850394858411156125dc5714614ca2578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90915f1983830992808302928380861095039480860395868511156125dc5714614d22579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b91907f1bde310958327eb1c8a9046a2bb97d1e21ae8a0e23960bbeb793bdf7f87b6f8b5c6001600160a01b038116614d66575061047b92612e28565b6142b493612edc565b9060020b90811561403b5760020b0790565b60020b627fffff198114610ba7575f190190565b60ff1660ff039060ff8211610ba757565b9060ff8091169116039060ff8211610ba757565b9060020b9060020b0190627fffff198212627fffff831317610ba757565b93929192614de683856145c4565b93835f8260020b12918261501b575b505061500b575b15614f3a57614e3890614e1e614e188560020b60081d60020b90565b60010b90565b90614e32610100600287900b075b60ff1690565b9561538a565b614e4e614e4485614d95565b60ff5f1991161c90565b1680158015949190614f205792614edb614ed0614e2c614ee194614eca614ee6988060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b90614da6565b62ffffff1660020b90565b90614409565b6145e6565b620d89e719808260020b12614f18575b50620d89e88160020b13614f0e575b61220f906153f1565b50620d89e8614f05565b90505f614ef6565b50614f359260ff614ee1921660020b90614409565b614ee6565b916001614f59910160020b92614e1e614e188560020b60081d60020b90565b614f68600160ff86161b611cd7565b191680158015949190614ff45792614fee614ed0614e2c614ee194614fe9614f3598805f03168060018060801b031060071b81811c60018060401b031060061b1781811c63ffffffff1060051b1781811c61ffff1060041b1781811c60ff1060031b1781811c600f1060021b1781811c60031060011b1790811c6001101790565b614da6565b90614dba565b50614f3592614fee614ed0614e2c614ee194614d95565b9261501590614d81565b92614dfc565b61503092509061502a91614d6f565b60020b90565b1515835f614df5565b939492936001600160a01b0380831690821610159290915f8612156151175761507a62ffffff61506888612ffc565b98169761507489611ce5565b90614ab9565b84156151065761508b8385846157c1565b965b8782106150da5750508096620f424081145f146150c15750855b935b156150b8579161220f92615837565b61220f92615757565b806150ce6150d592611ce5565b90886158fc565b6150a7565b915095506150fb9650615100866150f386828688615928565b988993612ffc565b611cf7565b936150a9565b61511183838661587b565b9661508d565b929594939286156151af5761512d828483615837565b945b8581106151735750906120c1929180975b15615165579161514f926157c1565b62ffffff81951661515f81611ce5565b916158fc565b61516e9261587b565b61514f565b945050615182868583856158e4565b956001600160a01b0387161561519e5790866120c19392615140565b505050925050505f905f905f905f90565b6151ba828285615757565b9461512f565b60405160208101903060601b82527010d85b1b189858dad49958da5c1a595b9d607a1b603482015260258152612c61604582611b3a565b9392919061520581866148b0565b615226604051602081019061521e816138cc8785614890565b519020611d12565b604051631e2eaeaf60e01b815260048101829052969094906001600160a01b038116602089602481845afa96871561044e57615291995f98615362575b5090615270602092611d12565b9060405180809c8194631e2eaeaf60e01b8352600483019190602083019252565b03915afa97881561044e575f98615336575b50906152ea826152c4836152bc898960209a9998615940565b979093615940565b96909401966152d4885160020b90565b600291820b910b1261531c5793955b5160020b90565b600291820b910b12156153025791935b030393030390565b61530f6153169186611cf7565b9287611cf7565b936152fa565b6153296153309189611cf7565b948a611cf7565b956152e3565b60209493929198506153576152ea91863d88116118b5576118a78183611b3a565b9891929394506152a3565b60209291985061538161527091843d86116118b5576118a78183611b3a565b98919250615263565b6153c9926138cc6148d66153b66020956040516153ae816138cc8a82019485614890565b519020611d2e565b6040519283918783019560010b866148a0565b03916001600160a01b03165afa90811561044e575f916143c5575090565b811561403b570690565b60020b5f81121561575157805f03905b620d89e882116125dc576001821615615747576ffffcb933bd6fad37aa2d162d1a5940015b6001600160881b0316916002811661572b575b6004811661570f575b600881166156f3575b601081166156d7575b602081166156bb575b6040811661569f575b60808116615683575b6101008116615667575b610200811661564b575b610400811661562f575b6108008116615613575b61100081166155f7575b61200081166155db575b61400081166155bf575b61800081166155a3575b620100008116615587575b62020000811661556c575b620400008116615551575b6208000016615538575b5f1261552a575b6155086154fe8260201c90565b9163ffffffff1690565b615522575f905b60ff91909116016001600160a01b031690565b60019061550f565b6155339061402f565b6154f1565b6b048a170391f7dc42444e8fa290910260801c906154ea565b6d2216e584f5fa1ea926041bedfe9890920260801c916154e0565b916e5d6af8dedb81196699c329225ee6040260801c916154d5565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c916154ca565b916f31be135f97d08fd981231505542fcfa60260801c916154bf565b916f70d869a156d2a1b890bb3df62baf32f70260801c916154b5565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916154ab565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916154a1565b916fe7159475a2c29b7443b29c7fa6e889d90260801c91615497565b916ff3392b0822b70005940c7a398e4b70f30260801c9161548d565b916ff987a7253ac413176f2b074cf7815e540260801c91615483565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c91615479565b916ffe5dee046a99a2a811c461f1969c30530260801c9161546f565b916fff2ea16466c96a3843ec78b326b528610260801c91615466565b916fff973b41fa98c081472e6896dfb254c00260801c9161545d565b916fffcb9843d60f6159c9db58835c9266440260801c91615454565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c9161544b565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c91615442565b916ffff97272373d413259a46990580e213a0260801c91615439565b600160801b615426565b80615401565b91906001600160a01b03808216908416116157bb575b6001600160a01b039283169216828103818111610ba75783821480156157aa575b612ff4576140409260601b600160601b600160e01b0316614ca9565b506001600160801b0383161561578e565b9161576d565b91906001600160a01b0380821690841611615831575b6001600160a01b039283169216828103818111610ba7578382148015615820575b612ff4576158149260601b600160601b600160e01b03166158fc565b90808206151591040190565b506001600160801b038316156157f8565b916157d7565b906001600160a01b0380821690831611615875575b6001600160a01b039182169116908103908111610ba7576120c1916001600160801b0316614bd9565b9061584c565b91906001600160a01b03808216908416116158de575b6001600160a01b039283169216918203918211610ba7576001600160801b03166158c0600160601b8383614ca9565b91600160601b91096158cf5790565b5f198110156125dc5760010190565b91615891565b92156158f3576120c192615a9d565b6120c192615a2e565b92919061590a828286614ca9565b93821561403b570961591857565b905f198110156125dc5760010190565b9215615937576120c192615ba3565b6120c192615b2f565b92916138cc61598061596c6159b794604051615964816138cc602082019485614890565b519020611d3c565b604051928391602083019560020b866148a0565b519020926001600160a01b0316602061599885611d12565b60405180948192631e2eaeaf60e01b8352600483019190602083019252565b0381845afa90811561044e576159db6020926159fc945f91615a11575b5095611d20565b906040518080958194631e2eaeaf60e01b8352600483019190602083019252565b03915afa90811561044e575f916143c5575090565b615a289150843d86116118b5576118a78183611b3a565b5f6159d4565b91908115615a985760601b600160601b600160e01b0316916001600160a01b03169081615a5b8183614a4e565b91820403614a365780831115614a3657820390828211610ba757615a7e926158fc565b6001600160a01b0381116131ce576001600160a01b031690565b505090565b918015615a98576001600160a01b038111615aec5760601b9060018060801b03168082061515910401905b6001600160a01b03169080821115612f7b578103908111610ba7576120c190610453565b906001600160801b0316615b0581600160601b84614ca9565b91811561403b57600160601b9009615b1e575b90615ac8565b5f198110156125dc57600101615b18565b91908115615a98576001600160a01b038211615b88576001600160801b031690811561403b5760601b04905b6001600160a01b0316908101908110610ba7576001600160a01b0381116125dc576001600160a01b031690565b615b9d916001600160801b0390911690614c21565b90615b5b565b91908115615a985760601b600160601b600160e01b0316916001600160a01b031681810281615bd28483614040565b14615c1f575b5090615be7615bf89284614040565b01615bf28184614040565b926153e7565b615c17575b6001600160a01b0381116125dc576001600160a01b031690565b600101615bfd565b8301838110615bd8579150615bfd926158fc56fe165848338463d30c17057f5abfcc323310dd08e72aea99ae6ce410ff3a16adf00b1805a2a2d444856f9d64ad1693826cc51023abe99cddf83f065c9152465a2da164736f6c6343000823000a
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac0000000000000000000000004200000000000000000000000000000000000006

-----Decoded View---------------
Arg [0] : _poolManager (address): 0x00B036B58a818B1BC34d502D3fE730Db729e62AC
Arg [1] : _nativeWrap (address): 0x4200000000000000000000000000000000000006

-----Encoded View---------------
2 Constructor Arguments found :
Arg [0] : 00000000000000000000000000b036b58a818b1bc34d502d3fe730db729e62ac
Arg [1] : 0000000000000000000000004200000000000000000000000000000000000006

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0x0F41715dc432692b66A5aDF8dCfef6Ac407b20c8
Loading...
Loading
Loading...
Loading

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