Overview
ETH Balance
ETH Value
$0.00Token Holdings
Latest 13 from a total of 13 transactions
| Transaction Hash |
|
Block
|
From
|
To
|
|||||
|---|---|---|---|---|---|---|---|---|---|
| Flaunch | 46591372 | 51 days ago | IN | 0 ETH | 0.000009 | ||||
| Flaunch | 45646437 | 73 days ago | IN | 0 ETH | 0.000009 | ||||
| Flaunch | 45644986 | 73 days ago | IN | 0 ETH | 0.000009 | ||||
| Flaunch | 45637097 | 73 days ago | IN | 0 ETH | 0.00000348 | ||||
| Flaunch | 45519964 | 76 days ago | IN | 0 ETH | 0.00000867 | ||||
| Flaunch | 45519721 | 76 days ago | IN | 0 ETH | 0.00000803 | ||||
| Flaunch | 44813699 | 92 days ago | IN | 0 ETH | 0.00000761 | ||||
| Flaunch | 44690593 | 95 days ago | IN | 0 ETH | 0.0000074 | ||||
| Transfer Ownersh... | 34154018 | 339 days ago | IN | 0 ETH | 0.00000047 | ||||
| Set Referral Esc... | 34154017 | 339 days ago | IN | 0 ETH | 0.00000075 | ||||
| Set Fair Launch ... | 34154002 | 339 days ago | IN | 0 ETH | 0.00000075 | ||||
| Set Fee Calculat... | 34154001 | 339 days ago | IN | 0 ETH | 0.00000075 | ||||
| Set Flaunch | 34153999 | 339 days ago | IN | 0 ETH | 0.00000074 |
Latest 25 internal transactions (View All)
| Parent Transaction Hash | Block | From | To | |||
|---|---|---|---|---|---|---|
| 45686841 | 72 days ago | 0.01080723 ETH | ||||
| 45686841 | 72 days ago | 0.01080723 ETH | ||||
| 45377267 | 79 days ago | 0 ETH | ||||
| 45377267 | 79 days ago | 0 ETH | ||||
| 45377174 | 79 days ago | 0 ETH | ||||
| 45377174 | 79 days ago | 0 ETH | ||||
| 45377060 | 79 days ago | 0 ETH | ||||
| 45377060 | 79 days ago | 0 ETH | ||||
| 45376952 | 79 days ago | 0 ETH | ||||
| 45376952 | 79 days ago | 0 ETH | ||||
| 45376846 | 79 days ago | 0 ETH | ||||
| 45376846 | 79 days ago | 0 ETH | ||||
| 45375583 | 79 days ago | 0 ETH | ||||
| 45375583 | 79 days ago | 0 ETH | ||||
| 43449173 | 124 days ago | 0.00428116 ETH | ||||
| 43449173 | 124 days ago | 0.04285878 ETH | ||||
| 43449173 | 124 days ago | 0.04713994 ETH | ||||
| 43346753 | 126 days ago | 0.00193194 ETH | ||||
| 43346753 | 126 days ago | 0.01931947 ETH | ||||
| 43346753 | 126 days ago | 0.02125142 ETH | ||||
| 42985180 | 134 days ago | 0.07666998 ETH | ||||
| 42985180 | 134 days ago | 0.07666998 ETH | ||||
| 42984890 | 134 days ago | 0.07673134 ETH | ||||
| 42796021 | 139 days ago | 0.00099608 ETH | ||||
| 42796021 | 139 days ago | 0.00997183 ETH |
Cross-Chain Transactions
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
Contract ABI
API[{"inputs":[{"components":[{"internalType":"address","name":"nativeToken","type":"address"},{"internalType":"contract IPoolManager","name":"poolManager","type":"address"},{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"internalType":"struct FeeDistributor.FeeDistribution","name":"feeDistribution","type":"tuple"},{"internalType":"contract IInitialPrice","name":"initialPrice","type":"address"},{"internalType":"address","name":"protocolOwner","type":"address"},{"internalType":"address","name":"protocolFeeRecipient","type":"address"},{"internalType":"address","name":"flayGovernance","type":"address"},{"internalType":"address","name":"feeEscrow","type":"address"},{"internalType":"contract FeeExemptions","name":"feeExemptions","type":"address"},{"internalType":"contract TreasuryActionManager","name":"actionManager","type":"address"},{"internalType":"contract BidWall","name":"bidWall","type":"address"},{"internalType":"contract FairLaunch","name":"fairLaunch","type":"address"}],"internalType":"struct PositionManager.ConstructorParams","name":"params","type":"tuple"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"CallerIsNotBidWall","type":"error"},{"inputs":[{"internalType":"address","name":"_caller","type":"address"}],"name":"CallerNotCreator","type":"error"},{"inputs":[],"name":"CannotBeInitializedDirectly","type":"error"},{"inputs":[],"name":"CannotModifyLiquidityDuringFairLaunch","type":"error"},{"inputs":[],"name":"CannotSellTokenDuringFairLaunch","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[{"internalType":"uint256","name":"_paid","type":"uint256"},{"internalType":"uint256","name":"_required","type":"uint256"}],"name":"InsufficientFlaunchFee","type":"error"},{"inputs":[],"name":"InvalidPool","type":"error"},{"inputs":[],"name":"LockFailure","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"NotSelf","type":"error"},{"inputs":[],"name":"ProtocolFeeInvalid","type":"error"},{"inputs":[],"name":"RecipientZeroAddress","type":"error"},{"inputs":[],"name":"ReferrerFeeInvalid","type":"error"},{"inputs":[],"name":"SwapFeeInvalid","type":"error"},{"inputs":[{"internalType":"uint256","name":"_flaunchesAt","type":"uint256"}],"name":"TokenNotFlaunched","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[{"internalType":"PoolId","name":"_poolId","type":"bytes32"}],"name":"UnknownPool","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint24","name":"_allocation","type":"uint24"}],"name":"CreatorFeeAllocationUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_unsoldSupply","type":"uint256"}],"name":"FairLaunchBurn","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feeCalculator","type":"address"}],"name":"FairLaunchFeeCalculatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_feeCalculator","type":"address"}],"name":"FeeCalculatorUpdated","type":"event"},{"anonymous":false,"inputs":[{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"indexed":false,"internalType":"struct FeeDistributor.FeeDistribution","name":"_feeDistribution","type":"tuple"}],"name":"FeeDistributionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"uint128","name":"feeAmount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"feeAmount1","type":"uint128"}],"name":"HookFee","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"bytes32","name":"id","type":"bytes32"},{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":false,"internalType":"int128","name":"amount0","type":"int128"},{"indexed":false,"internalType":"int128","name":"amount1","type":"int128"},{"indexed":false,"internalType":"uint128","name":"hookLPfeeAmount0","type":"uint128"},{"indexed":false,"internalType":"uint128","name":"hookLPfeeAmount1","type":"uint128"}],"name":"HookSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_initialPrice","type":"address"}],"name":"InitialPriceUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"_memecoin","type":"address"},{"indexed":false,"internalType":"address","name":"_memecoinTreasury","type":"address"},{"indexed":false,"internalType":"uint256","name":"_tokenId","type":"uint256"},{"indexed":false,"internalType":"bool","name":"_currencyFlipped","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_flaunchFee","type":"uint256"},{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenUri","type":"string"},{"internalType":"uint256","name":"initialTokenFairLaunch","type":"uint256"},{"internalType":"uint256","name":"fairLaunchDuration","type":"uint256"},{"internalType":"uint256","name":"premineAmount","type":"uint256"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"uint24","name":"creatorFeeAllocation","type":"uint24"},{"internalType":"uint256","name":"flaunchAt","type":"uint256"},{"internalType":"bytes","name":"initialPriceParams","type":"bytes"},{"internalType":"bytes","name":"feeCalculatorParams","type":"bytes"}],"indexed":false,"internalType":"struct PositionManager.FlaunchParams","name":"_params","type":"tuple"}],"name":"PoolCreated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"indexed":false,"internalType":"struct FeeDistributor.FeeDistribution","name":"_feeDistribution","type":"tuple"}],"name":"PoolFeeDistributionUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_donateAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_creatorAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_bidWallAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_governanceAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_protocolAmount","type":"uint256"}],"name":"PoolFeesDistributed","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount1","type":"uint256"}],"name":"PoolFeesReceived","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"bool","name":"zeroForOne","type":"bool"},{"indexed":false,"internalType":"uint256","name":"_amount0","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"_amount1","type":"uint256"}],"name":"PoolFeesSwapped","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"_premineAmount","type":"int256"}],"name":"PoolPremine","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint256","name":"_flaunchesAt","type":"uint256"}],"name":"PoolScheduled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"uint160","name":"_sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"int24","name":"_tick","type":"int24"},{"indexed":false,"internalType":"uint24","name":"_protocolFee","type":"uint24"},{"indexed":false,"internalType":"uint24","name":"_swapFee","type":"uint24"},{"indexed":false,"internalType":"uint128","name":"_liquidity","type":"uint128"}],"name":"PoolStateUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"poolId","type":"bytes32"},{"indexed":false,"internalType":"int256","name":"flAmount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"flAmount1","type":"int256"},{"indexed":false,"internalType":"int256","name":"flFee0","type":"int256"},{"indexed":false,"internalType":"int256","name":"flFee1","type":"int256"},{"indexed":false,"internalType":"int256","name":"ispAmount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"ispAmount1","type":"int256"},{"indexed":false,"internalType":"int256","name":"ispFee0","type":"int256"},{"indexed":false,"internalType":"int256","name":"ispFee1","type":"int256"},{"indexed":false,"internalType":"int256","name":"uniAmount0","type":"int256"},{"indexed":false,"internalType":"int256","name":"uniAmount1","type":"int256"},{"indexed":false,"internalType":"int256","name":"uniFee0","type":"int256"},{"indexed":false,"internalType":"int256","name":"uniFee1","type":"int256"}],"name":"PoolSwap","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"_referralEscrow","type":"address"}],"name":"ReferralEscrowUpdated","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"indexed":false,"internalType":"address","name":"_recipient","type":"address"},{"indexed":false,"internalType":"address","name":"_token","type":"address"},{"indexed":false,"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"ReferrerFeePaid","type":"event"},{"inputs":[],"name":"BURN_ADDRESS","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MAX_PROTOCOL_ALLOCATION","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIN_DISTRIBUTE_THRESHOLD","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"actionManager","outputs":[{"internalType":"contract TreasuryActionManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"_delta","type":"int256"},{"internalType":"BalanceDelta","name":"_feesAccrued","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"},{"internalType":"uint256","name":"_amount0","type":"uint256"},{"internalType":"uint256","name":"_amount1","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterDonate","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint160","name":"","type":"uint160"},{"internalType":"int24","name":"","type":"int24"}],"name":"afterInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"BalanceDelta","name":"_delta","type":"int256"},{"internalType":"BalanceDelta","name":"_feesAccrued","type":"int256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"},{"internalType":"BalanceDelta","name":"","type":"int256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct 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 IPoolManager.SwapParams","name":"_params","type":"tuple"},{"internalType":"BalanceDelta","name":"_delta","type":"int256"},{"internalType":"bytes","name":"_hookData","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"},{"internalType":"int128","name":"hookDeltaUnspecified_","type":"int128"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeAddLiquidity","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"uint256","name":"","type":"uint256"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeDonate","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"},{"internalType":"uint160","name":"","type":"uint160"}],"name":"beforeInitialize","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct IPoolManager.ModifyLiquidityParams","name":"","type":"tuple"},{"internalType":"bytes","name":"","type":"bytes"}],"name":"beforeRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct 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 IPoolManager.SwapParams","name":"_params","type":"tuple"},{"internalType":"bytes","name":"_hookData","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"selector_","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"beforeSwapDelta_","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"bidWall","outputs":[{"internalType":"contract BidWall","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_key","type":"tuple"}],"name":"closeBidWall","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"fairLaunch","outputs":[{"internalType":"contract FairLaunch","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"fairLaunchFeeCalculator","outputs":[{"internalType":"contract IFeeCalculator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeCalculator","outputs":[{"internalType":"contract IFeeCalculator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeEscrow","outputs":[{"internalType":"contract FeeEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"feeExemptions","outputs":[{"internalType":"contract FeeExemptions","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"internalType":"uint256","name":"_amount","type":"uint256"}],"name":"feeSplit","outputs":[{"internalType":"uint256","name":"bidWall_","type":"uint256"},{"internalType":"uint256","name":"creator_","type":"uint256"},{"internalType":"uint256","name":"protocol_","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"string","name":"name","type":"string"},{"internalType":"string","name":"symbol","type":"string"},{"internalType":"string","name":"tokenUri","type":"string"},{"internalType":"uint256","name":"initialTokenFairLaunch","type":"uint256"},{"internalType":"uint256","name":"fairLaunchDuration","type":"uint256"},{"internalType":"uint256","name":"premineAmount","type":"uint256"},{"internalType":"address","name":"creator","type":"address"},{"internalType":"uint24","name":"creatorFeeAllocation","type":"uint24"},{"internalType":"uint256","name":"flaunchAt","type":"uint256"},{"internalType":"bytes","name":"initialPriceParams","type":"bytes"},{"internalType":"bytes","name":"feeCalculatorParams","type":"bytes"}],"internalType":"struct PositionManager.FlaunchParams","name":"_params","type":"tuple"}],"name":"flaunch","outputs":[{"internalType":"address","name":"memecoin_","type":"address"}],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"flaunchContract","outputs":[{"internalType":"contract IFlaunch","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"PoolId","name":"_poolId","type":"bytes32"}],"name":"flaunchesAt","outputs":[{"internalType":"uint256","name":"_flaunchTime","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"flayGovernance","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bool","name":"_isFairLaunch","type":"bool"}],"name":"getFeeCalculator","outputs":[{"internalType":"contract IFeeCalculator","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initialPriceParams","type":"bytes"}],"name":"getFlaunchingFee","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes","name":"_initialPriceParams","type":"bytes"}],"name":"getFlaunchingMarketCap","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"PoolId","name":"_poolId","type":"bytes32"}],"name":"getPoolFeeDistribution","outputs":[{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"internalType":"struct FeeDistributor.FeeDistribution","name":"feeDistribution_","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"initialPrice","outputs":[{"internalType":"contract IInitialPrice","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"nativeToken","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"notifier","outputs":[{"internalType":"contract Notifier","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"_poolKey","type":"tuple"}],"name":"poolFees","outputs":[{"components":[{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}],"internalType":"struct InternalSwapPool.ClaimableFees","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"_token","type":"address"}],"name":"poolKey","outputs":[{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"referralEscrow","outputs":[{"internalType":"contract ReferralEscrow","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"contract IFeeCalculator","name":"_feeCalculator","type":"address"}],"name":"setFairLaunchFeeCalculator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"contract IFeeCalculator","name":"_feeCalculator","type":"address"}],"name":"setFeeCalculator","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"internalType":"struct FeeDistributor.FeeDistribution","name":"_feeDistribution","type":"tuple"}],"name":"setFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_flaunchContract","type":"address"}],"name":"setFlaunch","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"_initialPrice","type":"address"}],"name":"setInitialPrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"PoolId","name":"_poolId","type":"bytes32"},{"components":[{"internalType":"uint24","name":"swapFee","type":"uint24"},{"internalType":"uint24","name":"referrer","type":"uint24"},{"internalType":"uint24","name":"protocol","type":"uint24"},{"internalType":"bool","name":"active","type":"bool"}],"internalType":"struct FeeDistributor.FeeDistribution","name":"_feeDistribution","type":"tuple"}],"name":"setPoolFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint24","name":"_protocol","type":"uint24"}],"name":"setProtocolFeeDistribution","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address payable","name":"_referralEscrow","type":"address"}],"name":"setReferralEscrow","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","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"}]Contract Creation Code
60a060405234801561000f575f5ffd5b5060405161745638038061745683398101604081905261002e916108c3565b8051604082015160808084015160c085015160e086015160208701516001600160a01b038116909452919290919061006530610394565b50600880546001600160a01b0319166001600160a01b03871617905561008a84610487565b835160038054602087015160408089015160608a0151151569010000000000000000000260ff60481b1962ffffff9283166601000000000000021663ffffffff60301b1994831663010000000265ffffffffffff199096169290971691909117939093179190911693909317179055517fca7619d8d03127c99378decb6d4c002b5b8b8d60918ea28c2300a7811e7c1300906101629086905f60808201905062ffffff835116825262ffffff602084015116602083015262ffffff604084015116604083015260608301511515606083015292915050565b60405180910390a1600980546001600160a01b038085166001600160a01b03199283161790925560058054928416929091169190911790555f6101a8638b78c6d8195490565b6001600160a01b0316036101bf576101bf8361050f565b505050506060820151600c80546001600160a01b03199081166001600160a01b039384161790915560a0840151600d80548316918416919091179055610100840151601180548316918416919091179055610140840151600e80548316918416919091179055610160840151600f80548316918416919091179055610120840151601080549092169216919091179055506080810151604051610261906107bc565b6001600160a01b039091168152602001604051809103905ff08015801561028a573d5f5f3e3d5ffd5b50601280546001600160a01b0319166001600160a01b039283161790558151600e5460405163095ea7b360e01b81529183169263095ea7b3926102d692909116905f19906004016109b7565b6020604051808303815f875af11580156102f2573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061031691906109d0565b508051600f5460405163095ea7b360e01b81526001600160a01b039283169263095ea7b39261034d929116905f19906004016109b7565b6020604051808303815f875af1158015610369573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061038d91906109d0565b50506109f0565b6104848161047f604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018390526101208201819052610140820181905261016082015261018081018290526101a081019190915290565b610567565b50565b612710815f015162ffffff1611156104b25760405163520fab3d60e01b815260040160405180910390fd5b612710816020015162ffffff1611156104de57604051633626bec760e01b815260040160405180910390fd5b6103e862ffffff16816040015162ffffff1611156104845760405163f37b175b60e01b815260040160405180910390fd5b638b78c6d81980541561052957630dc149f05f526004601cfd5b6001600160a01b03909116801560ff1b8117909155805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b61057c6001600160a01b038316612000610798565b815115159015151415806105ac57506105a06001600160a01b038316611000610798565b15158160200151151514155b806105d357506105c76001600160a01b038316610800610798565b15158160400151151514155b806105fa57506105ee6001600160a01b038316610400610798565b15158160600151151514155b8061062157506106156001600160a01b038316610200610798565b15158160800151151514155b80610648575061063c6001600160a01b038316610100610798565b15158160a00151151514155b8061066e57506106626001600160a01b0383166080610798565b15158160c00151151514155b8061069457506106886001600160a01b0383166040610798565b15158160e00151151514155b806106bb57506106ae6001600160a01b0383166020610798565b1515816101000151151514155b806106e257506106d56001600160a01b0383166010610798565b1515816101200151151514155b8061070957506106fc6001600160a01b0383166008610798565b1515816101400151151514155b8061073057506107236001600160a01b0383166004610798565b1515816101600151151514155b80610757575061074a6001600160a01b0383166002610798565b1515816101800151151514155b8061077e57506107716001600160a01b0383166001610798565b1515816101a00151151514155b1561079457610794630732d7b560e51b836107a7565b5050565b166001600160a01b0316151590565b815f526001600160a01b03811660045260245ffd5b6109d380616a8383390190565b60405161018081016001600160401b03811182821017156107f857634e487b7160e01b5f52604160045260245ffd5b60405290565b80516001600160a01b0381168114610814575f5ffd5b919050565b805162ffffff81168114610814575f5ffd5b80518015158114610814575f5ffd5b5f6080828403121561084a575f5ffd5b604051608081016001600160401b038111828210171561087857634e487b7160e01b5f52604160045260245ffd5b60405290508061088783610819565b815261089560208401610819565b60208201526108a660408401610819565b60408201526108b76060840161082b565b60608201525092915050565b5f6101e08284031280156108d5575f5ffd5b506108de6107c9565b6108e7836107fe565b81526108f5602084016107fe565b6020820152610907846040850161083a565b604082015261091860c084016107fe565b606082015261092960e084016107fe565b608082015261093b61010084016107fe565b60a082015261094d61012084016107fe565b60c082015261095f61014084016107fe565b60e082015261097161016084016107fe565b61010082015261098461018084016107fe565b6101208201526109976101a084016107fe565b6101408201526109aa6101c084016107fe565b6101608201529392505050565b6001600160a01b03929092168252602082015260400190565b5f602082840312156109e0575f5ffd5b6109e98261082b565b9392505050565b608051615fef610a945f395f818161098c01528181610d990152818161117c0152818161130c0152818161156701528181611b6d01528181611ce001528181611dd901528181611f2401528181611f82015281816121240152818161227e015281816125930152818161269c015281816129ca01528181612a3d01528181612cd901528181612d3e01528181612de201528181612e450152612f180152615fef5ff3fe608060405260043610610267575f3560e01c806301a2cae81461027257806305f77c6f146102a757806309276ea4146102ba5780631d0806ae146102d957806321d0ee70146102f85780632423028c146103305780632569296214610351578063259982e514610359578063299d532e1461037857806338b1e700146103a05780634875cbb8146103bf5780634ed0f0f5146103f957806354d1f13d1461041857806355d1cb6014610420578063575e24b4146104da5780636c2bbe7e146105245780636fe7e6eb14610563578063715018a61461058257806371c4ddb01461058a57806375d252a5146105a95780637907addf146105c857806384aa1da0146105f35780638c66d04f146106125780638da5cb5b146106315780638f2bdf751461064957806391dd73461461066857806394e1cf96146106945780639f063efc146106b3578063a1dd2d91146106d2578063a87277dd146106f1578063ad49d66e14610710578063b00eb9fe1461072f578063b3b427951461074e578063b47b2fb11461077a578063b6a8b0fa146107bc578063ba3e69b7146107d6578063be721505146107f5578063c29c945b14610814578063c4b7de971461083d578063c4e833ce1461085c578063d3bff7171461095c578063dc4c90d31461097b578063dc98354e146109ae578063ddb475d5146109cd578063dddfecf514610a07578063df81740e14610a26578063e1758bd814610a45578063e1b4af6914610a64578063ec876d7114610a83578063f04e283e14610aa2578063f2fde38b14610ab5578063fccc281314610ac8578063fee81cf414610add578063ff3575e414610b0e575f5ffd5b3661026e57005b5f5ffd5b34801561027d575f5ffd5b50601154610291906001600160a01b031681565b60405161029e9190614bfa565b60405180910390f35b6102916102b5366004614c0e565b610b2d565b3480156102c5575f5ffd5b50601254610291906001600160a01b031681565b3480156102e4575f5ffd5b50600c54610291906001600160a01b031681565b348015610303575f5ffd5b50610317610312366004614cce565b611170565b6040516001600160e01b0319909116815260200161029e565b34801561033b575f5ffd5b5061034f61034a366004614d5f565b6111ee565b005b61034f6112b4565b348015610364575f5ffd5b50610317610373366004614cce565b611300565b348015610383575f5ffd5b5061039266038d7ea4c6800081565b60405190815260200161029e565b3480156103ab575f5ffd5b5061034f6103ba366004614d7a565b611371565b3480156103ca575f5ffd5b506103de6103d9366004614d95565b6113c4565b6040805193845260208401929092529082015260600161029e565b348015610404575f5ffd5b5061034f610413366004614e8c565b611464565b61034f611520565b34801561042b575f5ffd5b506104cd61043a366004614d7a565b6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506001600160a01b039081165f90815260026020818152604092839020835160a08101855281548616815260018201548087169382019390935262ffffff600160a01b84041694810194909452600160b81b909104820b60608401520154909116608082015290565b60405161029e9190614efa565b3480156104e5575f5ffd5b506104f96104f4366004614f72565b611559565b604080516001600160e01b03199094168452602084019290925262ffffff169082015260600161029e565b34801561052f575f5ffd5b5061054361053e366004614fcb565b611dcc565b604080516001600160e01b0319909316835260208301919091520161029e565b34801561056e575f5ffd5b5061031761057d366004615063565b611e58565b61034f611e72565b348015610595575f5ffd5b506102916105a43660046150bc565b611e85565b3480156105b4575f5ffd5b50601054610291906001600160a01b031681565b3480156105d3575f5ffd5b506103926105e23660046150d7565b60136020525f908152604090205481565b3480156105fe575f5ffd5b50600b54610291906001600160a01b031681565b34801561061d575f5ffd5b5061034f61062c366004614d7a565b611ec4565b34801561063c575f5ffd5b50638b78c6d81954610291565b348015610654575f5ffd5b50600454610291906001600160a01b031681565b348015610673575f5ffd5b506106876106823660046150ee565b611f17565b60405161029e919061515a565b34801561069f575f5ffd5b50600f54610291906001600160a01b031681565b3480156106be575f5ffd5b506105436106cd366004614fcb565b611f75565b3480156106dd575f5ffd5b50600754610291906001600160a01b031681565b3480156106fc575f5ffd5b5061034f61070b366004614d7a565b611fdf565b34801561071b575f5ffd5b5061034f61072a36600461516c565b612032565b34801561073a575f5ffd5b50600654610291906001600160a01b031681565b348015610759575f5ffd5b5061076d6107683660046150d7565b6121d4565b60405161029e9190615203565b348015610785575f5ffd5b50610799610794366004615243565b612271565b604080516001600160e01b03199093168352600f9190910b60208301520161029e565b3480156107c7575f5ffd5b5061031761057d3660046152cd565b3480156107e1575f5ffd5b50600e54610291906001600160a01b031681565b348015610800575f5ffd5b5061034f61080f366004614d7a565b6124cb565b34801561081f575f5ffd5b506108296103e881565b60405162ffffff909116815260200161029e565b348015610848575f5ffd5b50600554610291906001600160a01b031681565b348015610867575f5ffd5b5061094f604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018390526101208201819052610140820181905261016082015261018081018290526101a081019190915290565b60405161029e9190615326565b348015610967575f5ffd5b5061034f610976366004615447565b6124f5565b348015610986575f5ffd5b506102917f000000000000000000000000000000000000000000000000000000000000000081565b3480156109b9575f5ffd5b506103176109c8366004615461565b612587565b3480156109d8575f5ffd5b506109ec6109e736600461516c565b6125ea565b6040805182518152602092830151928101929092520161029e565b348015610a12575f5ffd5b50600954610291906001600160a01b031681565b348015610a31575f5ffd5b5061034f610a40366004614d7a565b61263d565b348015610a50575f5ffd5b50600854610291906001600160a01b031681565b348015610a6f575f5ffd5b50610317610a7e3660046152cd565b612690565b348015610a8e575f5ffd5b50610392610a9d3660046150ee565b612718565b61034f610ab0366004614d7a565b61278b565b61034f610ac3366004614d7a565b6127c8565b348015610ad3575f5ffd5b5061029161dead81565b348015610ae8575f5ffd5b50610392610af7366004614d7a565b63389a75e1600c9081525f91909152602090205490565b348015610b19575f5ffd5b50610392610b283660046150ee565b6127ee565b600b546040516305f77c6f60e01b81525f91829182916001600160a01b0316906305f77c6f90610b6190879060040161561d565b6060604051808303815f875af1158015610b7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba1919061562f565b6008546040805160a081019091529396509094509092506001600160a01b038086169116108015915f918190610bd75786610be4565b6008546001600160a01b03165b6001600160a01b0316815260200183610bfd5786610c0a565b6008546001600160a01b03165b6001600160a01b0390811682525f6020830152603c6040808401919091523060609093018390526010546008549151632095f47360e21b815294955087831694638257d1cc94610c669490939281169216908790600401615670565b5f604051808303815f87803b158015610c7d575f5ffd5b505af1158015610c8f573d5f5f3e3d5ffd5b505050506001600160a01b038581165f908152600260208181526040808420865181546001600160a01b0319908116918816919091178255928701516001820180549389015160608a01519289166001600160b81b031990951694909417600160a01b62ffffff958616021762ffffff60b81b1916600160b81b949092169390930217909155608086015192018054909116919093161790915560a082209050610d40610100880160e08901614d5f565b62ffffff1615610d7f57610d5b610100880160e08901614d5f565b5f828152602081905260409020805462ffffff191662ffffff929092169190911790555b610d9681610d916101408a018a61569e565b612820565b5f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316636276cbbe84600c5f9054906101000a90046001600160a01b03166001600160a01b031663fc87f3f633898e806101200190610dfd919061569e565b6040518563ffffffff1660e01b8152600401610e1c94939291906156e0565b602060405180830381865afa158015610e37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b919061570c565b6040518363ffffffff1660e01b8152600401610e78929190615727565b6020604051808303815f875af1158015610e94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb8919061574d565b90505f610ecc610a9d6101208b018b61569e565b9050827f54976b48704e67457d6a85a2db51d6e760bbeddf6151f9206512108adce80b4289888a89868f604051610f0896959493929190615768565b60405180910390a260a089013515610f2f575f610f288a60a00135612924565b905080845d505b600f5460405163095ea7b360e01b81526001600160a01b038a81169263095ea7b392610f6492909116905f19906004016157b5565b6020604051808303815f875af1158015610f80573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa491906157ce565b50600f546001600160a01b0316631b5b90138484426101008e013511610fca5742610fd1565b8c61010001355b6040516001600160e01b031960e086901b168152600481019390935260029190910b6024830152604482015260608c0135606482015260808c0135608482015260a40160c0604051808303815f875af1158015611030573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110549190615873565b504289610100013511156110ba575f83815260136020526040908190206101008b013590819055905184917f0a5b59cacc8ab09e32bf89cb0477200adacf9c0237786bf21d17f44cec998107916110ad91815260200190565b60405180910390a26110cb565b5f8381526013602052604090204290555b80156111165780341015611100576040516384eca25560e01b8152346004820152602481018290526044015b60405180910390fd5b600d54611116906001600160a01b031682612942565b80341115611131576111313361112c83346158a1565b612942565b61116483636fe7e6eb60e01b898c6040516020016111509291906158b4565b60405160208183030381529060405261295f565b50505050505050919050565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146111ba5760405163570c108560e11b815260040160405180910390fd5b6111dc6111d66111cf3688900388018861516c565b60a0902090565b87612ab3565b5063021d0ee760e41b95945050505050565b6009546001600160a01b03163314611218576040516282b42960e81b815260040160405180910390fd5b6103e862ffffff821611156112405760405163f37b175b60e01b815260040160405180910390fd5b6003805462ffffff8316600160301b0262ffffff60301b199091161781556040515f516020615e9a5f395f51905f52916112a991905462ffffff8082168352601882901c81166020840152603082901c16604083015260481c60ff161515606082015260800190565b60405180910390a150565b5f6202a3006001600160401b03164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b5f336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161461134a5760405163570c108560e11b815260040160405180910390fd5b61135f6111d66111cf3688900388018861516c565b5063259982e560e01b95945050505050565b611379612b70565b600780546001600160a01b0319166001600160a01b0383161790556040517f87043577396d39ef835a9eb69bb496c219cc61bdd6e718447add3c06b6cc0844906112a9908390614bfa565b5f5f5f5f6113d1866121d4565b9050806040015162ffffff165f1461141457612710816040015162ffffff16866113fb91906158cc565b61140591906158f7565b915061141182866158a1565b94505b5f8681526020819052604090205462ffffff1680156114585761271061143f62ffffff8316886158cc565b61144991906158f7565b935061145584876158a1565b95505b85945050509250925092565b61146c612b70565b61147581612b8a565b5f8281526001602090815260409182902083518154928501518486015160608701511515600160481b0260ff60481b1962ffffff928316600160301b021663ffffffff60301b1993831663010000000265ffffffffffff1990971692909416919091179490941716179190911790555182907fe1b2af81a774e1ebee3ca7c94c1e1a0df1210b236149a2079b8bba8dbc475a2890611514908490615203565b60405180910390a25050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b5f8080336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146115a55760405163570c108560e11b815260040160405180910390fd5b5f6115b86111cf368a90038a018a61516c565b5f81815260136020526040902054909150801561165c57815c80158015906115e35750808960200151145b1561162757827fdfa452364a13ecc87d8b629926a27f0b82206c68e4126e138157c5d853c71d848260405161161a91815260200190565b60405180910390a261165a565b4282111561164b5760405163129b67b160e21b8152600481018390526024016110f7565b5f838152601360205260408120555b505b5050600f545f906001600160a01b031663e4f203f66116836111cf368c90038c018c61516c565b6040518263ffffffff1660e01b81526004016116a191815260200190565b60c060405180830381865afa1580156116bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e09190615873565b90508060a00151611b4d575f6116f960208a018a614d7a565b6008546001600160a01b0390811691161490505f61171f6111cf368c90038c018c61516c565b9050805c1580156117975750600f54604051621cc8fb60e81b8152600481018390526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa158015611771573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179591906157ce565b155b156118af576080830151600f545f838152600a60205260409081902060010154905163e7ea93c760e01b81526001600160a01b039092169163e7ea93c7916117e6918f9190889060040161599a565b60c0604051808303815f875af1158015611802573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118269190615873565b5080156118a95761186e61dead828561184b5761184660208f018f614d7a565b61185e565b8d602001602081019061185e9190614d7a565b6001600160a01b03169190612c12565b817f69a23fc084ff191b1eed2d64f95be97bef87b127d8a3e71925d4c252ae408f65826040516118a091815260200190565b60405180910390a25b50611b4a565b88511515821515146118d45760405163013fa16b60e41b815260040160405180910390fd5b600f5460208a0151604051633132604760e11b81525f926001600160a01b031691636264c08e9161190b918f91889060040161599a565b610100604051808303815f875af1158015611928573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194c91906159be565b919750909450905061196c611966368d90038d018d61516c565b82612cc0565b5f6119848c8c8f61197d8b600f0b90565b8e8e612ed4565b90506119ac8b5f516020615f5a5f395f51905f525f516020615f7a5f395f51905f528a6130b0565b6119d28b5f516020615eba5f395f51905f525f516020615e1a5f395f51905f528461312f565b611a0f6119df8860801d90565b6119e883613166565b6119f28a600f0b90565b6119fc91906159f3565b6001600160801b031660809190911b1790565b96505f8b6020015112158015611a2457508015155b15611aa257600f546001600160a01b031663197a866b84611a4484613166565b611a4d90615a20565b6040516001600160e01b031960e085901b1681526004810192909252600f0b60248201526044015f604051808303815f87803b158015611a8b575f5ffd5b505af1158015611a9d573d5f5f3e3d5ffd5b505050505b84608001515f03611b4757600f5f9054906101000a90046001600160a01b03166001600160a01b031663e7ea93c78d600a5f8781526020019081526020015f2060010154876040518463ffffffff1660e01b8152600401611b059392919061599a565b60c0604051808303815f875af1158015611b21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b459190615873565b505b50505b50505b5f611b606111cf368b90038b018b61516c565b90505f815d505f80611bb17f00000000000000000000000000000000000000000000000000000000000000008b8b611b9b6020830183614d7a565b6008546001600160a01b03908116911614613186565b9092509050611bc08183615a41565b15611cc1575f5f8a602001511215611bf557611bf0611bde84613166565b611be784613166565b6119fc90615a20565b611c13565b611c13611c0183613166565b611c0a90615a20565b6119fc85613166565b90505f611c268c8c8f61197d86600f0b90565b9050611c4e8b5f516020615f9a5f395f51905f525f516020615f1a5f395f51905f52856130b0565b611c748b5f516020615e3a5f395f51905f525f516020615e5a5f395f51905f528461312f565b611cbc611c818360801d90565b611c8b8960801d90565b611c9591906159f3565b611c9e83613166565b611ca885600f0b90565b611cb28b600f0b90565b6119f291906159f3565b965050505b611d06611cd66111cf368d90038d018d61516c565b6001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001690613454565b5050600c805462ffffff60a01b1916600160a01b62ffffff9390931683021790819055600e546001600160a01b0316925063ba95e274918d910460020b611d506020830183614d7a565b6008546040516001600160e01b031960e087901b168152611d879493926001600160a01b0392831692169190911490600401615a54565b5f604051808303815f87803b158015611d9e575f5ffd5b505af1158015611db0573d5f5f3e3d5ffd5b5050505063575e24b460e01b9550505050955095509592505050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611e175760405163570c108560e11b815260040160405180910390fd5b633615df3f60e11b9150611e4c611e366111cf368b90038b018b61516c565b838b898960405160200161115093929190615a7b565b97509795505050505050565b5f604051630a85dc2960e01b815260040160405180910390fd5b611e7a612b70565b611e835f613506565b565b5f818015611e9d57506007546001600160a01b031615155b15611eb35750506007546001600160a01b031690565b50506006546001600160a01b031690565b611ecc612b70565b600680546001600160a01b0319166001600160a01b0383161790556040517f3e762c7e655633ce63121393b9694f9ca1883d14d18f48f1be55e5dc7a9fb6c1906112a9908390614bfa565b6060336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611f625760405163570c108560e11b815260040160405180910390fd5b611f6c838361354c565b90505b92915050565b5f80336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614611fc05760405163570c108560e11b815260040160405180910390fd5b6327c18fbf60e21b9150611e4c611e366111cf368b90038b018b61516c565b611fe7612b70565b600480546001600160a01b0319166001600160a01b0383161790556040517f9c922de256a07b4d188faacda5c1abb2cae12f74f4370d5c2f11efb37a742d70906112a9908390614bfa565b600e546001600160a01b0316331461205d57604051630632844f60e31b815260040160405180910390fd5b6008545f90600290829061207b9085906001600160a01b03166135bb565b6001600160a01b03908116825260208083019390935260409182015f20825160a08101845281548316815260018201548084169582019590955262ffffff600160a01b86041693810193909352600160b81b909304600290810b6060840152909201549091166080820181905290915015806120fd575060a0822060a0822014155b156121225760a0822060405163180b855560e01b81526004016110f791815260200190565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166348c89491836040516020016121629190614efa565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161218d919061515a565b5f604051808303815f875af11580156121a8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121cf9190810190615a9c565b505050565b604080516080810182525f8082526020820181905291810182905260608101919091525f82815260016020526040902054600160481b900460ff1661221a576003612228565b5f8281526001602052604090205b60408051608081018252915462ffffff80821684526301000000820481166020850152600160301b82041691830191909152600160481b900460ff161515606082015292915050565b5f80336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146122bc5760405163570c108560e11b815260040160405180910390fd5b5f5f6122c88760801d90565b6122d288600f0b90565b90925090505f6122e560208a018a6150bc565b15155f60208b013512146122f957826122fb565b815b90505f61231a8b612311368d90038d018d615b2e565b8e858c8c612ed4565b9050835f516020615e7a5f395f51905f525d825f516020615eda5f395f51905f525d61237061234e368c90038c018c615b2e565b5f516020615f3a5f395f51905f525f516020615efa5f395f51905f528461312f565b612387612382368d90038d018d61516c565b6135e1565b5f61239a6111cf368e90038e018e61516c565b600f54604051621cc8fb60e81b8152600481018390529192505f9161240c916001600160a01b031690631cc8fb00906024015b602060405180830381865afa1580156123e8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a491906157ce565b90506001600160a01b0381161561248157806001600160a01b03166324f961778f8f8f8f8f8f6040518763ffffffff1660e01b815260040161245396959493929190615b85565b5f604051808303815f87803b15801561246a575f5ffd5b505af115801561247c573d5f5f3e3d5ffd5b505050505b5061248b82613166565b63b47b2fb160e01b975095506124a1818e613991565b6124bb81888f8e8e60405160200161115093929190615bcb565b5050505050965096945050505050565b6124d3612b70565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6124fd612b70565b61250681612b8a565b805160038054602084015160408086015160608701511515600160481b0260ff60481b1962ffffff928316600160301b021663ffffffff60301b1994831663010000000265ffffffffffff199096169290971691909117939093179190911693909317179055515f516020615e9a5f395f51905f52906112a9908390615203565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146125d15760405163570c108560e11b815260040160405180910390fd5b604051635116b0eb60e11b815260040160405180910390fd5b604080518082019091525f8082526020820152600a5f61260b8460a0902090565b81526020019081526020015f206040518060400160405290815f82015481526020016001820154815250509050919050565b612645612b70565b600c80546001600160a01b0319166001600160a01b0383161790556040517fbfad4f58ed4ffa32358e2ae423bf8a56d8adf778ad13eb9160c0fecd99ec1577906112a9908390614bfa565b5f336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146126da5760405163570c108560e11b815260040160405180910390fd5b5063e1b4af6960e01b61270e6126f86111cf3689900389018961516c565b8289888860405160200161115093929190615a7b565b9695505050505050565b600c5460405163010b630b60e61b81525f916001600160a01b0316906342d8c2c09061274c90339087908790600401615bf6565b602060405180830381865afa158015612767573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f6c9190615c1a565b612793612b70565b63389a75e1600c52805f526020600c2080544211156127b957636f5e88185f526004601cfd5b5f90556127c581613506565b50565b6127d0612b70565b8060601b6127e557637448fbae5f526004601cfd5b6127c581613506565b600c54604051630550389f60e31b81525f916001600160a01b031690632a81c4f89061274c9086908690600401615c31565b5f61282b6001611e85565b90506001600160a01b0381161561289a5760405163edf2ec7960e01b81526001600160a01b0382169063edf2ec799061286c90879087908790600401615c44565b5f604051808303815f87803b158015612883575f5ffd5b505af1158015612895573d5f5f3e3d5ffd5b505050505b5f6128a45f611e85565b9050816001600160a01b0316816001600160a01b03161461291d5760405163edf2ec7960e01b81526001600160a01b0382169063edf2ec79906128ef90889088908890600401615c44565b5f604051808303815f87803b158015612906575f5ffd5b505af1158015612918573d5f5f3e3d5ffd5b505050505b5050505050565b805f81121561293d5761293d6393dafdf160e01b613c1b565b919050565b5f385f3884865af161295b5763b12d13eb5f526004601cfd5b5050565b60125460405163314e79ad60e01b81526001600160a01b039091169063314e79ad9061299390869086908690600401615c5d565b5f604051808303815f87803b1580156129aa575f5ffd5b505af11580156129bc573d5f5f3e3d5ffd5b505050505f5f5f5f612a00877f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031661345490919063ffffffff16565b92965090945092509050867f1a111a34a945a6d821c9dc87031a478ad3107acb9b19f2ee72d3aaa72b0849c985858585612a636001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001687613c23565b604080516001600160a01b0396909616865260029490940b602086015262ffffff92831685850152911660608401526001600160801b03166080830152519081900360a00190a250505050505050565b600e546001600160a01b0382811691161480612adc5750600f546001600160a01b038281169116145b15612ae5575050565b600f54604051621cc8fb60e81b8152600481018490526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa158015612b2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b4f91906157ce565b612b57575050565b604051631d3e310160e21b815260040160405180910390fd5b638b78c6d819543314611e83576382b429005f526004601cfd5b612710815f015162ffffff161115612bb55760405163520fab3d60e01b815260040160405180910390fd5b612710816020015162ffffff161115612be157604051633626bec760e01b815260040160405180910390fd5b6103e862ffffff16816040015162ffffff1611156127c55760405163f37b175b60e01b815260040160405180910390fd5b5f612c25846001600160a01b0316613caf565b15612c50575f5f5f5f85875af1905080612c4b57612c4b835f633d2cec6f60e21b613cbc565b612cba565b60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f60408201525080612cba57612cba8463a9059cbb60e01b633c9fd93960e21b613cbc565b50505050565b5f612ccb8260801d90565b600f0b1215612d2857612d237f000000000000000000000000000000000000000000000000000000000000000030612d038460801d90565b600f0b612d0f90615c84565b85516001600160a01b03169291905f613d34565b612dc9565b5f612d338260801d90565b600f0b1315612dc9577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0d9c09835f015130612d7a8560801d90565b600f0b6040518463ffffffff1660e01b8152600401612d9b93929190615c9e565b5f604051808303815f87803b158015612db2575f5ffd5b505af1158015612dc4573d5f5f3e3d5ffd5b505050505b5f612dd482600f0b90565b600f0b1215612e2f5761295b7f000000000000000000000000000000000000000000000000000000000000000030612e0c84600f0b90565b600f0b612e1890615c84565b60208601516001600160a01b03169291905f613d34565b5f612e3a82600f0b90565b600f0b131561295b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316630b0d9c09836020015130612e8285600f0b90565b600f0b6040518463ffffffff1660e01b8152600401612ea393929190615c9e565b5f604051808303815f87803b158015612eba575f5ffd5b505af1158015612ecc573d5f5f3e3d5ffd5b505050505050565b5f5f865f015115155f886020015112151514612efc57612ef76020890189614d7a565b612f0c565b612f0c6040890160208a01614d7a565b600f54909150613024907f0000000000000000000000000000000000000000000000000000000000000000908a908a90612f7e906001600160a01b0316631cc8fb00612f606111cf3687900387018761516c565b6040518263ffffffff1660e01b81526004016123cd91815260200190565b855f8b600f0b12612f8f578a612f98565b612f988b615a20565b6001600160801b031660115f9054906101000a90046001600160a01b03166001600160a01b031663f6a23d988e6040518263ffffffff1660e01b8152600401612fe19190614bfa565b6040805180830381865afa158015612ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301f9190615cc2565b613fe4565b9150815f03613033575061270e565b5f6130418983858888614142565b90506130a4613055368b90038b018b61516c565b6008546001600160a01b03858116911614613070575f61307a565b61307a83866158a1565b6008546001600160a01b0386811691161461309e5761309984876158a1565b6142ca565b5f6142ca565b50509695505050505050565b5f5f855f015115155f8760200151121515146130f1576130d083600f0b90565b6130d990615a20565b6130e38460801d90565b6130ec90615a20565b613117565b6130fb8360801d90565b61310490615a20565b61310e84600f0b90565b61311790615a20565b600f0b9150600f0b915081855d80845d505050505050565b5f61313982615c84565b8551602087015191925015155f90911203613159575f845d80835d61291d565b80845d5f835d5050505050565b5f6001607f1b8210613182576131826393dafdf160e01b613c1b565b5090565b5f808061319b6111cf3688900388018861516c565b5f818152600a6020526040812060018101549293509190036131be57505061344b565b85511515851515146131d157505061344b565b5f6131e56001600160a01b038a1684613454565b50505090505f876020015112613251575f826001015488602001511161320f578760200151613215565b82600101545b905061324382896040015161323c878e6001600160a01b0316613c2390919063ffffffff16565b845f614356565b5090975095506132f2915050565b6132b881885f01516132725761326d6401000276a36001615d20565b613291565b613291600173fffd8963efd1fc6a506488495d951d5263988d26615d3f565b6132a46001600160a01b038d1687613c23565b8a602001516132b290615c84565b5f614356565b50600185015490975090955085111590506132f257838583600101546132de91906158cc565b6132e891906158f7565b9450816001015493505b841580156132fe575083155b1561330b5750505061344b565b84825f015f82825461331d9190615a41565b9250508190555083826001015f82825461333791906158a1565b90915550506001600160a01b038916630b0d9c0987156133635761335e60208b018b614d7a565b613373565b61337360408b0160208c01614d7a565b30886040518463ffffffff1660e01b815260040161339393929190615c9e565b5f604051808303815f87803b1580156133aa575f5ffd5b505af11580156133bc573d5f5f3e3d5ffd5b505050506134018930865f8a156133e2576133dd60408e0160208f01614d7a565b6133ef565b6133ef60208e018e614d7a565b6001600160a01b031693929190613d34565b865160408051911515825260208201879052810185905283907fce97caf4fd0295de9544b52b4b9e79fe34c370bebb6fb71bc5baae9a702079689060600160405180910390a25050505b94509492505050565b5f5f5f5f5f613462866144b9565b604051631e2eaeaf60e01b8152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa1580156134aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134ce9190615c1a565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b600e546060906001600160a01b031663ad49d66e61356c8486018661516c565b6040518263ffffffff1660e01b81526004016135889190614efa565b5f604051808303815f87803b15801561359f575f5ffd5b505af11580156135b1573d5f5f3e3d5ffd5b5050505092915050565b81515f906001600160a01b038084169116146135d8578251611f6c565b50506020015190565b60a081205f818152600a602052604090205466038d7ea4c6800081101561360757505050565b5f828152600a60205260408120819055808061362385856113c4565b60085492955090935091505f9081906136469089906001600160a01b03166135bb565b90505f816001600160a01b03166302d05d3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613685573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136a9919061570c565b90506001600160a01b0381161585156136e157806136d1576136cc8983886144f5565b6136e1565b6136db8688615a41565b96505f95505b861561388c57600e54604051634e944d5760e01b8152600481018b90526001600160a01b0390911690634e944d5790602401602060405180830381865afa15801561372e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061375291906157ce565b80156137c55750600f54604051621cc8fb60e81b8152600481018b90526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa15801561379f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137c391906157ce565b155b1561387c57600e5f9054906101000a90046001600160a01b03166001600160a01b031663088a80c78b89600c60149054906101000a900460020b8e5f01516001600160a01b031660085f9054906101000a90046001600160a01b03166001600160a01b0316146040518563ffffffff1660e01b815260040161384a9493929190615d5e565b5f604051808303815f87803b158015613861575f5ffd5b505af1158015613873573d5f5f3e3d5ffd5b5050505061388c565b6138868785615a41565b93505f96505b831561391657806139065761390189846001600160a01b03166361d027b36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138fb919061570c565b866144f5565b613916565b6139108486615a41565b94505f93505b841561393457600d54613934908a906001600160a01b0316876144f5565b6040805189815260208101889052908101889052606081018590526080810186905289907fc7241a69d3660bdfe5f36bdcca3b2da1fe8844366e46adb58be95171ab0665ad9060a00160405180910390a250505050505050505050565b604080515f516020615f5a5f395f51905f525c81525f516020615f7a5f395f51905f525c60208201525f516020615eba5f395f51905f525c818301525f516020615e1a5f395f51905f525c60608201525f516020615f9a5f395f51905f525c60808201525f516020615f1a5f395f51905f525c60a08201525f516020615e3a5f395f51905f525c60c08201525f516020615e5a5f395f51905f525c60e08201525f516020615e7a5f395f51905f525c6101008201525f516020615eda5f395f51905f525c6101208201525f516020615f3a5f395f51905f525c6101408201525f516020615efa5f395f51905f525c610160820152905183917f35001030bac7516ed5b1daf42bbfd3eaf587acc70c90f7f00ee42d5a34d7523391908190036101800190a2613b578282613ae05f516020615f9a5f395f51905f525c5f516020615f5a5f395f51905f525c615d8d565b613b065f516020615f1a5f395f51905f525c5f516020615f7a5f395f51905f525c615d8d565b613b2c5f516020615e3a5f395f51905f525c5f516020615eba5f395f51905f525c615d8d565b613b525f516020615e5a5f395f51905f525c5f516020615e1a5f395f51905f525c615d8d565b61465a565b5f5f516020615f5a5f395f51905f525d5f5f516020615f7a5f395f51905f525d5f5f516020615eba5f395f51905f525d5f5f516020615e1a5f395f51905f525d5f5f516020615f9a5f395f51905f525d5f5f516020615f1a5f395f51905f525d5f5f516020615e3a5f395f51905f525d5f5f516020615e5a5f395f51905f525d5f5f516020615e7a5f395f51905f525d5f5f516020615eda5f395f51905f525d5f5f516020615f3a5f395f51905f525d5f5f516020615efa5f395f51905f525d5050565b805f5260045ffd5b5f5f613c2e836144b9565b90505f613c3c600383615a41565b604051631e2eaeaf60e01b8152600481018290529091506001600160a01b03861690631e2eaeaf90602401602060405180830381865afa158015613c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ca69190615c1a565b95945050505050565b6001600160a01b03161590565b6040516390bfb86560e01b8082526001600160a01b03851660048301526001600160e01b031984166024830152608060448301526020601f3d018190040260a0810160648401523d608484015290913d5f60a483013e60048260a4018201526001600160e01b031984168260c4018201528160e40181fd5b8015613db457836001600160a01b031663f5298aca84613d63886001600160a01b03166001600160a01b031690565b856040518463ffffffff1660e01b8152600401613d8293929190615a7b565b5f604051808303815f87803b158015613d99575f5ffd5b505af1158015613dab573d5f5f3e3d5ffd5b5050505061291d565b613dc6856001600160a01b0316613caf565b15613e3457836001600160a01b03166311da60b4836040518263ffffffff1660e01b815260040160206040518083038185885af1158015613e09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613e2e9190615c1a565b5061291d565b604051632961046560e21b81526001600160a01b0385169063a584119490613e60908890600401614bfa565b5f604051808303815f87803b158015613e77575f5ffd5b505af1158015613e89573d5f5f3e3d5ffd5b505050506001600160a01b0383163014613f13576040516323b872dd60e01b81526001600160a01b038616906323b872dd90613ecd90869088908790600401615c9e565b6020604051808303815f875af1158015613ee9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f0d91906157ce565b50613f83565b60405163a9059cbb60e01b81526001600160a01b0386169063a9059cbb90613f4190879086906004016157b5565b6020604051808303815f875af1158015613f5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f8191906157ce565b505b836001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015613fc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecc9190615c1a565b5f8215614137575f6140016107686111cf368b90038b018b61516c565b5190506001600160a01b0386161561408557604051634039108560e01b81526001600160a01b03871690634039108590614043908b908b908690600401615db4565b602060405180830381865afa15801561405e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140829190615dfe565b90505b8260200151801561409e5750825162ffffff8083169116105b156140a7575081515b8062ffffff165f036140b95750614137565b6127106140cb62ffffff8316866158cc565b6140d591906158f7565b604051630b0d9c0960e01b81529092506001600160a01b038a1690630b0d9c099061410890889030908790600401615c9e565b5f604051808303815f87803b15801561411f575f5ffd5b505af1158015614131573d5f5f3e3d5ffd5b50505050505b979650505050505050565b5f8115613ca6575f61415c6111cf3689900389018961516c565b90505f614168826121d4565b6020015190508062ffffff165f03614181575050613ca6565b5f61418e85870187614d7a565b90506001600160a01b0381166141a657505050613ca6565b600354612710906141c3906301000000900462ffffff16896158cc565b6141cd91906158f7565b6004549094506001600160a01b0316614235576141f46001600160a01b0389168286612c12565b827f3ca4a7850462c23d5854e8b3e852626beb21b37354c670c0135ab46f0c4bdc31828a8760405161422893929190615c9e565b60405180910390a26142be565b60045461424f906001600160a01b038a8116911686612c12565b6004805460405163587a617560e11b81529182018590526001600160a01b0383811660248401528a8116604484015260648301879052169063b0f4c2ea906084015f604051808303815f87803b1580156142a7575f5ffd5b505af11580156142b9573d5f5f3e3d5ffd5b505050505b50505095945050505050565b60a083205f818152600a6020526040812080548592906142eb908490615a41565b90915550505f818152600a602052604081206001018054849290614310908490615a41565b9091555050604080518481526020810184905282917fa245a9a38e8877add82f0a82c13e062ab3df16a26121977ddcca8827d46c690a910160405180910390a250505050565b5f80808062ffffff85166001600160a01b03808a16908b161015828812801561442c575f61438f8a5f0385620f424003620f424061475c565b9050826143a8576143a38d8d8d60016147f9565b6143b5565b6143b58c8e8d6001614845565b96508681106143e9578b9750620f424084146143e0576143db878586620f42400361490a565b6143e2565b865b9450614402565b8096506143f88d8c838661493a565b9750868a5f030394505b82614418576144138d898d5f614845565b614424565b614424888e8d5f6147f9565b9550506144aa565b816144425761443d8c8c8c5f614845565b61444e565b61444e8b8d8c5f6147f9565b945084891061445f578a9650614471565b88945061446e8c8b8785614988565b96505b81614488576144838c888c60016147f9565b614495565b614495878d8c6001614845565b95506144a7868485620f42400361490a565b93505b50505095509550955095915050565b6040515f906144d8908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b600854600554604051636eb1769f60e11b81523360048201526001600160a01b0391821660248201528392919091169063dd62ed3e906044016020604051808303815f875af115801561454a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061456e9190615c1a565b10156145ed5760085460055460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926145ab929116905f19906004016157b5565b6020604051808303815f875af11580156145c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906145eb91906157ce565b505b600554604051632c8ff5d960e21b8152600481018590526001600160a01b038481166024830152604482018490529091169063b23fd764906064015f604051808303815f87803b15801561463f575f5ffd5b505af1158015614651573d5f5f3e3d5ffd5b50505050505050565b8315158061466757508215155b156146d657846001600160a01b0316867f365f10e9e7ce45d7acfd986c42e0b666f8af282e440e6dafc78c1f2b2f7867606146a1876149cf565b6146aa876149cf565b60408051600f93840b81529190920b60208201525f818301819052606082015290519081900360800190a35b811515806146e357508015155b15612ecc576001600160a01b038516867f444083dce778da1269b63671912c00569a2a58fa85827911902301f91793ffd761472561472086615c84565b6149eb565b61473161472086615c84565b604080516001600160801b0393841681529290911660208301520160405180910390a3505050505050565b5f838302815f198587098281108382030391505080841161477b575f5ffd5b805f0361478d575082900490506147f2565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f6001600160a01b038481169086160360ff81901d90810118600160601b6001600160801b03851661482c81848461475c565b9350845f83858409111684019350505050949350505050565b5f836001600160a01b0316856001600160a01b03161115614864579293925b6001600160a01b03851661487e5762bfc9215f526004601cfd5b600160601b600160e01b03606084901b166001600160a01b0386860316836148d157866001600160a01b03166148be8383896001600160a01b031661475c565b816148cb576148cb6158e3565b046148fd565b6148fd6148e88383896001600160a01b031661490a565b886001600160a01b0316808204910615150190565b925050505b949350505050565b5f61491684848461475c565b90508180614926576149266158e3565b838509156147f257600101806147f2575f5ffd5b5f6001600160801b038416156001600160a01b03861615171561496457634f2461b85f526004601cfd5b8161497b576149768585856001614a0c565b613ca6565b613ca68585856001614af7565b5f6001600160801b038416156001600160a01b0386161517156149b257634f2461b85f526004601cfd5b816149c3576149768585855f614af7565b613ca68585855f614a0c565b80600f81900b811461293d5761293d6393dafdf160e01b613c1b565b806001600160801b038116811461293d5761293d6393dafdf160e01b613c1b565b5f8115614a7c575f6001600160a01b03841115614a4057614a3b84600160601b876001600160801b031661475c565b614a57565b614a576001600160801b038616606086901b6158f7565b9050614a74614a6f826001600160a01b038916615a41565b614bd9565b915050614902565b5f6001600160a01b03841115614aa957614aa484600160601b876001600160801b031661490a565b614ac6565b614ac6606085901b6001600160801b038716808204910615150190565b9050806001600160a01b03871611614ae557634323a5555f526004601cfd5b6001600160a01b038616039050614902565b5f825f03614b06575083614902565b600160601b600160e01b03606085901b168215614b98576001600160a01b03861684810290858281614b3a57614b3a6158e3565b0403614b6a57818101828110614b6857614b5e83896001600160a01b03168361490a565b9350505050614902565b505b50614a748185614b836001600160a01b038a16836158f7565b614b8d9190615a41565b808204910615150190565b6001600160a01b038616848102908582041481831116614bbf5763f5c787f15f526004601cfd5b808203614b5e614a6f846001600160a01b038b168461490a565b806001600160a01b038116811461293d5761293d6393dafdf160e01b613c1b565b6001600160a01b0391909116815260200190565b5f60208284031215614c1e575f5ffd5b81356001600160401b03811115614c33575f5ffd5b820161016081850312156147f2575f5ffd5b6001600160a01b03811681146127c5575f5ffd5b803561293d81614c45565b5f60a08284031215614c74575f5ffd5b50919050565b5f60808284031215614c74575f5ffd5b5f5f83601f840112614c9a575f5ffd5b5081356001600160401b03811115614cb0575f5ffd5b602083019150836020828501011115614cc7575f5ffd5b9250929050565b5f5f5f5f5f6101608688031215614ce3575f5ffd5b8535614cee81614c45565b9450614cfd8760208801614c64565b9350614d0c8760c08801614c7a565b92506101408601356001600160401b03811115614d27575f5ffd5b614d3388828901614c8a565b969995985093965092949392505050565b62ffffff811681146127c5575f5ffd5b803561293d81614d44565b5f60208284031215614d6f575f5ffd5b81356147f281614d44565b5f60208284031215614d8a575f5ffd5b81356147f281614c45565b5f5f60408385031215614da6575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715614df157614df1614db5565b604052919050565b80151581146127c5575f5ffd5b5f60808284031215614e16575f5ffd5b604051608081016001600160401b0381118282101715614e3857614e38614db5565b6040529050808235614e4981614d44565b81526020830135614e5981614d44565b60208201526040830135614e6c81614d44565b60408201526060830135614e7f81614df9565b6060919091015292915050565b5f5f60a08385031215614e9d575f5ffd5b82359150614eae8460208501614e06565b90509250929050565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60a08101611f6f8284614eb7565b5f60608284031215614f18575f5ffd5b604051606081016001600160401b0381118282101715614f3a57614f3a614db5565b6040529050808235614f4b81614df9565b8152602083810135908201526040830135614f6581614c45565b6040919091015292915050565b5f5f5f5f5f6101408688031215614f87575f5ffd5b8535614f9281614c45565b9450614fa18760208801614c64565b9350614fb08760c08801614f08565b92506101208601356001600160401b03811115614d27575f5ffd5b5f5f5f5f5f5f5f6101a0888a031215614fe2575f5ffd5b8735614fed81614c45565b9650614ffc8960208a01614c64565b955061500b8960c08a01614c7a565b9450610140880135935061016088013592506101808801356001600160401b03811115615036575f5ffd5b6150428a828b01614c8a565b989b979a50959850939692959293505050565b8060020b81146127c5575f5ffd5b5f5f5f5f6101008587031215615077575f5ffd5b843561508281614c45565b93506150918660208701614c64565b925060c08501356150a181614c45565b915060e08501356150b181615055565b939692955090935050565b5f602082840312156150cc575f5ffd5b81356147f281614df9565b5f602082840312156150e7575f5ffd5b5035919050565b5f5f602083850312156150ff575f5ffd5b82356001600160401b03811115615114575f5ffd5b61512085828601614c8a565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611f6c602083018461512c565b5f60a082840312801561517d575f5ffd5b5060405160a081016001600160401b03811182821017156151a0576151a0614db5565b60405282356151ae81614c45565b815260208301356151be81614c45565b602082015260408301356151d181614d44565b604082015260608301356151e481615055565b606082015260808301356151f781614c45565b60808201529392505050565b5f60808201905062ffffff835116825262ffffff602084015116602083015262ffffff604084015116604083015260608301511515606083015292915050565b5f5f5f5f5f5f86880361016081121561525a575f5ffd5b873561526581614c45565b96506152748960208a01614c64565b9550606060bf1982011215615287575f5ffd5b5060c08701935061012087013592506101408701356001600160401b038111156152af575f5ffd5b6152bb89828a01614c8a565b979a9699509497509295939492505050565b5f5f5f5f5f5f61012087890312156152e3575f5ffd5b86356152ee81614c45565b95506152fd8860208901614c64565b945060c0870135935060e087013592506101008701356001600160401b038111156152af575f5ffd5b8151151581526101c081016020830151615344602084018215159052565b506040830151615358604084018215159052565b50606083015161536c606084018215159052565b506080830151615380608084018215159052565b5060a083015161539460a084018215159052565b5060c08301516153a860c084018215159052565b5060e08301516153bc60e084018215159052565b506101008301516153d261010084018215159052565b506101208301516153e861012084018215159052565b506101408301516153fe61014084018215159052565b5061016083015161541461016084018215159052565b5061018083015161542a61018084018215159052565b506101a08301516154406101a084018215159052565b5092915050565b5f60808284031215615457575f5ffd5b611f6c8383614e06565b5f5f5f60e08486031215615473575f5ffd5b833561547e81614c45565b925061548d8560208601614c64565b915060c084013561549d81614c45565b809150509250925092565b5f5f8335601e198436030181126154bd575f5ffd5b83016020810192503590506001600160401b038111156154db575f5ffd5b803603821315614cc7575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f61551c82836154a8565b6101608552615530610160860182846154e9565b91505061554060208401846154a8565b85830360208701526155538382846154e9565b9250505061556460408401846154a8565b85830360408701526155778382846154e9565b606086810135908801526080808701359088015260a0808701359088015292506155a691505060c08401614c59565b6001600160a01b031660c08501526155c060e08401614d54565b62ffffff1660e085015261010083810135908501526155e36101208401846154a8565b8583036101208701526155f78382846154e9565b925050506156096101408401846154a8565b85830361014087015261270e8382846154e9565b602081525f611f6c6020830184615511565b5f5f5f60608486031215615641575f5ffd5b835161564c81614c45565b602085015190935061565d81614c45565b6040949094015192959394509192915050565b6001600160a01b0385811682528481166020830152831660408201526101008101613ca66060830184614eb7565b5f5f8335601e198436030181126156b3575f5ffd5b8301803591506001600160401b038211156156cc575f5ffd5b602001915036819003821315614cc7575f5ffd5b6001600160a01b038516815283151560208201526060604082018190525f9061270e90830184866154e9565b5f6020828403121561571c575f5ffd5b81516147f281614c45565b60c081016157358285614eb7565b6001600160a01b039290921660a09190910152919050565b5f6020828403121561575d575f5ffd5b81516147f281615055565b6001600160a01b038781168252861660208201526040810185905283151560608201526080810183905260c060a082018190525f906157a990830184615511565b98975050505050505050565b6001600160a01b03929092168252602082015260400190565b5f602082840312156157de575f5ffd5b81516147f281614df9565b5f60c082840312156157f9575f5ffd5b60405160c081016001600160401b038111828210171561581b5761581b614db5565b60409081528351825260208085015190830152830151909150819061583f81615055565b6040820152606083810151908201526080808401519082015260a083015161586681614df9565b60a0919091015292915050565b5f60c08284031215615883575f5ffd5b611f6c83836157e9565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611f6f57611f6f61588d565b828152604060208201525f6149026040830184615511565b8082028115828204841417611f6f57611f6f61588d565b634e487b7160e01b5f52601260045260245ffd5b5f8261591157634e487b7160e01b5f52601260045260245ffd5b500490565b803561592181614c45565b6001600160a01b03168252602081013561593a81614c45565b6001600160a01b03166020830152604081013561595681614d44565b62ffffff166040830152606081013561596e81615055565b60020b6060830152608081013561598481614c45565b6001600160a01b03166080929092019190915250565b60e081016159a88286615916565b8360a083015282151560c0830152949350505050565b5f5f5f61010084860312156159d1575f5ffd5b8351602085015190935091506159ea85604086016157e9565b90509250925092565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715611f6f57611f6f61588d565b5f600f82900b6001607f1b8101615a3957615a3961588d565b5f0392915050565b80820180821115611f6f57611f6f61588d565b60e08101615a628286615916565b8360020b60a083015282151560c0830152949350505050565b6001600160a01b039390931683526020830191909152604082015260600190565b5f60208284031215615aac575f5ffd5b81516001600160401b03811115615ac1575f5ffd5b8201601f81018413615ad1575f5ffd5b80516001600160401b03811115615aea57615aea614db5565b615afd601f8201601f1916602001614dc9565b818152856020838501011115615b11575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60608284031215615b3e575f5ffd5b611f6c8383614f08565b8035615b5381614df9565b15158252602081810135908301526040810135615b6f81614c45565b6001600160a01b03166040929092019190915250565b6001600160a01b0387168152615b9e6020820187615916565b615bab60c0820186615b48565b836101208201526101606101408201525f6157a9610160830184866154e9565b6001600160a01b038416815260a08101615be86020830185615b48565b826080830152949350505050565b6001600160a01b03841681526040602082018190525f90613ca690830184866154e9565b5f60208284031215615c2a575f5ffd5b5051919050565b602081525f6149026020830184866154e9565b838152604060208201525f613ca66040830184866154e9565b83815263ffffffff60e01b83166020820152606060408201525f613ca6606083018461512c565b5f600160ff1b8201615c9857615c9861588d565b505f0390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f6040828403128015615cd3575f5ffd5b50604080519081016001600160401b0381118282101715615cf657615cf6614db5565b6040528251615d0481614d44565b81526020830151615d1481614df9565b60208201529392505050565b6001600160a01b038181168382160190811115611f6f57611f6f61588d565b6001600160a01b038281168282160390811115611f6f57611f6f61588d565b6101008101615d6d8287614eb7565b8460a08301528360020b60c083015282151560e083015295945050505050565b8082018281125f831280158216821582161715615dac57615dac61588d565b505092915050565b6101208101615dc38286615916565b8351151560a0830152602084015160c08301526040909301516001600160a01b031660e082015262ffffff9190911661010090910152919050565b5f60208284031215615e0e575f5ffd5b81516147f281614d4456fe2153348e08952a9737a728deab496289242e3884d90dd8e5fc8362f809e843141a426dc34b0367779dd37e66c4b193647bd2fd094d26b263dccbe93433d0a25bb5692db6de7b607ce10bbcb6a38fb443823969b63ffea1591751f25f9fe7059a0f457c8132f52d9098267126b744d1c04e04ccc48dce7c5b4396b38879d8b08aca7619d8d03127c99378decb6d4c002b5b8b8d60918ea28c2300a7811e7c1300aac705f00f1df487f4863cf5b7baa49be15a9dc73d477f33ca4d694d45cac7fef5955824691119aec0d1c983542055bfb83b16d3bc8d04e6cd271bbd244e894a6bc3f16992c8e44a3018b72b6d7aec54e64e1cdec74e64c5154c782ffe8aff2dee887e5283585aea7d61ae82ec91b0d9dbc7a52caa1fbc4f511651d06967058d84457b11f2602289c00904214483ea820055ea325cc54ad9b512e76c6541dfb417cab649bf7619b4535991407dcf8f717035632cf45997a05c0f90b7baafa479170e502bdc7039c895af9c291daf6592705d439a7873ee28dbc514d2f1aa51b3859fad1dd1a8a0c97fb9e594529061ff17256ed2fd92004dfd6d47a8324651c4a2646970667358221220b9e9b2a5347e172f2c0b56f46cbd2bdc3320947eca9dc3466c33308fd7a2c6ef64736f6c634300081c00336080604052348015600e575f5ffd5b506040516109d33803806109d3833981016040819052602b916084565b600280546001600160a01b031916331790556044816049565b5060af565b6001600160a01b0316638b78c6d819819055805f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a350565b5f602082840312156093575f5ffd5b81516001600160a01b038116811460a8575f5ffd5b9392505050565b610917806100bc5f395ff3fe608060405260043610610080575f3560e01c80632569296214610084578063314e79ad1461008e57806354d1f13d146100ad578063715018a6146100b55780637262561c146100bd5780638da5cb5b146100dc578063d5f9a39714610105578063f04e283e14610124578063f2fde38b14610137578063fee81cf41461014a575b5f5ffd5b61008c610189565b005b348015610099575f5ffd5b5061008c6100a836600461070d565b6101d5565b61008c61027c565b61008c6102b5565b3480156100c8575f5ffd5b5061008c6100d736600461078b565b6102c8565b3480156100e7575f5ffd5b50638b78c6d819546040516100fc91906107a4565b60405180910390f35b348015610110575f5ffd5b5061008c61011f3660046107b8565b61036f565b61008c61013236600461078b565b61044e565b61008c61014536600461078b565b610488565b348015610155575f5ffd5b5061017b61016436600461078b565b63389a75e1600c9081525f91909152602090205490565b6040519081526020016100fc565b5f6202a3006001600160401b03164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b6002546001600160a01b031633146101eb575f5ffd5b5f6101f55f6104ae565b90505f5b818110156102745761020b5f826104bd565b6001600160a01b0316634ca1f062878787876040518563ffffffff1660e01b815260040161023c949392919061082e565b5f604051808303815f87803b158015610253575f5ffd5b505af1158015610265573d5f5f3e3d5ffd5b505050508060010190506101f9565b505050505050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b6102bd6104cf565b6102c65f6104e9565b565b6102d06104cf565b6102da5f82610526565b1561036c576102e95f8261053a565b50806001600160a01b031663fcae44846040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610322575f5ffd5b505af1925050508015610333575060015b507f804bdbbf25e80c5635294ecf375fa16a531a4b7ffa416f74e121ae40bf4a00fe8160405161036391906107a4565b60405180910390a15b50565b6103776104cf565b6103815f8461054e565b15610449576040516323085b8560e11b81526001600160a01b03841690634610b70a906103b49085908590600401610860565b6020604051808303815f875af11580156103d0573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906103f4919061087b565b61041157604051633bf9fecd60e01b815260040160405180910390fd5b7fa6610d70b57486ac216657a87c0fce7f41758dd77d526daf7974f813a9b2a46a8360405161044091906107a4565b60405180910390a15b505050565b6104566104cf565b63389a75e1600c52805f526020600c20805442111561047c57636f5e88185f526004601cfd5b5f905561036c816104e9565b6104906104cf565b8060601b6104a557637448fbae5f526004601cfd5b61036c816104e9565b5f6104b7825490565b92915050565b5f6104c88383610562565b9392505050565b638b78c6d8195433146102c6576382b429005f526004601cfd5b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a355565b5f6104c8836001600160a01b038416610588565b5f6104c8836001600160a01b03841661059f565b5f6104c8836001600160a01b038416610682565b5f825f0182815481106105775761057761089a565b905f5260205f200154905092915050565b5f9081526001919091016020526040902054151590565b5f8181526001830160205260408120548015610679575f6105c16001836108ae565b85549091505f906105d4906001906108ae565b9050808214610633575f865f0182815481106105f2576105f261089a565b905f5260205f200154905080875f0184815481106106125761061261089a565b5f918252602080832090910192909255918252600188019052604090208390555b8554869080610644576106446108cd565b600190038181905f5260205f20015f90559055856001015f8681526020019081526020015f205f9055600193505050506104b7565b5f9150506104b7565b5f61068d8383610588565b6106c257508154600181810184555f8481526020808220909301849055845484825282860190935260409020919091556104b7565b505f6104b7565b5f5f83601f8401126106d9575f5ffd5b5081356001600160401b038111156106ef575f5ffd5b602083019150836020828501011115610706575f5ffd5b9250929050565b5f5f5f5f60608587031215610720575f5ffd5b8435935060208501356001600160e01b03198116811461073e575f5ffd5b925060408501356001600160401b03811115610758575f5ffd5b610764878288016106c9565b95989497509550505050565b80356001600160a01b0381168114610786575f5ffd5b919050565b5f6020828403121561079b575f5ffd5b6104c882610770565b6001600160a01b0391909116815260200190565b5f5f5f604084860312156107ca575f5ffd5b6107d384610770565b925060208401356001600160401b038111156107ed575f5ffd5b6107f9868287016106c9565b9497909650939450505050565b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b84815263ffffffff60e01b84166020820152606060408201525f610856606083018486610806565b9695505050505050565b602081525f610873602083018486610806565b949350505050565b5f6020828403121561088b575f5ffd5b815180151581146104c8575f5ffd5b634e487b7160e01b5f52603260045260245ffd5b818103818111156104b757634e487b7160e01b5f52601160045260245ffd5b634e487b7160e01b5f52603160045260245ffdfea2646970667358221220b417df512b60d95e65b7800f15825d8bc538df297f5977bdfbbd1356b0cc814c64736f6c634300081c0033000000000000000000000000000000000d564d5be76f7f0d28fe52605afc7cf8000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000adfe60c7df588fa102593644684566b2948b0a6c000000000000000000000000b8a70b4d1547bf6193bd67a73f4f98ea9fd0a9730000000000000000000000001150c53eb4ce3ade47808d1d1ac9636b774ee079000000000000000000000000000000000bb63d5c070d0d5791517886a4d8c54500000000000000000000000072e6f7948b1b1a343b477f39aabd2e35e6d27dde000000000000000000000000fdce459071c74b732b2dec579afb38ea552c4e06000000000000000000000000fb5c20c4e60c9c64648dd3692437e3e313add4a40000000000000000000000007f22353d1634223a802d1c1ea5308ddf5dd0ef9c0000000000000000000000004dc442403e8c758425b93c59dc737da522f32640
Deployed Bytecode
0x608060405260043610610267575f3560e01c806301a2cae81461027257806305f77c6f146102a757806309276ea4146102ba5780631d0806ae146102d957806321d0ee70146102f85780632423028c146103305780632569296214610351578063259982e514610359578063299d532e1461037857806338b1e700146103a05780634875cbb8146103bf5780634ed0f0f5146103f957806354d1f13d1461041857806355d1cb6014610420578063575e24b4146104da5780636c2bbe7e146105245780636fe7e6eb14610563578063715018a61461058257806371c4ddb01461058a57806375d252a5146105a95780637907addf146105c857806384aa1da0146105f35780638c66d04f146106125780638da5cb5b146106315780638f2bdf751461064957806391dd73461461066857806394e1cf96146106945780639f063efc146106b3578063a1dd2d91146106d2578063a87277dd146106f1578063ad49d66e14610710578063b00eb9fe1461072f578063b3b427951461074e578063b47b2fb11461077a578063b6a8b0fa146107bc578063ba3e69b7146107d6578063be721505146107f5578063c29c945b14610814578063c4b7de971461083d578063c4e833ce1461085c578063d3bff7171461095c578063dc4c90d31461097b578063dc98354e146109ae578063ddb475d5146109cd578063dddfecf514610a07578063df81740e14610a26578063e1758bd814610a45578063e1b4af6914610a64578063ec876d7114610a83578063f04e283e14610aa2578063f2fde38b14610ab5578063fccc281314610ac8578063fee81cf414610add578063ff3575e414610b0e575f5ffd5b3661026e57005b5f5ffd5b34801561027d575f5ffd5b50601154610291906001600160a01b031681565b60405161029e9190614bfa565b60405180910390f35b6102916102b5366004614c0e565b610b2d565b3480156102c5575f5ffd5b50601254610291906001600160a01b031681565b3480156102e4575f5ffd5b50600c54610291906001600160a01b031681565b348015610303575f5ffd5b50610317610312366004614cce565b611170565b6040516001600160e01b0319909116815260200161029e565b34801561033b575f5ffd5b5061034f61034a366004614d5f565b6111ee565b005b61034f6112b4565b348015610364575f5ffd5b50610317610373366004614cce565b611300565b348015610383575f5ffd5b5061039266038d7ea4c6800081565b60405190815260200161029e565b3480156103ab575f5ffd5b5061034f6103ba366004614d7a565b611371565b3480156103ca575f5ffd5b506103de6103d9366004614d95565b6113c4565b6040805193845260208401929092529082015260600161029e565b348015610404575f5ffd5b5061034f610413366004614e8c565b611464565b61034f611520565b34801561042b575f5ffd5b506104cd61043a366004614d7a565b6040805160a0810182525f80825260208201819052918101829052606081018290526080810191909152506001600160a01b039081165f90815260026020818152604092839020835160a08101855281548616815260018201548087169382019390935262ffffff600160a01b84041694810194909452600160b81b909104820b60608401520154909116608082015290565b60405161029e9190614efa565b3480156104e5575f5ffd5b506104f96104f4366004614f72565b611559565b604080516001600160e01b03199094168452602084019290925262ffffff169082015260600161029e565b34801561052f575f5ffd5b5061054361053e366004614fcb565b611dcc565b604080516001600160e01b0319909316835260208301919091520161029e565b34801561056e575f5ffd5b5061031761057d366004615063565b611e58565b61034f611e72565b348015610595575f5ffd5b506102916105a43660046150bc565b611e85565b3480156105b4575f5ffd5b50601054610291906001600160a01b031681565b3480156105d3575f5ffd5b506103926105e23660046150d7565b60136020525f908152604090205481565b3480156105fe575f5ffd5b50600b54610291906001600160a01b031681565b34801561061d575f5ffd5b5061034f61062c366004614d7a565b611ec4565b34801561063c575f5ffd5b50638b78c6d81954610291565b348015610654575f5ffd5b50600454610291906001600160a01b031681565b348015610673575f5ffd5b506106876106823660046150ee565b611f17565b60405161029e919061515a565b34801561069f575f5ffd5b50600f54610291906001600160a01b031681565b3480156106be575f5ffd5b506105436106cd366004614fcb565b611f75565b3480156106dd575f5ffd5b50600754610291906001600160a01b031681565b3480156106fc575f5ffd5b5061034f61070b366004614d7a565b611fdf565b34801561071b575f5ffd5b5061034f61072a36600461516c565b612032565b34801561073a575f5ffd5b50600654610291906001600160a01b031681565b348015610759575f5ffd5b5061076d6107683660046150d7565b6121d4565b60405161029e9190615203565b348015610785575f5ffd5b50610799610794366004615243565b612271565b604080516001600160e01b03199093168352600f9190910b60208301520161029e565b3480156107c7575f5ffd5b5061031761057d3660046152cd565b3480156107e1575f5ffd5b50600e54610291906001600160a01b031681565b348015610800575f5ffd5b5061034f61080f366004614d7a565b6124cb565b34801561081f575f5ffd5b506108296103e881565b60405162ffffff909116815260200161029e565b348015610848575f5ffd5b50600554610291906001600160a01b031681565b348015610867575f5ffd5b5061094f604080516101c0810182525f80825260208201819052918101829052606081018290526080810182905260a0810182905260c0810182905260e08101829052610100810182905261012081018290526101408101829052610160810182905261018081018290526101a081019190915250604080516101c08101825260018082525f60208301819052928201819052606082018190526080820181905260a0820181905260c0820181905260e0820181905261010082018390526101208201819052610140820181905261016082015261018081018290526101a081019190915290565b60405161029e9190615326565b348015610967575f5ffd5b5061034f610976366004615447565b6124f5565b348015610986575f5ffd5b506102917f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b81565b3480156109b9575f5ffd5b506103176109c8366004615461565b612587565b3480156109d8575f5ffd5b506109ec6109e736600461516c565b6125ea565b6040805182518152602092830151928101929092520161029e565b348015610a12575f5ffd5b50600954610291906001600160a01b031681565b348015610a31575f5ffd5b5061034f610a40366004614d7a565b61263d565b348015610a50575f5ffd5b50600854610291906001600160a01b031681565b348015610a6f575f5ffd5b50610317610a7e3660046152cd565b612690565b348015610a8e575f5ffd5b50610392610a9d3660046150ee565b612718565b61034f610ab0366004614d7a565b61278b565b61034f610ac3366004614d7a565b6127c8565b348015610ad3575f5ffd5b5061029161dead81565b348015610ae8575f5ffd5b50610392610af7366004614d7a565b63389a75e1600c9081525f91909152602090205490565b348015610b19575f5ffd5b50610392610b283660046150ee565b6127ee565b600b546040516305f77c6f60e01b81525f91829182916001600160a01b0316906305f77c6f90610b6190879060040161561d565b6060604051808303815f875af1158015610b7d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ba1919061562f565b6008546040805160a081019091529396509094509092506001600160a01b038086169116108015915f918190610bd75786610be4565b6008546001600160a01b03165b6001600160a01b0316815260200183610bfd5786610c0a565b6008546001600160a01b03165b6001600160a01b0390811682525f6020830152603c6040808401919091523060609093018390526010546008549151632095f47360e21b815294955087831694638257d1cc94610c669490939281169216908790600401615670565b5f604051808303815f87803b158015610c7d575f5ffd5b505af1158015610c8f573d5f5f3e3d5ffd5b505050506001600160a01b038581165f908152600260208181526040808420865181546001600160a01b0319908116918816919091178255928701516001820180549389015160608a01519289166001600160b81b031990951694909417600160a01b62ffffff958616021762ffffff60b81b1916600160b81b949092169390930217909155608086015192018054909116919093161790915560a082209050610d40610100880160e08901614d5f565b62ffffff1615610d7f57610d5b610100880160e08901614d5f565b5f828152602081905260409020805462ffffff191662ffffff929092169190911790555b610d9681610d916101408a018a61569e565b612820565b5f7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316636276cbbe84600c5f9054906101000a90046001600160a01b03166001600160a01b031663fc87f3f633898e806101200190610dfd919061569e565b6040518563ffffffff1660e01b8152600401610e1c94939291906156e0565b602060405180830381865afa158015610e37573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610e5b919061570c565b6040518363ffffffff1660e01b8152600401610e78929190615727565b6020604051808303815f875af1158015610e94573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610eb8919061574d565b90505f610ecc610a9d6101208b018b61569e565b9050827f54976b48704e67457d6a85a2db51d6e760bbeddf6151f9206512108adce80b4289888a89868f604051610f0896959493929190615768565b60405180910390a260a089013515610f2f575f610f288a60a00135612924565b905080845d505b600f5460405163095ea7b360e01b81526001600160a01b038a81169263095ea7b392610f6492909116905f19906004016157b5565b6020604051808303815f875af1158015610f80573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610fa491906157ce565b50600f546001600160a01b0316631b5b90138484426101008e013511610fca5742610fd1565b8c61010001355b6040516001600160e01b031960e086901b168152600481019390935260029190910b6024830152604482015260608c0135606482015260808c0135608482015260a40160c0604051808303815f875af1158015611030573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906110549190615873565b504289610100013511156110ba575f83815260136020526040908190206101008b013590819055905184917f0a5b59cacc8ab09e32bf89cb0477200adacf9c0237786bf21d17f44cec998107916110ad91815260200190565b60405180910390a26110cb565b5f8381526013602052604090204290555b80156111165780341015611100576040516384eca25560e01b8152346004820152602481018290526044015b60405180910390fd5b600d54611116906001600160a01b031682612942565b80341115611131576111313361112c83346158a1565b612942565b61116483636fe7e6eb60e01b898c6040516020016111509291906158b4565b60405160208183030381529060405261295f565b50505050505050919050565b5f336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b16146111ba5760405163570c108560e11b815260040160405180910390fd5b6111dc6111d66111cf3688900388018861516c565b60a0902090565b87612ab3565b5063021d0ee760e41b95945050505050565b6009546001600160a01b03163314611218576040516282b42960e81b815260040160405180910390fd5b6103e862ffffff821611156112405760405163f37b175b60e01b815260040160405180910390fd5b6003805462ffffff8316600160301b0262ffffff60301b199091161781556040515f516020615e9a5f395f51905f52916112a991905462ffffff8082168352601882901c81166020840152603082901c16604083015260481c60ff161515606082015260800190565b60405180910390a150565b5f6202a3006001600160401b03164201905063389a75e1600c52335f52806020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f5fa250565b5f336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b161461134a5760405163570c108560e11b815260040160405180910390fd5b61135f6111d66111cf3688900388018861516c565b5063259982e560e01b95945050505050565b611379612b70565b600780546001600160a01b0319166001600160a01b0383161790556040517f87043577396d39ef835a9eb69bb496c219cc61bdd6e718447add3c06b6cc0844906112a9908390614bfa565b5f5f5f5f6113d1866121d4565b9050806040015162ffffff165f1461141457612710816040015162ffffff16866113fb91906158cc565b61140591906158f7565b915061141182866158a1565b94505b5f8681526020819052604090205462ffffff1680156114585761271061143f62ffffff8316886158cc565b61144991906158f7565b935061145584876158a1565b95505b85945050509250925092565b61146c612b70565b61147581612b8a565b5f8281526001602090815260409182902083518154928501518486015160608701511515600160481b0260ff60481b1962ffffff928316600160301b021663ffffffff60301b1993831663010000000265ffffffffffff1990971692909416919091179490941716179190911790555182907fe1b2af81a774e1ebee3ca7c94c1e1a0df1210b236149a2079b8bba8dbc475a2890611514908490615203565b60405180910390a25050565b63389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f5fa2565b5f8080336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b16146115a55760405163570c108560e11b815260040160405180910390fd5b5f6115b86111cf368a90038a018a61516c565b5f81815260136020526040902054909150801561165c57815c80158015906115e35750808960200151145b1561162757827fdfa452364a13ecc87d8b629926a27f0b82206c68e4126e138157c5d853c71d848260405161161a91815260200190565b60405180910390a261165a565b4282111561164b5760405163129b67b160e21b8152600481018390526024016110f7565b5f838152601360205260408120555b505b5050600f545f906001600160a01b031663e4f203f66116836111cf368c90038c018c61516c565b6040518263ffffffff1660e01b81526004016116a191815260200190565b60c060405180830381865afa1580156116bc573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906116e09190615873565b90508060a00151611b4d575f6116f960208a018a614d7a565b6008546001600160a01b0390811691161490505f61171f6111cf368c90038c018c61516c565b9050805c1580156117975750600f54604051621cc8fb60e81b8152600481018390526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa158015611771573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061179591906157ce565b155b156118af576080830151600f545f838152600a60205260409081902060010154905163e7ea93c760e01b81526001600160a01b039092169163e7ea93c7916117e6918f9190889060040161599a565b60c0604051808303815f875af1158015611802573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906118269190615873565b5080156118a95761186e61dead828561184b5761184660208f018f614d7a565b61185e565b8d602001602081019061185e9190614d7a565b6001600160a01b03169190612c12565b817f69a23fc084ff191b1eed2d64f95be97bef87b127d8a3e71925d4c252ae408f65826040516118a091815260200190565b60405180910390a25b50611b4a565b88511515821515146118d45760405163013fa16b60e41b815260040160405180910390fd5b600f5460208a0151604051633132604760e11b81525f926001600160a01b031691636264c08e9161190b918f91889060040161599a565b610100604051808303815f875af1158015611928573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061194c91906159be565b919750909450905061196c611966368d90038d018d61516c565b82612cc0565b5f6119848c8c8f61197d8b600f0b90565b8e8e612ed4565b90506119ac8b5f516020615f5a5f395f51905f525f516020615f7a5f395f51905f528a6130b0565b6119d28b5f516020615eba5f395f51905f525f516020615e1a5f395f51905f528461312f565b611a0f6119df8860801d90565b6119e883613166565b6119f28a600f0b90565b6119fc91906159f3565b6001600160801b031660809190911b1790565b96505f8b6020015112158015611a2457508015155b15611aa257600f546001600160a01b031663197a866b84611a4484613166565b611a4d90615a20565b6040516001600160e01b031960e085901b1681526004810192909252600f0b60248201526044015f604051808303815f87803b158015611a8b575f5ffd5b505af1158015611a9d573d5f5f3e3d5ffd5b505050505b84608001515f03611b4757600f5f9054906101000a90046001600160a01b03166001600160a01b031663e7ea93c78d600a5f8781526020019081526020015f2060010154876040518463ffffffff1660e01b8152600401611b059392919061599a565b60c0604051808303815f875af1158015611b21573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611b459190615873565b505b50505b50505b5f611b606111cf368b90038b018b61516c565b90505f815d505f80611bb17f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b8b8b611b9b6020830183614d7a565b6008546001600160a01b03908116911614613186565b9092509050611bc08183615a41565b15611cc1575f5f8a602001511215611bf557611bf0611bde84613166565b611be784613166565b6119fc90615a20565b611c13565b611c13611c0183613166565b611c0a90615a20565b6119fc85613166565b90505f611c268c8c8f61197d86600f0b90565b9050611c4e8b5f516020615f9a5f395f51905f525f516020615f1a5f395f51905f52856130b0565b611c748b5f516020615e3a5f395f51905f525f516020615e5a5f395f51905f528461312f565b611cbc611c818360801d90565b611c8b8960801d90565b611c9591906159f3565b611c9e83613166565b611ca885600f0b90565b611cb28b600f0b90565b6119f291906159f3565b965050505b611d06611cd66111cf368d90038d018d61516c565b6001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1690613454565b5050600c805462ffffff60a01b1916600160a01b62ffffff9390931683021790819055600e546001600160a01b0316925063ba95e274918d910460020b611d506020830183614d7a565b6008546040516001600160e01b031960e087901b168152611d879493926001600160a01b0392831692169190911490600401615a54565b5f604051808303815f87803b158015611d9e575f5ffd5b505af1158015611db0573d5f5f3e3d5ffd5b5050505063575e24b460e01b9550505050955095509592505050565b5f80336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1614611e175760405163570c108560e11b815260040160405180910390fd5b633615df3f60e11b9150611e4c611e366111cf368b90038b018b61516c565b838b898960405160200161115093929190615a7b565b97509795505050505050565b5f604051630a85dc2960e01b815260040160405180910390fd5b611e7a612b70565b611e835f613506565b565b5f818015611e9d57506007546001600160a01b031615155b15611eb35750506007546001600160a01b031690565b50506006546001600160a01b031690565b611ecc612b70565b600680546001600160a01b0319166001600160a01b0383161790556040517f3e762c7e655633ce63121393b9694f9ca1883d14d18f48f1be55e5dc7a9fb6c1906112a9908390614bfa565b6060336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1614611f625760405163570c108560e11b815260040160405180910390fd5b611f6c838361354c565b90505b92915050565b5f80336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1614611fc05760405163570c108560e11b815260040160405180910390fd5b6327c18fbf60e21b9150611e4c611e366111cf368b90038b018b61516c565b611fe7612b70565b600480546001600160a01b0319166001600160a01b0383161790556040517f9c922de256a07b4d188faacda5c1abb2cae12f74f4370d5c2f11efb37a742d70906112a9908390614bfa565b600e546001600160a01b0316331461205d57604051630632844f60e31b815260040160405180910390fd5b6008545f90600290829061207b9085906001600160a01b03166135bb565b6001600160a01b03908116825260208083019390935260409182015f20825160a08101845281548316815260018201548084169582019590955262ffffff600160a01b86041693810193909352600160b81b909304600290810b6060840152909201549091166080820181905290915015806120fd575060a0822060a0822014155b156121225760a0822060405163180b855560e01b81526004016110f791815260200190565b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03166348c89491836040516020016121629190614efa565b6040516020818303038152906040526040518263ffffffff1660e01b815260040161218d919061515a565b5f604051808303815f875af11580156121a8573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d908101601f191682016040526121cf9190810190615a9c565b505050565b604080516080810182525f8082526020820181905291810182905260608101919091525f82815260016020526040902054600160481b900460ff1661221a576003612228565b5f8281526001602052604090205b60408051608081018252915462ffffff80821684526301000000820481166020850152600160301b82041691830191909152600160481b900460ff161515606082015292915050565b5f80336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b16146122bc5760405163570c108560e11b815260040160405180910390fd5b5f5f6122c88760801d90565b6122d288600f0b90565b90925090505f6122e560208a018a6150bc565b15155f60208b013512146122f957826122fb565b815b90505f61231a8b612311368d90038d018d615b2e565b8e858c8c612ed4565b9050835f516020615e7a5f395f51905f525d825f516020615eda5f395f51905f525d61237061234e368c90038c018c615b2e565b5f516020615f3a5f395f51905f525f516020615efa5f395f51905f528461312f565b612387612382368d90038d018d61516c565b6135e1565b5f61239a6111cf368e90038e018e61516c565b600f54604051621cc8fb60e81b8152600481018390529192505f9161240c916001600160a01b031690631cc8fb00906024015b602060405180830381865afa1580156123e8573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906105a491906157ce565b90506001600160a01b0381161561248157806001600160a01b03166324f961778f8f8f8f8f8f6040518763ffffffff1660e01b815260040161245396959493929190615b85565b5f604051808303815f87803b15801561246a575f5ffd5b505af115801561247c573d5f5f3e3d5ffd5b505050505b5061248b82613166565b63b47b2fb160e01b975095506124a1818e613991565b6124bb81888f8e8e60405160200161115093929190615bcb565b5050505050965096945050505050565b6124d3612b70565b600b80546001600160a01b0319166001600160a01b0392909216919091179055565b6124fd612b70565b61250681612b8a565b805160038054602084015160408086015160608701511515600160481b0260ff60481b1962ffffff928316600160301b021663ffffffff60301b1994831663010000000265ffffffffffff199096169290971691909117939093179190911693909317179055515f516020615e9a5f395f51905f52906112a9908390615203565b5f336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b16146125d15760405163570c108560e11b815260040160405180910390fd5b604051635116b0eb60e11b815260040160405180910390fd5b604080518082019091525f8082526020820152600a5f61260b8460a0902090565b81526020019081526020015f206040518060400160405290815f82015481526020016001820154815250509050919050565b612645612b70565b600c80546001600160a01b0319166001600160a01b0383161790556040517fbfad4f58ed4ffa32358e2ae423bf8a56d8adf778ad13eb9160c0fecd99ec1577906112a9908390614bfa565b5f336001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b16146126da5760405163570c108560e11b815260040160405180910390fd5b5063e1b4af6960e01b61270e6126f86111cf3689900389018961516c565b8289888860405160200161115093929190615a7b565b9695505050505050565b600c5460405163010b630b60e61b81525f916001600160a01b0316906342d8c2c09061274c90339087908790600401615bf6565b602060405180830381865afa158015612767573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f6c9190615c1a565b612793612b70565b63389a75e1600c52805f526020600c2080544211156127b957636f5e88185f526004601cfd5b5f90556127c581613506565b50565b6127d0612b70565b8060601b6127e557637448fbae5f526004601cfd5b6127c581613506565b600c54604051630550389f60e31b81525f916001600160a01b031690632a81c4f89061274c9086908690600401615c31565b5f61282b6001611e85565b90506001600160a01b0381161561289a5760405163edf2ec7960e01b81526001600160a01b0382169063edf2ec799061286c90879087908790600401615c44565b5f604051808303815f87803b158015612883575f5ffd5b505af1158015612895573d5f5f3e3d5ffd5b505050505b5f6128a45f611e85565b9050816001600160a01b0316816001600160a01b03161461291d5760405163edf2ec7960e01b81526001600160a01b0382169063edf2ec79906128ef90889088908890600401615c44565b5f604051808303815f87803b158015612906575f5ffd5b505af1158015612918573d5f5f3e3d5ffd5b505050505b5050505050565b805f81121561293d5761293d6393dafdf160e01b613c1b565b919050565b5f385f3884865af161295b5763b12d13eb5f526004601cfd5b5050565b60125460405163314e79ad60e01b81526001600160a01b039091169063314e79ad9061299390869086908690600401615c5d565b5f604051808303815f87803b1580156129aa575f5ffd5b505af11580156129bc573d5f5f3e3d5ffd5b505050505f5f5f5f612a00877f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031661345490919063ffffffff16565b92965090945092509050867f1a111a34a945a6d821c9dc87031a478ad3107acb9b19f2ee72d3aaa72b0849c985858585612a636001600160a01b037f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b1687613c23565b604080516001600160a01b0396909616865260029490940b602086015262ffffff92831685850152911660608401526001600160801b03166080830152519081900360a00190a250505050505050565b600e546001600160a01b0382811691161480612adc5750600f546001600160a01b038281169116145b15612ae5575050565b600f54604051621cc8fb60e81b8152600481018490526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa158015612b2b573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b4f91906157ce565b612b57575050565b604051631d3e310160e21b815260040160405180910390fd5b638b78c6d819543314611e83576382b429005f526004601cfd5b612710815f015162ffffff161115612bb55760405163520fab3d60e01b815260040160405180910390fd5b612710816020015162ffffff161115612be157604051633626bec760e01b815260040160405180910390fd5b6103e862ffffff16816040015162ffffff1611156127c55760405163f37b175b60e01b815260040160405180910390fd5b5f612c25846001600160a01b0316613caf565b15612c50575f5f5f5f85875af1905080612c4b57612c4b835f633d2cec6f60e21b613cbc565b612cba565b60405163a9059cbb60e01b81526001600160a01b038416600482015282602482015260205f6044835f895af13d15601f3d1160015f511416171691505f81525f60208201525f60408201525080612cba57612cba8463a9059cbb60e01b633c9fd93960e21b613cbc565b50505050565b5f612ccb8260801d90565b600f0b1215612d2857612d237f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b30612d038460801d90565b600f0b612d0f90615c84565b85516001600160a01b03169291905f613d34565b612dc9565b5f612d338260801d90565b600f0b1315612dc9577f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316630b0d9c09835f015130612d7a8560801d90565b600f0b6040518463ffffffff1660e01b8152600401612d9b93929190615c9e565b5f604051808303815f87803b158015612db2575f5ffd5b505af1158015612dc4573d5f5f3e3d5ffd5b505050505b5f612dd482600f0b90565b600f0b1215612e2f5761295b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b30612e0c84600f0b90565b600f0b612e1890615c84565b60208601516001600160a01b03169291905f613d34565b5f612e3a82600f0b90565b600f0b131561295b577f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316630b0d9c09836020015130612e8285600f0b90565b600f0b6040518463ffffffff1660e01b8152600401612ea393929190615c9e565b5f604051808303815f87803b158015612eba575f5ffd5b505af1158015612ecc573d5f5f3e3d5ffd5b505050505050565b5f5f865f015115155f886020015112151514612efc57612ef76020890189614d7a565b612f0c565b612f0c6040890160208a01614d7a565b600f54909150613024907f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b908a908a90612f7e906001600160a01b0316631cc8fb00612f606111cf3687900387018761516c565b6040518263ffffffff1660e01b81526004016123cd91815260200190565b855f8b600f0b12612f8f578a612f98565b612f988b615a20565b6001600160801b031660115f9054906101000a90046001600160a01b03166001600160a01b031663f6a23d988e6040518263ffffffff1660e01b8152600401612fe19190614bfa565b6040805180830381865afa158015612ffb573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061301f9190615cc2565b613fe4565b9150815f03613033575061270e565b5f6130418983858888614142565b90506130a4613055368b90038b018b61516c565b6008546001600160a01b03858116911614613070575f61307a565b61307a83866158a1565b6008546001600160a01b0386811691161461309e5761309984876158a1565b6142ca565b5f6142ca565b50509695505050505050565b5f5f855f015115155f8760200151121515146130f1576130d083600f0b90565b6130d990615a20565b6130e38460801d90565b6130ec90615a20565b613117565b6130fb8360801d90565b61310490615a20565b61310e84600f0b90565b61311790615a20565b600f0b9150600f0b915081855d80845d505050505050565b5f61313982615c84565b8551602087015191925015155f90911203613159575f845d80835d61291d565b80845d5f835d5050505050565b5f6001607f1b8210613182576131826393dafdf160e01b613c1b565b5090565b5f808061319b6111cf3688900388018861516c565b5f818152600a6020526040812060018101549293509190036131be57505061344b565b85511515851515146131d157505061344b565b5f6131e56001600160a01b038a1684613454565b50505090505f876020015112613251575f826001015488602001511161320f578760200151613215565b82600101545b905061324382896040015161323c878e6001600160a01b0316613c2390919063ffffffff16565b845f614356565b5090975095506132f2915050565b6132b881885f01516132725761326d6401000276a36001615d20565b613291565b613291600173fffd8963efd1fc6a506488495d951d5263988d26615d3f565b6132a46001600160a01b038d1687613c23565b8a602001516132b290615c84565b5f614356565b50600185015490975090955085111590506132f257838583600101546132de91906158cc565b6132e891906158f7565b9450816001015493505b841580156132fe575083155b1561330b5750505061344b565b84825f015f82825461331d9190615a41565b9250508190555083826001015f82825461333791906158a1565b90915550506001600160a01b038916630b0d9c0987156133635761335e60208b018b614d7a565b613373565b61337360408b0160208c01614d7a565b30886040518463ffffffff1660e01b815260040161339393929190615c9e565b5f604051808303815f87803b1580156133aa575f5ffd5b505af11580156133bc573d5f5f3e3d5ffd5b505050506134018930865f8a156133e2576133dd60408e0160208f01614d7a565b6133ef565b6133ef60208e018e614d7a565b6001600160a01b031693929190613d34565b865160408051911515825260208201879052810185905283907fce97caf4fd0295de9544b52b4b9e79fe34c370bebb6fb71bc5baae9a702079689060600160405180910390a25050505b94509492505050565b5f5f5f5f5f613462866144b9565b604051631e2eaeaf60e01b8152600481018290529091505f906001600160a01b03891690631e2eaeaf90602401602060405180830381865afa1580156134aa573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134ce9190615c1a565b90506001600160a01b03811695508060a01c60020b945062ffffff8160b81c16935062ffffff8160d01c169250505092959194509250565b638b78c6d81980546001600160a01b039092169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3811560ff1b8217905550565b600e546060906001600160a01b031663ad49d66e61356c8486018661516c565b6040518263ffffffff1660e01b81526004016135889190614efa565b5f604051808303815f87803b15801561359f575f5ffd5b505af11580156135b1573d5f5f3e3d5ffd5b5050505092915050565b81515f906001600160a01b038084169116146135d8578251611f6c565b50506020015190565b60a081205f818152600a602052604090205466038d7ea4c6800081101561360757505050565b5f828152600a60205260408120819055808061362385856113c4565b60085492955090935091505f9081906136469089906001600160a01b03166135bb565b90505f816001600160a01b03166302d05d3f6040518163ffffffff1660e01b8152600401602060405180830381865afa158015613685573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136a9919061570c565b90506001600160a01b0381161585156136e157806136d1576136cc8983886144f5565b6136e1565b6136db8688615a41565b96505f95505b861561388c57600e54604051634e944d5760e01b8152600481018b90526001600160a01b0390911690634e944d5790602401602060405180830381865afa15801561372e573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061375291906157ce565b80156137c55750600f54604051621cc8fb60e81b8152600481018b90526001600160a01b0390911690631cc8fb0090602401602060405180830381865afa15801561379f573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906137c391906157ce565b155b1561387c57600e5f9054906101000a90046001600160a01b03166001600160a01b031663088a80c78b89600c60149054906101000a900460020b8e5f01516001600160a01b031660085f9054906101000a90046001600160a01b03166001600160a01b0316146040518563ffffffff1660e01b815260040161384a9493929190615d5e565b5f604051808303815f87803b158015613861575f5ffd5b505af1158015613873573d5f5f3e3d5ffd5b5050505061388c565b6138868785615a41565b93505f96505b831561391657806139065761390189846001600160a01b03166361d027b36040518163ffffffff1660e01b8152600401602060405180830381865afa1580156138d7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906138fb919061570c565b866144f5565b613916565b6139108486615a41565b94505f93505b841561393457600d54613934908a906001600160a01b0316876144f5565b6040805189815260208101889052908101889052606081018590526080810186905289907fc7241a69d3660bdfe5f36bdcca3b2da1fe8844366e46adb58be95171ab0665ad9060a00160405180910390a250505050505050505050565b604080515f516020615f5a5f395f51905f525c81525f516020615f7a5f395f51905f525c60208201525f516020615eba5f395f51905f525c818301525f516020615e1a5f395f51905f525c60608201525f516020615f9a5f395f51905f525c60808201525f516020615f1a5f395f51905f525c60a08201525f516020615e3a5f395f51905f525c60c08201525f516020615e5a5f395f51905f525c60e08201525f516020615e7a5f395f51905f525c6101008201525f516020615eda5f395f51905f525c6101208201525f516020615f3a5f395f51905f525c6101408201525f516020615efa5f395f51905f525c610160820152905183917f35001030bac7516ed5b1daf42bbfd3eaf587acc70c90f7f00ee42d5a34d7523391908190036101800190a2613b578282613ae05f516020615f9a5f395f51905f525c5f516020615f5a5f395f51905f525c615d8d565b613b065f516020615f1a5f395f51905f525c5f516020615f7a5f395f51905f525c615d8d565b613b2c5f516020615e3a5f395f51905f525c5f516020615eba5f395f51905f525c615d8d565b613b525f516020615e5a5f395f51905f525c5f516020615e1a5f395f51905f525c615d8d565b61465a565b5f5f516020615f5a5f395f51905f525d5f5f516020615f7a5f395f51905f525d5f5f516020615eba5f395f51905f525d5f5f516020615e1a5f395f51905f525d5f5f516020615f9a5f395f51905f525d5f5f516020615f1a5f395f51905f525d5f5f516020615e3a5f395f51905f525d5f5f516020615e5a5f395f51905f525d5f5f516020615e7a5f395f51905f525d5f5f516020615eda5f395f51905f525d5f5f516020615f3a5f395f51905f525d5f5f516020615efa5f395f51905f525d5050565b805f5260045ffd5b5f5f613c2e836144b9565b90505f613c3c600383615a41565b604051631e2eaeaf60e01b8152600481018290529091506001600160a01b03861690631e2eaeaf90602401602060405180830381865afa158015613c82573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ca69190615c1a565b95945050505050565b6001600160a01b03161590565b6040516390bfb86560e01b8082526001600160a01b03851660048301526001600160e01b031984166024830152608060448301526020601f3d018190040260a0810160648401523d608484015290913d5f60a483013e60048260a4018201526001600160e01b031984168260c4018201528160e40181fd5b8015613db457836001600160a01b031663f5298aca84613d63886001600160a01b03166001600160a01b031690565b856040518463ffffffff1660e01b8152600401613d8293929190615a7b565b5f604051808303815f87803b158015613d99575f5ffd5b505af1158015613dab573d5f5f3e3d5ffd5b5050505061291d565b613dc6856001600160a01b0316613caf565b15613e3457836001600160a01b03166311da60b4836040518263ffffffff1660e01b815260040160206040518083038185885af1158015613e09573d5f5f3e3d5ffd5b50505050506040513d601f19601f82011682018060405250810190613e2e9190615c1a565b5061291d565b604051632961046560e21b81526001600160a01b0385169063a584119490613e60908890600401614bfa565b5f604051808303815f87803b158015613e77575f5ffd5b505af1158015613e89573d5f5f3e3d5ffd5b505050506001600160a01b0383163014613f13576040516323b872dd60e01b81526001600160a01b038616906323b872dd90613ecd90869088908790600401615c9e565b6020604051808303815f875af1158015613ee9573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f0d91906157ce565b50613f83565b60405163a9059cbb60e01b81526001600160a01b0386169063a9059cbb90613f4190879086906004016157b5565b6020604051808303815f875af1158015613f5d573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f8191906157ce565b505b836001600160a01b03166311da60b46040518163ffffffff1660e01b81526004016020604051808303815f875af1158015613fc0573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ecc9190615c1a565b5f8215614137575f6140016107686111cf368b90038b018b61516c565b5190506001600160a01b0386161561408557604051634039108560e01b81526001600160a01b03871690634039108590614043908b908b908690600401615db4565b602060405180830381865afa15801561405e573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906140829190615dfe565b90505b8260200151801561409e5750825162ffffff8083169116105b156140a7575081515b8062ffffff165f036140b95750614137565b6127106140cb62ffffff8316866158cc565b6140d591906158f7565b604051630b0d9c0960e01b81529092506001600160a01b038a1690630b0d9c099061410890889030908790600401615c9e565b5f604051808303815f87803b15801561411f575f5ffd5b505af1158015614131573d5f5f3e3d5ffd5b50505050505b979650505050505050565b5f8115613ca6575f61415c6111cf3689900389018961516c565b90505f614168826121d4565b6020015190508062ffffff165f03614181575050613ca6565b5f61418e85870187614d7a565b90506001600160a01b0381166141a657505050613ca6565b600354612710906141c3906301000000900462ffffff16896158cc565b6141cd91906158f7565b6004549094506001600160a01b0316614235576141f46001600160a01b0389168286612c12565b827f3ca4a7850462c23d5854e8b3e852626beb21b37354c670c0135ab46f0c4bdc31828a8760405161422893929190615c9e565b60405180910390a26142be565b60045461424f906001600160a01b038a8116911686612c12565b6004805460405163587a617560e11b81529182018590526001600160a01b0383811660248401528a8116604484015260648301879052169063b0f4c2ea906084015f604051808303815f87803b1580156142a7575f5ffd5b505af11580156142b9573d5f5f3e3d5ffd5b505050505b50505095945050505050565b60a083205f818152600a6020526040812080548592906142eb908490615a41565b90915550505f818152600a602052604081206001018054849290614310908490615a41565b9091555050604080518481526020810184905282917fa245a9a38e8877add82f0a82c13e062ab3df16a26121977ddcca8827d46c690a910160405180910390a250505050565b5f80808062ffffff85166001600160a01b03808a16908b161015828812801561442c575f61438f8a5f0385620f424003620f424061475c565b9050826143a8576143a38d8d8d60016147f9565b6143b5565b6143b58c8e8d6001614845565b96508681106143e9578b9750620f424084146143e0576143db878586620f42400361490a565b6143e2565b865b9450614402565b8096506143f88d8c838661493a565b9750868a5f030394505b82614418576144138d898d5f614845565b614424565b614424888e8d5f6147f9565b9550506144aa565b816144425761443d8c8c8c5f614845565b61444e565b61444e8b8d8c5f6147f9565b945084891061445f578a9650614471565b88945061446e8c8b8785614988565b96505b81614488576144838c888c60016147f9565b614495565b614495878d8c6001614845565b95506144a7868485620f42400361490a565b93505b50505095509550955095915050565b6040515f906144d8908390600690602001918252602082015260400190565b604051602081830303815290604052805190602001209050919050565b600854600554604051636eb1769f60e11b81523360048201526001600160a01b0391821660248201528392919091169063dd62ed3e906044016020604051808303815f875af115801561454a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061456e9190615c1a565b10156145ed5760085460055460405163095ea7b360e01b81526001600160a01b039283169263095ea7b3926145ab929116905f19906004016157b5565b6020604051808303815f875af11580156145c7573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906145eb91906157ce565b505b600554604051632c8ff5d960e21b8152600481018590526001600160a01b038481166024830152604482018490529091169063b23fd764906064015f604051808303815f87803b15801561463f575f5ffd5b505af1158015614651573d5f5f3e3d5ffd5b50505050505050565b8315158061466757508215155b156146d657846001600160a01b0316867f365f10e9e7ce45d7acfd986c42e0b666f8af282e440e6dafc78c1f2b2f7867606146a1876149cf565b6146aa876149cf565b60408051600f93840b81529190920b60208201525f818301819052606082015290519081900360800190a35b811515806146e357508015155b15612ecc576001600160a01b038516867f444083dce778da1269b63671912c00569a2a58fa85827911902301f91793ffd761472561472086615c84565b6149eb565b61473161472086615c84565b604080516001600160801b0393841681529290911660208301520160405180910390a3505050505050565b5f838302815f198587098281108382030391505080841161477b575f5ffd5b805f0361478d575082900490506147f2565b5f848688095f868103871696879004966002600389028118808a02820302808a02820302808a02820302808a02820302808a02820302808a02909103029181900381900460010186841190950394909402919094039290920491909117919091029150505b9392505050565b5f6001600160a01b038481169086160360ff81901d90810118600160601b6001600160801b03851661482c81848461475c565b9350845f83858409111684019350505050949350505050565b5f836001600160a01b0316856001600160a01b03161115614864579293925b6001600160a01b03851661487e5762bfc9215f526004601cfd5b600160601b600160e01b03606084901b166001600160a01b0386860316836148d157866001600160a01b03166148be8383896001600160a01b031661475c565b816148cb576148cb6158e3565b046148fd565b6148fd6148e88383896001600160a01b031661490a565b886001600160a01b0316808204910615150190565b925050505b949350505050565b5f61491684848461475c565b90508180614926576149266158e3565b838509156147f257600101806147f2575f5ffd5b5f6001600160801b038416156001600160a01b03861615171561496457634f2461b85f526004601cfd5b8161497b576149768585856001614a0c565b613ca6565b613ca68585856001614af7565b5f6001600160801b038416156001600160a01b0386161517156149b257634f2461b85f526004601cfd5b816149c3576149768585855f614af7565b613ca68585855f614a0c565b80600f81900b811461293d5761293d6393dafdf160e01b613c1b565b806001600160801b038116811461293d5761293d6393dafdf160e01b613c1b565b5f8115614a7c575f6001600160a01b03841115614a4057614a3b84600160601b876001600160801b031661475c565b614a57565b614a576001600160801b038616606086901b6158f7565b9050614a74614a6f826001600160a01b038916615a41565b614bd9565b915050614902565b5f6001600160a01b03841115614aa957614aa484600160601b876001600160801b031661490a565b614ac6565b614ac6606085901b6001600160801b038716808204910615150190565b9050806001600160a01b03871611614ae557634323a5555f526004601cfd5b6001600160a01b038616039050614902565b5f825f03614b06575083614902565b600160601b600160e01b03606085901b168215614b98576001600160a01b03861684810290858281614b3a57614b3a6158e3565b0403614b6a57818101828110614b6857614b5e83896001600160a01b03168361490a565b9350505050614902565b505b50614a748185614b836001600160a01b038a16836158f7565b614b8d9190615a41565b808204910615150190565b6001600160a01b038616848102908582041481831116614bbf5763f5c787f15f526004601cfd5b808203614b5e614a6f846001600160a01b038b168461490a565b806001600160a01b038116811461293d5761293d6393dafdf160e01b613c1b565b6001600160a01b0391909116815260200190565b5f60208284031215614c1e575f5ffd5b81356001600160401b03811115614c33575f5ffd5b820161016081850312156147f2575f5ffd5b6001600160a01b03811681146127c5575f5ffd5b803561293d81614c45565b5f60a08284031215614c74575f5ffd5b50919050565b5f60808284031215614c74575f5ffd5b5f5f83601f840112614c9a575f5ffd5b5081356001600160401b03811115614cb0575f5ffd5b602083019150836020828501011115614cc7575f5ffd5b9250929050565b5f5f5f5f5f6101608688031215614ce3575f5ffd5b8535614cee81614c45565b9450614cfd8760208801614c64565b9350614d0c8760c08801614c7a565b92506101408601356001600160401b03811115614d27575f5ffd5b614d3388828901614c8a565b969995985093965092949392505050565b62ffffff811681146127c5575f5ffd5b803561293d81614d44565b5f60208284031215614d6f575f5ffd5b81356147f281614d44565b5f60208284031215614d8a575f5ffd5b81356147f281614c45565b5f5f60408385031215614da6575f5ffd5b50508035926020909101359150565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f191681016001600160401b0381118282101715614df157614df1614db5565b604052919050565b80151581146127c5575f5ffd5b5f60808284031215614e16575f5ffd5b604051608081016001600160401b0381118282101715614e3857614e38614db5565b6040529050808235614e4981614d44565b81526020830135614e5981614d44565b60208201526040830135614e6c81614d44565b60408201526060830135614e7f81614df9565b6060919091015292915050565b5f5f60a08385031215614e9d575f5ffd5b82359150614eae8460208501614e06565b90509250929050565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60a08101611f6f8284614eb7565b5f60608284031215614f18575f5ffd5b604051606081016001600160401b0381118282101715614f3a57614f3a614db5565b6040529050808235614f4b81614df9565b8152602083810135908201526040830135614f6581614c45565b6040919091015292915050565b5f5f5f5f5f6101408688031215614f87575f5ffd5b8535614f9281614c45565b9450614fa18760208801614c64565b9350614fb08760c08801614f08565b92506101208601356001600160401b03811115614d27575f5ffd5b5f5f5f5f5f5f5f6101a0888a031215614fe2575f5ffd5b8735614fed81614c45565b9650614ffc8960208a01614c64565b955061500b8960c08a01614c7a565b9450610140880135935061016088013592506101808801356001600160401b03811115615036575f5ffd5b6150428a828b01614c8a565b989b979a50959850939692959293505050565b8060020b81146127c5575f5ffd5b5f5f5f5f6101008587031215615077575f5ffd5b843561508281614c45565b93506150918660208701614c64565b925060c08501356150a181614c45565b915060e08501356150b181615055565b939692955090935050565b5f602082840312156150cc575f5ffd5b81356147f281614df9565b5f602082840312156150e7575f5ffd5b5035919050565b5f5f602083850312156150ff575f5ffd5b82356001600160401b03811115615114575f5ffd5b61512085828601614c8a565b90969095509350505050565b5f81518084528060208401602086015e5f602082860101526020601f19601f83011685010191505092915050565b602081525f611f6c602083018461512c565b5f60a082840312801561517d575f5ffd5b5060405160a081016001600160401b03811182821017156151a0576151a0614db5565b60405282356151ae81614c45565b815260208301356151be81614c45565b602082015260408301356151d181614d44565b604082015260608301356151e481615055565b606082015260808301356151f781614c45565b60808201529392505050565b5f60808201905062ffffff835116825262ffffff602084015116602083015262ffffff604084015116604083015260608301511515606083015292915050565b5f5f5f5f5f5f86880361016081121561525a575f5ffd5b873561526581614c45565b96506152748960208a01614c64565b9550606060bf1982011215615287575f5ffd5b5060c08701935061012087013592506101408701356001600160401b038111156152af575f5ffd5b6152bb89828a01614c8a565b979a9699509497509295939492505050565b5f5f5f5f5f5f61012087890312156152e3575f5ffd5b86356152ee81614c45565b95506152fd8860208901614c64565b945060c0870135935060e087013592506101008701356001600160401b038111156152af575f5ffd5b8151151581526101c081016020830151615344602084018215159052565b506040830151615358604084018215159052565b50606083015161536c606084018215159052565b506080830151615380608084018215159052565b5060a083015161539460a084018215159052565b5060c08301516153a860c084018215159052565b5060e08301516153bc60e084018215159052565b506101008301516153d261010084018215159052565b506101208301516153e861012084018215159052565b506101408301516153fe61014084018215159052565b5061016083015161541461016084018215159052565b5061018083015161542a61018084018215159052565b506101a08301516154406101a084018215159052565b5092915050565b5f60808284031215615457575f5ffd5b611f6c8383614e06565b5f5f5f60e08486031215615473575f5ffd5b833561547e81614c45565b925061548d8560208601614c64565b915060c084013561549d81614c45565b809150509250925092565b5f5f8335601e198436030181126154bd575f5ffd5b83016020810192503590506001600160401b038111156154db575f5ffd5b803603821315614cc7575f5ffd5b81835281816020850137505f828201602090810191909152601f909101601f19169091010190565b5f61551c82836154a8565b6101608552615530610160860182846154e9565b91505061554060208401846154a8565b85830360208701526155538382846154e9565b9250505061556460408401846154a8565b85830360408701526155778382846154e9565b606086810135908801526080808701359088015260a0808701359088015292506155a691505060c08401614c59565b6001600160a01b031660c08501526155c060e08401614d54565b62ffffff1660e085015261010083810135908501526155e36101208401846154a8565b8583036101208701526155f78382846154e9565b925050506156096101408401846154a8565b85830361014087015261270e8382846154e9565b602081525f611f6c6020830184615511565b5f5f5f60608486031215615641575f5ffd5b835161564c81614c45565b602085015190935061565d81614c45565b6040949094015192959394509192915050565b6001600160a01b0385811682528481166020830152831660408201526101008101613ca66060830184614eb7565b5f5f8335601e198436030181126156b3575f5ffd5b8301803591506001600160401b038211156156cc575f5ffd5b602001915036819003821315614cc7575f5ffd5b6001600160a01b038516815283151560208201526060604082018190525f9061270e90830184866154e9565b5f6020828403121561571c575f5ffd5b81516147f281614c45565b60c081016157358285614eb7565b6001600160a01b039290921660a09190910152919050565b5f6020828403121561575d575f5ffd5b81516147f281615055565b6001600160a01b038781168252861660208201526040810185905283151560608201526080810183905260c060a082018190525f906157a990830184615511565b98975050505050505050565b6001600160a01b03929092168252602082015260400190565b5f602082840312156157de575f5ffd5b81516147f281614df9565b5f60c082840312156157f9575f5ffd5b60405160c081016001600160401b038111828210171561581b5761581b614db5565b60409081528351825260208085015190830152830151909150819061583f81615055565b6040820152606083810151908201526080808401519082015260a083015161586681614df9565b60a0919091015292915050565b5f60c08284031215615883575f5ffd5b611f6c83836157e9565b634e487b7160e01b5f52601160045260245ffd5b81810381811115611f6f57611f6f61588d565b828152604060208201525f6149026040830184615511565b8082028115828204841417611f6f57611f6f61588d565b634e487b7160e01b5f52601260045260245ffd5b5f8261591157634e487b7160e01b5f52601260045260245ffd5b500490565b803561592181614c45565b6001600160a01b03168252602081013561593a81614c45565b6001600160a01b03166020830152604081013561595681614d44565b62ffffff166040830152606081013561596e81615055565b60020b6060830152608081013561598481614c45565b6001600160a01b03166080929092019190915250565b60e081016159a88286615916565b8360a083015282151560c0830152949350505050565b5f5f5f61010084860312156159d1575f5ffd5b8351602085015190935091506159ea85604086016157e9565b90509250925092565b600f81810b9083900b0160016001607f1b03811360016001607f1b031982121715611f6f57611f6f61588d565b5f600f82900b6001607f1b8101615a3957615a3961588d565b5f0392915050565b80820180821115611f6f57611f6f61588d565b60e08101615a628286615916565b8360020b60a083015282151560c0830152949350505050565b6001600160a01b039390931683526020830191909152604082015260600190565b5f60208284031215615aac575f5ffd5b81516001600160401b03811115615ac1575f5ffd5b8201601f81018413615ad1575f5ffd5b80516001600160401b03811115615aea57615aea614db5565b615afd601f8201601f1916602001614dc9565b818152856020838501011115615b11575f5ffd5b8160208401602083015e5f91810160200191909152949350505050565b5f60608284031215615b3e575f5ffd5b611f6c8383614f08565b8035615b5381614df9565b15158252602081810135908301526040810135615b6f81614c45565b6001600160a01b03166040929092019190915250565b6001600160a01b0387168152615b9e6020820187615916565b615bab60c0820186615b48565b836101208201526101606101408201525f6157a9610160830184866154e9565b6001600160a01b038416815260a08101615be86020830185615b48565b826080830152949350505050565b6001600160a01b03841681526040602082018190525f90613ca690830184866154e9565b5f60208284031215615c2a575f5ffd5b5051919050565b602081525f6149026020830184866154e9565b838152604060208201525f613ca66040830184866154e9565b83815263ffffffff60e01b83166020820152606060408201525f613ca6606083018461512c565b5f600160ff1b8201615c9857615c9861588d565b505f0390565b6001600160a01b039384168152919092166020820152604081019190915260600190565b5f6040828403128015615cd3575f5ffd5b50604080519081016001600160401b0381118282101715615cf657615cf6614db5565b6040528251615d0481614d44565b81526020830151615d1481614df9565b60208201529392505050565b6001600160a01b038181168382160190811115611f6f57611f6f61588d565b6001600160a01b038281168282160390811115611f6f57611f6f61588d565b6101008101615d6d8287614eb7565b8460a08301528360020b60c083015282151560e083015295945050505050565b8082018281125f831280158216821582161715615dac57615dac61588d565b505092915050565b6101208101615dc38286615916565b8351151560a0830152602084015160c08301526040909301516001600160a01b031660e082015262ffffff9190911661010090910152919050565b5f60208284031215615e0e575f5ffd5b81516147f281614d4456fe2153348e08952a9737a728deab496289242e3884d90dd8e5fc8362f809e843141a426dc34b0367779dd37e66c4b193647bd2fd094d26b263dccbe93433d0a25bb5692db6de7b607ce10bbcb6a38fb443823969b63ffea1591751f25f9fe7059a0f457c8132f52d9098267126b744d1c04e04ccc48dce7c5b4396b38879d8b08aca7619d8d03127c99378decb6d4c002b5b8b8d60918ea28c2300a7811e7c1300aac705f00f1df487f4863cf5b7baa49be15a9dc73d477f33ca4d694d45cac7fef5955824691119aec0d1c983542055bfb83b16d3bc8d04e6cd271bbd244e894a6bc3f16992c8e44a3018b72b6d7aec54e64e1cdec74e64c5154c782ffe8aff2dee887e5283585aea7d61ae82ec91b0d9dbc7a52caa1fbc4f511651d06967058d84457b11f2602289c00904214483ea820055ea325cc54ad9b512e76c6541dfb417cab649bf7619b4535991407dcf8f717035632cf45997a05c0f90b7baafa479170e502bdc7039c895af9c291daf6592705d439a7873ee28dbc514d2f1aa51b3859fad1dd1a8a0c97fb9e594529061ff17256ed2fd92004dfd6d47a8324651c4a2646970667358221220b9e9b2a5347e172f2c0b56f46cbd2bdc3320947eca9dc3466c33308fd7a2c6ef64736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000d564d5be76f7f0d28fe52605afc7cf8000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000000000000000000000000000000000000000006400000000000000000000000000000000000000000000000000000000000001f400000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000000000000000000000000adfe60c7df588fa102593644684566b2948b0a6c000000000000000000000000b8a70b4d1547bf6193bd67a73f4f98ea9fd0a9730000000000000000000000001150c53eb4ce3ade47808d1d1ac9636b774ee079000000000000000000000000000000000bb63d5c070d0d5791517886a4d8c54500000000000000000000000072e6f7948b1b1a343b477f39aabd2e35e6d27dde000000000000000000000000fdce459071c74b732b2dec579afb38ea552c4e06000000000000000000000000fb5c20c4e60c9c64648dd3692437e3e313add4a40000000000000000000000007f22353d1634223a802d1c1ea5308ddf5dd0ef9c0000000000000000000000004dc442403e8c758425b93c59dc737da522f32640
-----Decoded View---------------
Arg [0] : params (tuple):
Arg [1] : nativeToken (address): 0x000000000D564D5be76f7f0d28fE52605afC7Cf8
Arg [2] : poolManager (address): 0x498581fF718922c3f8e6A244956aF099B2652b2b
Arg [3] : feeDistribution (tuple):
Arg [1] : swapFee (uint24): 100
Arg [2] : referrer (uint24): 500
Arg [3] : protocol (uint24): 0
Arg [4] : active (bool): True
Arg [4] : initialPrice (address): 0xAdFE60C7DF588FA102593644684566B2948b0a6c
Arg [5] : protocolOwner (address): 0xB8A70b4d1547bf6193bd67A73F4F98ea9FD0A973
Arg [6] : protocolFeeRecipient (address): 0x1150c53eB4cE3aDE47808D1D1Ac9636b774eE079
Arg [7] : flayGovernance (address): 0x000000000Bb63D5c070d0D5791517886a4d8C545
Arg [8] : feeEscrow (address): 0x72e6f7948b1B1A343B477F39aAbd2E35E6D27dde
Arg [9] : feeExemptions (address): 0xfdCE459071c74b732B2dEC579Afb38Ea552C4e06
Arg [10] : actionManager (address): 0xFB5c20c4E60c9c64648DD3692437E3E313Add4A4
Arg [11] : bidWall (address): 0x7f22353d1634223a802D1c1Ea5308Ddf5DD0ef9c
Arg [12] : fairLaunch (address): 0x4dc442403e8c758425b93C59Dc737da522f32640
-----Encoded View---------------
15 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000d564d5be76f7f0d28fe52605afc7cf8
Arg [1] : 000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000064
Arg [3] : 00000000000000000000000000000000000000000000000000000000000001f4
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000000
Arg [5] : 0000000000000000000000000000000000000000000000000000000000000001
Arg [6] : 000000000000000000000000adfe60c7df588fa102593644684566b2948b0a6c
Arg [7] : 000000000000000000000000b8a70b4d1547bf6193bd67a73f4f98ea9fd0a973
Arg [8] : 0000000000000000000000001150c53eb4ce3ade47808d1d1ac9636b774ee079
Arg [9] : 000000000000000000000000000000000bb63d5c070d0d5791517886a4d8c545
Arg [10] : 00000000000000000000000072e6f7948b1b1a343b477f39aabd2e35e6d27dde
Arg [11] : 000000000000000000000000fdce459071c74b732b2dec579afb38ea552c4e06
Arg [12] : 000000000000000000000000fb5c20c4e60c9c64648dd3692437e3e313add4a4
Arg [13] : 0000000000000000000000007f22353d1634223a802d1c1ea5308ddf5dd0ef9c
Arg [14] : 0000000000000000000000004dc442403e8c758425b93c59dc737da522f32640
Generate instant answers for your smart contract questions using Al Models. Read more.
Net Worth in USD
Net Worth in ETH
Multichain Portfolio | 33 Chains
| Chain | Token | Portfolio % | Price | Amount | Value |
|---|
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.

