ETH Price: $2,331.20 (+1.15%)
 

Overview

ETH Balance

0 ETH

ETH Value

$0.00

Token Holdings

More Info

Private Name Tags

Multichain Info

1 address found via
Transaction Hash
Block
From
To
Transfer413987862026-01-28 7:55:19101 days ago1769586919IN
0xC8d07744...f9b159040
0.000166 ETH0.000000070.00353521
Transfer397299892025-12-20 16:48:45140 days ago1766249325IN
0xC8d07744...f9b159040
0.00325 ETH0.000003720.1760699
Swap389040872025-12-01 13:58:41159 days ago1764597521IN
0xC8d07744...f9b159040
0.0001 ETH0.000000050.00241648
Swap389030742025-12-01 13:24:55159 days ago1764595495IN
0xC8d07744...f9b159040
0.0002 ETH0.000000040.00175029
Swap378932512025-11-08 4:24:09182 days ago1762575849IN
0xC8d07744...f9b159040
0 ETH0.000040081.50075951
Swap378908802025-11-08 3:05:07182 days ago1762571107IN
0xC8d07744...f9b159040
0 ETH0.000040131.50085104
Swap378908232025-11-08 3:03:13182 days ago1762570993IN
0xC8d07744...f9b159040
0 ETH0.000040131.5007686
Swap378898902025-11-08 2:32:07182 days ago1762569127IN
0xC8d07744...f9b159040
0 ETH0.000040121.50069097
Swap378898752025-11-08 2:31:37182 days ago1762569097IN
0xC8d07744...f9b159040
0 ETH0.000040121.50071171
Swap378898412025-11-08 2:30:29182 days ago1762569029IN
0xC8d07744...f9b159040
0 ETH0.000040121.50069924
0x1f859305378870272025-11-08 0:56:41182 days ago1762563401IN
0xC8d07744...f9b159040
0.001 ETH0.000035141.50447027
0xf09fa496375295312025-10-30 18:20:09190 days ago1761848409IN
0xC8d07744...f9b159040
0.0001 ETH0.000000550.00899865
0xf09fa496375277312025-10-30 17:20:09191 days ago1761844809IN
0xC8d07744...f9b159040
0.0001 ETH0.000001160.01943234

Latest 25 internal transactions (View All)

Parent Transaction Hash Block From To
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0.00000001 ETH
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0 ETH
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0.0000001 ETH
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0 ETH
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0.00000004 ETH
457748252026-05-09 15:03:172 hrs ago1778338997
0xC8d07744...f9b159040
0.00000016 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000007 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000001 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000073 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000005 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000029 ETH
457742632026-05-09 14:44:332 hrs ago1778337873
0xC8d07744...f9b159040
0.00000117 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.00000012 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.00000002 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.00000128 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.0000001 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.00000051 ETH
457689012026-05-09 11:45:495 hrs ago1778327149
0xC8d07744...f9b159040
0.00000204 ETH
457669332026-05-09 10:40:136 hrs ago1778323213
0xC8d07744...f9b159040
0.00000043 ETH
457669332026-05-09 10:40:136 hrs ago1778323213
0xC8d07744...f9b159040
0.00000004 ETH
457669332026-05-09 10:40:136 hrs ago1778323213
0xC8d07744...f9b159040
0.00000241 ETH
457669332026-05-09 10:40:136 hrs ago1778323213
0xC8d07744...f9b159040
0.00000096 ETH
457669332026-05-09 10:40:136 hrs ago1778323213
0xC8d07744...f9b159040
0.00000385 ETH
457669092026-05-09 10:39:256 hrs ago1778323165
0xC8d07744...f9b159040
0.00000175 ETH
457669092026-05-09 10:39:256 hrs ago1778323165
0xC8d07744...f9b159040
0.00000035 ETH
View All Internal Transactions

Cross-Chain Transactions
Loading...
Loading
Source Code Verified Exact Match

Contract Name

ZoraV4CoinHook

Compiler Version
v0.8.28+commit.7893614a
Optimization Enabled
Yes with 200 runs
Other Settings
cancun EvmVersion
License
-NA-
Contract Source Code (Solidity Standard Json-Input format)
Contract Security Audit
No Contract Security Audit SubmittedSubmit Audit Here
Contract ABI
API
[{"inputs":[{"internalType":"contract IPoolManager","name":"poolManager_","type":"address"},{"internalType":"contract IDeployedCoinVersionLookup","name":"coinVersionLookup_","type":"address"},{"internalType":"address[]","name":"trustedMessageSenders_","type":"address[]"},{"internalType":"contract IHooksUpgradeGate","name":"upgradeGate_","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[{"internalType":"address","name":"target","type":"address"}],"name":"AddressEmptyCode","type":"error"},{"inputs":[{"internalType":"address","name":"account","type":"address"}],"name":"AddressInsufficientBalance","type":"error"},{"inputs":[],"name":"CannotMintZeroLiquidity","type":"error"},{"inputs":[],"name":"CoinVersionLookupCannotBeZeroAddress","type":"error"},{"inputs":[],"name":"EthTransferFailed","type":"error"},{"inputs":[],"name":"FailedInnerCall","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[{"internalType":"uint8","name":"callbackId","type":"uint8"}],"name":"InvalidCallbackId","type":"error"},{"inputs":[{"internalType":"address","name":"newHook","type":"address"}],"name":"InvalidNewHook","type":"error"},{"inputs":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"}],"name":"InvalidTickRangeMisordered","type":"error"},{"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":"NoCoinForHook","type":"error"},{"inputs":[{"internalType":"address","name":"coin","type":"address"}],"name":"NotACoin","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[{"internalType":"address","name":"caller","type":"address"},{"internalType":"address","name":"expectedCoin","type":"address"}],"name":"OnlyCoin","type":"error"},{"inputs":[],"name":"PathMustHaveAtLeastOneStep","type":"error"},{"inputs":[],"name":"SafeCastOverflow","type":"error"},{"inputs":[{"internalType":"address","name":"token","type":"address"}],"name":"SafeERC20FailedOperation","type":"error"},{"inputs":[],"name":"UpgradeGateCannotBeZeroAddress","type":"error"},{"inputs":[{"internalType":"address","name":"oldHook","type":"address"},{"internalType":"address","name":"newHook","type":"address"}],"name":"UpgradePathNotRegistered","type":"error"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"address","name":"coin","type":"address"},{"indexed":false,"internalType":"address","name":"currency","type":"address"},{"indexed":false,"internalType":"address","name":"payoutRecipient","type":"address"},{"indexed":false,"internalType":"address","name":"platformReferrer","type":"address"},{"indexed":false,"internalType":"address","name":"tradeReferrer","type":"address"},{"indexed":false,"internalType":"address","name":"protocolRewardRecipient","type":"address"},{"indexed":false,"internalType":"address","name":"dopplerRecipient","type":"address"},{"components":[{"internalType":"uint256","name":"creatorPayoutAmountCurrency","type":"uint256"},{"internalType":"uint256","name":"creatorPayoutAmountCoin","type":"uint256"},{"internalType":"uint256","name":"platformReferrerAmountCurrency","type":"uint256"},{"internalType":"uint256","name":"platformReferrerAmountCoin","type":"uint256"},{"internalType":"uint256","name":"tradeReferrerAmountCurrency","type":"uint256"},{"internalType":"uint256","name":"tradeReferrerAmountCoin","type":"uint256"},{"internalType":"uint256","name":"protocolAmountCurrency","type":"uint256"},{"internalType":"uint256","name":"protocolAmountCoin","type":"uint256"},{"internalType":"uint256","name":"dopplerAmountCurrency","type":"uint256"},{"internalType":"uint256","name":"dopplerAmountCoin","type":"uint256"}],"indexed":false,"internalType":"struct IZoraV4CoinHook.MarketRewardsV4","name":"marketRewards","type":"tuple"}],"name":"CoinMarketRewardsV4","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"coin","type":"address"},{"indexed":false,"internalType":"address","name":"currency","type":"address"},{"indexed":false,"internalType":"address","name":"creator","type":"address"},{"indexed":false,"internalType":"address","name":"protocol","type":"address"},{"indexed":false,"internalType":"uint256","name":"creatorAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"protocolAmount","type":"uint256"}],"name":"CreatorCoinRewards","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"coin","type":"address"},{"indexed":true,"internalType":"address","name":"currency","type":"address"},{"indexed":false,"internalType":"uint256","name":"amountCurrency","type":"uint256"},{"indexed":false,"internalType":"int24","name":"tick","type":"int24"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"LpReward","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"sender","type":"address"},{"indexed":true,"internalType":"address","name":"swapSender","type":"address"},{"indexed":false,"internalType":"bool","name":"isTrustedSwapSenderAddress","type":"bool"},{"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"}],"indexed":false,"internalType":"struct PoolKey","name":"key","type":"tuple"},{"indexed":true,"internalType":"bytes32","name":"poolKeyHash","type":"bytes32"},{"components":[{"internalType":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"indexed":false,"internalType":"struct SwapParams","name":"params","type":"tuple"},{"indexed":false,"internalType":"int128","name":"amount0","type":"int128"},{"indexed":false,"internalType":"int128","name":"amount1","type":"int128"},{"indexed":false,"internalType":"bool","name":"isCoinBuy","type":"bool"},{"indexed":false,"internalType":"bytes","name":"hookData","type":"bytes"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"Swapped","type":"event"},{"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 ModifyLiquidityParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"feesAccrued","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"afterAddLiquidity","outputs":[{"internalType":"bytes4","name":"","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":"hookData","type":"bytes"}],"name":"afterDonate","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"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tick","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 ModifyLiquidityParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"BalanceDelta","name":"feesAccrued","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"afterRemoveLiquidity","outputs":[{"internalType":"bytes4","name":"","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 SwapParams","name":"params","type":"tuple"},{"internalType":"BalanceDelta","name":"delta","type":"int256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"afterSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"int128","name":"","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 ModifyLiquidityParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeAddLiquidity","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"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeDonate","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"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}],"name":"beforeInitialize","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 ModifyLiquidityParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeRemoveLiquidity","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":"bool","name":"zeroForOne","type":"bool"},{"internalType":"int256","name":"amountSpecified","type":"int256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"internalType":"struct SwapParams","name":"params","type":"tuple"},{"internalType":"bytes","name":"hookData","type":"bytes"}],"name":"beforeSwap","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"},{"internalType":"BeforeSwapDelta","name":"","type":"int256"},{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"contractVersion","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","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":[{"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":"getPoolCoin","outputs":[{"components":[{"internalType":"address","name":"coin","type":"address"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct LpPosition[]","name":"positions","type":"tuple[]"}],"internalType":"struct IZoraV4CoinHook.PoolCoin","name":"","type":"tuple"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"poolKeyHash","type":"bytes32"}],"name":"getPoolCoinByHash","outputs":[{"components":[{"internalType":"address","name":"coin","type":"address"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"internalType":"struct LpPosition[]","name":"positions","type":"tuple[]"}],"internalType":"struct IZoraV4CoinHook.PoolCoin","name":"","type":"tuple"}],"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"},{"internalType":"address","name":"coin","type":"address"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Received","type":"uint128"},{"internalType":"uint128","name":"amount1Received","type":"uint128"}],"internalType":"struct BurnedPosition[]","name":"migratedLiquidity","type":"tuple[]"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"initializeFromMigration","outputs":[],"stateMutability":"nonpayable","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"},{"internalType":"address","name":"coin","type":"address"},{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"amount0Received","type":"uint128"},{"internalType":"uint128","name":"amount1Received","type":"uint128"}],"internalType":"struct BurnedPosition[]","name":"migratedLiquidity","type":"tuple[]"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"initializeFromMigrationWithUpdateableFee","outputs":[{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"}],"name":"isTrustedMessageSender","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newHook","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":"poolKey","type":"tuple"},{"internalType":"bytes","name":"additionalData","type":"bytes"}],"name":"migrateLiquidity","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":"newPoolKey","type":"tuple"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","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"}]
60e0604052346103c1576162408038038061001981610419565b9283398101906080818303126103c15780516001600160a01b03811681036103c15760208201516001600160a01b038116929091908383036103c15760408101516001600160401b0381116103c157810185601f820112156103c1578051956001600160401b0387116103e5578660051b91602080610099818601610419565b809a815201938201019182116103c157602001915b8183106103c55750505060600151926001600160a01b038416918285036103c1576080525f6101a06100de6103f9565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201525f6101a061013c6103f9565b828152600160208201528260408201528260608201528260808201528260a08201528260c0820152600160e0820152826101008201528261012082015282610140820152826101608201528261018082015201526120003016158015906103b0575b80156103a3575b8015610396575b8015610389575b801561037c575b8015610370575b8015610360575b8015610354575b8015610348575b801561033c575b8015610330575b8015610324575b8015610318575b61030557156102f657156102e75760a05260c0525f5b815181101561023f57600190818060a01b0360208260051b85010151165f525f60205260405f208260ff1982541617905501610208565b604051615e01908161043f82396080518181816102b80152818161081d0152818161091b015281816109cc01528181610a4e01528181610b0301528181610d0201528181610e8001528181610f3b01528181611174015281816111d60152818161132b01528181611699015281816117c8015281816129030152613189015260a0518181816116130152611ed7015260c0518181816107bf01528181610c50015261126b0152f35b631decd2b160e31b5f5260045ffd5b637a01d33160e11b5f5260045ffd5b630732d7b560e51b5f523060045260245ffd5b506001301615156101f2565b506002301615156101eb565b506004301615156101e4565b506008301615156101dd565b506010301615156101d6565b506020301615156101cf565b50604030161515600114156101c8565b506080301615156101c1565b50610100301615156101ba565b50610200301615156101b3565b50610400301615156101ac565b50610800301615156101a5565b50611000301615156001141561019e565b5f80fd5b82516001600160a01b03811681036103c1578152602092830192016100ae565b634e487b7160e01b5f52604160045260245ffd5b604051906101c082016001600160401b038111838210176103e557604052565b6040519190601f01601f191682016001600160401b038111838210176103e55760405256fe60806040526004361015610022575b3615610018575f80fd5b6100206117c6565b005b5f3560e01c806301ffc9a71461016257806321d0ee7014610158578063247a47751461015d578063259982e5146101585780632c5fe5a9146101535780634a862f631461014e578063575e24b4146101495780636c2bbe7e146101355780636fe7e6eb1461014457806391dd73461461013f5780639353254c1461013a5780639f063efc14610135578063a0a8e46014610130578063b47b2fb11461012b578063b6a8b0fa14610112578063bc9113b314610126578063c4e833ce14610121578063dc4c90d31461011c578063dc98354e14610117578063e1b4af69146101125763fee56dd90361000e57611213565b610f28565b6111a3565b61115f565b611077565b610f7d565b610e26565b610ddf565b6109b9565b610c12565b610ad0565b610a0f565b6108c6565b61070c565b610619565b6102a5565b610391565b346101e85760203660031901126101e85760043563ffffffff60e01b81168091036101e8576301ffc9a760e01b81149081156101d7575b81156101c6575b81156101b5575b506040519015158152602090f35b630505472360e51b1490505f6101a7565b6324d4c95360e21b811491506101a0565b63fee56dd960e01b81149150610199565b5f80fd5b6001600160a01b038116036101e857565b60a09060231901126101e857602490565b908160a09103126101e85790565b9181601f840112156101e8578235916001600160401b0383116101e857602083818601950101116101e857565b906101606003198301126101e857600435610263816101ec565b9160a06023198201126101e857602491608060c3198301126101e85760c49161014435906001600160401b0382116101e8576102a19160040161021c565b9091565b346101e8576102b336610249565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330391506102f9905057630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b90602080835192838152019201905f5b8181106103255750505090565b909192602060606001926001600160801b0360408851805160020b84528581015160020b8685015201511660408201520194019101919091610318565b602080825282516001600160a01b031682820152919091015160408083015261038e9160600190610308565b90565b346101e85760203660031901126101e8576103aa611392565b506004355f5260016020526103f060405f206103df6001604051926103ce84610408565b818060a01b038154168452016113f7565b602082015260405191829182610362565b0390f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761042357604052565b6103f4565b60a081019081106001600160401b0382111761042357604052565b6101c081019081106001600160401b0382111761042357604052565b606081019081106001600160401b0382111761042357604052565b608081019081106001600160401b0382111761042357604052565b90601f801991011681019081106001600160401b0382111761042357604052565b604051906104c560a083610495565b565b604051906104c56101c083610495565b604051906104c5608083610495565b604051906104c561010083610495565b604051906104c5606083610495565b604051906104c561014083610495565b604051906104c5604083610495565b62ffffff8116036101e857565b8060020b036101e857565b60a09060231901126101e8576040519061055582610428565b81602435610562816101ec565b8152604435610570816101ec565b602082015260643561058181610524565b604082015260843561059281610531565b6060820152608060a435916105a6836101ec565b0152565b91908260a09103126101e8576040516105c281610428565b608080829480356105d2816101ec565b845260208101356105e2816101ec565b602085015260408101356105f581610524565b6040850152606081013561060881610531565b60608501520135916105a6836101ec565b346101e85760a03660031901126101e85761069960405161063981610428565b600435610645816101ec565b8152602435610653816101ec565b602082015260443561066481610524565b604082015260643561067581610531565b6060820152608435610686816101ec565b6080820152610693611392565b506117f8565b5f5260016020526103f060405f206103df6001604051926103ce84610408565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60a0810192916104c591906106b9565b346101e85760e03660031901126101e857600435610729816101ec565b6107323661053c565b60c4356001600160401b0381116101e85761075190369060040161021c565b9061075a61144c565b50610764836117f8565b92610777845f52600160205260405f2090565b80546001600160a01b031691906107918333808214611476565b6040516321f7434760e01b81523060048201526001600160a01b0388166024820152602081806044810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156108b0575f91610881575b501561086157926103f09661084193610855969361081a600161085098016113f7565b907f0000000000000000000000000000000000000000000000000000000000000000611b79565b925f52600160205260405f2090565b61154f565b604051918291826106fc565b63abeba34560e01b5f52306004526001600160a01b03871660245260445ffd5b6108a3915060203d6020116108a9575b61089b8183610495565b8101906114ad565b5f6107f7565b503d610891565b6114c2565b60609060c31901126101e85760c490565b346101e8576101403660031901126101e8576108e36004356101ec565b6108ec366101fd565b506108f6366108b5565b50610124356001600160401b0381116101e85761091790369060040161021c565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f957630a85dc2960e01b5f5260045ffd5b906101a06003198301126101e857600435610972816101ec565b9160a06023198201126101e857602491608060c48303126101e85760c4916101443591610164359161018435906001600160401b0382116101e8576102a19160040161021c565b346101e8576109c736610958565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506102f99250505057630a85dc2960e01b5f5260045ffd5b346101e8576101003660031901126101e857600435610a2d816101ec565b610a36366101fd565b610a4160c4356101ec565b610a4c60e435610531565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f957610a8591611e9c565b6040516001600160e01b03199091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061038e928181520190610a9b565b346101e85760203660031901126101e8576004356001600160401b0381116101e857610b0090369060040161021c565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03811633036102f957610b3b83611586565b90610b496040519283610495565b83825236848401116101e8575f6020856103f096610b6e9683870137840101526121bf565b60405191829182610abf565b906101206003198301126101e857610b9382600461020e565b9160a435610ba0816101ec565b9160c435610bad816101ec565b9160e435916001600160401b0383116101e857816023840112156101e8578260040135926001600160401b0384116101e8578260248560071b830101116101e857602401929161010435906001600160401b0382116101e8576102a19160040161021c565b346101e857610c2036610b7a565b50506040516321f7434760e01b815233600482015230602482015291949390916020816044816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108b0575f91610db6575b5015610d9f57610cc8610c9e6020610c978761226d565b960161226d565b610cb8610ca96104b6565b6001600160a01b039097168752565b6001600160a01b03166020860152565b612710604085015260c8606085015230608085015260405163313b65df60e11b81529160208380610cfd87896004840161228c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156108b057610d5796610d5294610d4b93610d72575b5085612f37565b908461287c565b613088565b604051806103f0819060c86020604084019361271081520152565b610d939060203d602011610d98575b610d8b8183610495565b810190612277565b610d44565b503d610d81565b63abeba34560e01b5f52336004523060245260445ffd5b610dcf915060203d6020116108a95761089b8183610495565b5f610c80565b5f9103126101e857565b346101e8575f3660031901126101e8576103f0604051610e00604082610495565b60058152640322e332e360dc1b6020820152604051918291602083526020830190610a9b565b346101e8576101603660031901126101e857600435610e44816101ec565b610e4d366101fd565b610e56366108b5565b9061012435610144356001600160401b0381116101e857610e7b90369060040161021c565b9390927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f957610eb7956115b5565b604080516001600160e01b0319939093168352600f9190910b602083015290f35b6101206003198201126101e857600435610ef1816101ec565b9160a06023198301126101e85760249160c4359160e4359161010435906001600160401b0382116101e8576102a19160040161021c565b346101e857610f3636610ed8565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330392506102f991505057630a85dc2960e01b5f5260045ffd5b346101e85760203660031901126101e857600435610f9a816101ec565b60018060a01b03165f525f602052602060ff60405f2054166040519015158152f35b6104c5909291926101a0806101c0830195610fd984825115159052565b60208181015115159085015260408181015115159085015260608181015115159085015260808181015115159085015260a08181015115159085015260c08181015115159085015260e081810151151590850152610100818101511515908501526101208181015115159085015261014081810151151590850152610160818101511515908501526101808181015115159085015201511515910152565b346101e8575f3660031901126101e8575f6101a060405161109781610443565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526103f06110f46104c7565b5f8152600160208201525f60408201525f60608201525f60808201525f60a08201525f60c082015261112960e0820160019052565b5f6101008201525f6101208201525f6101408201525f6101608201525f6101808201525f6101a082015260405191829182610fbc565b346101e8575f3660031901126101e8576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b346101e85760e03660031901126101e8576111bf6004356101ec565b6111c8366101fd565b506111d460c4356101ec565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f957630a85dc2960e01b5f5260045ffd5b346101e85761122136610b7a565b5050909392604084013561123481610524565b606085013561124281610531565b6040516321f7434760e01b81523360048201523060248201526020816044816001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000165afa9081156108b0575f91611373575b5015610d9f576112f6611300926112ea6112c060206112b98b61226d565b9a0161226d565b6112da6112cb6104b6565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b62ffffff166040880152565b60020b6060860152565b30608085015260405163313b65df60e11b8152916020838061132687896004840161228c565b03815f7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165af19081156108b05761002096610d5294610d4b93610d72575085612f37565b61138c915060203d6020116108a95761089b8183610495565b5f61129b565b6040519061139f82610408565b60606020835f81520152565b6001600160401b0381116104235760051b60200190565b906040516113cf8161045f565b60406001600160801b038294548060020b84528060181c60020b602085015260301c16910152565b908154611403816113ab565b926114116040519485610495565b81845260208401905f5260205f205f915b83831061142f5750505050565b60016020819261143e856113c2565b815201920192019190611422565b6040519061145982610428565b5f6080838281528260208201528260408201528260608201520152565b1561147f575050565b631f798e2b60e31b5f9081526001600160a01b039182166004529116602452604490fd5b801515036101e857565b908160209103126101e8575161038e816114a3565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561150557565b6114cd565b906801000000000000000081116104235781549181815582821061152d57505050565b5f5260205f2091820191015b818110611544575050565b5f8155600101611539565b6001905f8155018054905f815581611565575050565b5f5260205f20908101905b81811061157b575050565b5f8155600101611570565b6001600160401b03811161042357601f01601f191660200190565b604051906115b0602083610495565b5f8252565b93919092946115cc6115c736866105aa565b6117f8565b9560018060a01b036115f66115e9895f52600160205260405f2090565b546001600160a01b031690565b169161160486841515612329565b60405163f3ffe14b60e01b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03166004820152905f82602481875afa9586156108b0578961176e946116f9876116e67fd0565428a2140862827b5b6126002556c70acb52db537fae9cf41a18a470ec4a9b8d611744995f92611794575b506116df906116d860016116c77f00000000000000000000000000000000000000000000000000000000000000009a5f52600160205260405f2090565b016116d236846105aa565b8a6132c5565b918961342a565b90876135e9565b6116f3888894939461373b565b92613760565b6117028b613acd565b9590978b61170f8b6124a1565b1561177e576117266117266020611732930161226d565b6001600160a01b031690565b14925b61173f368d6105aa565b613b32565b6040516001600160a01b039889169c9098169a979889989196600f84900b9360801d92908a6124ab565b0390a463b47b2fb160e01b905f90565b61172661172661178d9261226d565b1492611735565b6116df9192506117b5903d805f833e6117ad8183610495565b810190612351565b919061168a565b3561038e81610531565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036102f957565b6040516118096020820180936106b9565b60a0815261181860c082610495565b51902090565b602081526118306020820183516106b9565b61010061184c60208401518260c0850152610120840190610308565b60408401516001600160a01b0390811660e085015260609094015190931691015290565b90604061038e92600281528160208201520190610a9b565b90604061038e92600181528160208201520190610a9b565b81601f820112156101e8578051906118b782611586565b926118c56040519485610495565b828452602083830101116101e857815f9260208093018386015e8301015290565b906020828203126101e85781516001600160401b0381116101e85761038e92016118a0565b51906104c582610531565b6001600160801b038116036101e857565b6020818303126101e8578051906001600160401b0382116101e857016080818303126101e8576040519161195a8361047a565b8151611965816101ec565b835260208201516001600160401b0381116101e857820181601f820112156101e857805190611993826113ab565b926119a16040519485610495565b82845260208085019360071b830101918183116101e857602001925b8284106119e55750505050906060916020840152604081015160408401520151606082015290565b6080848303126101e8576020608091604051611a008161047a565b8651611a0b81610531565b815282870151611a1a81610531565b838201526040870151611a2c81611916565b60408201526060870151611a3f81611916565b60608201528152019301926119bd565b15611a575750565b630f83548360e41b5f9081526001600160a01b0391909116600452602490fd5b90602080835192838152019201905f5b818110611a945750505090565b909192602060806001926001600160801b0360608851805160020b84528581015160020b8685015282604082015116604085015201511660608201520194019101919091611a87565b908060209392818452848401375f828201840152601f01601f1916010190565b9492611b3a92611b128761038e9997946106b9565b6001600160a01b0390811660a08801521660c086015261012060e08601819052850190611a77565b92610100818503910152611add565b51906104c582610524565b91908260409103126101e85760208251611b6d81610524565b92015161038e81610531565b5f611c1381929998959397969499611bda611bf7611bda611be88c611b9c61144c565b9f611ba56104d7565b91825260208201526001600160a01b038a1660408201526001600160a01b038b1660608201526040519283916020830161181e565b03601f198101835282610495565b60405192839160208301611870565b6040519485809481936348c8949160e01b835260048301610abf565b03926001600160a01b03165af180156108b057611c41915f91611e58575b5060208082518301019101611927565b85516001600160a01b03168852926020860151611c66906001600160a01b03166112da565b6001600160a01b038316608089018190526040516301ffc9a760e01b81526324d4c95360e21b6004820152909390602081602481885afa9081156108b0575f91611e39575b5015611d4c5750835194956040955f92611ceb916020906001600160a01b0316970151988851998a98899788966324d4c95360e21b885260048801611afd565b03925af180156108b0576104c5915f905f92611d18575b5062ffffff1660408501525b60020b6060840152565b611d0e9250611d3f915060403d604011611d45575b611d378183610495565b810190611b54565b91611d02565b503d611d2d565b6040516301ffc9a760e01b815263fee56dd960e01b6004820152929491939290602082602481875afa80156108b057611d8c925f91611e1a575b50611a4f565b80516020906001600160a01b031691015192823b156101e8575f94611dca86926040519889978896879563fee56dd960e01b87528d60048801611afd565b03925af180156108b0576104c592611d0e92606092611e00575b50611df86112ea604083015162ffffff1690565b015160020b90565b80611e0e5f611e1493610495565b80610dd5565b5f611de4565b611e33915060203d6020116108a95761089b8183610495565b5f611d86565b611e52915060203d6020116108a95761089b8183610495565b5f611cab565b611e7491503d805f833e611e6c8183610495565b8101906118e6565b5f611c31565b519060ff821682036101e857565b908160209103126101e85761038e90611e7a565b91906001600160a01b038316308114611fa05760405163442f7de960e11b81526001600160a01b0385166004820152602081806024810103817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa80156108b057611f1d915f91611f71575b5060ff166004141590565b611f555792611f45611f3d611f4a9495611f3736866105aa565b906127a2565b9236906105aa565b61287c565b636fe7e6eb60e01b90565b63fb9d975f60e01b5f526001600160a01b03841660045260245ffd5b611f93915060203d602011611f99575b611f8b8183610495565b810190611e88565b5f611f12565b503d611f81565b50636fe7e6eb60e01b925050565b51906104c5826101ec565b91908260a09103126101e857604051611fd181610428565b60808082948051611fe1816101ec565b84526020810151611ff1816101ec565b6020850152604081015161200481610524565b6040850152606081015161201781610531565b60608501520151916105a6836101ec565b81601f820112156101e85780519061203f826113ab565b9261204d6040519485610495565b828452602060608186019402830101918183116101e857602001925b828410612077575050505090565b6060848303126101e85760206060916040516120928161045f565b865161209d81610531565b8152828701516120ac81610531565b8382015260408701516120be81611916565b6040820152815201930192612069565b6020818303126101e8578051906001600160401b0382116101e8570160c0818303126101e8576040519161210183610408565b61210b8183611fb9565b835260a08201516001600160401b0381116101e85761212a9201612028565b602082015290565b6020818303126101e8578051906001600160401b0382116101e8570190610100828203126101e857604051916121678361047a565b6121718282611fb9565b835260a08101516001600160401b0381116101e85760e092612194918301612028565b602084015260c08101516121a7816101ec565b604084015201516121b7816101ec565b606082015290565b815182016040838203126101e8576121d960208401611e7a565b926040810151916001600160401b0383116101e8576121ff9260208092019201016118a0565b60ff831660018114612246576002146122285763621319a560e11b5f5260ff831660045260245ffd5b61038e92508060208061224093518301019101612132565b90612b48565b5061226592508060208061225f935183010191016120ce565b90612999565b61038e6115a1565b3561038e816101ec565b908160209103126101e8575161038e81610531565b90929160a0906122a08360c08101966106b9565b600180831b0316910152565b6080809180356122bb816101ec565b6001600160a01b0316845260208101356122d4816101ec565b6001600160a01b0316602085015262ffffff60408201356122f481610524565b166040850152606081013561230881610531565b60020b6060850152013561231b816101ec565b6001600160a01b0316910152565b156123315750565b604051632653ac6960e21b815260a49161234f9060048301906122ac565bfd5b6020818303126101e8578051906001600160401b0382116101e857016040818303126101e8576040519161238483610408565b81516001600160401b0381116101e85782019080601f830112156101e8578151916123ae836113ab565b926123bc6040519485610495565b80845260208085019160051b830101918383116101e85760208101915b8383106123f457505050505061212a91602091845201611fae565b82516001600160401b0381116101e85782019060a0828703601f1901126101e8576040519061242282610428565b6020830151612430816101ec565b8252604083015161244081610524565b6020830152606083015161245381610531565b60408301526080830151612466816101ec565b606083015260a0830151916001600160401b0383116101e857612491886020809695819601016118a0565b60808201528152019201916123d9565b3561038e816114a3565b999896936125499561252061252b926101208e60406104c59e996124df6125359a6101a09f9a1515855260208501906122ac565b80356124ea816114a3565b151560c0840152602081013560e08401520135612506816101ec565b6001600160a01b0316610100820152600f9290920b910152565b600f0b6101408c0152565b15156101608a0152565b6101c06101808901526101c0880191611add565b6001600160a01b03909216940193909352565b519061ffff821682036101e857565b9080601f830112156101e8578151612582816113ab565b926125906040519485610495565b81845260208085019260051b8201019283116101e857602001905b8282106125b85750505090565b602080916125c58461255c565b8152019101906125ab565b9080601f830112156101e85781516125e7816113ab565b926125f56040519485610495565b81845260208085019260051b8201019283116101e857602001905b82821061261d5750505090565b60208091835161262c81610531565b815201910190612610565b9080601f830112156101e857815161264e816113ab565b9261265c6040519485610495565b81845260208085019260051b8201019283116101e857602001905b8282106126845750505090565b8151815260209182019101612677565b6020818303126101e8578051906001600160401b0382116101e85701610100818303126101e8576126c36104e6565b916126cd82611e7a565b83526126db6020830161255c565b60208401526126ec60408301611b49565b60408401526126fd6060830161190b565b606084015260808201516001600160401b0381116101e8578161272191840161256b565b608084015260a08201516001600160401b0381116101e857816127459184016125d0565b60a084015260c08201516001600160401b0381116101e857816127699184016125d0565b60c084015260e08201516001600160401b0381116101e85761278b9201612637565b60e082015290565b908160209103126101e8575190565b90516127b6906001600160a01b0316611726565b60405163b80945e960e01b815290916001600160a01b03165f82600481845afa9182156108b0575f92612858575b50604051633e280d5360e01b815291602083600481855afa9182156108b05761038e94612822945f94612827575b506001600160a01b031614613b74565b613cd5565b61284a91945060203d602011612851575b6128428183610495565b810190612793565b925f612812565b503d612838565b6128759192503d805f833e61286d8183610495565b810190612694565b905f6127e4565b906040519061288a82610408565b6001600160a01b0316815260208101838152906001906128a9846117f8565b5f528160205260405f2090828060a01b039051166bffffffffffffffffffffffff60a01b8254161781550190519060208251926128e6848461150a565b01905f5260205f205f915b8383106129275750505050906104c5917f0000000000000000000000000000000000000000000000000000000000000000613e29565b600160208261298d6001600160801b0360408596518051895462ffffff8884015160181b65ffffff0000001692169065ffffffffffff1916171789550151168690600160301b600160b01b0382549160301b1690600160301b600160b01b031916179055565b019201920191906128f1565b815160208301515f94939185916129ae613211565b508051925f926001600160a01b038716915b8585106129de575050505050506129da9293505190613e99565b5050565b612a8e9960408686612a6a612a4a612a45612a3986612a2a612a0b612a038989612f23565b515160020b90565b97612a246020612a1b838b612f23565b51015160020b90565b97612f23565b5101516001600160801b031690565b6001600160801b031690565b614fac565b91612a60612a566104d7565b94859060020b9052565b60020b6020840152565b828201525f60608201528151809d8192632d35e7ed60e11b8352876004840161324b565b03815f885af19a8b156108b0575f9b612ac9575b50600191612ab7612ac1928d60801d9061329f565b9b600f0b9061329f565b9401936129c0565b612ac1919b5091612ab7612af560019460403d8111612b00575b612aed8183610495565b810190613235565b509c92505091612aa2565b503d612ae3565b6020815260018060a01b03825116602082015260806060612b36602085015183604086015260a0850190611a77565b93604081015182850152015191015290565b91612b5760a083512084614a29565b5050508251602084015194612b6c8651613ed5565b936001600160a01b038216935f5b8851811015612d9357806001600160801b03612bb5612b9d612a038d9586612f23565b612bac6020612a1b8688612f23565b9089308a614638565b168015612d2a5782604091612bf3612a4a612bee612be86020612a1b89612be2612a0382612c179e612f23565b98612f23565b93614fac565b613f24565b828201525f6060820152815180948192632d35e7ed60e11b83528a6004840161324b565b03815f8b5af180156108b057612cc1826001948d93845f925f92612cde575b50612c81612a39612c606020612a1b88612c5a612a03612cb19a9b612ca199612f23565b9b612f23565b95612c74612a398660801d8360801d61329f565b94600f0b90600f0b61329f565b93612c97612c8d6104d7565b97889060020b9052565b60020b6020870152565b6001600160801b03166040850152565b6001600160801b03166060830152565b612ccb828a612f23565b52612cd68189612f23565b505b01612b7a565b612cb19350612ca1919250612a39612c606020612a1b88612c5a612a03612d15612c819860403d8111612b0057612aed8183610495565b9c909c9a995050505098975050505050612c36565b5081612d6c612d4d6020612a1b85612d47612a038260019a612f23565b95612f23565b612d62612d586104d7565b93849060020b9052565b60020b6020830152565b5f60408201525f6060820152612d82828a612f23565b52612d8d8189612f23565b50612cd8565b50935095509050611bda9361038e93612dfe612dc1612dba845160018060a01b0390511690565b3086613f34565b835160200151909485949091612de1906001600160a01b03163084613f34565b81516060909201519096879290916001600160a01b031693613f9a565b612e18612e096104d7565b6001600160a01b039095168552565b60208401526040830152606082015260405192839160208301612b07565b60405190612e438261045f565b5f6040838281528260208201520152565b60408051909190612e658382610495565b6001815291601f1901825f5b828110612e7d57505050565b602090612e88612e36565b82828501015201612e71565b90612e9e826113ab565b612eab6040519182610495565b8281528092612ebc601f19916113ab565b01905f5b828110612ecc57505050565b602090612ed7612e36565b82828501015201612ec0565b634e487b7160e01b5f52603260045260245ffd5b9190811015612f075760071b0190565b612ee3565b3561038e81611916565b805115612f075760200190565b8051821015612f075760209160051b010190565b909291612f4381612e94565b935f5b828110612f535750505050565b80612fc8612f74612f6f612f6a6001958888612ef7565b6117bc565b614230565b612f8d612f6f6020612f87868a8a612ef7565b016117bc565b90612fa46040612f9e868a8a612ef7565b01612f0c565b916001600160801b0380612fbe6060612f9e898d8d612ef7565b1693169189614550565b61301c612fd9612f6a848888612ef7565b9161300c612fed6020612f87878b8b612ef7565b613002612ff86104f6565b95869060020b9052565b60020b6020850152565b6001600160801b03166040830152565b6130268289612f23565b526130318188612f23565b5001612f46565b5f1981019190821161150557565b9190820391821161150557565b8054821015612f07575f5260205f2001905f90565b906001600160801b03809116911601906001600160801b03821161150557565b815190919061309f906001600160a01b03166145eb565b60208201519091906130b9906001600160a01b03166145eb565b60016130d56130c7846117f8565b5f52600160205260405f2090565b01928015801590613208575b6130ed575b5050505050565b6040612a2a6131596131ad6131fe986131d9976131876131496131bd996131b2996131228e61311c8154613038565b90613053565b50958654613143612f6f613139612f6f8460020b90565b9260181c60020b90565b91614550565b613151612e54565b9586946113c2565b61316285612f16565b5261316c84612f16565b508761317785612f16565b5101906001600160801b03169052565b7f0000000000000000000000000000000000000000000000000000000000000000613e29565b612f16565b9261311c8154613038565b50916131d483546001600160801b039060301c1690565b613068565b600160301b600160b01b0382549160301b1690600160301b600160b01b031916179055565b5f808080806130e6565b508115156130e1565b6040519061321e8261047a565b5f6060838281528260208201528260408201520152565b91908260409103126101e8576020825192015190565b906101609261325d8361328b936106b9565b8051600290810b60a08501526020820151900b60c0840152604081015160e084015260600151610100830152565b6101406101208201525f6101408201520190565b90600f0b90600f0b019060016001607f1b0319821260016001607f1b0383131761150557565b92905f935f936132d3613211565b508054915f935b8385106132e8575050505050565b9091929395613329612a396133086133008a88613053565b505460020b90565b6133206133158b89613053565b505460181c60020b90565b90853088614638565b156134185761334b61334461333e8987613053565b506113c2565b83856146df565b90159081613421575b50613418576133a197604061336c6133008a88613053565b61337c612d4d6133158c8a613053565b5f828201525f60608201528151809b8192632d35e7ed60e11b8352876004840161324b565b03815f6001600160a01b0389165af19889156108b0575f996133e9575b506001916133d36133dd928b60801d9061329f565b99600f0b9061329f565b965b01939291906132da565b6133dd919950916133d361340c60019460403d8111612b0057612aed8183610495565b90509a925050916133be565b956001906133df565b9050155f613354565b91939290935f81600f0b136134b4575b5061038e91815f61346993600f0b13613482575b50602061346e6134698735613462816101ec565b3085613f34565b61535c565b9501359061347b826101ec565b3090613f34565b613494906001600160801b03166147ed565b6001600160801b0381161561344e576134ae9086836148ca565b5f61344e565b6134c76001600160801b039182166147ed565b16801561343a576134eb6134e56134de36886105aa565b60a0902090565b84614a29565b50509190506001600160801b0361355761353e61353861353261352360608c019761351d6135188a6117bc565b61481c565b9061489a565b61352c886117bc565b906152c5565b956117bc565b8561489a565b9261354885614230565b61355185614230565b906150c7565b1680613565575b505061343a565b91604091613579612a4a61359d9795614fac565b828201525f6060820152815180958192632d35e7ed60e11b835289600484016148b8565b03815f6001600160a01b0386165af19182156108b05761038e93613469936135cb575b82945081935061355e565b6135e39060403d604011612b0057612aed8183610495565b506135c0565b93929091602082015160018060a01b031691519283511561372c5761361a92613613859695612f16565b518761537d565b90926001915b81518310156136a557600190613678612a396136676136616136556001600160801b03999a61364f8a8a612f23565b51615432565b99909516600f0b6149eb565b600f0b90565b61366f6115a1565b9088858c615558565b941561369657602001516001600160a01b03165b9201919392613620565b516001600160a01b031661368c565b915050809280946001600160801b0383166136bf57505050565b6001600160a01b031691823b156101e857604051630b0d9c0960e01b81526001600160a01b039290921660048301523060248301526001600160801b03166044820152905f908290606490829084905af180156108b05761371e575b50565b80611e0e5f6104c593610495565b6319dcad4d60e31b5f5260045ffd5b906014811061375a5781602091810103126101e85735611726816101ec565b50505f90565b91909261376c82615642565b604051633fb80b1560e01b81526001600160a01b039093169490602084600481895afa9384156108b0575f94613a97575b506040516328c22dfb60e11b8152906020826004818a5afa9182156108b0575f92613a76575b50604051637a9f55c760e11b8152916020836004818b5afa9283156108b0575f93613a55575b50604051630d1a887760e21b8152906020826004818c5afa9485156108b057868a918a8a955f99613a18575b5087858761382595948c9461570e565b9860608a0196868851928c805190602001519d604081019e8f5191608001519261384d610505565b978852602088015f90526040880152606087015f9052608087015260a086015f905260c086015260e085015f905261010085015261012084015f9052600160a01b6001900316998a956040519788976139749789969293610120959199989461020097936102208a019b60018060a01b03168a5260018060a01b031660208a015260018060a01b0316604089015260018060a01b0316606088015260018060a01b0316608087015260018060a01b031660a086015260018060a01b031660c0850152805160e085015260208101516101008501526040810151828501526060810151610140850152608081015161016085015260a081015161018085015260c08101516101a085015260e08101516101c08501526101008101516101e08501520151910152565b037f35b5031218696db1dfd903223a47f38e66a1998e14a942a5d60fddaa49a685fc91a16139a181614a0b565b156139af575b505050505050565b90519351604080516001600160a01b03948516815294841660208601529290911691830191909152606082019290925260808101919091527fea92473287be4e55f8279d0b8395a45960a217ae2f1a76ac9cae84af58a751ed9060a090a25f80808080806139a7565b613825939299508587613a438b9360203d602011613a4e575b613a3b8183610495565b810190613ab8565b9b9495505050613815565b503d613a31565b613a6f91935060203d602011613a4e57613a3b8183610495565b915f6137e9565b613a9091925060203d602011613a4e57613a3b8183610495565b905f6137c3565b613ab191945060203d602011613a4e57613a3b8183610495565b925f61379d565b908160209103126101e8575161038e816101ec565b60018060a01b0316805f525f6020526004602060ff60405f205416926040519283809263d737d0c760e01b82525afa5f9181613b11575b50613b0e57505f91565b91565b613b2b91925060203d602011613a4e57613a3b8183610495565b905f613b04565b60a09020613b3f91614a29565b50505090565b906001820180921161150557565b9190820180921161150557565b61ffff5f199116019061ffff821161150557565b9290916020830190613b9a613b95613b8e845161ffff1690565b61ffff1690565b612e94565b935f5f9060a0830193845151925f905b848210613c2a5750509361371b969798613b8e94613c04613bf4613c1396613bee60c0613bfb613bf4613be3613c0a9b613c189f613046565b9951613bee86613038565b90612f23565b5160020b90565b95015191613038565b90614f01565b935161ffff1690565b613b60565b90613c238286612f23565b5283612f23565b818b949a828260e08a015190613c3f91612f23565b51613c4a9087614abc565b91838b5190613c5891612f23565b5160020b928460c08c015190613c6d91612f23565b5160020b9060808c0199868b5190613c8491612f23565b5161ffff1692613c9396614d39565b9b909b613c9f91613b53565b945190613cab91612f23565b5161ffff1661ffff16613cbd91613b53565b9060010190613baa565b5f1981146115055760010190565b90613ce08251612e94565b915f905f5b8151811015613dfb57613cfb612a038284612f23565b613d0a6020612a1b8486612f23565b613d196040612a2a8587612f23565b905f5f8460020b905b888110613d7c575b505015613d3d575b505050600101613ce5565b91613d58600194969261300c613d7395613002612ff86104f6565b613d628289612f23565b52613d6d8188612f23565b50613cc7565b92905f80613d32565b613d86818c612f23565b5182613d9c613d96835160020b90565b60020b90565b1480613de7575b613db05750600101613d22565b9050613dde92506040915001613dd1846131d483516001600160801b031690565b6001600160801b03169052565b60015f80613d2a565b506020810151600286810b91900b14613da3565b50508252565b60e0602061038e93818452613e1982850182516106b9565b01519160c0808201520190610308565b613e6c90611bda611bf7611bda613e5d5f97968897613e46610515565b918252602082015260405192839160208301613e01565b60405192839160208301611888565b03926001600160a01b03165af180156108b057613e865750565b61371b903d805f833e611e6c8183610495565b916104c5613eb160018060a01b038451163086613f34565b938493613ecb60018060a01b036020830151163084613f34565b9485913093613f9a565b90613edf826113ab565b613eec6040519182610495565b8281528092613efd601f19916113ab565b01905f5b828110613f0d57505050565b602090613f18613211565b82828501015201613f01565b600160ff1b8114611505575f0390565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa9081156108b0575f91613f81575090565b61038e915060203d602011612851576128428183610495565b9190935f82136141bb575b5f8413614149575b505f811261408d575b505f8212613fc357505050565b602092909201805190926001600160a01b03908116911691813b156101e857604051632961046560e21b81526001600160a01b039390931660048401525f8360248183865af19081156108b057826140396140335f9760209761403f96614079575b50516001600160a01b031690565b92613f24565b91614fc5565b600460405180948193630476982d60e21b83525af180156108b0576140615750565b61371b9060203d602011612851576128428183610495565b80611e0e8b61408793610495565b5f614025565b83516001600160a01b03838116911690803b156101e857604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af180156108b0575f936020936140f692614135575b5087518390614039906001600160a01b0316614033565b600460405180948193630476982d60e21b83525af180156108b05715613fb65761412e9060203d602011612851576128428183610495565b505f613fb6565b80611e0e8761414393610495565b5f6140df565b60208501516001600160a01b03848116929116823b156101e857604051630b0d9c0960e01b81526001600160a01b0391821660048201529116602482015260448101859052905f908290606490829084905af180156108b05715613fad5780611e0e5f6141b593610495565b5f613fad565b84516001600160a01b03848116911690803b156101e857604051630b0d9c0960e01b81526001600160a01b0392831660048201529183166024830152604482018490525f908290606490829084905af180156108b05761421c575b50613fa5565b80611e0e5f61422a93610495565b5f614216565b60020b908160ff1d82810118620d89e8811161454a5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b18916002811661452e575b60048116614512575b600881166144f6575b601081166144da575b602081166144be575b604081166144a2575b60808116614486575b610100811661446a575b610200811661444e575b6104008116614432575b6108008116614416575b61100081166143fa575b61200081166143de575b61400081166143c2575b61800081166143a6575b62010000811661438a575b62020000811661436f575b620400008116614354575b620800001661433b575b5f12614333575b0160201c90565b5f190461432c565b6b048a170391f7dc42444e8fa290910260801c90614325565b6d2216e584f5fa1ea926041bedfe9890920260801c9161431b565b916e5d6af8dedb81196699c329225ee6040260801c91614310565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91614305565b916f31be135f97d08fd981231505542fcfa60260801c916142fa565b916f70d869a156d2a1b890bb3df62baf32f70260801c916142f0565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916142e6565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916142dc565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916142d2565b916ff3392b0822b70005940c7a398e4b70f30260801c916142c8565b916ff987a7253ac413176f2b074cf7815e540260801c916142be565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916142b4565b916ffe5dee046a99a2a811c461f1969c30530260801c916142aa565b916fff2ea16466c96a3843ec78b326b528610260801c916142a1565b916fff973b41fa98c081472e6896dfb254c00260801c91614298565b916fffcb9843d60f6159c9db58835c9266440260801c9161428f565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614286565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161427d565b916ffff97272373d413259a46990580e213a0260801c91614274565b82615056565b936001600160a01b03838116908316116145e3575b6001600160a01b0385811695908316861161458657505061038e93506150c7565b919490939192906001600160a01b03821611156145d75782916145ad916145b395946150c7565b93615084565b6001600160801b0381166001600160801b038316105f146145d2575090565b905090565b91505061038e92615084565b909190614565565b6001600160a01b0381166145fe57504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa9081156108b0575f91613f81575090565b9361467960a091602095614680959490929192604051935f60268601526006850152600384015282525f603a600c8401209281604082015281602082015252565b91206159a1565b604051631e2eaeaf60e01b8152600481019190915291829060249082906001600160a01b03165afa80156108b0576001600160801b03915f916146c257501690565b6146db915060203d602011612851576128428183610495565b1690565b92919260a08220614736855160020b916147306020880193845160020b903090929192604051935f60268601526006850152600384015282525f603a600c8401209281604082015281602082015252565b906159a1565b604051631afeb18d60e11b8152600481019190915260036024820152945f866044816001600160a01b0387165afa9586156108b0575f966147b7575b5061038e93926147b1926147aa926147a461479c60a0606060408d01519c01519820925160020b90565b925160020b90565b9261511b565b9590613046565b93613046565b6147aa919650926147b1926147e161038e96953d805f833e6147d98183610495565b8101906159d4565b97925092509293614772565b6001600160801b03166107d08102908082046107d01490151715611505576127106001600160801b0391041690565b60020b60011b908160020b91820361150557565b9060020b9060020b02908160020b91820361150557565b60020b5f190190627fffff198212627fffff83131761150557565b600291820b910b0390627fffff198212627fffff83131761150557565b60020b60010190627fffff8213627fffff1983121761150557565b9060020b9060020b0190627fffff198212627fffff83131761150557565b906101609261325d8361328b936122ac565b916148db6134e56134de36856105aa565b50509390506001600160801b0361494661492961492361491d61490e60608901996149086135188c6117bc565b90614862565b6149178a6117bc565b90615288565b976117bc565b87614862565b9361493385614230565b908361493e89614230565b911691615084565b169283614954575050505050565b6149ac94614986614966604096614fac565b9161497c6149726104d7565b96879060020b9052565b60020b6020860152565b848401525f60608401525f8451809681958294632d35e7ed60e11b8452600484016148b8565b03926001600160a01b03165af180156108b0576149cd575b808080806130e6565b6149e59060403d604011612b0057612aed8183610495565b506149c4565b600f0b6f7fffffffffffffffffffffffffffffff198114611505575f0390565b60021115614a1557565b634e487b7160e01b5f52602160045260245ffd5b9190614a3660209161578d565b604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa9182156108b0575f92614a94575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b614aae91925060203d602011612851576128428183610495565b905f614a6c565b156101e857565b808202905f1983820990828083109203918083039283670de0b6b3a764000011156101e85714614b26577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b90670de0b6b3a76400008202905f19670de0b6b3a76400008409928280851094039380850394614b68868511614ab5565b14614bca57670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90606082901b905f19600160601b8409928280851094039380850394614bf8868511614ab5565b14614bca578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b81810291905f1982820991838084109303928084039384600160601b11156101e85714614c9757600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395614cc1878611614ab5565b14614d1b579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b15614d2a57565b6366bf045960e01b5f5260045ffd5b91909695939293815f14614ef857614d5a88935b8315614ef2578099614862565b9361ffff614d6785614230565b9116614d7b614d75826114e1565b88614b37565b905f9a5f5b828110614da057505050505050505050614d9c90841115614d23565b9190565b614ddf60c8848b8a15614ece57614dce614dc6614dd99362ffffff613538941688614ca0565b62ffffff1690565b62ffffff1660020b90565b8961531b565b8860020b8160020b03614df6575b50600101614d80565b614dff81614230565b5f908c614e6a575b60019392614e56928f928d9291906001600160a01b03908116908c161015614e5d5761300c614e3b92613002612ff86104f6565b614e4f614e48858c613b53565b8093612f23565b528d612f23565b5090614ded565b61300c614e3b9293612fed565b919e929190508815614eb8578c8a614ea0614e86898b866150c7565b955b868d15614ead57614e9a908c876157e9565b90613b53565b9e50509c9e919290614e07565b614e9a90868d6157ad565b8c8a614ea0614ec889858c615084565b95614e88565b614dce614dc6614eed9362ffffff614ee7941688614ca0565b85614862565b614dd9565b89614862565b614d5a83614d4d565b929190614f0c612e36565b508115614f9b57925b8115614f955750614f2660c861530a565b915b8260020b8460020b81811215614f8057505061038e929161300c91614f4c86614230565b91614f5685614230565b9015614f7157614f65926150c7565b91613002612ff86104f6565b614f7a92615084565b91612fed565b63352d1ec160e11b5f5260045260245260445ffd5b91614f28565b50614fa660c86152f8565b92614f15565b905f8212614fb657565b6393dafdf160e01b5f5260045ffd5b9091906001600160a01b038116614ff257505f808080614fe694865af11590565b614fed5750565b6158ea565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156150485750565b6001600160a01b031661587d565b6345c3193d60e11b5f5260020b60045260245ffd5b6001600160a01b03918216908216039190821161150557565b61038e926150bc9290916001600160a01b03808316908216116150c1575b6001600160a01b03916150b5919061506b565b1690614bd1565b615953565b906150a2565b61038e926150bc929091906001600160a01b0380821690831611615115575b61510e6150ff6001600160a01b03838116908516614c57565b926001600160a01b039261506b565b1691614ca0565b906150e6565b909193926151288361578d565b6001810180911161150557604051631afeb18d60e11b81526004810191909152600260248201525f816044816001600160a01b0387165afa9081156108b0575f916151de575b506040602082015191015190615185878686615a4d565b97909361519e615196828989615a4d565b989097614a29565b5050905060020b9160020b82125f146151bb575050505003920390565b95979593949360020b136151d157505003920390565b9593929095030393030390565b6151f291503d805f833e6147d98183610495565b5f61516e565b634e487b7160e01b5f52601260045260245ffd5b6101f48102908082046101f4149015171561150557612710900490565b61186a81029080820461186a149015171561150557612710900490565b607d810290808204607d149015171561150557612710900490565b60020b9060020b90811561528357627fffff1981145f19831416611505570590565b6151f8565b905f8260020b125f146152a7576152a28161038e93615261565b614830565b6152a2816152c06152bb8261038e9661489a565b614847565b615261565b905f8260020b125f146152eb576152a2816152c06152e68261038e96614862565b61487f565b6152a28161038e93615261565b61038e906152a281620d89e719615261565b61038e906152a281620d89e8615261565b90919015615343575f8260020b125f146152eb576152a2816152c06152e68261038e96614862565b5f8260020b125f146152a7576152a28161038e93615261565b5f8112614fb6576001600160801b038113614fb6576001600160801b031690565b9161538b9195949395615432565b9091908015615424576001600160801b0386945b82156154145760208501516001600160a01b03165b97831561540c5750945b16806153cb575050505090565b9161038e9493916153e16153fd94600f0b6149eb565b92604051936153f1602086610495565b5f8552600f0b92615558565b6001600160801b031690613068565b9050946153be565b84516001600160a01b03166153b4565b6001600160801b038461539f565b9061543b61144c565b5081516001600160a01b03908116919081168211156154f55790613b0e906154e5835b60208601516001600160a01b0386811692169190911495906154db9062ffffff166154cf6154a46060615495604087015160020b90565b9501516001600160a01b031690565b956154bf6154b06104b6565b6001600160a01b03909a168a52565b6001600160a01b03166020890152565b62ffffff166040870152565b60020b6060850152565b6001600160a01b03166080830152565b6001600160a01b0391821691613b0e91908116906154e59061545e565b61038e939261552482610120946106b9565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261010081018290520190610a9b565b936155b794602092949394855f1461560e575f6401000276a4915b61559a61557e6104f6565b8915158152938488018990526001600160a01b03166040850152565b604051633cf3645360e21b81529889958694859360048501615512565b03926001600160a01b03165af19283156108b0575f936155eb575b505f13901515145f146155e557600f0b90565b60801d90565b5f9193506156079060203d602011612851576128428183610495565b92906155d2565b5f73fffd8963efd1fc6a506488495d951d5263988d2591615573565b908160209103126101e8575160028110156101e85790565b6040516301ffc9a760e01b81526303fd27d560e31b60048201526001600160a01b0382169190602081602481865afa9081156108b0575f916156ef575b5061569c5761568e9150615b08565b15615697575f90565b600190565b506020600491604051928380926303fd27d560e31b82525afa9081156108b0575f916156c6575090565b61038e915060203d6020116156e8575b6156e08183610495565b81019061562a565b503d6156d6565b615708915060203d6020116108a95761089b8183610495565b5f61567f565b93949296959061571c61144c565b5061573a906001600160a01b03898116151591908416151590615b58565b96858851916157499287615c36565b602087015161575a915f9186615c36565b606086015161576b915f9185615c36565b8260808601519161577c9284615c36565b6040840151916104c5925f92615c36565b604051602081019182526006604082015260408152611818606082610495565b6001600160a01b0391821691160360ff81901d90810118906001906001600160801b03166157db8382614c57565b928260601b91091515160190565b91906001600160a01b0380821690841611615877575b6001600160a01b03831691821561586b5760601b6fffffffffffffffffffffffffffffffff60601b16926001600160a01b03828116929190910316615845828286614ca0565b938215615283570961585d575b808206151591040190565b906001019081615852575f80fd5b62bfc9215f526004601cfd5b916157ff565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b906001600160801b03821691820361596757565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fd5b6159aa9061578d565b60068101809111611505576040519060208201928352604082015260408152611818606082610495565b6020818303126101e8578051906001600160401b0382116101e857019080601f830112156101e8578151615a07816113ab565b92615a156040519485610495565b81845260208085019260051b8201019283116101e857602001905b828210615a3d5750505090565b8151815260209182019101615a30565b929190615a599061578d565b926004840180941161150557615a985f92615ac39560405190602082019260020b8352604082015260408152615a90606082610495565b519020613b45565b604051631afeb18d60e11b815260048101919091526002602482015293849190829081906044820190565b03916001600160a01b03165afa9182156108b0575f92615aec575b506040602083015192015190565b615b019192503d805f833e6147d98183610495565b905f615ade565b6040516361aa5eb760e11b815290602090829060049082906001600160a01b03165afa9081615b3b575b50615697575f90565b615b539060203d602011612851576128428183610495565b615b32565b92916001600160801b03615b6a61144c565b9416908115615c025715615bf8576109c48102918183046109c4148215171561150557612710615be893045b855215615bef57615be0615ba98261520c565b60208601908152615be0615bbc84615229565b9160608801928352615be0615bd086615246565b9560808a01968752895190613046565b905190613046565b6040830152565b615be05f615ba9565b615be8915f615b96565b505050565b3d15615c31573d90615c1882611586565b91615c266040519384610495565b82523d5f602084013e565b606090565b9192909283158015615d5c575b615d565783906001600160a01b038416615ca5575f918291829182916001600160a01b03165af1615c72615c07565b5015615c7d57505050565b6001600160a01b038116615c9a57630db2c7f160e31b5f5260045ffd5b6104c5925f92615c36565b60405163a9059cbb60e01b602082019081526001600160a01b039092166024820152604480820196909652948552615d0a935f9350839250615ce8606487610495565b94516001600160a01b03909516949082865af1615d03615c07565b9083615d6d565b8051908115159182615d3b575b5050615d205750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b615d4e92506020809183010191016114ad565b155f80615d17565b50505050565b506001600160a01b03811615615c43565b90615d915750805115615d8257805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615dc2575b615da2575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615d9a56fea26469706673582212207e8ee9b74389a7d4a739d2f12f288b7aa1db9b987d0b4337032876b4b2ff6b7964736f6c634300081c0033000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d200000000000000000000000000000000000000000000000000000000000000020000000000000000000000006ff5693b99212da76ad316178a184ab56d299b430000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc
Deployed Bytecode
0x60806040526004361015610022575b3615610018575f80fd5b6100206117c6565b005b5f3560e01c806301ffc9a71461016257806321d0ee7014610158578063247a47751461015d578063259982e5146101585780632c5fe5a9146101535780634a862f631461014e578063575e24b4146101495780636c2bbe7e146101355780636fe7e6eb1461014457806391dd73461461013f5780639353254c1461013a5780639f063efc14610135578063a0a8e46014610130578063b47b2fb11461012b578063b6a8b0fa14610112578063bc9113b314610126578063c4e833ce14610121578063dc4c90d31461011c578063dc98354e14610117578063e1b4af69146101125763fee56dd90361000e57611213565b610f28565b6111a3565b61115f565b611077565b610f7d565b610e26565b610ddf565b6109b9565b610c12565b610ad0565b610a0f565b6108c6565b61070c565b610619565b6102a5565b610391565b346101e85760203660031901126101e85760043563ffffffff60e01b81168091036101e8576301ffc9a760e01b81149081156101d7575b81156101c6575b81156101b5575b506040519015158152602090f35b630505472360e51b1490505f6101a7565b6324d4c95360e21b811491506101a0565b63fee56dd960e01b81149150610199565b5f80fd5b6001600160a01b038116036101e857565b60a09060231901126101e857602490565b908160a09103126101e85790565b9181601f840112156101e8578235916001600160401b0383116101e857602083818601950101116101e857565b906101606003198301126101e857600435610263816101ec565b9160a06023198201126101e857602491608060c3198301126101e85760c49161014435906001600160401b0382116101e8576102a19160040161021c565b9091565b346101e8576102b336610249565b5050507f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316330391506102f9905057630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b90602080835192838152019201905f5b8181106103255750505090565b909192602060606001926001600160801b0360408851805160020b84528581015160020b8685015201511660408201520194019101919091610318565b602080825282516001600160a01b031682820152919091015160408083015261038e9160600190610308565b90565b346101e85760203660031901126101e8576103aa611392565b506004355f5260016020526103f060405f206103df6001604051926103ce84610408565b818060a01b038154168452016113f7565b602082015260405191829182610362565b0390f35b634e487b7160e01b5f52604160045260245ffd5b604081019081106001600160401b0382111761042357604052565b6103f4565b60a081019081106001600160401b0382111761042357604052565b6101c081019081106001600160401b0382111761042357604052565b606081019081106001600160401b0382111761042357604052565b608081019081106001600160401b0382111761042357604052565b90601f801991011681019081106001600160401b0382111761042357604052565b604051906104c560a083610495565b565b604051906104c56101c083610495565b604051906104c5608083610495565b604051906104c561010083610495565b604051906104c5606083610495565b604051906104c561014083610495565b604051906104c5604083610495565b62ffffff8116036101e857565b8060020b036101e857565b60a09060231901126101e8576040519061055582610428565b81602435610562816101ec565b8152604435610570816101ec565b602082015260643561058181610524565b604082015260843561059281610531565b6060820152608060a435916105a6836101ec565b0152565b91908260a09103126101e8576040516105c281610428565b608080829480356105d2816101ec565b845260208101356105e2816101ec565b602085015260408101356105f581610524565b6040850152606081013561060881610531565b60608501520135916105a6836101ec565b346101e85760a03660031901126101e85761069960405161063981610428565b600435610645816101ec565b8152602435610653816101ec565b602082015260443561066481610524565b604082015260643561067581610531565b6060820152608435610686816101ec565b6080820152610693611392565b506117f8565b5f5260016020526103f060405f206103df6001604051926103ce84610408565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b60a0810192916104c591906106b9565b346101e85760e03660031901126101e857600435610729816101ec565b6107323661053c565b60c4356001600160401b0381116101e85761075190369060040161021c565b9061075a61144c565b50610764836117f8565b92610777845f52600160205260405f2090565b80546001600160a01b031691906107918333808214611476565b6040516321f7434760e01b81523060048201526001600160a01b0388166024820152602081806044810103817f000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d26001600160a01b03165afa9081156108b0575f91610881575b501561086157926103f09661084193610855969361081a600161085098016113f7565b907f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b611b79565b925f52600160205260405f2090565b61154f565b604051918291826106fc565b63abeba34560e01b5f52306004526001600160a01b03871660245260445ffd5b6108a3915060203d6020116108a9575b61089b8183610495565b8101906114ad565b5f6107f7565b503d610891565b6114c2565b60609060c31901126101e85760c490565b346101e8576101403660031901126101e8576108e36004356101ec565b6108ec366101fd565b506108f6366108b5565b50610124356001600160401b0381116101e85761091790369060040161021c565b50507f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031633036102f957630a85dc2960e01b5f5260045ffd5b906101a06003198301126101e857600435610972816101ec565b9160a06023198201126101e857602491608060c48303126101e85760c4916101443591610164359161018435906001600160401b0382116101e8576102a19160040161021c565b346101e8576109c736610958565b5050507f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316330393506102f99250505057630a85dc2960e01b5f5260045ffd5b346101e8576101003660031901126101e857600435610a2d816101ec565b610a36366101fd565b610a4160c4356101ec565b610a4c60e435610531565b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031633036102f957610a8591611e9c565b6040516001600160e01b03199091168152602090f35b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b90602061038e928181520190610a9b565b346101e85760203660031901126101e8576004356001600160401b0381116101e857610b0090369060040161021c565b907f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03811633036102f957610b3b83611586565b90610b496040519283610495565b83825236848401116101e8575f6020856103f096610b6e9683870137840101526121bf565b60405191829182610abf565b906101206003198301126101e857610b9382600461020e565b9160a435610ba0816101ec565b9160c435610bad816101ec565b9160e435916001600160401b0383116101e857816023840112156101e8578260040135926001600160401b0384116101e8578260248560071b830101116101e857602401929161010435906001600160401b0382116101e8576102a19160040161021c565b346101e857610c2036610b7a565b50506040516321f7434760e01b815233600482015230602482015291949390916020816044816001600160a01b037f000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d2165afa9081156108b0575f91610db6575b5015610d9f57610cc8610c9e6020610c978761226d565b960161226d565b610cb8610ca96104b6565b6001600160a01b039097168752565b6001600160a01b03166020860152565b612710604085015260c8606085015230608085015260405163313b65df60e11b81529160208380610cfd87896004840161228c565b03815f7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03165af19081156108b057610d5796610d5294610d4b93610d72575b5085612f37565b908461287c565b613088565b604051806103f0819060c86020604084019361271081520152565b610d939060203d602011610d98575b610d8b8183610495565b810190612277565b610d44565b503d610d81565b63abeba34560e01b5f52336004523060245260445ffd5b610dcf915060203d6020116108a95761089b8183610495565b5f610c80565b5f9103126101e857565b346101e8575f3660031901126101e8576103f0604051610e00604082610495565b60058152640322e332e360dc1b6020820152604051918291602083526020830190610a9b565b346101e8576101603660031901126101e857600435610e44816101ec565b610e4d366101fd565b610e56366108b5565b9061012435610144356001600160401b0381116101e857610e7b90369060040161021c565b9390927f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031633036102f957610eb7956115b5565b604080516001600160e01b0319939093168352600f9190910b602083015290f35b6101206003198201126101e857600435610ef1816101ec565b9160a06023198301126101e85760249160c4359160e4359161010435906001600160401b0382116101e8576102a19160040161021c565b346101e857610f3636610ed8565b5050507f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b0316330392506102f991505057630a85dc2960e01b5f5260045ffd5b346101e85760203660031901126101e857600435610f9a816101ec565b60018060a01b03165f525f602052602060ff60405f2054166040519015158152f35b6104c5909291926101a0806101c0830195610fd984825115159052565b60208181015115159085015260408181015115159085015260608181015115159085015260808181015115159085015260a08181015115159085015260c08181015115159085015260e081810151151590850152610100818101511515908501526101208181015115159085015261014081810151151590850152610160818101511515908501526101808181015115159085015201511515910152565b346101e8575f3660031901126101e8575f6101a060405161109781610443565b8281528260208201528260408201528260608201528260808201528260a08201528260c08201528260e0820152826101008201528261012082015282610140820152826101608201528261018082015201526103f06110f46104c7565b5f8152600160208201525f60408201525f60608201525f60808201525f60a08201525f60c082015261112960e0820160019052565b5f6101008201525f6101208201525f6101408201525f6101608201525f6101808201525f6101a082015260405191829182610fbc565b346101e8575f3660031901126101e8576040517f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03168152602090f35b346101e85760e03660031901126101e8576111bf6004356101ec565b6111c8366101fd565b506111d460c4356101ec565b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031633036102f957630a85dc2960e01b5f5260045ffd5b346101e85761122136610b7a565b5050909392604084013561123481610524565b606085013561124281610531565b6040516321f7434760e01b81523360048201523060248201526020816044816001600160a01b037f000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d2165afa9081156108b0575f91611373575b5015610d9f576112f6611300926112ea6112c060206112b98b61226d565b9a0161226d565b6112da6112cb6104b6565b6001600160a01b03909b168b52565b6001600160a01b031660208a0152565b62ffffff166040880152565b60020b6060860152565b30608085015260405163313b65df60e11b8152916020838061132687896004840161228c565b03815f7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b03165af19081156108b05761002096610d5294610d4b93610d72575085612f37565b61138c915060203d6020116108a95761089b8183610495565b5f61129b565b6040519061139f82610408565b60606020835f81520152565b6001600160401b0381116104235760051b60200190565b906040516113cf8161045f565b60406001600160801b038294548060020b84528060181c60020b602085015260301c16910152565b908154611403816113ab565b926114116040519485610495565b81845260208401905f5260205f205f915b83831061142f5750505050565b60016020819261143e856113c2565b815201920192019190611422565b6040519061145982610428565b5f6080838281528260208201528260408201528260608201520152565b1561147f575050565b631f798e2b60e31b5f9081526001600160a01b039182166004529116602452604490fd5b801515036101e857565b908160209103126101e8575161038e816114a3565b6040513d5f823e3d90fd5b634e487b7160e01b5f52601160045260245ffd5b90670de0b6b3a7640000820291808304670de0b6b3a7640000149015171561150557565b6114cd565b906801000000000000000081116104235781549181815582821061152d57505050565b5f5260205f2091820191015b818110611544575050565b5f8155600101611539565b6001905f8155018054905f815581611565575050565b5f5260205f20908101905b81811061157b575050565b5f8155600101611570565b6001600160401b03811161042357601f01601f191660200190565b604051906115b0602083610495565b5f8252565b93919092946115cc6115c736866105aa565b6117f8565b9560018060a01b036115f66115e9895f52600160205260405f2090565b546001600160a01b031690565b169161160486841515612329565b60405163f3ffe14b60e01b81527f000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf36001600160a01b03166004820152905f82602481875afa9586156108b0578961176e946116f9876116e67fd0565428a2140862827b5b6126002556c70acb52db537fae9cf41a18a470ec4a9b8d611744995f92611794575b506116df906116d860016116c77f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b9a5f52600160205260405f2090565b016116d236846105aa565b8a6132c5565b918961342a565b90876135e9565b6116f3888894939461373b565b92613760565b6117028b613acd565b9590978b61170f8b6124a1565b1561177e576117266117266020611732930161226d565b6001600160a01b031690565b14925b61173f368d6105aa565b613b32565b6040516001600160a01b039889169c9098169a979889989196600f84900b9360801d92908a6124ab565b0390a463b47b2fb160e01b905f90565b61172661172661178d9261226d565b1492611735565b6116df9192506117b5903d805f833e6117ad8183610495565b810190612351565b919061168a565b3561038e81610531565b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b6001600160a01b031633036102f957565b6040516118096020820180936106b9565b60a0815261181860c082610495565b51902090565b602081526118306020820183516106b9565b61010061184c60208401518260c0850152610120840190610308565b60408401516001600160a01b0390811660e085015260609094015190931691015290565b90604061038e92600281528160208201520190610a9b565b90604061038e92600181528160208201520190610a9b565b81601f820112156101e8578051906118b782611586565b926118c56040519485610495565b828452602083830101116101e857815f9260208093018386015e8301015290565b906020828203126101e85781516001600160401b0381116101e85761038e92016118a0565b51906104c582610531565b6001600160801b038116036101e857565b6020818303126101e8578051906001600160401b0382116101e857016080818303126101e8576040519161195a8361047a565b8151611965816101ec565b835260208201516001600160401b0381116101e857820181601f820112156101e857805190611993826113ab565b926119a16040519485610495565b82845260208085019360071b830101918183116101e857602001925b8284106119e55750505050906060916020840152604081015160408401520151606082015290565b6080848303126101e8576020608091604051611a008161047a565b8651611a0b81610531565b815282870151611a1a81610531565b838201526040870151611a2c81611916565b60408201526060870151611a3f81611916565b60608201528152019301926119bd565b15611a575750565b630f83548360e41b5f9081526001600160a01b0391909116600452602490fd5b90602080835192838152019201905f5b818110611a945750505090565b909192602060806001926001600160801b0360608851805160020b84528581015160020b8685015282604082015116604085015201511660608201520194019101919091611a87565b908060209392818452848401375f828201840152601f01601f1916010190565b9492611b3a92611b128761038e9997946106b9565b6001600160a01b0390811660a08801521660c086015261012060e08601819052850190611a77565b92610100818503910152611add565b51906104c582610524565b91908260409103126101e85760208251611b6d81610524565b92015161038e81610531565b5f611c1381929998959397969499611bda611bf7611bda611be88c611b9c61144c565b9f611ba56104d7565b91825260208201526001600160a01b038a1660408201526001600160a01b038b1660608201526040519283916020830161181e565b03601f198101835282610495565b60405192839160208301611870565b6040519485809481936348c8949160e01b835260048301610abf565b03926001600160a01b03165af180156108b057611c41915f91611e58575b5060208082518301019101611927565b85516001600160a01b03168852926020860151611c66906001600160a01b03166112da565b6001600160a01b038316608089018190526040516301ffc9a760e01b81526324d4c95360e21b6004820152909390602081602481885afa9081156108b0575f91611e39575b5015611d4c5750835194956040955f92611ceb916020906001600160a01b0316970151988851998a98899788966324d4c95360e21b885260048801611afd565b03925af180156108b0576104c5915f905f92611d18575b5062ffffff1660408501525b60020b6060840152565b611d0e9250611d3f915060403d604011611d45575b611d378183610495565b810190611b54565b91611d02565b503d611d2d565b6040516301ffc9a760e01b815263fee56dd960e01b6004820152929491939290602082602481875afa80156108b057611d8c925f91611e1a575b50611a4f565b80516020906001600160a01b031691015192823b156101e8575f94611dca86926040519889978896879563fee56dd960e01b87528d60048801611afd565b03925af180156108b0576104c592611d0e92606092611e00575b50611df86112ea604083015162ffffff1690565b015160020b90565b80611e0e5f611e1493610495565b80610dd5565b5f611de4565b611e33915060203d6020116108a95761089b8183610495565b5f611d86565b611e52915060203d6020116108a95761089b8183610495565b5f611cab565b611e7491503d805f833e611e6c8183610495565b8101906118e6565b5f611c31565b519060ff821682036101e857565b908160209103126101e85761038e90611e7a565b91906001600160a01b038316308114611fa05760405163442f7de960e11b81526001600160a01b0385166004820152602081806024810103817f000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf36001600160a01b03165afa80156108b057611f1d915f91611f71575b5060ff166004141590565b611f555792611f45611f3d611f4a9495611f3736866105aa565b906127a2565b9236906105aa565b61287c565b636fe7e6eb60e01b90565b63fb9d975f60e01b5f526001600160a01b03841660045260245ffd5b611f93915060203d602011611f99575b611f8b8183610495565b810190611e88565b5f611f12565b503d611f81565b50636fe7e6eb60e01b925050565b51906104c5826101ec565b91908260a09103126101e857604051611fd181610428565b60808082948051611fe1816101ec565b84526020810151611ff1816101ec565b6020850152604081015161200481610524565b6040850152606081015161201781610531565b60608501520151916105a6836101ec565b81601f820112156101e85780519061203f826113ab565b9261204d6040519485610495565b828452602060608186019402830101918183116101e857602001925b828410612077575050505090565b6060848303126101e85760206060916040516120928161045f565b865161209d81610531565b8152828701516120ac81610531565b8382015260408701516120be81611916565b6040820152815201930192612069565b6020818303126101e8578051906001600160401b0382116101e8570160c0818303126101e8576040519161210183610408565b61210b8183611fb9565b835260a08201516001600160401b0381116101e85761212a9201612028565b602082015290565b6020818303126101e8578051906001600160401b0382116101e8570190610100828203126101e857604051916121678361047a565b6121718282611fb9565b835260a08101516001600160401b0381116101e85760e092612194918301612028565b602084015260c08101516121a7816101ec565b604084015201516121b7816101ec565b606082015290565b815182016040838203126101e8576121d960208401611e7a565b926040810151916001600160401b0383116101e8576121ff9260208092019201016118a0565b60ff831660018114612246576002146122285763621319a560e11b5f5260ff831660045260245ffd5b61038e92508060208061224093518301019101612132565b90612b48565b5061226592508060208061225f935183010191016120ce565b90612999565b61038e6115a1565b3561038e816101ec565b908160209103126101e8575161038e81610531565b90929160a0906122a08360c08101966106b9565b600180831b0316910152565b6080809180356122bb816101ec565b6001600160a01b0316845260208101356122d4816101ec565b6001600160a01b0316602085015262ffffff60408201356122f481610524565b166040850152606081013561230881610531565b60020b6060850152013561231b816101ec565b6001600160a01b0316910152565b156123315750565b604051632653ac6960e21b815260a49161234f9060048301906122ac565bfd5b6020818303126101e8578051906001600160401b0382116101e857016040818303126101e8576040519161238483610408565b81516001600160401b0381116101e85782019080601f830112156101e8578151916123ae836113ab565b926123bc6040519485610495565b80845260208085019160051b830101918383116101e85760208101915b8383106123f457505050505061212a91602091845201611fae565b82516001600160401b0381116101e85782019060a0828703601f1901126101e8576040519061242282610428565b6020830151612430816101ec565b8252604083015161244081610524565b6020830152606083015161245381610531565b60408301526080830151612466816101ec565b606083015260a0830151916001600160401b0383116101e857612491886020809695819601016118a0565b60808201528152019201916123d9565b3561038e816114a3565b999896936125499561252061252b926101208e60406104c59e996124df6125359a6101a09f9a1515855260208501906122ac565b80356124ea816114a3565b151560c0840152602081013560e08401520135612506816101ec565b6001600160a01b0316610100820152600f9290920b910152565b600f0b6101408c0152565b15156101608a0152565b6101c06101808901526101c0880191611add565b6001600160a01b03909216940193909352565b519061ffff821682036101e857565b9080601f830112156101e8578151612582816113ab565b926125906040519485610495565b81845260208085019260051b8201019283116101e857602001905b8282106125b85750505090565b602080916125c58461255c565b8152019101906125ab565b9080601f830112156101e85781516125e7816113ab565b926125f56040519485610495565b81845260208085019260051b8201019283116101e857602001905b82821061261d5750505090565b60208091835161262c81610531565b815201910190612610565b9080601f830112156101e857815161264e816113ab565b9261265c6040519485610495565b81845260208085019260051b8201019283116101e857602001905b8282106126845750505090565b8151815260209182019101612677565b6020818303126101e8578051906001600160401b0382116101e85701610100818303126101e8576126c36104e6565b916126cd82611e7a565b83526126db6020830161255c565b60208401526126ec60408301611b49565b60408401526126fd6060830161190b565b606084015260808201516001600160401b0381116101e8578161272191840161256b565b608084015260a08201516001600160401b0381116101e857816127459184016125d0565b60a084015260c08201516001600160401b0381116101e857816127699184016125d0565b60c084015260e08201516001600160401b0381116101e85761278b9201612637565b60e082015290565b908160209103126101e8575190565b90516127b6906001600160a01b0316611726565b60405163b80945e960e01b815290916001600160a01b03165f82600481845afa9182156108b0575f92612858575b50604051633e280d5360e01b815291602083600481855afa9182156108b05761038e94612822945f94612827575b506001600160a01b031614613b74565b613cd5565b61284a91945060203d602011612851575b6128428183610495565b810190612793565b925f612812565b503d612838565b6128759192503d805f833e61286d8183610495565b810190612694565b905f6127e4565b906040519061288a82610408565b6001600160a01b0316815260208101838152906001906128a9846117f8565b5f528160205260405f2090828060a01b039051166bffffffffffffffffffffffff60a01b8254161781550190519060208251926128e6848461150a565b01905f5260205f205f915b8383106129275750505050906104c5917f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b613e29565b600160208261298d6001600160801b0360408596518051895462ffffff8884015160181b65ffffff0000001692169065ffffffffffff1916171789550151168690600160301b600160b01b0382549160301b1690600160301b600160b01b031916179055565b019201920191906128f1565b815160208301515f94939185916129ae613211565b508051925f926001600160a01b038716915b8585106129de575050505050506129da9293505190613e99565b5050565b612a8e9960408686612a6a612a4a612a45612a3986612a2a612a0b612a038989612f23565b515160020b90565b97612a246020612a1b838b612f23565b51015160020b90565b97612f23565b5101516001600160801b031690565b6001600160801b031690565b614fac565b91612a60612a566104d7565b94859060020b9052565b60020b6020840152565b828201525f60608201528151809d8192632d35e7ed60e11b8352876004840161324b565b03815f885af19a8b156108b0575f9b612ac9575b50600191612ab7612ac1928d60801d9061329f565b9b600f0b9061329f565b9401936129c0565b612ac1919b5091612ab7612af560019460403d8111612b00575b612aed8183610495565b810190613235565b509c92505091612aa2565b503d612ae3565b6020815260018060a01b03825116602082015260806060612b36602085015183604086015260a0850190611a77565b93604081015182850152015191015290565b91612b5760a083512084614a29565b5050508251602084015194612b6c8651613ed5565b936001600160a01b038216935f5b8851811015612d9357806001600160801b03612bb5612b9d612a038d9586612f23565b612bac6020612a1b8688612f23565b9089308a614638565b168015612d2a5782604091612bf3612a4a612bee612be86020612a1b89612be2612a0382612c179e612f23565b98612f23565b93614fac565b613f24565b828201525f6060820152815180948192632d35e7ed60e11b83528a6004840161324b565b03815f8b5af180156108b057612cc1826001948d93845f925f92612cde575b50612c81612a39612c606020612a1b88612c5a612a03612cb19a9b612ca199612f23565b9b612f23565b95612c74612a398660801d8360801d61329f565b94600f0b90600f0b61329f565b93612c97612c8d6104d7565b97889060020b9052565b60020b6020870152565b6001600160801b03166040850152565b6001600160801b03166060830152565b612ccb828a612f23565b52612cd68189612f23565b505b01612b7a565b612cb19350612ca1919250612a39612c606020612a1b88612c5a612a03612d15612c819860403d8111612b0057612aed8183610495565b9c909c9a995050505098975050505050612c36565b5081612d6c612d4d6020612a1b85612d47612a038260019a612f23565b95612f23565b612d62612d586104d7565b93849060020b9052565b60020b6020830152565b5f60408201525f6060820152612d82828a612f23565b52612d8d8189612f23565b50612cd8565b50935095509050611bda9361038e93612dfe612dc1612dba845160018060a01b0390511690565b3086613f34565b835160200151909485949091612de1906001600160a01b03163084613f34565b81516060909201519096879290916001600160a01b031693613f9a565b612e18612e096104d7565b6001600160a01b039095168552565b60208401526040830152606082015260405192839160208301612b07565b60405190612e438261045f565b5f6040838281528260208201520152565b60408051909190612e658382610495565b6001815291601f1901825f5b828110612e7d57505050565b602090612e88612e36565b82828501015201612e71565b90612e9e826113ab565b612eab6040519182610495565b8281528092612ebc601f19916113ab565b01905f5b828110612ecc57505050565b602090612ed7612e36565b82828501015201612ec0565b634e487b7160e01b5f52603260045260245ffd5b9190811015612f075760071b0190565b612ee3565b3561038e81611916565b805115612f075760200190565b8051821015612f075760209160051b010190565b909291612f4381612e94565b935f5b828110612f535750505050565b80612fc8612f74612f6f612f6a6001958888612ef7565b6117bc565b614230565b612f8d612f6f6020612f87868a8a612ef7565b016117bc565b90612fa46040612f9e868a8a612ef7565b01612f0c565b916001600160801b0380612fbe6060612f9e898d8d612ef7565b1693169189614550565b61301c612fd9612f6a848888612ef7565b9161300c612fed6020612f87878b8b612ef7565b613002612ff86104f6565b95869060020b9052565b60020b6020850152565b6001600160801b03166040830152565b6130268289612f23565b526130318188612f23565b5001612f46565b5f1981019190821161150557565b9190820391821161150557565b8054821015612f07575f5260205f2001905f90565b906001600160801b03809116911601906001600160801b03821161150557565b815190919061309f906001600160a01b03166145eb565b60208201519091906130b9906001600160a01b03166145eb565b60016130d56130c7846117f8565b5f52600160205260405f2090565b01928015801590613208575b6130ed575b5050505050565b6040612a2a6131596131ad6131fe986131d9976131876131496131bd996131b2996131228e61311c8154613038565b90613053565b50958654613143612f6f613139612f6f8460020b90565b9260181c60020b90565b91614550565b613151612e54565b9586946113c2565b61316285612f16565b5261316c84612f16565b508761317785612f16565b5101906001600160801b03169052565b7f000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b613e29565b612f16565b9261311c8154613038565b50916131d483546001600160801b039060301c1690565b613068565b600160301b600160b01b0382549160301b1690600160301b600160b01b031916179055565b5f808080806130e6565b508115156130e1565b6040519061321e8261047a565b5f6060838281528260208201528260408201520152565b91908260409103126101e8576020825192015190565b906101609261325d8361328b936106b9565b8051600290810b60a08501526020820151900b60c0840152604081015160e084015260600151610100830152565b6101406101208201525f6101408201520190565b90600f0b90600f0b019060016001607f1b0319821260016001607f1b0383131761150557565b92905f935f936132d3613211565b508054915f935b8385106132e8575050505050565b9091929395613329612a396133086133008a88613053565b505460020b90565b6133206133158b89613053565b505460181c60020b90565b90853088614638565b156134185761334b61334461333e8987613053565b506113c2565b83856146df565b90159081613421575b50613418576133a197604061336c6133008a88613053565b61337c612d4d6133158c8a613053565b5f828201525f60608201528151809b8192632d35e7ed60e11b8352876004840161324b565b03815f6001600160a01b0389165af19889156108b0575f996133e9575b506001916133d36133dd928b60801d9061329f565b99600f0b9061329f565b965b01939291906132da565b6133dd919950916133d361340c60019460403d8111612b0057612aed8183610495565b90509a925050916133be565b956001906133df565b9050155f613354565b91939290935f81600f0b136134b4575b5061038e91815f61346993600f0b13613482575b50602061346e6134698735613462816101ec565b3085613f34565b61535c565b9501359061347b826101ec565b3090613f34565b613494906001600160801b03166147ed565b6001600160801b0381161561344e576134ae9086836148ca565b5f61344e565b6134c76001600160801b039182166147ed565b16801561343a576134eb6134e56134de36886105aa565b60a0902090565b84614a29565b50509190506001600160801b0361355761353e61353861353261352360608c019761351d6135188a6117bc565b61481c565b9061489a565b61352c886117bc565b906152c5565b956117bc565b8561489a565b9261354885614230565b61355185614230565b906150c7565b1680613565575b505061343a565b91604091613579612a4a61359d9795614fac565b828201525f6060820152815180958192632d35e7ed60e11b835289600484016148b8565b03815f6001600160a01b0386165af19182156108b05761038e93613469936135cb575b82945081935061355e565b6135e39060403d604011612b0057612aed8183610495565b506135c0565b93929091602082015160018060a01b031691519283511561372c5761361a92613613859695612f16565b518761537d565b90926001915b81518310156136a557600190613678612a396136676136616136556001600160801b03999a61364f8a8a612f23565b51615432565b99909516600f0b6149eb565b600f0b90565b61366f6115a1565b9088858c615558565b941561369657602001516001600160a01b03165b9201919392613620565b516001600160a01b031661368c565b915050809280946001600160801b0383166136bf57505050565b6001600160a01b031691823b156101e857604051630b0d9c0960e01b81526001600160a01b039290921660048301523060248301526001600160801b03166044820152905f908290606490829084905af180156108b05761371e575b50565b80611e0e5f6104c593610495565b6319dcad4d60e31b5f5260045ffd5b906014811061375a5781602091810103126101e85735611726816101ec565b50505f90565b91909261376c82615642565b604051633fb80b1560e01b81526001600160a01b039093169490602084600481895afa9384156108b0575f94613a97575b506040516328c22dfb60e11b8152906020826004818a5afa9182156108b0575f92613a76575b50604051637a9f55c760e11b8152916020836004818b5afa9283156108b0575f93613a55575b50604051630d1a887760e21b8152906020826004818c5afa9485156108b057868a918a8a955f99613a18575b5087858761382595948c9461570e565b9860608a0196868851928c805190602001519d604081019e8f5191608001519261384d610505565b978852602088015f90526040880152606087015f9052608087015260a086015f905260c086015260e085015f905261010085015261012084015f9052600160a01b6001900316998a956040519788976139749789969293610120959199989461020097936102208a019b60018060a01b03168a5260018060a01b031660208a015260018060a01b0316604089015260018060a01b0316606088015260018060a01b0316608087015260018060a01b031660a086015260018060a01b031660c0850152805160e085015260208101516101008501526040810151828501526060810151610140850152608081015161016085015260a081015161018085015260c08101516101a085015260e08101516101c08501526101008101516101e08501520151910152565b037f35b5031218696db1dfd903223a47f38e66a1998e14a942a5d60fddaa49a685fc91a16139a181614a0b565b156139af575b505050505050565b90519351604080516001600160a01b03948516815294841660208601529290911691830191909152606082019290925260808101919091527fea92473287be4e55f8279d0b8395a45960a217ae2f1a76ac9cae84af58a751ed9060a090a25f80808080806139a7565b613825939299508587613a438b9360203d602011613a4e575b613a3b8183610495565b810190613ab8565b9b9495505050613815565b503d613a31565b613a6f91935060203d602011613a4e57613a3b8183610495565b915f6137e9565b613a9091925060203d602011613a4e57613a3b8183610495565b905f6137c3565b613ab191945060203d602011613a4e57613a3b8183610495565b925f61379d565b908160209103126101e8575161038e816101ec565b60018060a01b0316805f525f6020526004602060ff60405f205416926040519283809263d737d0c760e01b82525afa5f9181613b11575b50613b0e57505f91565b91565b613b2b91925060203d602011613a4e57613a3b8183610495565b905f613b04565b60a09020613b3f91614a29565b50505090565b906001820180921161150557565b9190820180921161150557565b61ffff5f199116019061ffff821161150557565b9290916020830190613b9a613b95613b8e845161ffff1690565b61ffff1690565b612e94565b935f5f9060a0830193845151925f905b848210613c2a5750509361371b969798613b8e94613c04613bf4613c1396613bee60c0613bfb613bf4613be3613c0a9b613c189f613046565b9951613bee86613038565b90612f23565b5160020b90565b95015191613038565b90614f01565b935161ffff1690565b613b60565b90613c238286612f23565b5283612f23565b818b949a828260e08a015190613c3f91612f23565b51613c4a9087614abc565b91838b5190613c5891612f23565b5160020b928460c08c015190613c6d91612f23565b5160020b9060808c0199868b5190613c8491612f23565b5161ffff1692613c9396614d39565b9b909b613c9f91613b53565b945190613cab91612f23565b5161ffff1661ffff16613cbd91613b53565b9060010190613baa565b5f1981146115055760010190565b90613ce08251612e94565b915f905f5b8151811015613dfb57613cfb612a038284612f23565b613d0a6020612a1b8486612f23565b613d196040612a2a8587612f23565b905f5f8460020b905b888110613d7c575b505015613d3d575b505050600101613ce5565b91613d58600194969261300c613d7395613002612ff86104f6565b613d628289612f23565b52613d6d8188612f23565b50613cc7565b92905f80613d32565b613d86818c612f23565b5182613d9c613d96835160020b90565b60020b90565b1480613de7575b613db05750600101613d22565b9050613dde92506040915001613dd1846131d483516001600160801b031690565b6001600160801b03169052565b60015f80613d2a565b506020810151600286810b91900b14613da3565b50508252565b60e0602061038e93818452613e1982850182516106b9565b01519160c0808201520190610308565b613e6c90611bda611bf7611bda613e5d5f97968897613e46610515565b918252602082015260405192839160208301613e01565b60405192839160208301611888565b03926001600160a01b03165af180156108b057613e865750565b61371b903d805f833e611e6c8183610495565b916104c5613eb160018060a01b038451163086613f34565b938493613ecb60018060a01b036020830151163084613f34565b9485913093613f9a565b90613edf826113ab565b613eec6040519182610495565b8281528092613efd601f19916113ab565b01905f5b828110613f0d57505050565b602090613f18613211565b82828501015201613f01565b600160ff1b8114611505575f0390565b6001600160a01b039182165f9081529282166020908152604093849020935163789add5560e11b815260048101949094529183916024918391165afa9081156108b0575f91613f81575090565b61038e915060203d602011612851576128428183610495565b9190935f82136141bb575b5f8413614149575b505f811261408d575b505f8212613fc357505050565b602092909201805190926001600160a01b03908116911691813b156101e857604051632961046560e21b81526001600160a01b039390931660048401525f8360248183865af19081156108b057826140396140335f9760209761403f96614079575b50516001600160a01b031690565b92613f24565b91614fc5565b600460405180948193630476982d60e21b83525af180156108b0576140615750565b61371b9060203d602011612851576128428183610495565b80611e0e8b61408793610495565b5f614025565b83516001600160a01b03838116911690803b156101e857604051632961046560e21b81526001600160a01b039290921660048301525f8260248183855af180156108b0575f936020936140f692614135575b5087518390614039906001600160a01b0316614033565b600460405180948193630476982d60e21b83525af180156108b05715613fb65761412e9060203d602011612851576128428183610495565b505f613fb6565b80611e0e8761414393610495565b5f6140df565b60208501516001600160a01b03848116929116823b156101e857604051630b0d9c0960e01b81526001600160a01b0391821660048201529116602482015260448101859052905f908290606490829084905af180156108b05715613fad5780611e0e5f6141b593610495565b5f613fad565b84516001600160a01b03848116911690803b156101e857604051630b0d9c0960e01b81526001600160a01b0392831660048201529183166024830152604482018490525f908290606490829084905af180156108b05761421c575b50613fa5565b80611e0e5f61422a93610495565b5f614216565b60020b908160ff1d82810118620d89e8811161454a5763ffffffff9192600182167001fffcb933bd6fad37aa2d162d1a59400102600160801b18916002811661452e575b60048116614512575b600881166144f6575b601081166144da575b602081166144be575b604081166144a2575b60808116614486575b610100811661446a575b610200811661444e575b6104008116614432575b6108008116614416575b61100081166143fa575b61200081166143de575b61400081166143c2575b61800081166143a6575b62010000811661438a575b62020000811661436f575b620400008116614354575b620800001661433b575b5f12614333575b0160201c90565b5f190461432c565b6b048a170391f7dc42444e8fa290910260801c90614325565b6d2216e584f5fa1ea926041bedfe9890920260801c9161431b565b916e5d6af8dedb81196699c329225ee6040260801c91614310565b916f09aa508b5b7a84e1c677de54f3e99bc90260801c91614305565b916f31be135f97d08fd981231505542fcfa60260801c916142fa565b916f70d869a156d2a1b890bb3df62baf32f70260801c916142f0565b916fa9f746462d870fdf8a65dc1f90e061e50260801c916142e6565b916fd097f3bdfd2022b8845ad8f792aa58250260801c916142dc565b916fe7159475a2c29b7443b29c7fa6e889d90260801c916142d2565b916ff3392b0822b70005940c7a398e4b70f30260801c916142c8565b916ff987a7253ac413176f2b074cf7815e540260801c916142be565b916ffcbe86c7900a88aedcffc83b479aa3a40260801c916142b4565b916ffe5dee046a99a2a811c461f1969c30530260801c916142aa565b916fff2ea16466c96a3843ec78b326b528610260801c916142a1565b916fff973b41fa98c081472e6896dfb254c00260801c91614298565b916fffcb9843d60f6159c9db58835c9266440260801c9161428f565b916fffe5caca7e10e4e61c3624eaa0941cd00260801c91614286565b916ffff2e50f5f656932ef12357cf3c7fdcc0260801c9161427d565b916ffff97272373d413259a46990580e213a0260801c91614274565b82615056565b936001600160a01b03838116908316116145e3575b6001600160a01b0385811695908316861161458657505061038e93506150c7565b919490939192906001600160a01b03821611156145d75782916145ad916145b395946150c7565b93615084565b6001600160801b0381166001600160801b038316105f146145d2575090565b905090565b91505061038e92615084565b909190614565565b6001600160a01b0381166145fe57504790565b6040516370a0823160e01b815230600482015290602090829060249082906001600160a01b03165afa9081156108b0575f91613f81575090565b9361467960a091602095614680959490929192604051935f60268601526006850152600384015282525f603a600c8401209281604082015281602082015252565b91206159a1565b604051631e2eaeaf60e01b8152600481019190915291829060249082906001600160a01b03165afa80156108b0576001600160801b03915f916146c257501690565b6146db915060203d602011612851576128428183610495565b1690565b92919260a08220614736855160020b916147306020880193845160020b903090929192604051935f60268601526006850152600384015282525f603a600c8401209281604082015281602082015252565b906159a1565b604051631afeb18d60e11b8152600481019190915260036024820152945f866044816001600160a01b0387165afa9586156108b0575f966147b7575b5061038e93926147b1926147aa926147a461479c60a0606060408d01519c01519820925160020b90565b925160020b90565b9261511b565b9590613046565b93613046565b6147aa919650926147b1926147e161038e96953d805f833e6147d98183610495565b8101906159d4565b97925092509293614772565b6001600160801b03166107d08102908082046107d01490151715611505576127106001600160801b0391041690565b60020b60011b908160020b91820361150557565b9060020b9060020b02908160020b91820361150557565b60020b5f190190627fffff198212627fffff83131761150557565b600291820b910b0390627fffff198212627fffff83131761150557565b60020b60010190627fffff8213627fffff1983121761150557565b9060020b9060020b0190627fffff198212627fffff83131761150557565b906101609261325d8361328b936122ac565b916148db6134e56134de36856105aa565b50509390506001600160801b0361494661492961492361491d61490e60608901996149086135188c6117bc565b90614862565b6149178a6117bc565b90615288565b976117bc565b87614862565b9361493385614230565b908361493e89614230565b911691615084565b169283614954575050505050565b6149ac94614986614966604096614fac565b9161497c6149726104d7565b96879060020b9052565b60020b6020860152565b848401525f60608401525f8451809681958294632d35e7ed60e11b8452600484016148b8565b03926001600160a01b03165af180156108b0576149cd575b808080806130e6565b6149e59060403d604011612b0057612aed8183610495565b506149c4565b600f0b6f7fffffffffffffffffffffffffffffff198114611505575f0390565b60021115614a1557565b634e487b7160e01b5f52602160045260245ffd5b9190614a3660209161578d565b604051631e2eaeaf60e01b8152600481019190915292839060249082906001600160a01b03165afa9182156108b0575f92614a94575b506001600160a01b0382169160a081901c60020b9162ffffff60b883901c81169260d01c1690565b614aae91925060203d602011612851576128428183610495565b905f614a6c565b156101e857565b808202905f1983820990828083109203918083039283670de0b6b3a764000011156101e85714614b26577faccb18165bd6fe31ae1cf318dc5b51eee0e1ba569b88cd74c1773b91fac1066993670de0b6b3a7640000910990828211900360ee1b910360121c170290565b5050670de0b6b3a764000091500490565b90670de0b6b3a76400008202905f19670de0b6b3a76400008409928280851094039380850394614b68868511614ab5565b14614bca57670de0b6b3a764000082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b5091500490565b90606082901b905f19600160601b8409928280851094039380850394614bf8868511614ab5565b14614bca578190600160601b900981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b81810291905f1982820991838084109303928084039384600160601b11156101e85714614c9757600160601b910990828211900360a01b910360601c1790565b50505060601c90565b91818302915f19818509938380861095039480860395614cc1878611614ab5565b14614d1b579082910981805f03168092046002816003021880820260020302808202600203028082026002030280820260020302808202600203028091026002030293600183805f03040190848311900302920304170290565b505091500490565b15614d2a57565b6366bf045960e01b5f5260045ffd5b91909695939293815f14614ef857614d5a88935b8315614ef2578099614862565b9361ffff614d6785614230565b9116614d7b614d75826114e1565b88614b37565b905f9a5f5b828110614da057505050505050505050614d9c90841115614d23565b9190565b614ddf60c8848b8a15614ece57614dce614dc6614dd99362ffffff613538941688614ca0565b62ffffff1690565b62ffffff1660020b90565b8961531b565b8860020b8160020b03614df6575b50600101614d80565b614dff81614230565b5f908c614e6a575b60019392614e56928f928d9291906001600160a01b03908116908c161015614e5d5761300c614e3b92613002612ff86104f6565b614e4f614e48858c613b53565b8093612f23565b528d612f23565b5090614ded565b61300c614e3b9293612fed565b919e929190508815614eb8578c8a614ea0614e86898b866150c7565b955b868d15614ead57614e9a908c876157e9565b90613b53565b9e50509c9e919290614e07565b614e9a90868d6157ad565b8c8a614ea0614ec889858c615084565b95614e88565b614dce614dc6614eed9362ffffff614ee7941688614ca0565b85614862565b614dd9565b89614862565b614d5a83614d4d565b929190614f0c612e36565b508115614f9b57925b8115614f955750614f2660c861530a565b915b8260020b8460020b81811215614f8057505061038e929161300c91614f4c86614230565b91614f5685614230565b9015614f7157614f65926150c7565b91613002612ff86104f6565b614f7a92615084565b91612fed565b63352d1ec160e11b5f5260045260245260445ffd5b91614f28565b50614fa660c86152f8565b92614f15565b905f8212614fb657565b6393dafdf160e01b5f5260045ffd5b9091906001600160a01b038116614ff257505f808080614fe694865af11590565b614fed5750565b6158ea565b6040805163a9059cbb60e01b81526001600160a01b039094166004850152602484019290925291905f9060208260448582885af13d15601f3d116001855114161716928281528260208201520152156150485750565b6001600160a01b031661587d565b6345c3193d60e11b5f5260020b60045260245ffd5b6001600160a01b03918216908216039190821161150557565b61038e926150bc9290916001600160a01b03808316908216116150c1575b6001600160a01b03916150b5919061506b565b1690614bd1565b615953565b906150a2565b61038e926150bc929091906001600160a01b0380821690831611615115575b61510e6150ff6001600160a01b03838116908516614c57565b926001600160a01b039261506b565b1691614ca0565b906150e6565b909193926151288361578d565b6001810180911161150557604051631afeb18d60e11b81526004810191909152600260248201525f816044816001600160a01b0387165afa9081156108b0575f916151de575b506040602082015191015190615185878686615a4d565b97909361519e615196828989615a4d565b989097614a29565b5050905060020b9160020b82125f146151bb575050505003920390565b95979593949360020b136151d157505003920390565b9593929095030393030390565b6151f291503d805f833e6147d98183610495565b5f61516e565b634e487b7160e01b5f52601260045260245ffd5b6101f48102908082046101f4149015171561150557612710900490565b61186a81029080820461186a149015171561150557612710900490565b607d810290808204607d149015171561150557612710900490565b60020b9060020b90811561528357627fffff1981145f19831416611505570590565b6151f8565b905f8260020b125f146152a7576152a28161038e93615261565b614830565b6152a2816152c06152bb8261038e9661489a565b614847565b615261565b905f8260020b125f146152eb576152a2816152c06152e68261038e96614862565b61487f565b6152a28161038e93615261565b61038e906152a281620d89e719615261565b61038e906152a281620d89e8615261565b90919015615343575f8260020b125f146152eb576152a2816152c06152e68261038e96614862565b5f8260020b125f146152a7576152a28161038e93615261565b5f8112614fb6576001600160801b038113614fb6576001600160801b031690565b9161538b9195949395615432565b9091908015615424576001600160801b0386945b82156154145760208501516001600160a01b03165b97831561540c5750945b16806153cb575050505090565b9161038e9493916153e16153fd94600f0b6149eb565b92604051936153f1602086610495565b5f8552600f0b92615558565b6001600160801b031690613068565b9050946153be565b84516001600160a01b03166153b4565b6001600160801b038461539f565b9061543b61144c565b5081516001600160a01b03908116919081168211156154f55790613b0e906154e5835b60208601516001600160a01b0386811692169190911495906154db9062ffffff166154cf6154a46060615495604087015160020b90565b9501516001600160a01b031690565b956154bf6154b06104b6565b6001600160a01b03909a168a52565b6001600160a01b03166020890152565b62ffffff166040870152565b60020b6060850152565b6001600160a01b03166080830152565b6001600160a01b0391821691613b0e91908116906154e59061545e565b61038e939261552482610120946106b9565b8051151560a0830152602081015160c0830152604001516001600160a01b031660e082015261010081018290520190610a9b565b936155b794602092949394855f1461560e575f6401000276a4915b61559a61557e6104f6565b8915158152938488018990526001600160a01b03166040850152565b604051633cf3645360e21b81529889958694859360048501615512565b03926001600160a01b03165af19283156108b0575f936155eb575b505f13901515145f146155e557600f0b90565b60801d90565b5f9193506156079060203d602011612851576128428183610495565b92906155d2565b5f73fffd8963efd1fc6a506488495d951d5263988d2591615573565b908160209103126101e8575160028110156101e85790565b6040516301ffc9a760e01b81526303fd27d560e31b60048201526001600160a01b0382169190602081602481865afa9081156108b0575f916156ef575b5061569c5761568e9150615b08565b15615697575f90565b600190565b506020600491604051928380926303fd27d560e31b82525afa9081156108b0575f916156c6575090565b61038e915060203d6020116156e8575b6156e08183610495565b81019061562a565b503d6156d6565b615708915060203d6020116108a95761089b8183610495565b5f61567f565b93949296959061571c61144c565b5061573a906001600160a01b03898116151591908416151590615b58565b96858851916157499287615c36565b602087015161575a915f9186615c36565b606086015161576b915f9185615c36565b8260808601519161577c9284615c36565b6040840151916104c5925f92615c36565b604051602081019182526006604082015260408152611818606082610495565b6001600160a01b0391821691160360ff81901d90810118906001906001600160801b03166157db8382614c57565b928260601b91091515160190565b91906001600160a01b0380821690841611615877575b6001600160a01b03831691821561586b5760601b6fffffffffffffffffffffffffffffffff60601b16926001600160a01b03828116929190910316615845828286614ca0565b938215615283570961585d575b808206151591040190565b906001019081615852575f80fd5b62bfc9215f526004601cfd5b916157ff565b6040516390bfb86560e01b81526001600160a01b03909116600482015263a9059cbb60e01b60248201526080604482015260a03d601f01601f191690810160648301523d60848301523d5f60a484013e808201600460a482015260c4633c9fd93960e21b91015260e40190fd5b6040516390bfb86560e01b81526001600160a01b0390911660048201525f602482018190526080604483015260a03d601f01601f191690810160648401523d6084840152903d9060a484013e808201600460a482015260c4633d2cec6f60e21b91015260e40190fd5b906001600160801b03821691820361596757565b60405162461bcd60e51b81526020600482015260126024820152716c6971756964697479206f766572666c6f7760701b6044820152606490fd5b6159aa9061578d565b60068101809111611505576040519060208201928352604082015260408152611818606082610495565b6020818303126101e8578051906001600160401b0382116101e857019080601f830112156101e8578151615a07816113ab565b92615a156040519485610495565b81845260208085019260051b8201019283116101e857602001905b828210615a3d5750505090565b8151815260209182019101615a30565b929190615a599061578d565b926004840180941161150557615a985f92615ac39560405190602082019260020b8352604082015260408152615a90606082610495565b519020613b45565b604051631afeb18d60e11b815260048101919091526002602482015293849190829081906044820190565b03916001600160a01b03165afa9182156108b0575f92615aec575b506040602083015192015190565b615b019192503d805f833e6147d98183610495565b905f615ade565b6040516361aa5eb760e11b815290602090829060049082906001600160a01b03165afa9081615b3b575b50615697575f90565b615b539060203d602011612851576128428183610495565b615b32565b92916001600160801b03615b6a61144c565b9416908115615c025715615bf8576109c48102918183046109c4148215171561150557612710615be893045b855215615bef57615be0615ba98261520c565b60208601908152615be0615bbc84615229565b9160608801928352615be0615bd086615246565b9560808a01968752895190613046565b905190613046565b6040830152565b615be05f615ba9565b615be8915f615b96565b505050565b3d15615c31573d90615c1882611586565b91615c266040519384610495565b82523d5f602084013e565b606090565b9192909283158015615d5c575b615d565783906001600160a01b038416615ca5575f918291829182916001600160a01b03165af1615c72615c07565b5015615c7d57505050565b6001600160a01b038116615c9a57630db2c7f160e31b5f5260045ffd5b6104c5925f92615c36565b60405163a9059cbb60e01b602082019081526001600160a01b039092166024820152604480820196909652948552615d0a935f9350839250615ce8606487610495565b94516001600160a01b03909516949082865af1615d03615c07565b9083615d6d565b8051908115159182615d3b575b5050615d205750565b635274afe760e01b5f526001600160a01b031660045260245ffd5b615d4e92506020809183010191016114ad565b155f80615d17565b50505050565b506001600160a01b03811615615c43565b90615d915750805115615d8257805190602001fd5b630a12f52160e11b5f5260045ffd5b81511580615dc2575b615da2575090565b639996b31560e01b5f9081526001600160a01b0391909116600452602490fd5b50803b15615d9a56fea26469706673582212207e8ee9b74389a7d4a739d2f12f288b7aa1db9b987d0b4337032876b4b2ff6b7964736f6c634300081c0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf30000000000000000000000000000000000000000000000000000000000000080000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d200000000000000000000000000000000000000000000000000000000000000020000000000000000000000006ff5693b99212da76ad316178a184ab56d299b430000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc

-----Decoded View---------------
Arg [0] : poolManager_ (address): 0x498581fF718922c3f8e6A244956aF099B2652b2b
Arg [1] : coinVersionLookup_ (address): 0x777777751622c0d3258f214F9DF38E35BF45baF3
Arg [2] : trustedMessageSenders_ (address[]): 0x6fF5693b99212Da76ad316178A184AB56D299b43,0x7C5f5A4bBd8fD63184577525326123B519429bDc
Arg [3] : upgradeGate_ (address): 0xD88f6BdD765313CaFA5888C177c325E2C3AbF2D2

-----Encoded View---------------
7 Constructor Arguments found :
Arg [0] : 000000000000000000000000498581ff718922c3f8e6a244956af099b2652b2b
Arg [1] : 000000000000000000000000777777751622c0d3258f214f9df38e35bf45baf3
Arg [2] : 0000000000000000000000000000000000000000000000000000000000000080
Arg [3] : 000000000000000000000000d88f6bdd765313cafa5888c177c325e2c3abf2d2
Arg [4] : 0000000000000000000000000000000000000000000000000000000000000002
Arg [5] : 0000000000000000000000006ff5693b99212da76ad316178a184ab56d299b43
Arg [6] : 0000000000000000000000007c5f5a4bbd8fd63184577525326123b519429bdc

🤖 Code Reader Beta

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

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

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

Validator Index Block Amount
View All Withdrawals

Transaction Hash Block Value Eth2 PubKey Valid
View All Deposits
0xC8d077444625eB300A427a6dfB2b1DBf9b159040
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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