ETH Price: $2,483.43 (-1.61%)

Contract

0xCf4d29f14Cc585DDd1167F956092852AF844e040
 

Overview

ETH Balance

4.063680142610288019 ETH

Eth Value

$10,091.87 (@ $2,483.43/ETH)

Token Holdings

More Info

Private Name Tags

TokenTracker

Multichain Info

No addresses found
Transaction Hash
Method
Block
From
To
Withdraw Pending259707702026-09-13 20:00:354 hrs ago1789329635IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000010250.20676544
Claim Many259707682026-09-13 20:00:114 hrs ago1789329611IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000040470.20404499
Withdraw Pending259707262026-09-13 19:51:475 hrs ago1789329107IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000107692.06139825
Claim Many259707242026-09-13 19:51:235 hrs ago1789329083IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000839772.0571284
Approve259695922026-09-13 16:04:238 hrs ago1789315463IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000030370.66079563
Approve259693272026-09-13 15:11:239 hrs ago1789312283IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000017230.66265414
Approve259693262026-09-13 15:11:119 hrs ago1789312271IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000030490.66443253
Approve259679362026-09-13 10:32:4714 hrs ago1789295567IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000006360.1385789
Approve259666632026-09-13 6:17:4718 hrs ago1789280267IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000094032.04547311
Approve259657732026-09-13 3:18:5921 hrs ago1789269539IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000030230.65802208
Approve259587902026-09-12 3:58:4744 hrs ago1789185527IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000029730.64673347
Withdraw Pending259541992026-09-11 12:35:472 days ago1789130147IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000024320.49052377
Claim Many259541962026-09-11 12:35:112 days ago1789130111IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.00004820.2303905
Approve259540842026-09-11 12:12:352 days ago1789128755IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000030960.67483245
Approve259538482026-09-11 11:25:232 days ago1789125923IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000032360.70437923
Approve259536202026-09-11 10:39:472 days ago1789123187IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000030180.65648926
Withdraw Pending259526712026-09-11 7:29:352 days ago1789111775IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000003440.06949376
Claim Many259526692026-09-11 7:29:112 days ago1789111751IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000152340.06017275
Withdraw Pending259526632026-09-11 7:27:592 days ago1789111679IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000007460.15045524
Claim Many259526602026-09-11 7:27:232 days ago1789111643IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000445620.15634556
Approve259505372026-09-11 0:21:233 days ago1789086083IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000028060.60669113
Claim Many259491052026-09-10 19:32:593 days ago1789068779IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000616382.05674759
Approve259482722026-09-10 16:45:593 days ago1789058759IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.00010282.23622549
Approve259481682026-09-10 16:25:113 days ago1789057511IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000044340.95851405
Approve259471692026-09-10 13:04:353 days ago1789045475IN
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0 ETH0.000068291.48624234
View all transactions

Latest 25 internal transactions (View All)

Advanced mode:
Parent Transaction Hash Method
Block
From
To
Transfer259707702026-09-13 20:00:354 hrs ago1789329635
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.0010179 ETH
Transfer259707262026-09-13 19:51:475 hrs ago1789329107
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00173478 ETH
Transfer259707242026-09-13 19:51:235 hrs ago1789329083
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00123554 ETH
Transfer259696502026-09-13 16:15:598 hrs ago1789316159
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.04122213 ETH
Transfer259643912026-09-12 22:41:5926 hrs ago1789252919
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00457253 ETH
Transfer259625032026-09-12 16:22:4732 hrs ago1789230167
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.04455436 ETH
Transfer259541992026-09-11 12:35:472 days ago1789130147
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00009235 ETH
Transfer259541962026-09-11 12:35:112 days ago1789130111
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.0000393 ETH
Transfer259526712026-09-11 7:29:352 days ago1789111775
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.0031712 ETH
Transfer259526632026-09-11 7:27:592 days ago1789111679
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00353156 ETH
Transfer259526602026-09-11 7:27:232 days ago1789111643
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00563792 ETH
Transfer259491052026-09-10 19:32:593 days ago1789068779
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00120403 ETH
Transfer259474972026-09-10 14:10:233 days ago1789049423
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00898713 ETH
Transfer259466962026-09-10 11:29:473 days ago1789039787
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00836581 ETH
Transfer259466922026-09-10 11:28:593 days ago1789039739
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00104937 ETH
Transfer259453222026-09-10 6:53:113 days ago1789023191
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00898226 ETH
Transfer259453092026-09-10 6:50:353 days ago1789023035
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.01213445 ETH
Transfer259412472026-09-09 17:16:114 days ago1788974171
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00770492 ETH
Transfer259384582026-09-09 7:55:474 days ago1788940547
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00013269 ETH
Transfer259384562026-09-09 7:55:234 days ago1788940523
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00795325 ETH
Transfer259351812026-09-08 20:57:475 days ago1788901067
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.02705156 ETH
Transfer259335962026-09-08 15:39:355 days ago1788881975
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.01945493 ETH
Transfer259314102026-09-08 8:19:235 days ago1788855563
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00700842 ETH
Transfer259314042026-09-08 8:18:115 days ago1788855491
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.00786757 ETH
Transfer259314022026-09-08 8:17:475 days ago1788855467
0xCf4d29f14Cc585DDd1167F956092852AF844e040
0.01739548 ETH
View All Internal Transactions
Loading...
Loading
Loading...
Loading
Cross-Chain Transactions

Block Transaction Difficulty Gas Used Reward
View All Blocks Produced

Validator Index Block Amount
View All Withdrawals

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

Contract Name

PrismHookV2

Compiler Version
v0.8.26+commit.8a97fa7a
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":"address","name":"_owner","type":"address"},{"internalType":"address","name":"_posm","type":"address"},{"internalType":"address","name":"_permit2","type":"address"},{"internalType":"address","name":"_migrationVault","type":"address"},{"internalType":"uint256","name":"_migrationAmount","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"AllowanceOverflow","type":"error"},{"inputs":[],"name":"AllowanceUnderflow","type":"error"},{"inputs":[],"name":"AlreadyInitialized","type":"error"},{"inputs":[],"name":"AlreadySeeded","type":"error"},{"inputs":[],"name":"BadMigration","type":"error"},{"inputs":[],"name":"ExcludedRecipient","type":"error"},{"inputs":[],"name":"HookNotImplemented","type":"error"},{"inputs":[],"name":"InsufficientAllowance","type":"error"},{"inputs":[],"name":"InsufficientBalance","type":"error"},{"inputs":[],"name":"InvalidPermit","type":"error"},{"inputs":[],"name":"InvalidTokenId","type":"error"},{"inputs":[],"name":"MirrorOnly","type":"error"},{"inputs":[],"name":"NewOwnerIsZeroAddress","type":"error"},{"inputs":[],"name":"NoHandoverRequest","type":"error"},{"inputs":[],"name":"NotOwnerOrApproved","type":"error"},{"inputs":[],"name":"NotPoolManager","type":"error"},{"inputs":[],"name":"NotSeeded","type":"error"},{"inputs":[],"name":"Permit2AllowanceIsFixedAtInfinity","type":"error"},{"inputs":[],"name":"PermitExpired","type":"error"},{"inputs":[],"name":"Reentrancy","type":"error"},{"inputs":[],"name":"SelfTransferDisallowed","type":"error"},{"inputs":[],"name":"TotalSupplyOverflow","type":"error"},{"inputs":[],"name":"TransferToZero","type":"error"},{"inputs":[],"name":"Unauthorized","type":"error"},{"inputs":[],"name":"UnauthorizedInitialize","type":"error"},{"inputs":[],"name":"ZeroAddress","type":"error"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"spender","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"},{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethOut","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prismOut","type":"uint256"}],"name":"Claimed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prismAmount","type":"uint256"}],"name":"FeesForfeited","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"ethGained","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prismGained","type":"uint256"}],"name":"FeesPoked","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"NFTBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"NFTMinted","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverCanceled","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"pendingOwner","type":"address"}],"name":"OwnershipHandoverRequested","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"oldOwner","type":"address"},{"indexed":true,"internalType":"address","name":"newOwner","type":"address"}],"name":"OwnershipTransferred","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prismAmount","type":"uint256"}],"name":"PendingCredited","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"ethAmount","type":"uint256"},{"indexed":false,"internalType":"uint256","name":"prismAmount","type":"uint256"}],"name":"PendingWithdrawn","type":"event"},{"anonymous":false,"inputs":[],"name":"PokeCollectFailed","type":"event"},{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"PrismFeeBurned","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"uint256","name":"posmTokenId","type":"uint256"},{"indexed":false,"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"indexed":false,"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"Seeded","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[],"name":"BURN_SINK","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"DOMAIN_SEPARATOR","outputs":[{"internalType":"bytes32","name":"result","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"MIGRATION_VAULT","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PERMIT2","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POOL_FEE","outputs":[{"internalType":"uint24","name":"","type":"uint24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"POSM","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"PRISM_BURN_BPS","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"SUPPLY","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"TICK_SPACING","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"UNIT","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accFeesPerShareETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"accFeesPerSharePRISM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct 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":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"}],"name":"allowance","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"approve","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"sender","type":"address"},{"components":[{"internalType":"Currency","name":"currency0","type":"address"},{"internalType":"Currency","name":"currency1","type":"address"},{"internalType":"uint24","name":"fee","type":"uint24"},{"internalType":"int24","name":"tickSpacing","type":"int24"},{"internalType":"contract IHooks","name":"hooks","type":"address"}],"internalType":"struct PoolKey","name":"key","type":"tuple"},{"components":[{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"int256","name":"liquidityDelta","type":"int256"},{"internalType":"bytes32","name":"salt","type":"bytes32"}],"internalType":"struct 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":"cancelOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"claim","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256[]","name":"tokenIds","type":"uint256[]"}],"name":"claimMany","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"completeOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"decimals","outputs":[{"internalType":"uint8","name":"","type":"uint8"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"forfeitNextCollection","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"getHookPermissions","outputs":[{"components":[{"internalType":"bool","name":"beforeInitialize","type":"bool"},{"internalType":"bool","name":"afterInitialize","type":"bool"},{"internalType":"bool","name":"beforeAddLiquidity","type":"bool"},{"internalType":"bool","name":"afterAddLiquidity","type":"bool"},{"internalType":"bool","name":"beforeRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidity","type":"bool"},{"internalType":"bool","name":"beforeSwap","type":"bool"},{"internalType":"bool","name":"afterSwap","type":"bool"},{"internalType":"bool","name":"beforeDonate","type":"bool"},{"internalType":"bool","name":"afterDonate","type":"bool"},{"internalType":"bool","name":"beforeSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterSwapReturnDelta","type":"bool"},{"internalType":"bool","name":"afterAddLiquidityReturnDelta","type":"bool"},{"internalType":"bool","name":"afterRemoveLiquidityReturnDelta","type":"bool"}],"internalType":"struct Hooks.Permissions","name":"p","type":"tuple"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"globalTickLower","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"globalTickUpper","outputs":[{"internalType":"int24","name":"","type":"int24"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"}],"name":"handleNFTApprove","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"},{"internalType":"address","name":"caller","type":"address"}],"name":"handleNFTSetApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"caller","type":"address"}],"name":"handleNFTTransfer","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"hookPositionTokenId","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mirror","outputs":[{"internalType":"contract PrismMirror","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nftBalanceOf","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"nftGetApproved","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"o","type":"address"},{"internalType":"address","name":"s","type":"address"}],"name":"nftIsApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"nftOwnerOf","outputs":[{"internalType":"address","name":"o","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"nftTokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"nonces","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"}],"name":"ownedTokensOf","outputs":[{"internalType":"uint256[]","name":"ids","type":"uint256[]"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"result","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"pendingOwner","type":"address"}],"name":"ownershipHandoverExpiresAt","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingETH","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"pendingFees","outputs":[{"internalType":"uint256","name":"owedETH","type":"uint256"},{"internalType":"uint256","name":"owedPRISM","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"pendingPRISM","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner","type":"address"},{"internalType":"address","name":"spender","type":"address"},{"internalType":"uint256","name":"value","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"permit","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"pokeFees","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"poolManager","outputs":[{"internalType":"contract IPoolManager","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"renounceOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"requestOwnershipHandover","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"},{"internalType":"int24","name":"tickLower","type":"int24"},{"internalType":"int24","name":"tickUpper","type":"int24"},{"internalType":"uint128","name":"liquidity","type":"uint128"}],"name":"seed","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"seedOf","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"seeded","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"max","type":"uint256"}],"name":"syncNFTs","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"totalShares","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"result","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transfer","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"amount","type":"uint256"}],"name":"transferFrom","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"transferOwnership","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"withdrawPending","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"recipient","type":"address"}],"name":"withdrawPendingTo","outputs":[],"stateMutability":"nonpayable","type":"function"},{"stateMutability":"payable","type":"receive"}]
610120806040523461043a5760c081617a5880380380916100208285610668565b83398101031261043a5780516001600160a01b0381169081810361043a5761004a6020840161068b565b926100576040820161068b565b926100646060830161068b565b9460a06100736080850161068b565b9301516080949094526040516101c081016001600160401b038111828210176104f95760019160e0916040525f60208201525f60408201525f60608201525f60808201525f60a08201525f60c08201525f6101008201525f6101208201525f6101408201525f6101608201525f6101808201525f6101a082015282815201526120003016151560011480159061065b575b801561064e575b8015610641575b8015610634575b8015610627575b801561061b575b801561060b575b80156105ff575b80156105f3575b80156105e7575b80156105db575b80156105cf575b80156105c3575b6105b0576001600160a01b03168015801561059f575b801561058e575b8015610586575b6105775769010f0cf064dd59200000841161050d57831580159290610558576001600160a01b0384168015918215610545575b8215610532575b8215610528575b50811561051c575b5061050d575b60a085905260c0869052610100839052604051610deb808201906001600160401b038211838310176104f9576020918391616c0d83393081520301905ff0801561042f5760e05280638b78c6d819555f7f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08180a31561045f578161024e916106b6565b69010f0cf064dd592000000369010f0cf064dd59200000811161044b5761027590306106b6565b6001600160a01b038216916e22d473030f116ddee9f6b43ac78ba383186001171561043e57602052637f5e9f203060601b17600c525f196034600c20555f195f52602c5160601c307f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3813b1561043a576040516387517c4560e01b81523060048201526001600160a01b03909116602482015269010f0cf064dd59200000604482015265ffffffffffff6064820152905f908290608490829084905af1801561042f5761041f575b60405161530e90816118ff8239608051818181610601015281816106d00152818161076b01528181610ba601528181610ced015281816129f101528181612a5001528181612b4a0152818161300d01528181613d270152818161439401526143db015260a0518181816103fe0152818161357201528181613e0a0152614318015260c051818181612aa801526142e5015260e05181818161046001528181610d7801528181612c0701528181612dde015281816142b5015281816144220152818161485a01526150d5015261010051818181610f2501526143570152f35b5f61042991610668565b5f610341565b6040513d5f823e3d90fd5b5f80fd5b633f68539a5f526004601cfd5b634e487b7160e01b5f52601160045260245ffd5b50506805345cdf77eb68f44c5469010f0cf064dd5920000081019081106104ec576805345cdf77eb68f44c556387a211a2600c52305f526020600c2069010f0cf064dd59200000815401905569010f0cf064dd59200000602052600c5160601c5f5f80516020617a18833981519152602080a36104e769010f0cf064dd59200000305f610735565b610275565b63e5cfe9575f526004601cfd5b634e487b7160e01b5f52604160045260245ffd5b630ddc056b60e21b5f5260045ffd5b61dead9150145f6101c5565b811491505f6101bd565b6001600160a01b038916821492506101b6565b6001600160a01b038816821492506101af565b506001600160a01b038316156101cb57630ddc056b60e21b5f5260045ffd5b63d92e233d60e01b5f5260045ffd5b50811561017c565b506001600160a01b03861615610175565b506001600160a01b0385161561016e565b630732d7b560e51b5f523060045260245ffd5b50600130161515610158565b50600230161515610151565b5060043016151561014a565b50600830161515610143565b5060103016151561013c565b50602030161515610135565b506040301615156001141561012e565b50608030161515610127565b5061010030161515610120565b5061020030161515610119565b5061040030161515610112565b506108003016151561010b565b5061100030161515610104565b601f909101601f19168101906001600160401b038211908210176104f957604052565b51906001600160a01b038216820361043a57565b9190820391821161044b57565b5f91031261043a57565b906805345cdf77eb68f44c54918183019283106104ec57610715926805345cdf77eb68f44c556387a211a2600c52805f526020600c2082815401905581602052600c5160601c5f5f80516020617a18833981519152602080a35f610735565b565b8115610721570490565b634e487b7160e01b5f52601260045260245ffd5b9190917f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5c61081c5761076781610821565b1561077184610821565b15905f938280610806575b6107c5575b5080806107be575b1561079a5750509161071592610993565b156107aa575061071592506108de565b90506107b5575b5050565b610715916108de565b5081610789565b6107ff919450670de0b6b3a76400006107f86107ee886387a211a2600c525f526020600c205490565b928284049361069f565b049061069f565b925f610781565b506001600160a01b03868116908516141561077c565b505050565b6001600160a01b031680159081156108c9575b81156108bf575b81156108a9575b811561089d575b8115610888575b8115610873575b8115610861575090565b60e0516001600160a01b031614919050565b60c0516001600160a01b031681149150610857565b60a0516001600160a01b031681149150610850565b61dead81149150610849565b610100516001600160a01b031681149150610842565b308114915061083b565b6080516001600160a01b031681149150610834565b90670de0b6b3a76400006108ff836387a211a2600c525f526020600c205490565b6001600160a01b0384165f9081526009602052604090205463ffffffff169190048181111561095557906109329161069f565b9080821161094d575b50610944610fd8565b61071591611014565b90505f61093b565b81819293501161096457505050565b61096d9161069f565b905f5b8281101561081c5760019061098d61098784610db0565b84610e11565b01610970565b9291906387a211a2600c52835f52670de0b6b3a76400006020600c2054046387a211a2600c52815f52610a49670de0b6b3a76400006020600c2054049160018060a01b03871690815f52600960205263ffffffff60405f2054169060018060a01b03861691825f52600960205263ffffffff60405f205416918082115f14610d8f57610a1e9161069f565b945b81811115610d8357610a4f91610a359161069f565b945b85811015610d7957809485809261069f565b9561069f565b95808711610d71575b5085610d64575b5f5b838110610a9d57505050505f5b818110610a82575050610715929350611014565b600190610a97610a9188610db0565b88610e11565b01610a6e565b610aa689610db0565b90610ab1828b6111c3565b610ad8600554600654908490815f52600a60205260405f20555f52600b60205260405f2055565b610b60610af7835f52600760205263ffffffff60405f205460a01c1690565b855f526009602052610b1263ffffffff60405f205416610d98565b9063ffffffff8216908d63ffffffff821692808403610ca2575b506001600160a01b03165f908152600960205260409020805463ffffffff191663ffffffff94909416939093179092555050565b5f838152600960209081526040808320546001600160a01b038b16845260088352818420600382901c631fffffff168552909252909120805463ffffffff85811660e0600586901b1690811b9082901b1990921691909117909155600191165f8481526007602052604090206001600160a01b038a1660a083901b63ffffffff60a01b161790550163ffffffff811161044b576001600160a01b0388165f908152600960205260409020805463ffffffff191663ffffffff929092169190911790555f828152600e6020526040902080546001600160a01b031916905560e0516001600160a01b031691823b1561043a575f926064849260405195869384926323de665160e01b84528a600485015289602485015260448401525af191821561042f57600192610c92575b5001610a61565b5f610c9c91610668565b5f610c8b565b610d5b93610d32610ce763ffffffff93859063ffffffff9160018060a01b03165f52600860205260405f208160031c5f5260205260e060405f20549160051b161c1690565b6001600160a01b0385165f908152600860209081526040808320600387901c84529091529020805463ffffffff60059590951b60e01685811b19909116948316901b93909317909255565b169190915f52600760205263ffffffff60a01b9060a01b169060018060a01b03161760405f2055565b5f808d81610b2c565b610d6c610fd8565b610a5f565b95505f610a58565b859485809261069f565b5050610a4f5f94610a37565b50505f94610a20565b63ffffffff5f199116019063ffffffff821161044b57565b610e0d63ffffffff9160018060a01b0381165f52600960205282610dd98160405f205416610d98565b1663ffffffff9160018060a01b03165f52600860205260405f208160031c5f5260205260e060405f20549160051b161c1690565b1690565b610e1b82826111c3565b610e37825f52600760205263ffffffff60405f205460a01c1690565b610eaf5f9160018060a01b03841693845f526009602052610e6163ffffffff60405f205416610d98565b9163ffffffff8316908263ffffffff821692808403610f8a575b505050506001600160a01b03165f908152600960205260409020805463ffffffff191663ffffffff92909216919091179055565b5f838152600760209081526040808320839055600a8252808320839055600b8252808320839055600e909152902080546001600160a01b0319169055600480545f19019081905515610f78575b60e0516001600160a01b031690813b1561043a575f80926064604051809581936323de665160e01b83528860048401528160248401528960448401525af1801561042f57610f59575b5f805160206179f8833981519152915080a3565b505f610f6491610668565b5f805160206179f88339815191525f610f45565b61010061ff00195f5416175f55610efc565b610fcf93610d32610ce763ffffffff93859063ffffffff9160018060a01b03165f52600860205260405f208160031c5f5260205260e060405f20549160051b161c1690565b5f808281610e7b565b60ff5f541615801561100a575b61071557608051610ffe906001600160a01b03166112d7565b610715576107156114f9565b5060045415610fe5565b9060808110156111a0575b5f5b81811061102d57505050565b60016003540190816003555f80516020617a388339815191525c1561118b575b6001600160a01b0384165f81815260096020908152604080832080548785526007845282852060a082901b63ffffffff60a01b168717905585855260088452828520600382901c631fffffff1686528452828520805463ffffffff808b1660e0600586811b9190911691821b9183901b1990931617909255835463ffffffff19169282166001019091169190911790915554600654878552600a845282852091909155600b909252909120559160048054600101905560e0516001600160a01b031692833b1561043a575f80946064604051809781936323de665160e01b83528160048401528660248401528760448401525af193841561042f5760019461117b575b507f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80405f80a301611021565b5f61118591610668565b5f611150565b815f80516020617a388339815191525d61104d565b50608061101f565b90603c820180921161044b57565b9190820180921161044b57565b5f80516020617a388339815191525c80151590816112cc575b506107b15764e8d4a5100061121c81611204600554865f52600a60205260405f20549061069f565b0493600654905f52600b60205260405f20549061069f565b049082159081806112c4575b6112be577fe992e5edd2a9058442e44178788b99aee673ab9ac3f4220f33a463e8614bf2359260409215611299575b80611274575b825194855260208501526001600160a01b031692a2565b60018060a01b0382165f52600d602052825f206112928282546111b6565b905561125d565b60018060a01b0382165f52600c602052825f206112b78682546111b6565b9055611257565b50505050565b508215611228565b90508210155f6111dc565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa90811561042f575f91611334575b50151590565b90506020813d60201161135e575b8161134f60209383610668565b8101031261043a57515f61132e565b3d9150611342565b604051606091906113778382610668565b6002815291601f1901825f5b82811061138f57505050565b806060602080938501015201611383565b604051906113af602083610668565b5f8252565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b60a090611401939281525f60208201525f60408201525f606082015281608082015201906113b4565b90565b8051156114115760200190565b634e487b7160e01b5f52603260045260245ffd5b8051600110156114115760400190565b90611448906040835260408301906113b4565b906020818303910152815180825260208201916020808360051b8301019401925f915b83831061147a57505050505090565b9091929394602080611498600193601f1986820301875289516113b4565b9701930193019193929061146b565b9291906114be6020916040865260408601906113b4565b930152565b9064e8d4a5100082029180830464e8d4a51000149015171561044b57565b906107d08202918083046107d0149015171561044b57565b61150b6115075f5460ff1690565b1590565b8015611888575b6107155760805161152b906001600160a01b03166112d7565b6107155747611547306387a211a2600c525f526020600c205490565b604051600160f81b6020820152601160f81b602182015290919061157881602281015b03601f198101835282610668565b611580611366565b6001546115a161158e6113a0565b9161156a604051938492602084016113d8565b6115aa82611404565b526115b481611404565b50604080515f60208201523091810182905260608101919091526115db816080810161156a565b6115e482611425565b526115ee81611425565b5060a051611629906116169061160a906001600160a01b031681565b6001600160a01b031690565b9261156a60405193849260208401611435565b611632426111a8565b823b1561043a5761165c925f928360405180968195829463dd46508f60e01b8452600484016114a7565b03925af1908161186e575b506116945750507fcd884f846d743431d3327566b7bdf8979b1b06eead9ecf708609a77d0b74a3405f80a1565b476116ac306387a211a2600c525f526020600c205490565b9180821115611865576116be9161069f565b915b8082111561185d576116d19161069f565b5f5460081c60ff161561173b576116ec61ff00195f54165f55565b8115801590611732575b6116fe575050565b6040805192835260208301919091527f6b77c11fc762906f0ec8885ad6c798f4b9edcacd913cd97e1bca70693ba8d5ec91a1565b508015156116f6565b8115801580611839575b821515908161179a575b91611792575b5061175e575050565b6040805192835260208301919091527fc4269297a66dc5f8d6fafdd31a219e089fd656e2942bbfc3cb506ddd6e475d8c91a1565b90505f611755565b6117ae6117a6856114e1565b612710900490565b6117b8818661069f565b90806117fa575b50806117cc575b5061174f565b6117ef6117e76117de6117f4936114c3565b60045490610717565b6006546111b6565b600655565b5f6117c6565b6118078161dead30611892565b6040519081527fa7ed6c38e8a9e616e1f7217dbc14463b6164a0887f4db0395e763e13a958001b90602090a15f6117bf565b61185861185361184b6117de876114c3565b6005546111b6565b600555565b611745565b50505f6116d1565b50505f916116c0565b8061187c5f61188293610668565b806106ac565b5f611667565b5060045415611512565b91906387a211a28360601b17600c526020600c20928354938484116118f1578361071595039055815f526020600c2083815401905582602052600c5160601c60018060a01b0382165f80516020617a18833981519152602080a3610735565b63f4d678b85f526004601cfdfe608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c908162b67e8e146137da5750806305122da0146132c857806306fdde0314613299578063095ea7b3146131fd5780630e313e98146131bf57806318160ddd1461319a57806321d0ee7014612ffa57806323b872dd14613097578063256929621461304e578063259982e514612ffa578063262e14be14612fda5780632eee17b114612fa1578063313ce56714612f8657806332237b0914612f69578063334041a614612f48578063335cc4ff14612f2b5780633644e51514612ea3578063379607f514612e625780633a98ef3914612e455780633c83579314612e0d578063444d917214612dc957806346ca626b14612dae57806348de7dba14612bcb57806354d1f13d14612b87578063575e24b414612af35780635e4807f214612ad75780636afdd85014612a935780636c2bbe7e14612a3d5780636fe7e6eb146129b6578063708fd5f01461299a57806370a0823114612968578063715018a61461291f57806375f4fc3c146112b55780637aa9cd30146111bf5780637b6fa73a146111835780637c5ac7df1461112c5780637ecebe00146110fa5780637edbceb1146110b6578063822ed9131461109e57806382829f74146110635780638da5cb5b14611037578063925489a814610f5457806393396cb114610f1057806395d89b4114610ec557806397c8c68e14610d505780639d8e217714610d2d5780639f063efc14610cd6578063a2b9347814610cab578063a9059cbb14610c0f578063b0377e2d14610beb578063b47b2fb114610b4e578063b6a8b0fa146105ea578063bc8ceca914610ab8578063c4e833ce1461098b578063c50497ae14610966578063d505accf1461079a578063dc4c90d314610755578063dc98354e1461069e578063dd1b9c4a14610681578063dd62ed3e1461064c578063e1b4af69146105ea578063ee399fc0146105cc578063f04e283e1461057e578063f2fde38b1461053f578063fa82b76a1461042d578063fbe8cc42146103e8578063fc52910d146103af578063fee81cf41461037c5763ff5e8dac0361000f573461037957602036600319011261037957600435808252600760205260408220549091906001600160a01b03161561036a576020918152600e8252604060018060a01b0391205416604051908152f35b6307ed98ed60e31b8152600490fd5b80fd5b503461037957602036600319011261037957610396613805565b9063389a75e1600c5252602080600c2054604051908152f35b5034610379576020366003190112610379576020906040906001600160a01b036103d7613805565b168152600c83522054604051908152f35b50346103795780600319360112610379576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b503461037957606036600319011261037957610447613805565b9060243580151580910361053b5761045d61387b565b927f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316903382900361052c57839460018060a01b031691828552600f6020526040852060018060a01b0383165f5260205260405f2060ff1981541660ff8616179055803b15610528578492836064926040519687958694632ae22fdf60e11b8652600486015260018060a01b0316602485015260448401525af1801561051d5761050c5750f35b8161051691613a10565b6103795780f35b6040513d84823e3d90fd5b8480fd5b631074528560e11b8452600484fd5b5080fd5b50602036600319011261037957610554613805565b61055c614171565b8060601b156105715761056e9061499a565b80f35b637448fbae82526004601cfd5b50602036600319011261037957610593613805565b61059b614171565b63389a75e1600c528082526020600c20805442116105bf57908261056e925561499a565b636f5e881883526004601cfd5b50346103795780600319360112610379576020600654604051908152f35b5034610379576004906105fc3661398a565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303925061064091505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b503461037957604036600319011261037957602061067961066b613805565b610673613865565b90614134565b604051908152f35b503461037957806003193601126103795760206040516127108152f35b50346103795760e0366003190112610379576106b8613805565b5060a0366023190112610379576106cd61381b565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610746577f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075c1561073757604051636e4c1aa760e11b8152602090f35b633eadad1960e01b8152600490fd5b63570c108560e11b8152600490fd5b50346103795780600319360112610379576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346103795760e0366003190112610379576107b4613805565b6107bc613865565b604435606435906084359260ff84168403610962576001600160a01b0316936e22d473030f116ddee9f6b43ac78ba385188219151715610955576107fe613bd0565b6020815191012092804211610948576040519160018060a01b03169465383775081901600e5285885260c06020600c20938454937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019788528460408301987fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc68a528b606085019a468c528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988525252888a525260a082015220604e526042602c20885260ff1660205260a43560405260c43560605260208060808960015afa90853d510361093b570190556303faf4f960a51b84176040526034602c20557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a380f35b63ddafbaef88526004601cfd5b631a15a3cc87526004601cfd5b633f68539a86526004601cfd5b8580fd5b5034610379578060031936011261037957602060405169010f0cf064dd592000008152f35b50346103795780600319360112610379576040516101c081018181106001600160401b03821117610aa45791806020926101c09460405283810182815260408201838152606083018481526080840185815260a0850186815260c086019087825260e08701926101008801948986526101208901968a88526101408a01988b8a5260016101608c019b8d8d5261018081019d8e526101a081019e8f5252600187526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b634e487b7160e01b83526041600452602483fd5b503461037957602036600319011261037957610ad2613805565b3068929eee149b4bd212685414610b41573068929eee149b4bd21268556001600160a01b03811615610b3257610b0781614273565b610b2357610b1490614a30565b3868929eee149b4bd212685580f35b6385d5c4b360e01b8252600482fd5b63a38ca3d960e01b8252600482fd5b63ab143c0682526004601cfd5b50346103795761016036600319011261037957610b69613805565b5060a03660231901126103795760603660c319011261037957610144356001600160401b03811161053b57610ba2903690600401613891565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633036107465760409081519063b47b2fb160e01b82526020820152f35b5034610379578060031936011261037957602060025460181c60020b604051908152f35b503461037957604036600319011261037957610c29613805565b602435906387a211a2600c523383526020600c208054808411610c9e5793829184610c9396039055526020600c2082815401905581602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a33361418d565b602060405160018152f35b63f4d678b885526004601cfd5b5034610379576020366003190112610379576040610cca6004356140c2565b82519182526020820152f35b503461037957600490610ce836613921565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330393506106409250505057630a85dc2960e01b8152fd5b50346103795780600319360112610379576020604051670de0b6b3a76400008152f35b5034610e69576060366003190112610e6957610d6a613805565b602435610d7561387b565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633819003610eb6575f828152600760205260409020546001600160a01b0316928315610ea7576001600160a01b0381168414159081610e7c575b50610e6d575f828152600e6020526040902080546001600160a01b0319166001600160a01b038616179055803b15610e6957604051630ad0fe5760e31b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610e5e57610e52575080f35b61001a91505f90613a10565b6040513d5f823e3d90fd5b5f80fd5b636d8a29e760e11b5f5260045ffd5b9050835f52600f60205260405f209060018060a01b03165f5260205260ff60405f205416155f610dda565b6307ed98ed60e31b5f5260045ffd5b631074528560e11b5f5260045ffd5b34610e69575f366003190112610e6957610f0c604051610ee6604082613a10565b6005815264505249534d60d81b6020820152604051918291602083526020830190613841565b0390f35b34610e69575f366003190112610e69576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610e69576020366003190112610e69576004356001600160401b038111610e695736602382011215610e695780600401356001600160401b038111610e69576024820191602436918360051b010111610e69573068929eee149b4bd21268541461102a573068929eee149b4bd2126855610fcd613d05565b5f5b818110610fe4573868929eee149b4bd2126855005b80610ff260019284866140b2565b355f526007602052818060a01b0360405f205416611011575b01610fcf565b61102561101f8285876140b2565b356145c6565b61100b565b63ab143c065f526004601cfd5b34610e69575f366003190112610e6957638b78c6d819546040516001600160a01b039091168152602090f35b34610e69576020366003190112610e69576004355f818152600760205260409020546001600160a01b031615610ea7576106796020916149d7565b34610e69575f366003190112610e695761001a613d05565b34610e69575f366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd21268556110ec33614a30565b3868929eee149b4bd2126855005b34610e69576020366003190112610e6957611113613805565b6338377508600c525f52602080600c2054604051908152f35b34610e69576040366003190112610e6957611145613805565b61114d613865565b9060018060a01b03165f52600f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610e69576020366003190112610e69576004355f908152600760205260409020546001600160a01b03168015610ea757602090604051908152f35b34610e69576020366003190112610e69576111d8613805565b6001600160a01b0381165f9081526009602052604090205463ffffffff169061120082613a31565b9161120e6040519384613a10565b80835261121a81613a31565b602084019290601f19013684375f5b828110611274578385604051918291602083019060208452518091526040830191905f5b81811061125b575050500390f35b825184528594506020938401939092019160010161124d565b63ffffffff61128382846149fc565b169085518110156112a15760019160208260051b8801015201611229565b634e487b7160e01b5f52603260045260245ffd5b34610e69576020366003190112610e69576004355f908152600760205260409020546001600160a01b031615610ea7576112f06004356149d7565b805f1a9061016882029180830461016814901517156126aa5761132660ff61ffff61131f818560011a16614f5b565b1604614f72565b9061ffff6050818360021a1606166096019261ffff84116126aa578160031a61ffff1661012290069161135883614f86565b60405190600483901a6102a061136e8185613a10565b61027184527f3c67207374726f6b653d222366666622207374726f6b652d77696474683d223060208501527f2e3522206f7061636974793d22302e3035223e3c6c696e652078313d223022206040808601919091527f79313d223530222078323d22343030222079323d223530222f3e3c6c696e652060608601527f78313d2230222079313d22313030222078323d22343030222079323d2231303060808601527f222f3e3c6c696e652078313d2230222079313d22313530222078323d2234303060a08601527f222079323d22313530222f3e3c6c696e652078313d2230222079313d2232303060c08601527f222078323d22343030222079323d22323030222f3e3c6c696e652078313d223060e08601527f222079313d22323530222078323d22343030222079323d22323530222f3e3c6c610100808701919091527f696e652078313d2230222079313d22333030222078323d22343030222079323d6101208701527f22333030222f3e3c6c696e652078313d2230222079313d22333530222078323d6101408701527f22343030222079323d22333530222f3e3c6c696e652078313d223530222079316101608701527f3d2230222078323d223530222079323d22343030222f3e3c6c696e652078313d6101808701527f22313030222079313d2230222078323d22313030222079323d22343030222f3e6101a08701527f3c6c696e652078313d22313530222079313d2230222078323d223135302220796101c08701527f323d22343030222f3e3c6c696e652078313d22323030222079313d22302220786101e08701527f323d22323030222079323d22343030222f3e3c6c696e652078313d22323530226102008701527f2079313d2230222078323d22323530222079323d22343030222f3e3c6c696e656102208701527f2078313d22333030222079313d2230222078323d22333030222079323d2234306102408701527f30222f3e3c6c696e652078313d22333530222079313d2230222078323d223335610260870152701811103c991e911a181811179f1e17b39f60791b610280870152905199611681828c613a10565b60cd8b527f3c67207374726f6b653d222366666622207374726f6b652d77696474683d223160208c01527f222066696c6c3d226e6f6e6522206f7061636974793d22302e3435223e3c70616040808d01919091527f746820643d224d31302c3330204c31302c3130204c33302c3130222f3e3c706160608d01527f746820643d224d3337302c3130204c3339302c3130204c3339302c3330222f3e60808d01527f3c7061746820643d224d3339302c333730204c3339302c333930204c3337302c60a08d01527f333930222f3e3c7061746820643d224d33302c333930204c31302c333930204c60c08d01526c189816199b9811179f1e17b39f60991b60e08d0152519261178f9084613a10565b61026c83527f3c706f6c79676f6e20706f696e74733d223232302c313030203333302c32383060208401527f203131302c323830222066696c6c3d226e6f6e6522207374726f6b653d2223666040808501919091527f666622207374726f6b652d77696474683d22302e3522207374726f6b652d646160608501527f736861727261793d22332c3222206f7061636974793d22302e34222f3e3c6c6960808501527f6e652078313d22323030222079313d22313130222078323d223232302220793260a08501527f3d2231303022207374726f6b653d222366666622207374726f6b652d7769647460c08501527f683d22302e3522206f7061636974793d22302e3435222f3e3c6c696e6520783160e08501527f3d22333130222079313d22323930222078323d22333330222079323d22323830838501527f22207374726f6b653d222366666622207374726f6b652d77696474683d22302e610120808601919091527f3522206f7061636974793d22302e3435222f3e3c6c696e652078313d223930226101408601527f202079313d22323930222078323d22313130222079323d2232383022207374726101608601527f6f6b653d222366666622207374726f6b652d77696474683d22302e3522206f706101808601527f61636974793d22302e3435222f3e3c706f6c79676f6e20706f696e74733d22326101a08601527f30302c313130203331302c3239302039302c323930222066696c6c3d226e6f6e6101c08601527f6522207374726f6b653d222366666622207374726f6b652d77696474683d22316101e08601527f2e35222f3e3c636972636c652063783d22323030222063793d223131302220726102008601527f3d2232222066696c6c3d2223666666222f3e3c636972636c652063783d2233316102208601527f30222063793d223239302220723d2232222066696c6c3d2223666666222f3e3c6102408601527f636972636c652063783d22393022202063793d223239302220723d22322220666102608601526b34b6361e9111b3333311179f60a11b61028086015290519290611a9c9084613a10565b8083527f3c6c696e652078313d223230222079313d22323230222078323d22313535222060208401527f79323d2232353022207374726f6b653d222366666622207374726f6b652d776960408401527f6474683d2231222f3e3c67207374726f6b653d222366666622207374726f6b6560608401527f2d77696474683d22302e3522206f7061636974793d22302e36223e3c6c696e6560808401527f2078313d22353022202079313d22323233222078323d22353022202079323d2260a08401527f323333222f3e3c6c696e652078313d22383522202079313d223233312220783260c08401527f3d22383522202079323d22323431222f3e3c6c696e652078313d22313230222060e08401527f79313d22323339222078323d22313230222079323d22323439222f3e3c2f673e90830152611bdb9061ffff16614f9a565b918760081c61ffff16611bed90614f9a565b92604051938491602083017f3c6c696e652078313d22323435222079313d22323530222078323d2233383022905264103c991e9160d91b604084015280516020819201604585015e82016d04440e6e8e4ded6ca7a44d0e6d8560931b604582015281516020819301605383015e01604501600e81017f2c3832252c3632252922207374726f6b652d77696474683d22312e35222f3e00905203600e015f1981018452601f01611c9c9084613a10565b604080517f3c67207374726f6b653d222366666622207374726f6b652d77696474683d22306020820190815272171b911037b830b1b4ba3c9e9118171c1a911f60691b928201929092527f3c6c696e652078313d22323435222079313d22323433222078323d223234352260538201526a103c991e91191a9b91179f60a91b60738201527f3c6c696e652078313d22323338222079313d22323530222078323d2232353222607e8201526a103c991e91191a9811179f60a91b609e820152631e17b39f60e11b60a9820152608d81529490611d7860ad87613a10565b8560018316612856575b505060028116612760575b6004166126be575b6040998a5190611da58c83613a10565b601082526f181899199a1a9b1b9c1ca0a121a222a360811b60208301528b5191611dcf8d84613a10565b60088352601f198d013660208501378251156112a157603060208401538251600110156112a157607860218401535f5b60038110612618575050611e12906151c4565b9561ffff16611e2090614f9a565b8b51968792602084017f3c6720666f6e742d66616d696c793d2275692d6d6f6e6f73706163652c53464d90528d84017f6f6e6f2d526567756c61722c4d656e6c6f2c6d6f6e6f73706163652220666f6e9052606084017f742d73697a653d2239222066696c6c3d222366666622206f7061636974793d2290526518171a9a911f60d11b6080850152608684017f3c7465787420783d2232302220793d22333735223e505249534d202f2f20000090528051602081920160a486015e661e17ba32bc3a1f60c91b60a4918501918201527f3c7465787420783d223338302220793d223337352220746578742d616e63686f60ab82015269723d22656e64223e6e3d60b01b60cb820152815191829060200160d583015e0160a401603181016920202026233935353b3d60b01b905281516020819301603b83015e01603101600a81016837369e17ba32bc3a1f60b91b905260138101631e17b39f60e11b905203600a0160121981018652600d01611f969086613a10565b89517f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f32306020808301919091527f30302f737667222077696474683d2234303022206865696768743d2234303022828d01527f2076696577426f783d22302030203430302034303022207374796c653d22626160608301526e31b5b3b937bab7321d11981818111f60891b60808301527f3c726563742077696474683d2234303022206865696768743d22343030222066608f8301526b34b6361e911198181811179f60a11b60af8301528751919c8d9890929182910160bb8a015e870160bb8101915f83528051926020849201905e0160bb015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01651e17b9bb339f60d11b815203601919810186526006016120eb9086613a10565b60011a61ffff166120fb90614f5b565b61ffff1660ff900461210c90614f72565b9161211690614f86565b9060081c61ffff1661212790614f9a565b91612131906151c4565b9061ffff1661213f90614f9a565b9083519182916020830194605b60f81b8652602184017f7b2274726169745f74797065223a22487565222c2276616c7565223a00000000905280516020819201603d86015e611f4b60f21b603d918501918201527f7b2274726169745f74797065223a225265667261637469766520496e64657822603f8201526916113b30b63ab2911d1160b11b605f8201528151918290602001606983015e01603d0162089f4b60ea1b602c820152602f81017f7b2274726169745f74797065223a22576176656c656e677468222c2276616c7590526332911d1160e11b604f82015281516020819301605383015e636e6d227d60e01b91016053810191909152605d60f81b6057820152036038810182526122599060580182613a10565b612264600435614f9a565b9380606091805180612525575b50505060209460926123c394600194603089600f968a519b8c976f7b226e616d65223a22507269736d202360801b828a0152805191829101858a015e8701907f222c226465736372697074696f6e223a2241206661636574206f662074686520848301527f507269736d207634206c697175696469747920706f6f6c2e200000000000000060508301527f45616368204e4654206973206120312f353030302073686172652c2072656e64606983015275195c995908199d5b1b1e481bdb8b58da185a5b8b888b60521b60898301527f22696d616765223a22646174613a696d6167652f7376672b786d6c3b62617365609f830152620d8d0b60ea1b60bf83015280519283910160c283015e01019061088b60f21b848301526c1130ba3a3934b13aba32b9911d60991b609483015251809260a183015e0101607d60f81b838201520301601e19810185520183613a10565b8160609281519081612438575b610f0c602085612426603d8983519485917f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000828401528051918291018484015e81015f838201520301601f198101845283613a10565b51918291602083526020830190613841565b90929193506003600284010460021b9082517f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106707f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f5260208101928082019260208781860199010194600460038751935f89525b0191603f8351818160121c16515f538181600c1c1651600153818160061c165160025316516003535f5181520190898210156124f5576004906003906124b4565b5094529184018452613d3d60f01b60039095066002048303949094525f909152825290915080612426603d6123d0565b909250600360028298939598010460021b948651977f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106707f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f5260208901878a0190602085818401980101906004600383519a5f85525b0191603f8351818160121c16515f538181600c1c1651600153818160061c165160025316516003535f5181520190888210156125e4576004906003906125a3565b5097905288018852613d3d60f01b60039093066002048603929092525f9094529386529491929190508460926123c3612271565b60208110156112a1578a811a906001600160f81b031961263f600484901c60ff16856152c7565b5116918160011b92828404600214831517156126aa578360020191826002116126aa576003915f1a612671848a6152c7565b536001600160f81b03199061268990600f16876152c7565b511693018091116126aa576126a36001935f1a91876152c7565b5301611dff565b634e487b7160e01b5f52601160045260245ffd5b9261275a605c602080936040519481869251918291018484015e81017f3c636972636c652063783d22333230222063793d223138302220723d22322220838201527f66696c6c3d226e6f6e6522207374726f6b653d222366666622207374726f6b6560408201527f2d77696474683d22302e3522206f7061636974793d22302e37222f3e0000000060608201520301603c810184520182613a10565b92611d95565b93602061284e608c826004946040519481869251918291018484015e81017f3c67207374726f6b653d222366666622207374726f6b652d77696474683d22308382015271171a911037b830b1b4ba3c9e9118171b111f60711b60408201527f3c6c696e652078313d22313535222079313d22323434222078323d223135352260528201526a103c991e91191a9b11179f60a91b60728201527f3c6c696e652078313d22313439222079313d22323530222078323d2231363122607d8201526a103c991e91191a9811179f60a91b609d820152631e17b39f60e11b60a88201520301606c810184520182613a10565b949050611d8d565b612917919296506020607d916040519485915180918484015e81017f3c7061746820643d224d203236352c32353020412031382c3138203020302c30838201527f203235382c323334222066696c6c3d226e6f6e6522207374726f6b653d22236660408201527f666622207374726f6b652d77696474683d22302e3522207374726f6b652d646160608201527f736861727261793d22312c3222206f7061636974793d22302e36222f3e00000060808201520301605d810184520182613a10565b938c80611d82565b5f366003190112610e6957612932614171565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b34610e69576020366003190112610e6957612981613805565b6387a211a2600c525f52602080600c2054604051908152f35b34610e69575f366003190112610e695760206040516107d08152f35b34610e6957610100366003190112610e69576129d0613805565b5060a0366023190112610e69576129e561381b565b506129ee613831565b507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303612a2e57630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610e6957612a4b36613921565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039350612a2e9250505057630a85dc2960e01b5f5260045ffd5b34610e69575f366003190112610e69576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610e69575f366003190112610e6957602060405161dead8152f35b34610e6957610140366003190112610e6957612b0d613805565b5060a0366023190112610e695760603660c3190112610e6957610124356001600160401b038111610e6957612b46903690600401613891565b50507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303612a2e57630a85dc2960e01b5f5260045ffd5b5f366003190112610e695763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b34610e69576080366003190112610e6957612be4613805565b612bec613865565b604435906064356001600160a01b03811690819003610e69577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610eb6573068929eee149b4bd21268541461102a573068929eee149b4bd21268556001600160a01b038216908115612d9f576001600160a01b038516918214612d9057612c7d83614273565b612d81575f848152600760205260409020546001600160a01b0316918215908115612d76575b50610ea757818114159182612d55575b82612d31575b5050610e6d5782612cd7670de0b6b3a76400009383612d0096614735565b60017f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5d614928565b5f7f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5d3868929eee149b4bd2126855005b9091505f52600f60205260405f20905f5260205260ff60405f205416158480612cb9565b5f858152600e60205260409020546001600160a01b03168214159250612cb3565b905082141586612ca3565b6385d5c4b360e01b5f5260045ffd5b635582b29b60e11b5f5260045ffd5b63a38ca3d960e01b5f5260045ffd5b34610e69575f366003190112610e6957602060405160c88152f35b34610e69575f366003190112610e69576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b34610e69576020366003190112610e69576001600160a01b03612e2e613805565b165f52600d602052602060405f2054604051908152f35b34610e69575f366003190112610e69576020600454604051908152f35b34610e69576020366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd2126855612e98613d05565b6110ec6004356145c6565b34610e69575f366003190112610e6957602060a0612ebf613bd0565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b34610e69575f366003190112610e69576020600554604051908152f35b34610e69575f366003190112610e6957602060ff5f54166040519015158152f35b34610e69575f366003190112610e69576020600154604051908152f35b34610e69575f366003190112610e6957602060405160128152f35b34610e69576020366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd21268556110ec600435613c1e565b34610e69575f366003190112610e6957602060025460020b604051908152f35b34610e6957613008366138be565b5050507f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031633039150612a2e905057630a85dc2960e01b5f5260045ffd5b5f366003190112610e695763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b34610e69576060366003190112610e69576130b0613805565b6130b8613865565b604435908260601b6e22d473030f116ddee9f6b43ac78ba33303613150575b6387a211a217600c526020600c20928354938484116131435783610c9395039055815f526020600c2083815401905582602052600c5160601c60018060a01b0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361418d565b63f4d678b85f526004601cfd5b33602052637f5e9f208117600c526034600c20908154918219613176575b5090506130d7565b82851161318d57846387a211a2930390558561316e565b6313be252b5f526004601cfd5b34610e69575f366003190112610e695760206805345cdf77eb68f44c54604051908152f35b34610e69576020366003190112610e69576001600160a01b036131e0613805565b165f526009602052602063ffffffff60405f205416604051908152f35b34610e69576040366003190112610e6957613216613805565b602435906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba318821915171561328c57602052637f5e9f20600c52335f52806034600c20555f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b633f68539a5f526004601cfd5b34610e69575f366003190112610e6957610f0c6132b4613bd0565b604051918291602083526020830190613841565b34610e69576080366003190112610e69576132e1613805565b6024358060020b91828203610e6957604435918260020b90818403610e6957606435936fffffffffffffffffffffffffffffffff8516809503610e6957613326614171565b5f5460ff81166137cb576101019061ffff1916175f5562ffffff6002549160181b65ffffff0000001692169065ffffffffffff191617176002555f608060405161336f816139e1565b828152826020820152826040820152826060820152015260405190613393826139e1565b5f825261352060208301308152612710604085015260c8606085015230608085015260405190600160f91b6020830152600d60f81b6021830152600282526133dc602283613a10565b6134126134626133ea613a48565b9561345460209b8c92604051916134018584613a10565b5f835260405196879586018d613ab9565b60c085015260e08401528b6101008401525f61012084015269010f0cf064dd5920000061014084015230610160840152610180808401526101a0830190613841565b03601f198101835282613a10565b61346b85613afc565b5261347584613afc565b5084519051604080516001600160a01b039384168b820152929091168282015281526134a2606082613a10565b6134ab84613b09565b526134b583613b09565b506134be613a48565b946134dc6040519563f702040560e01b8a8801526024870190613ab9565b6001600160a01b031660c48086018290528552936134fb60e482613a10565b61350486613afc565b5261350e85613afc565b50613454604051938492898401613b71565b603c4201908142116126aa5760405163dd46508f60e01b878201529161354f9183916134549160248401613bb4565b61355883613b09565b5261356282613b09565b50604051631d5e528f60e21b81527f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03169390928584600481885afa938415610e5e575f94613798575b5061360884955f9592869360015560017f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075d604051968780948193631592ca1b60e31b83528c60048401526024830190613b19565b03925af1928315610e5e578493613675575b507ffe63da4fe969b1e07045f0692960917764e830b7f6f7b71a799fdff33c120319916040915f7f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075d825191825286820152a2604051908152f35b909192503d805f833e6136888183613a10565b8101908581830312610e69578051906001600160401b038211610e69570181601f82011215610e69578051916136bd83613a31565b926136cb6040519485613a10565b808452878085019160051b84010192828411610e69579081898998979695949301915b84831061372357507ffe63da4fe969b1e07045f0692960917764e830b7f6f7b71a799fdff33c120319945061361a9350505050565b90918093949596979850516001600160401b038111610e6957820184603f82011215610e69578a8101519161375783613a82565b6137646040519182613a10565b838152868d80868601010111610e69575f8d85819660408397018386015e83010152815201920190889796959493926136ee565b9350938584813d83116137c4575b6137b08183613a10565b81010312610e6957925192936136086135b3565b503d6137a6565b6308627e3960e31b5f5260045ffd5b34610e69575f366003190112610e695760209060ff5f5460081c1615158152f35b5f910312610e6957565b600435906001600160a01b0382168203610e6957565b60c435906001600160a01b0382168203610e6957565b60e435908160020b8203610e6957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602435906001600160a01b0382168203610e6957565b604435906001600160a01b0382168203610e6957565b9181601f84011215610e69578235916001600160401b038311610e695760208381860195010111610e6957565b90610160600319830112610e69576004356001600160a01b0381168103610e69579160a0602319820112610e6957602491608060c319830112610e695760c49161014435906001600160401b038211610e695761391d91600401613891565b9091565b906101a0600319830112610e69576004356001600160a01b0381168103610e69579160a0602319820112610e6957602491608060c319830112610e695760c4916101443591610164359161018435906001600160401b038211610e695761391d91600401613891565b610120600319820112610e69576004356001600160a01b0381168103610e69579160a0602319830112610e695760249160c4359160e4359161010435906001600160401b038211610e695761391d91600401613891565b60a081019081106001600160401b038211176139fc57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176139fc57604052565b6001600160401b0381116139fc5760051b60200190565b60405160609190613a598382613a10565b6002815291601f1901825f5b828110613a7157505050565b806060602080938501015201613a65565b6001600160401b0381116139fc57601f01601f191660200190565b613aa65f613a82565b90613ab46040519283613a10565b5f8252565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b8051156112a15760200190565b8051600110156112a15760400190565b9080602083519182815201916020808360051b8301019401925f915b838310613b4457505050505090565b9091929394602080613b62600193601f198682030187528951613841565b97019301930191939290613b35565b9091613b88613b9693604084526040840190613841565b916020818403910152613b19565b90565b90603c82018092116126aa57565b919082018092116126aa57565b929190613bcb602091604086526040860190613841565b930152565b60405190613bdf604083613a10565b6005825264507269736d60d81b6020830152565b8115613bfd570490565b634e487b7160e01b5f52601260045260245ffd5b919082039182116126aa57565b613c2733614273565b612d81576387a211a2600c52335f52670de0b6b3a76400006020600c20540490335f52600960205263ffffffff60405f2054169182811115613ca157613c8e92613c7091613c11565b9080151580613c98575b613c90575b50613c886143c5565b33614415565b565b90505f613c7f565b50808211613c7a565b505050565b60a090613b96939281525f60208201525f60408201525f60608201528160808201520190613841565b9064e8d4a5100082029180830464e8d4a5100014901517156126aa57565b906107d08202918083046107d014901517156126aa57565b613d17613d135f5460ff1690565b1590565b80156140a8575b613c8e57613d4b7f0000000000000000000000000000000000000000000000000000000000000000614b30565b613c8e5747613d67306387a211a2600c525f526020600c205490565b604051600160f81b6020820152601160f81b6021820152909190613d8e8160228101613454565b613d96613a48565b600154613db7613da4613a9d565b9161345460405193849260208401613ca6565b613dc082613afc565b52613dca81613afc565b50604080515f6020820152309181018290526060810191909152613df18160808101613454565b613dfa82613b09565b52613e0481613b09565b506040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316929091613e489183916134549160208401613b71565b613e5142613b99565b823b15610e6957613e7b925f928360405180968195829463dd46508f60e01b845260048401613bb4565b03925af1908161408e575b50613eb35750507fcd884f846d743431d3327566b7bdf8979b1b06eead9ecf708609a77d0b74a3405f80a1565b47613ecb306387a211a2600c525f526020600c205490565b918082111561408557613edd91613c11565b915b8082111561407d57613ef091613c11565b5f5460081c60ff1615613f5b57613f0b61ff00195f54165f55565b8115801590613f52575b613f1e575b5050565b6040805192835260208301919091527f6b77c11fc762906f0ec8885ad6c798f4b9edcacd913cd97e1bca70693ba8d5ec91a1565b50801515613f15565b8115801580614059575b8215159081613fba575b91613fb2575b50613f7e575050565b6040805192835260208301919091527fc4269297a66dc5f8d6fafdd31a219e089fd656e2942bbfc3cb506ddd6e475d8c91a1565b90505f613f75565b613fce613fc685613ced565b612710900490565b613fd88186613c11565b908061401a575b5080613fec575b50613f6f565b61400f614007613ffe61401493613ccf565b60045490613bf3565b600654613ba7565b600655565b5f613fe6565b6140278161dead30614928565b6040519081527fa7ed6c38e8a9e616e1f7217dbc14463b6164a0887f4db0395e763e13a958001b90602090a15f613fdf565b61407861407361406b613ffe87613ccf565b600554613ba7565b600555565b613f65565b50505f613ef0565b50505f91613edf565b8061409c5f6140a293613a10565b806137fb565b5f613e86565b5060045415613d1e565b91908110156112a15760051b0190565b5f818152600760205260409020549091906001600160a01b03161561412d576140ea82614bbf565b61412d5764e8d4a5100061412981614111600554865f52600a60205260405f205490613c11565b0493600654905f52600b60205260405f205490613c11565b0490565b5f91508190565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba31461416a57602052637f5e9f20600c525f526034600c205490565b50505f1990565b638b78c6d81954330361418057565b6382b429005f526004601cfd5b9190917f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5c613ca1576141bf81614273565b156141c984614273565b15905f93828061425d575b61421c575b508080614215575b156141f257505091613c8e92614cab565b156142025750613c8e9250614bf6565b905061420c575050565b613c8e91614bf6565b50816141e1565b614256919450670de0b6b3a764000061424f614245886387a211a2600c525f526020600c205490565b9282840493613c11565b0490613c11565b925f6141d9565b506001600160a01b0386811690851614156141d4565b6001600160a01b03168015908115614392575b8115614388575b8115614355575b8115614349575b8115614316575b81156142e3575b81156142b3575090565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031614919050565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316811491506142a9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316811491506142a2565b61dead8114915061429b565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681149150614294565b308114915061428d565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031681149150614286565b60ff5f541615801561440b575b613c8e576143ff7f0000000000000000000000000000000000000000000000000000000000000000614b30565b613c8e57613c8e613d05565b50600454156143d2565b9060808110156145be575b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316915f5b82811061445a5750505050565b60016003540190816003557f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215c15614596575b6001600160a01b0383165f81815260096020908152604080832054868452600790925290912060a082901b63ffffffff60a01b16831790559092906144ec9063ffffffff9060019082166144e4838616828a614ee0565b011685614f2b565b614513600554600654908390815f52600a60205260405f20555f52600b60205260405f2055565b600160045401600455853b15610e6957604051926323de665160e01b84525f60048501528060248501528160448501525f84606481838b5af1938415610e5e57600194614586575b507f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80405f80a30161444d565b5f61459091613a10565b5f61455b565b817f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215d61448d565b506080614420565b5f818152600760205260409020546001600160a01b0316908115610ea7577fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac6040600554835f52600a60205264e8d4a51000614625835f205483613c11565b0490600654855f52600b60205264e8d4a51000614645855f205483613c11565b049161465087614bbf565b614712575b5f878152600a6020908152604080832093909355600b9052205581158015806146f5575b82151590816146d8575b916146d0575b5061469c575b82519182526020820152a3565b857fe992e5edd2a9058442e44178788b99aee673ab9ac3f4220f33a463e8614bf235848051858152846020820152a261468f565b90505f614689565b885f52600d602052855f206146ee858254613ba7565b9055614683565b875f52600c602052845f2061470b858254613ba7565b9055614679565b5f9350839250614655565b63ffffffff5f199116019063ffffffff82116126aa57565b90916147418183614e00565b614768600554600654908390815f52600a60205260405f20555f52600b60205260405f2055565b6147d1614787825f52600760205263ffffffff60405f205460a01c1690565b6001600160a01b0384165f908152600960205260409020546147ae9063ffffffff1661471d565b9063ffffffff8216908563ffffffff8216928084036148d8575b50915050614f2b565b60018060a01b0383165f526009602052600163ffffffff60405f2054166147ff63ffffffff84168287614ee0565b5f8381526007602052604090206001600160a01b03861660a083901b63ffffffff60a01b161790550163ffffffff81116126aa5761483d9084614f2b565b5f818152600e6020526040902080546001600160a01b03191690557f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b15610e69576040516323de665160e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610e5e576148ce5750565b5f613c8e91613a10565b61491f936148f66148ee63ffffffff93856149fc565b809285614ee0565b169190915f52600760205263ffffffff60a01b9060a01b169060018060a01b03161760405f2055565b5f8085816147c8565b91906387a211a28360601b17600c526020600c20928354938484116131435783613c8e95039055815f526020600c2083815401905582602052600c5160601c60018060a01b0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361418d565b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b60405160208101918252306040820152604081526149f6606082613a10565b51902090565b9063ffffffff9160018060a01b03165f52600860205260405f208160031c5f5260205260e060405f20549160051b161c1690565b335f52600d60205260405f20548015801580614b12575b335f52600c60205260405f20545f9481614aa8575b505090614a9f575b614a6c575050565b60405191825260208201527ffc89244482d96e83ebb3fcd7cd13b1dbdb3cda4ca9885d7b4a57e3d26a7451e760403392a2565b50811515614a64565b5f808084819499959699338352600c6020528260408120555af13d15614b0d573d614ad281613a82565b90614ae06040519283613a10565b81525f60203d92013e5b15614af95750925b5f80614a5c565b9390335f52600c60205260405f2055614af2565b614aea565b335f52600d6020525f6040812055614b2b838530614928565b614a47565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa908115610e5e575f91614b8d575b50151590565b90506020813d602011614bb7575b81614ba860209383613a10565b81010312610e6957515f614b87565b3d9150614b9b565b7f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215c8015159182614bef57505090565b1015919050565b90670de0b6b3a7640000614c17836387a211a2600c525f526020600c205490565b6001600160a01b0384165f9081526009602052604090205463ffffffff1691900481811115614c6d5790614c4a91613c11565b90808211614c65575b50614c5c6143c5565b613c8e91614415565b90505f614c53565b818192935011614c7c57505050565b614c8591613c11565b905f5b82811015613ca157600190614ca5614c9f84614fdf565b84615013565b01614c88565b9291906387a211a2600c52835f52670de0b6b3a76400006020600c2054046387a211a2600c52815f52670de0b6b3a76400006020600c20540460018060a01b0386165f52600960205263ffffffff60405f20541660018060a01b0384165f52600960205263ffffffff60405f205416928082115f14614df757614d2d91613c11565b915b80821115614de857614d47614d6191614d5b93613c11565b925b83811015614dde578092838092613c11565b93613c11565b93808511614dd6575b5083614dc9575b5f5b818110614dad5750505f5b818110614d92575050613c8e929350614415565b600190614da7614da188614fdf565b88615013565b01614d7e565b600190614dc3614dbc89614fdf565b868a614735565b01614d73565b614dd16143c5565b614d71565b93505f614d6a565b8392838092613c11565b5050614d5b614d615f92614d49565b50505f91614d2f565b614e0982614bbf565b613f1a5764e8d4a51000614e3081614111600554865f52600a60205260405f205490613c11565b04908215908180614ed8575b614ed2577fe992e5edd2a9058442e44178788b99aee673ab9ac3f4220f33a463e8614bf2359260409215614ead575b80614e88575b825194855260208501526001600160a01b031692a2565b60018060a01b0382165f52600d602052825f20614ea6828254613ba7565b9055614e71565b60018060a01b0382165f52600c602052825f20614ecb868254613ba7565b9055614e6b565b50505050565b508215614e3c565b6001600160a01b03165f908152600860209081526040808320600385901c84529091529020805463ffffffff60059390931b60e01683811b199091169390921690911b919091179055565b6001600160a01b03165f908152600960205260409020805463ffffffff191663ffffffff92909216919091179055565b61ffff60c89116029061ffff82169182036126aa57565b61ffff166105aa019061ffff82116126aa57565b61ffff1661019a019061ffff82116126aa57565b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315614fcd57600a90614fb1565b809350608091030191601f1901918252565b61500f63ffffffff9160018060a01b0381165f526009602052826150088160405f20541661471d565b16906149fc565b1690565b61501d8282614e00565b615039825f52600760205263ffffffff60405f205460a01c1690565b6150865f9160018060a01b03841693845f52600960205261506363ffffffff60405f20541661471d565b9163ffffffff8316908263ffffffff8216928084036151a5575b50505050614f2b565b5f838152600760209081526040808320839055600a8252808320839055600b8252808320839055600e909152902080546001600160a01b0319169055600480545f19019081905515615193575b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b15610e69575f80926064604051809581936323de665160e01b83528860048401528160248401528960448401525af18015610e5e57615161575b7fd6a6bcd88cdc4656d5f4e14e7dfbc9bc3f2f9811f8d6b508f3bee7d999d4d41c915080a3565b505f61516c91613a10565b7fd6a6bcd88cdc4656d5f4e14e7dfbc9bc3f2f9811f8d6b508f3bee7d999d4d41c5f61513a565b61010061ff00195f5416175f556150d3565b6151bb936148f66148ee63ffffffff93856149fc565b5f80828161507d565b613b96600161ffff60209316838061523361ffff806103e8808704960616600a81105f146152715761522b60226151fb8693614f9a565b60405193849161030360f41b828401528051918291018484015e81015f838201520301601f198101835282613a10565b945b16614f9a565b926040519684889551918291018487015e840190601760f91b83830152805192839101602183015e01015f838201520301601f198101835282613a10565b60648110156152be576152b860216152898693614f9a565b604051938491600360fc1b828401528051918291018484015e81015f838201520301601f198101835282613a10565b9461522d565b6152b890614f9a565b9081518110156112a157016020019056fea26469706673582212209f999cddf9cd2794360063ab2400d65a01613befbc824184bfaa05922d7e642c64736f6c634300081a003360a03460ba57601f610deb38819003918201601f19168301916001600160401b0383118484101760be5780849260209460405283398101031260ba57516001600160a01b038116810360ba57608052604051610d1890816100d38239608051818181610137015281816101f30152818161038201528181610470015281816104e6015281816105a901528181610636015281816106d901528181610781015281816108220152818161087f015281816109400152610b5c0152f35b5f80fd5b634e487b7160e01b5f52604160045260245ffdfe6080806040526004361015610012575f80fd5b5f905f3560e01c90816301ffc9a7146109f35750806306fdde03146109a9578063081812fc1461090f578063095ea7b31461086357806318160ddd146107fb57806323b872dd146107e357806323de66511461076e57806342842e0e1461074457806355c45fbe146106a75780635687f2b8146106235780636352211e1461057a57806370a082311461049f5780637f5a7c7b1461045a57806395d89b411461040f578063a22cb46514610357578063b88d4fde146102ca578063c87b56dd146101c55763e985e9c5146100e4575f80fd5b346101c25760403660031901126101c2576100fd610ad4565b610105610aea565b604051637c5ac7df60e01b81526001600160a01b039283166004820152908216602482015290602090829060449082907f0000000000000000000000000000000000000000000000000000000000000000165afa9081156101b7578291610174575b6020826040519015158152f35b90506020813d6020116101af575b8161018f60209383610a5e565b810103126101ab575180151581036101ab57602091505f610167565b5080fd5b3d9150610182565b6040513d84823e3d90fd5b80fd5b50346101c25760203660031901126101c257604051631d7d3f0f60e21b8152600480359082015281816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101b7578291610245575b6040516020808252819061024190820185610ab0565b0390f35b90503d8083833e6102568183610a5e565b8101906020818303126102c65780519067ffffffffffffffff82116102c2570181601f820112156102c65780519061028d82610a94565b9261029b6040519485610a5e565b828452602083830101116102c25781610241949260208093018386015e830101525f61022b565b8380fd5b8280fd5b50346101c25760803660031901126101c2576102e4610ad4565b6102ec610aea565b906064359067ffffffffffffffff82116102c257366023830112156102c2578160040135928461031b85610a94565b936103296040519586610a5e565b85855236602487830101116101ab578561035496602460209301838801378501015260443591610be5565b80f35b50346101c25760403660031901126101c25780610372610ad4565b6024359081151580920361040b577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031691823b1561040657604051637d415bb560e11b81526001600160a01b03909216600483015260248201523360448201529082908290606490829084905af180156101b7576103f55750f35b816103ff91610a5e565b6101c25780f35b505050fd5b5050fd5b50346101c257806003193601126101c257610241604051610431604082610a5e565b60088152670505249534d2d4c560c41b6020820152604051918291602083526020830190610ab0565b50346101c257806003193601126101c2576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b50346101c25760203660031901126101c2576001600160a01b036104c1610ad4565b1690811561056b576040516301c627d360e31b815260048101929092526020826024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561055f5790610528575b602090604051908152f35b506020813d602011610557575b8161054260209383610a5e565b81010312610553576020905161051d565b5f80fd5b3d9150610535565b604051903d90823e3d90fd5b63331715f760e11b8152600490fd5b50346101c25760203660031901126101c257604051633db7d39d60e11b815260048035908201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa9081156101b757602092916105f6575b506040516001600160a01b039091168152f35b6106169150823d841161061c575b61060e8183610a5e565b810190610b3a565b5f6105e3565b503d610604565b50346101c25761063236610b00565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610698576001600160a01b0390811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258480a480f35b635a91834f60e01b8452600484fd5b50346101c25760603660031901126101c2576106c1610ad4565b6106c9610aea565b604435908115158092036102c2577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610698576040519182526001600160a01b039081169216907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3190602090a380f35b50346101c25761035461075636610b00565b9060405192610766602085610a5e565b858452610be5565b50346101c25761077d36610b00565b91907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610698576001600160a01b0390811691167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8480a480f35b50346101c2576103546107f536610b00565b91610b59565b50346101c257806003193601126101c257604051633a98ef3960e01b8152906020826004817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa90811561055f579061052857602090604051908152f35b50346105535760403660031901126105535761087d610ad4565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b031690813b1561055357604051634be4634760e11b81526001600160a01b0390911660048201526024803590820152336044820152905f908290606490829084905af18015610904576108f6575080f35b61090291505f90610a5e565b005b6040513d5f823e3d90fd5b3461055357602036600319011261055357604051600162285c9560e21b0319815260048035908201526020816024817f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03165afa8015610904576020915f9161098c57506040516001600160a01b039091168152f35b6109a39150823d841161061c5761060e8183610a5e565b826105e3565b34610553575f366003190112610553576102416040516109ca604082610a5e565b60088152670507269736d2d4c560c41b6020820152604051918291602083526020830190610ab0565b34610553576020366003190112610553576004359063ffffffff60e01b8216809203610553576020916301ffc9a760e01b8114908115610a4d575b8115610a3c575b5015158152f35b635b5e139f60e01b14905083610a35565b6380ac58cd60e01b81149150610a2e565b90601f8019910116810190811067ffffffffffffffff821117610a8057604052565b634e487b7160e01b5f52604160045260245ffd5b67ffffffffffffffff8111610a8057601f01601f191660200190565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b600435906001600160a01b038216820361055357565b602435906001600160a01b038216820361055357565b6060906003190112610553576004356001600160a01b038116810361055357906024356001600160a01b0381168103610553579060443590565b9081602091031261055357516001600160a01b03811681036105535790565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156105535760405163246f3edd60e11b81526001600160a01b03938416600482015291909216602482015260448101929092523360648301525f908290608490829084905af1801561090457610bd95750565b5f610be391610a5e565b565b919290610bf3848285610b59565b803b610c00575b50505050565b610c45935f60209460405196879586948593630a85bd0160e11b855233600486015260018060a01b031660248501526044840152608060648401526084830190610ab0565b03926001600160a01b03165af15f9181610c9d575b50610c6e576320149b4360e21b5f5260045ffd5b6001600160e01b03191663757a42ff60e11b01610c8e575f808080610bfa565b6320149b4360e21b5f5260045ffd5b9091506020813d602011610cda575b81610cb960209383610a5e565b8101031261055357516001600160e01b03198116810361055357905f610c5a565b3d9150610cac56fea2646970667358221220abf477e25b9ace1d450d0f06fecbc4722d305877314b2ae62576f89c73eed66764736f6c634300081a0033d6a6bcd88cdc4656d5f4e14e7dfbc9bc3f2f9811f8d6b508f3bee7d999d4d41cddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a21000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000fe76f05a01163e5c90329a0d1a2c8e389fd0f110000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000df0a7ec235fb104e5b3e7426da7709186a809d470000000000000000000000000000000000000000000000f17d101c704d7a4443
Deployed Bytecode
0x608080604052600436101561001c575b50361561001a575f80fd5b005b5f905f3560e01c908162b67e8e146137da5750806305122da0146132c857806306fdde0314613299578063095ea7b3146131fd5780630e313e98146131bf57806318160ddd1461319a57806321d0ee7014612ffa57806323b872dd14613097578063256929621461304e578063259982e514612ffa578063262e14be14612fda5780632eee17b114612fa1578063313ce56714612f8657806332237b0914612f69578063334041a614612f48578063335cc4ff14612f2b5780633644e51514612ea3578063379607f514612e625780633a98ef3914612e455780633c83579314612e0d578063444d917214612dc957806346ca626b14612dae57806348de7dba14612bcb57806354d1f13d14612b87578063575e24b414612af35780635e4807f214612ad75780636afdd85014612a935780636c2bbe7e14612a3d5780636fe7e6eb146129b6578063708fd5f01461299a57806370a0823114612968578063715018a61461291f57806375f4fc3c146112b55780637aa9cd30146111bf5780637b6fa73a146111835780637c5ac7df1461112c5780637ecebe00146110fa5780637edbceb1146110b6578063822ed9131461109e57806382829f74146110635780638da5cb5b14611037578063925489a814610f5457806393396cb114610f1057806395d89b4114610ec557806397c8c68e14610d505780639d8e217714610d2d5780639f063efc14610cd6578063a2b9347814610cab578063a9059cbb14610c0f578063b0377e2d14610beb578063b47b2fb114610b4e578063b6a8b0fa146105ea578063bc8ceca914610ab8578063c4e833ce1461098b578063c50497ae14610966578063d505accf1461079a578063dc4c90d314610755578063dc98354e1461069e578063dd1b9c4a14610681578063dd62ed3e1461064c578063e1b4af69146105ea578063ee399fc0146105cc578063f04e283e1461057e578063f2fde38b1461053f578063fa82b76a1461042d578063fbe8cc42146103e8578063fc52910d146103af578063fee81cf41461037c5763ff5e8dac0361000f573461037957602036600319011261037957600435808252600760205260408220549091906001600160a01b03161561036a576020918152600e8252604060018060a01b0391205416604051908152f35b6307ed98ed60e31b8152600490fd5b80fd5b503461037957602036600319011261037957610396613805565b9063389a75e1600c5252602080600c2054604051908152f35b5034610379576020366003190112610379576020906040906001600160a01b036103d7613805565b168152600c83522054604051908152f35b50346103795780600319360112610379576040517f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e6001600160a01b03168152602090f35b503461037957606036600319011261037957610447613805565b9060243580151580910361053b5761045d61387b565b927f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b0316903382900361052c57839460018060a01b031691828552600f6020526040852060018060a01b0383165f5260205260405f2060ff1981541660ff8616179055803b15610528578492836064926040519687958694632ae22fdf60e11b8652600486015260018060a01b0316602485015260448401525af1801561051d5761050c5750f35b8161051691613a10565b6103795780f35b6040513d84823e3d90fd5b8480fd5b631074528560e11b8452600484fd5b5080fd5b50602036600319011261037957610554613805565b61055c614171565b8060601b156105715761056e9061499a565b80f35b637448fbae82526004601cfd5b50602036600319011261037957610593613805565b61059b614171565b63389a75e1600c528082526020600c20805442116105bf57908261056e925561499a565b636f5e881883526004601cfd5b50346103795780600319360112610379576020600654604051908152f35b5034610379576004906105fc3661398a565b5050507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03163303925061064091505057630a85dc2960e01b8152fd5b63570c108560e11b8152fd5b503461037957604036600319011261037957602061067961066b613805565b610673613865565b90614134565b604051908152f35b503461037957806003193601126103795760206040516127108152f35b50346103795760e0366003190112610379576106b8613805565b5060a0366023190112610379576106cd61381b565b507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03163303610746577f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075c1561073757604051636e4c1aa760e11b8152602090f35b633eadad1960e01b8152600490fd5b63570c108560e11b8152600490fd5b50346103795780600319360112610379576040517f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03168152602090f35b50346103795760e0366003190112610379576107b4613805565b6107bc613865565b604435606435906084359260ff84168403610962576001600160a01b0316936e22d473030f116ddee9f6b43ac78ba385188219151715610955576107fe613bd0565b6020815191012092804211610948576040519160018060a01b03169465383775081901600e5285885260c06020600c20938454937f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252602082019788528460408301987fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc68a528b606085019a468c528c608087019330855260a08820602e527f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c988525252888a525260a082015220604e526042602c20885260ff1660205260a43560405260c43560605260208060808960015afa90853d510361093b570190556303faf4f960a51b84176040526034602c20557f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92590602090a380f35b63ddafbaef88526004601cfd5b631a15a3cc87526004601cfd5b633f68539a86526004601cfd5b8580fd5b5034610379578060031936011261037957602060405169010f0cf064dd592000008152f35b50346103795780600319360112610379576040516101c081018181106001600160401b03821117610aa45791806020926101c09460405283810182815260408201838152606083018481526080840185815260a0850186815260c086019087825260e08701926101008801948986526101208901968a88526101408a01988b8a5260016101608c019b8d8d5261018081019d8e526101a081019e8f5252600187526040519d8e916001835251151591015251151560408d015251151560608c015251151560808b015251151560a08a015251151560c089015251151560e08801525115156101008701525115156101208601525115156101408501525115156101608401525115156101808301525115156101a0820152f35b634e487b7160e01b83526041600452602483fd5b503461037957602036600319011261037957610ad2613805565b3068929eee149b4bd212685414610b41573068929eee149b4bd21268556001600160a01b03811615610b3257610b0781614273565b610b2357610b1490614a30565b3868929eee149b4bd212685580f35b6385d5c4b360e01b8252600482fd5b63a38ca3d960e01b8252600482fd5b63ab143c0682526004601cfd5b50346103795761016036600319011261037957610b69613805565b5060a03660231901126103795760603660c319011261037957610144356001600160401b03811161053b57610ba2903690600401613891565b50507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b031633036107465760409081519063b47b2fb160e01b82526020820152f35b5034610379578060031936011261037957602060025460181c60020b604051908152f35b503461037957604036600319011261037957610c29613805565b602435906387a211a2600c523383526020600c208054808411610c9e5793829184610c9396039055526020600c2082815401905581602052600c5160601c337fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a33361418d565b602060405160018152f35b63f4d678b885526004601cfd5b5034610379576020366003190112610379576040610cca6004356140c2565b82519182526020820152f35b503461037957600490610ce836613921565b5050507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b0316330393506106409250505057630a85dc2960e01b8152fd5b50346103795780600319360112610379576020604051670de0b6b3a76400008152f35b5034610e69576060366003190112610e6957610d6a613805565b602435610d7561387b565b907f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b031633819003610eb6575f828152600760205260409020546001600160a01b0316928315610ea7576001600160a01b0381168414159081610e7c575b50610e6d575f828152600e6020526040902080546001600160a01b0319166001600160a01b038616179055803b15610e6957604051630ad0fe5760e31b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610e5e57610e52575080f35b61001a91505f90613a10565b6040513d5f823e3d90fd5b5f80fd5b636d8a29e760e11b5f5260045ffd5b9050835f52600f60205260405f209060018060a01b03165f5260205260ff60405f205416155f610dda565b6307ed98ed60e31b5f5260045ffd5b631074528560e11b5f5260045ffd5b34610e69575f366003190112610e6957610f0c604051610ee6604082613a10565b6005815264505249534d60d81b6020820152604051918291602083526020830190613841565b0390f35b34610e69575f366003190112610e69576040517f000000000000000000000000df0a7ec235fb104e5b3e7426da7709186a809d476001600160a01b03168152602090f35b34610e69576020366003190112610e69576004356001600160401b038111610e695736602382011215610e695780600401356001600160401b038111610e69576024820191602436918360051b010111610e69573068929eee149b4bd21268541461102a573068929eee149b4bd2126855610fcd613d05565b5f5b818110610fe4573868929eee149b4bd2126855005b80610ff260019284866140b2565b355f526007602052818060a01b0360405f205416611011575b01610fcf565b61102561101f8285876140b2565b356145c6565b61100b565b63ab143c065f526004601cfd5b34610e69575f366003190112610e6957638b78c6d819546040516001600160a01b039091168152602090f35b34610e69576020366003190112610e69576004355f818152600760205260409020546001600160a01b031615610ea7576106796020916149d7565b34610e69575f366003190112610e695761001a613d05565b34610e69575f366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd21268556110ec33614a30565b3868929eee149b4bd2126855005b34610e69576020366003190112610e6957611113613805565b6338377508600c525f52602080600c2054604051908152f35b34610e69576040366003190112610e6957611145613805565b61114d613865565b9060018060a01b03165f52600f60205260405f209060018060a01b03165f52602052602060ff60405f2054166040519015158152f35b34610e69576020366003190112610e69576004355f908152600760205260409020546001600160a01b03168015610ea757602090604051908152f35b34610e69576020366003190112610e69576111d8613805565b6001600160a01b0381165f9081526009602052604090205463ffffffff169061120082613a31565b9161120e6040519384613a10565b80835261121a81613a31565b602084019290601f19013684375f5b828110611274578385604051918291602083019060208452518091526040830191905f5b81811061125b575050500390f35b825184528594506020938401939092019160010161124d565b63ffffffff61128382846149fc565b169085518110156112a15760019160208260051b8801015201611229565b634e487b7160e01b5f52603260045260245ffd5b34610e69576020366003190112610e69576004355f908152600760205260409020546001600160a01b031615610ea7576112f06004356149d7565b805f1a9061016882029180830461016814901517156126aa5761132660ff61ffff61131f818560011a16614f5b565b1604614f72565b9061ffff6050818360021a1606166096019261ffff84116126aa578160031a61ffff1661012290069161135883614f86565b60405190600483901a6102a061136e8185613a10565b61027184527f3c67207374726f6b653d222366666622207374726f6b652d77696474683d223060208501527f2e3522206f7061636974793d22302e3035223e3c6c696e652078313d223022206040808601919091527f79313d223530222078323d22343030222079323d223530222f3e3c6c696e652060608601527f78313d2230222079313d22313030222078323d22343030222079323d2231303060808601527f222f3e3c6c696e652078313d2230222079313d22313530222078323d2234303060a08601527f222079323d22313530222f3e3c6c696e652078313d2230222079313d2232303060c08601527f222078323d22343030222079323d22323030222f3e3c6c696e652078313d223060e08601527f222079313d22323530222078323d22343030222079323d22323530222f3e3c6c610100808701919091527f696e652078313d2230222079313d22333030222078323d22343030222079323d6101208701527f22333030222f3e3c6c696e652078313d2230222079313d22333530222078323d6101408701527f22343030222079323d22333530222f3e3c6c696e652078313d223530222079316101608701527f3d2230222078323d223530222079323d22343030222f3e3c6c696e652078313d6101808701527f22313030222079313d2230222078323d22313030222079323d22343030222f3e6101a08701527f3c6c696e652078313d22313530222079313d2230222078323d223135302220796101c08701527f323d22343030222f3e3c6c696e652078313d22323030222079313d22302220786101e08701527f323d22323030222079323d22343030222f3e3c6c696e652078313d22323530226102008701527f2079313d2230222078323d22323530222079323d22343030222f3e3c6c696e656102208701527f2078313d22333030222079313d2230222078323d22333030222079323d2234306102408701527f30222f3e3c6c696e652078313d22333530222079313d2230222078323d223335610260870152701811103c991e911a181811179f1e17b39f60791b610280870152905199611681828c613a10565b60cd8b527f3c67207374726f6b653d222366666622207374726f6b652d77696474683d223160208c01527f222066696c6c3d226e6f6e6522206f7061636974793d22302e3435223e3c70616040808d01919091527f746820643d224d31302c3330204c31302c3130204c33302c3130222f3e3c706160608d01527f746820643d224d3337302c3130204c3339302c3130204c3339302c3330222f3e60808d01527f3c7061746820643d224d3339302c333730204c3339302c333930204c3337302c60a08d01527f333930222f3e3c7061746820643d224d33302c333930204c31302c333930204c60c08d01526c189816199b9811179f1e17b39f60991b60e08d0152519261178f9084613a10565b61026c83527f3c706f6c79676f6e20706f696e74733d223232302c313030203333302c32383060208401527f203131302c323830222066696c6c3d226e6f6e6522207374726f6b653d2223666040808501919091527f666622207374726f6b652d77696474683d22302e3522207374726f6b652d646160608501527f736861727261793d22332c3222206f7061636974793d22302e34222f3e3c6c6960808501527f6e652078313d22323030222079313d22313130222078323d223232302220793260a08501527f3d2231303022207374726f6b653d222366666622207374726f6b652d7769647460c08501527f683d22302e3522206f7061636974793d22302e3435222f3e3c6c696e6520783160e08501527f3d22333130222079313d22323930222078323d22333330222079323d22323830838501527f22207374726f6b653d222366666622207374726f6b652d77696474683d22302e610120808601919091527f3522206f7061636974793d22302e3435222f3e3c6c696e652078313d223930226101408601527f202079313d22323930222078323d22313130222079323d2232383022207374726101608601527f6f6b653d222366666622207374726f6b652d77696474683d22302e3522206f706101808601527f61636974793d22302e3435222f3e3c706f6c79676f6e20706f696e74733d22326101a08601527f30302c313130203331302c3239302039302c323930222066696c6c3d226e6f6e6101c08601527f6522207374726f6b653d222366666622207374726f6b652d77696474683d22316101e08601527f2e35222f3e3c636972636c652063783d22323030222063793d223131302220726102008601527f3d2232222066696c6c3d2223666666222f3e3c636972636c652063783d2233316102208601527f30222063793d223239302220723d2232222066696c6c3d2223666666222f3e3c6102408601527f636972636c652063783d22393022202063793d223239302220723d22322220666102608601526b34b6361e9111b3333311179f60a11b61028086015290519290611a9c9084613a10565b8083527f3c6c696e652078313d223230222079313d22323230222078323d22313535222060208401527f79323d2232353022207374726f6b653d222366666622207374726f6b652d776960408401527f6474683d2231222f3e3c67207374726f6b653d222366666622207374726f6b6560608401527f2d77696474683d22302e3522206f7061636974793d22302e36223e3c6c696e6560808401527f2078313d22353022202079313d22323233222078323d22353022202079323d2260a08401527f323333222f3e3c6c696e652078313d22383522202079313d223233312220783260c08401527f3d22383522202079323d22323431222f3e3c6c696e652078313d22313230222060e08401527f79313d22323339222078323d22313230222079323d22323439222f3e3c2f673e90830152611bdb9061ffff16614f9a565b918760081c61ffff16611bed90614f9a565b92604051938491602083017f3c6c696e652078313d22323435222079313d22323530222078323d2233383022905264103c991e9160d91b604084015280516020819201604585015e82016d04440e6e8e4ded6ca7a44d0e6d8560931b604582015281516020819301605383015e01604501600e81017f2c3832252c3632252922207374726f6b652d77696474683d22312e35222f3e00905203600e015f1981018452601f01611c9c9084613a10565b604080517f3c67207374726f6b653d222366666622207374726f6b652d77696474683d22306020820190815272171b911037b830b1b4ba3c9e9118171c1a911f60691b928201929092527f3c6c696e652078313d22323435222079313d22323433222078323d223234352260538201526a103c991e91191a9b91179f60a91b60738201527f3c6c696e652078313d22323338222079313d22323530222078323d2232353222607e8201526a103c991e91191a9811179f60a91b609e820152631e17b39f60e11b60a9820152608d81529490611d7860ad87613a10565b8560018316612856575b505060028116612760575b6004166126be575b6040998a5190611da58c83613a10565b601082526f181899199a1a9b1b9c1ca0a121a222a360811b60208301528b5191611dcf8d84613a10565b60088352601f198d013660208501378251156112a157603060208401538251600110156112a157607860218401535f5b60038110612618575050611e12906151c4565b9561ffff16611e2090614f9a565b8b51968792602084017f3c6720666f6e742d66616d696c793d2275692d6d6f6e6f73706163652c53464d90528d84017f6f6e6f2d526567756c61722c4d656e6c6f2c6d6f6e6f73706163652220666f6e9052606084017f742d73697a653d2239222066696c6c3d222366666622206f7061636974793d2290526518171a9a911f60d11b6080850152608684017f3c7465787420783d2232302220793d22333735223e505249534d202f2f20000090528051602081920160a486015e661e17ba32bc3a1f60c91b60a4918501918201527f3c7465787420783d223338302220793d223337352220746578742d616e63686f60ab82015269723d22656e64223e6e3d60b01b60cb820152815191829060200160d583015e0160a401603181016920202026233935353b3d60b01b905281516020819301603b83015e01603101600a81016837369e17ba32bc3a1f60b91b905260138101631e17b39f60e11b905203600a0160121981018652600d01611f969086613a10565b89517f3c73766720786d6c6e733d22687474703a2f2f7777772e77332e6f72672f32306020808301919091527f30302f737667222077696474683d2234303022206865696768743d2234303022828d01527f2076696577426f783d22302030203430302034303022207374796c653d22626160608301526e31b5b3b937bab7321d11981818111f60891b60808301527f3c726563742077696474683d2234303022206865696768743d22343030222066608f8301526b34b6361e911198181811179f60a11b60af8301528751919c8d9890929182910160bb8a015e870160bb8101915f83528051926020849201905e0160bb015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e015f815281516020819301825e01651e17b9bb339f60d11b815203601919810186526006016120eb9086613a10565b60011a61ffff166120fb90614f5b565b61ffff1660ff900461210c90614f72565b9161211690614f86565b9060081c61ffff1661212790614f9a565b91612131906151c4565b9061ffff1661213f90614f9a565b9083519182916020830194605b60f81b8652602184017f7b2274726169745f74797065223a22487565222c2276616c7565223a00000000905280516020819201603d86015e611f4b60f21b603d918501918201527f7b2274726169745f74797065223a225265667261637469766520496e64657822603f8201526916113b30b63ab2911d1160b11b605f8201528151918290602001606983015e01603d0162089f4b60ea1b602c820152602f81017f7b2274726169745f74797065223a22576176656c656e677468222c2276616c7590526332911d1160e11b604f82015281516020819301605383015e636e6d227d60e01b91016053810191909152605d60f81b6057820152036038810182526122599060580182613a10565b612264600435614f9a565b9380606091805180612525575b50505060209460926123c394600194603089600f968a519b8c976f7b226e616d65223a22507269736d202360801b828a0152805191829101858a015e8701907f222c226465736372697074696f6e223a2241206661636574206f662074686520848301527f507269736d207634206c697175696469747920706f6f6c2e200000000000000060508301527f45616368204e4654206973206120312f353030302073686172652c2072656e64606983015275195c995908199d5b1b1e481bdb8b58da185a5b8b888b60521b60898301527f22696d616765223a22646174613a696d6167652f7376672b786d6c3b62617365609f830152620d8d0b60ea1b60bf83015280519283910160c283015e01019061088b60f21b848301526c1130ba3a3934b13aba32b9911d60991b609483015251809260a183015e0101607d60f81b838201520301601e19810185520183613a10565b8160609281519081612438575b610f0c602085612426603d8983519485917f646174613a6170706c69636174696f6e2f6a736f6e3b6261736536342c000000828401528051918291018484015e81015f838201520301601f198101845283613a10565b51918291602083526020830190613841565b90929193506003600284010460021b9082517f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106707f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f5260208101928082019260208781860199010194600460038751935f89525b0191603f8351818160121c16515f538181600c1c1651600153818160061c165160025316516003535f5181520190898210156124f5576004906003906124b4565b5094529184018452613d3d60f01b60039095066002048303949094525f909152825290915080612426603d6123d0565b909250600360028298939598010460021b948651977f4142434445464748494a4b4c4d4e4f505152535455565758595a616263646566601f526106707f6768696a6b6c6d6e6f707172737475767778797a303132333435363738392d5f18603f5260208901878a0190602085818401980101906004600383519a5f85525b0191603f8351818160121c16515f538181600c1c1651600153818160061c165160025316516003535f5181520190888210156125e4576004906003906125a3565b5097905288018852613d3d60f01b60039093066002048603929092525f9094529386529491929190508460926123c3612271565b60208110156112a1578a811a906001600160f81b031961263f600484901c60ff16856152c7565b5116918160011b92828404600214831517156126aa578360020191826002116126aa576003915f1a612671848a6152c7565b536001600160f81b03199061268990600f16876152c7565b511693018091116126aa576126a36001935f1a91876152c7565b5301611dff565b634e487b7160e01b5f52601160045260245ffd5b9261275a605c602080936040519481869251918291018484015e81017f3c636972636c652063783d22333230222063793d223138302220723d22322220838201527f66696c6c3d226e6f6e6522207374726f6b653d222366666622207374726f6b6560408201527f2d77696474683d22302e3522206f7061636974793d22302e37222f3e0000000060608201520301603c810184520182613a10565b92611d95565b93602061284e608c826004946040519481869251918291018484015e81017f3c67207374726f6b653d222366666622207374726f6b652d77696474683d22308382015271171a911037b830b1b4ba3c9e9118171b111f60711b60408201527f3c6c696e652078313d22313535222079313d22323434222078323d223135352260528201526a103c991e91191a9b11179f60a91b60728201527f3c6c696e652078313d22313439222079313d22323530222078323d2231363122607d8201526a103c991e91191a9811179f60a91b609d820152631e17b39f60e11b60a88201520301606c810184520182613a10565b949050611d8d565b612917919296506020607d916040519485915180918484015e81017f3c7061746820643d224d203236352c32353020412031382c3138203020302c30838201527f203235382c323334222066696c6c3d226e6f6e6522207374726f6b653d22236660408201527f666622207374726f6b652d77696474683d22302e3522207374726f6b652d646160608201527f736861727261793d22312c3222206f7061636974793d22302e36222f3e00000060808201520301605d810184520182613a10565b938c80611d82565b5f366003190112610e6957612932614171565b5f638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a35f638b78c6d81955005b34610e69576020366003190112610e6957612981613805565b6387a211a2600c525f52602080600c2054604051908152f35b34610e69575f366003190112610e695760206040516107d08152f35b34610e6957610100366003190112610e69576129d0613805565b5060a0366023190112610e69576129e561381b565b506129ee613831565b507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03163303612a2e57630a85dc2960e01b5f5260045ffd5b63570c108560e11b5f5260045ffd5b34610e6957612a4b36613921565b5050507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b031633039350612a2e9250505057630a85dc2960e01b5f5260045ffd5b34610e69575f366003190112610e69576040517f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36001600160a01b03168152602090f35b34610e69575f366003190112610e6957602060405161dead8152f35b34610e6957610140366003190112610e6957612b0d613805565b5060a0366023190112610e695760603660c3190112610e6957610124356001600160401b038111610e6957612b46903690600401613891565b50507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b03163303612a2e57630a85dc2960e01b5f5260045ffd5b5f366003190112610e695763389a75e1600c52335f525f6020600c2055337ffa7b8eab7da67f412cc9575ed43464468f9bfbae89d1675917346ca6d8fe3c925f80a2005b34610e69576080366003190112610e6957612be4613805565b612bec613865565b604435906064356001600160a01b03811690819003610e69577f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b03163303610eb6573068929eee149b4bd21268541461102a573068929eee149b4bd21268556001600160a01b038216908115612d9f576001600160a01b038516918214612d9057612c7d83614273565b612d81575f848152600760205260409020546001600160a01b0316918215908115612d76575b50610ea757818114159182612d55575b82612d31575b5050610e6d5782612cd7670de0b6b3a76400009383612d0096614735565b60017f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5d614928565b5f7f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5d3868929eee149b4bd2126855005b9091505f52600f60205260405f20905f5260205260ff60405f205416158480612cb9565b5f858152600e60205260409020546001600160a01b03168214159250612cb3565b905082141586612ca3565b6385d5c4b360e01b5f5260045ffd5b635582b29b60e11b5f5260045ffd5b63a38ca3d960e01b5f5260045ffd5b34610e69575f366003190112610e6957602060405160c88152f35b34610e69575f366003190112610e69576040517f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b03168152602090f35b34610e69576020366003190112610e69576001600160a01b03612e2e613805565b165f52600d602052602060405f2054604051908152f35b34610e69575f366003190112610e69576020600454604051908152f35b34610e69576020366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd2126855612e98613d05565b6110ec6004356145c6565b34610e69575f366003190112610e6957602060a0612ebf613bd0565b828151910120604051907f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f8252838201527fc89efdaa54c0f20c7adf612882df0950f5a951637e0307cdcb4c672f298b8bc6604082015246606082015230608082015220604051908152f35b34610e69575f366003190112610e69576020600554604051908152f35b34610e69575f366003190112610e6957602060ff5f54166040519015158152f35b34610e69575f366003190112610e69576020600154604051908152f35b34610e69575f366003190112610e6957602060405160128152f35b34610e69576020366003190112610e69573068929eee149b4bd21268541461102a573068929eee149b4bd21268556110ec600435613c1e565b34610e69575f366003190112610e6957602060025460020b604051908152f35b34610e6957613008366138be565b5050507f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b031633039150612a2e905057630a85dc2960e01b5f5260045ffd5b5f366003190112610e695763389a75e1600c52335f526202a30042016020600c2055337fdbf36a107da19e49527a7176a1babf963b4b0ff8cde35ee35d6cd8f1f9ac7e1d5f80a2005b34610e69576060366003190112610e69576130b0613805565b6130b8613865565b604435908260601b6e22d473030f116ddee9f6b43ac78ba33303613150575b6387a211a217600c526020600c20928354938484116131435783610c9395039055815f526020600c2083815401905582602052600c5160601c60018060a01b0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361418d565b63f4d678b85f526004601cfd5b33602052637f5e9f208117600c526034600c20908154918219613176575b5090506130d7565b82851161318d57846387a211a2930390558561316e565b6313be252b5f526004601cfd5b34610e69575f366003190112610e695760206805345cdf77eb68f44c54604051908152f35b34610e69576020366003190112610e69576001600160a01b036131e0613805565b165f526009602052602063ffffffff60405f205416604051908152f35b34610e69576040366003190112610e6957613216613805565b602435906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba318821915171561328c57602052637f5e9f20600c52335f52806034600c20555f52602c5160601c337f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560205fa3602060405160018152f35b633f68539a5f526004601cfd5b34610e69575f366003190112610e6957610f0c6132b4613bd0565b604051918291602083526020830190613841565b34610e69576080366003190112610e69576132e1613805565b6024358060020b91828203610e6957604435918260020b90818403610e6957606435936fffffffffffffffffffffffffffffffff8516809503610e6957613326614171565b5f5460ff81166137cb576101019061ffff1916175f5562ffffff6002549160181b65ffffff0000001692169065ffffffffffff191617176002555f608060405161336f816139e1565b828152826020820152826040820152826060820152015260405190613393826139e1565b5f825261352060208301308152612710604085015260c8606085015230608085015260405190600160f91b6020830152600d60f81b6021830152600282526133dc602283613a10565b6134126134626133ea613a48565b9561345460209b8c92604051916134018584613a10565b5f835260405196879586018d613ab9565b60c085015260e08401528b6101008401525f61012084015269010f0cf064dd5920000061014084015230610160840152610180808401526101a0830190613841565b03601f198101835282613a10565b61346b85613afc565b5261347584613afc565b5084519051604080516001600160a01b039384168b820152929091168282015281526134a2606082613a10565b6134ab84613b09565b526134b583613b09565b506134be613a48565b946134dc6040519563f702040560e01b8a8801526024870190613ab9565b6001600160a01b031660c48086018290528552936134fb60e482613a10565b61350486613afc565b5261350e85613afc565b50613454604051938492898401613b71565b603c4201908142116126aa5760405163dd46508f60e01b878201529161354f9183916134549160248401613bb4565b61355883613b09565b5261356282613b09565b50604051631d5e528f60e21b81527f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e6001600160a01b03169390928584600481885afa938415610e5e575f94613798575b5061360884955f9592869360015560017f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075d604051968780948193631592ca1b60e31b83528c60048401526024830190613b19565b03925af1928315610e5e578493613675575b507ffe63da4fe969b1e07045f0692960917764e830b7f6f7b71a799fdff33c120319916040915f7f3f1c7b2a9e5d8c4f6b0a1d3e7c9f2b5a8d4e6c1f0b3a7d9e2c5f8b1a4d6e3c075d825191825286820152a2604051908152f35b909192503d805f833e6136888183613a10565b8101908581830312610e69578051906001600160401b038211610e69570181601f82011215610e69578051916136bd83613a31565b926136cb6040519485613a10565b808452878085019160051b84010192828411610e69579081898998979695949301915b84831061372357507ffe63da4fe969b1e07045f0692960917764e830b7f6f7b71a799fdff33c120319945061361a9350505050565b90918093949596979850516001600160401b038111610e6957820184603f82011215610e69578a8101519161375783613a82565b6137646040519182613a10565b838152868d80868601010111610e69575f8d85819660408397018386015e83010152815201920190889796959493926136ee565b9350938584813d83116137c4575b6137b08183613a10565b81010312610e6957925192936136086135b3565b503d6137a6565b6308627e3960e31b5f5260045ffd5b34610e69575f366003190112610e695760209060ff5f5460081c1615158152f35b5f910312610e6957565b600435906001600160a01b0382168203610e6957565b60c435906001600160a01b0382168203610e6957565b60e435908160020b8203610e6957565b805180835260209291819084018484015e5f828201840152601f01601f1916010190565b602435906001600160a01b0382168203610e6957565b604435906001600160a01b0382168203610e6957565b9181601f84011215610e69578235916001600160401b038311610e695760208381860195010111610e6957565b90610160600319830112610e69576004356001600160a01b0381168103610e69579160a0602319820112610e6957602491608060c319830112610e695760c49161014435906001600160401b038211610e695761391d91600401613891565b9091565b906101a0600319830112610e69576004356001600160a01b0381168103610e69579160a0602319820112610e6957602491608060c319830112610e695760c4916101443591610164359161018435906001600160401b038211610e695761391d91600401613891565b610120600319820112610e69576004356001600160a01b0381168103610e69579160a0602319830112610e695760249160c4359160e4359161010435906001600160401b038211610e695761391d91600401613891565b60a081019081106001600160401b038211176139fc57604052565b634e487b7160e01b5f52604160045260245ffd5b90601f801991011681019081106001600160401b038211176139fc57604052565b6001600160401b0381116139fc5760051b60200190565b60405160609190613a598382613a10565b6002815291601f1901825f5b828110613a7157505050565b806060602080938501015201613a65565b6001600160401b0381116139fc57601f01601f191660200190565b613aa65f613a82565b90613ab46040519283613a10565b5f8252565b80516001600160a01b03908116835260208083015182169084015260408083015162ffffff169084015260608083015160020b9084015260809182015116910152565b8051156112a15760200190565b8051600110156112a15760400190565b9080602083519182815201916020808360051b8301019401925f915b838310613b4457505050505090565b9091929394602080613b62600193601f198682030187528951613841565b97019301930191939290613b35565b9091613b88613b9693604084526040840190613841565b916020818403910152613b19565b90565b90603c82018092116126aa57565b919082018092116126aa57565b929190613bcb602091604086526040860190613841565b930152565b60405190613bdf604083613a10565b6005825264507269736d60d81b6020830152565b8115613bfd570490565b634e487b7160e01b5f52601260045260245ffd5b919082039182116126aa57565b613c2733614273565b612d81576387a211a2600c52335f52670de0b6b3a76400006020600c20540490335f52600960205263ffffffff60405f2054169182811115613ca157613c8e92613c7091613c11565b9080151580613c98575b613c90575b50613c886143c5565b33614415565b565b90505f613c7f565b50808211613c7a565b505050565b60a090613b96939281525f60208201525f60408201525f60608201528160808201520190613841565b9064e8d4a5100082029180830464e8d4a5100014901517156126aa57565b906107d08202918083046107d014901517156126aa57565b613d17613d135f5460ff1690565b1590565b80156140a8575b613c8e57613d4b7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90614b30565b613c8e5747613d67306387a211a2600c525f526020600c205490565b604051600160f81b6020820152601160f81b6021820152909190613d8e8160228101613454565b613d96613a48565b600154613db7613da4613a9d565b9161345460405193849260208401613ca6565b613dc082613afc565b52613dca81613afc565b50604080515f6020820152309181018290526060810191909152613df18160808101613454565b613dfa82613b09565b52613e0481613b09565b506040517f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e6001600160a01b0316929091613e489183916134549160208401613b71565b613e5142613b99565b823b15610e6957613e7b925f928360405180968195829463dd46508f60e01b845260048401613bb4565b03925af1908161408e575b50613eb35750507fcd884f846d743431d3327566b7bdf8979b1b06eead9ecf708609a77d0b74a3405f80a1565b47613ecb306387a211a2600c525f526020600c205490565b918082111561408557613edd91613c11565b915b8082111561407d57613ef091613c11565b5f5460081c60ff1615613f5b57613f0b61ff00195f54165f55565b8115801590613f52575b613f1e575b5050565b6040805192835260208301919091527f6b77c11fc762906f0ec8885ad6c798f4b9edcacd913cd97e1bca70693ba8d5ec91a1565b50801515613f15565b8115801580614059575b8215159081613fba575b91613fb2575b50613f7e575050565b6040805192835260208301919091527fc4269297a66dc5f8d6fafdd31a219e089fd656e2942bbfc3cb506ddd6e475d8c91a1565b90505f613f75565b613fce613fc685613ced565b612710900490565b613fd88186613c11565b908061401a575b5080613fec575b50613f6f565b61400f614007613ffe61401493613ccf565b60045490613bf3565b600654613ba7565b600655565b5f613fe6565b6140278161dead30614928565b6040519081527fa7ed6c38e8a9e616e1f7217dbc14463b6164a0887f4db0395e763e13a958001b90602090a15f613fdf565b61407861407361406b613ffe87613ccf565b600554613ba7565b600555565b613f65565b50505f613ef0565b50505f91613edf565b8061409c5f6140a293613a10565b806137fb565b5f613e86565b5060045415613d1e565b91908110156112a15760051b0190565b5f818152600760205260409020549091906001600160a01b03161561412d576140ea82614bbf565b61412d5764e8d4a5100061412981614111600554865f52600a60205260405f205490613c11565b0493600654905f52600b60205260405f205490613c11565b0490565b5f91508190565b906001600160a01b0381166e22d473030f116ddee9f6b43ac78ba31461416a57602052637f5e9f20600c525f526034600c205490565b50505f1990565b638b78c6d81954330361418057565b6382b429005f526004601cfd5b9190917f9a8f8d1e3c5b7a9d6e2f4a8c7b5d3f9e1a6c4b8d2e7f5a9c3b1d6e8f2a4c7b9d5c613ca1576141bf81614273565b156141c984614273565b15905f93828061425d575b61421c575b508080614215575b156141f257505091613c8e92614cab565b156142025750613c8e9250614bf6565b905061420c575050565b613c8e91614bf6565b50816141e1565b614256919450670de0b6b3a764000061424f614245886387a211a2600c525f526020600c205490565b9282840493613c11565b0490613c11565b925f6141d9565b506001600160a01b0386811690851614156141d4565b6001600160a01b03168015908115614392575b8115614388575b8115614355575b8115614349575b8115614316575b81156142e3575b81156142b3575090565b7f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b031614919050565b7f000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba36001600160a01b0316811491506142a9565b7f000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e6001600160a01b0316811491506142a2565b61dead8114915061429b565b7f000000000000000000000000df0a7ec235fb104e5b3e7426da7709186a809d476001600160a01b031681149150614294565b308114915061428d565b7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a906001600160a01b031681149150614286565b60ff5f541615801561440b575b613c8e576143ff7f000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90614b30565b613c8e57613c8e613d05565b50600454156143d2565b9060808110156145be575b7f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b0316915f5b82811061445a5750505050565b60016003540190816003557f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215c15614596575b6001600160a01b0383165f81815260096020908152604080832054868452600790925290912060a082901b63ffffffff60a01b16831790559092906144ec9063ffffffff9060019082166144e4838616828a614ee0565b011685614f2b565b614513600554600654908390815f52600a60205260405f20555f52600b60205260405f2055565b600160045401600455853b15610e6957604051926323de665160e01b84525f60048501528060248501528160448501525f84606481838b5af1938415610e5e57600194614586575b507f4cc0a9c4a99ddc700de1af2c9f916a7cbfdb71f14801ccff94061ad1ef8a80405f80a30161444d565b5f61459091613a10565b5f61455b565b817f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215d61448d565b506080614420565b5f818152600760205260409020546001600160a01b0316908115610ea7577fd9cb1e2714d65a111c0f20f060176ad657496bd47a3de04ec7c3d4ca232112ac6040600554835f52600a60205264e8d4a51000614625835f205483613c11565b0490600654855f52600b60205264e8d4a51000614645855f205483613c11565b049161465087614bbf565b614712575b5f878152600a6020908152604080832093909355600b9052205581158015806146f5575b82151590816146d8575b916146d0575b5061469c575b82519182526020820152a3565b857fe992e5edd2a9058442e44178788b99aee673ab9ac3f4220f33a463e8614bf235848051858152846020820152a261468f565b90505f614689565b885f52600d602052855f206146ee858254613ba7565b9055614683565b875f52600c602052845f2061470b858254613ba7565b9055614679565b5f9350839250614655565b63ffffffff5f199116019063ffffffff82116126aa57565b90916147418183614e00565b614768600554600654908390815f52600a60205260405f20555f52600b60205260405f2055565b6147d1614787825f52600760205263ffffffff60405f205460a01c1690565b6001600160a01b0384165f908152600960205260409020546147ae9063ffffffff1661471d565b9063ffffffff8216908563ffffffff8216928084036148d8575b50915050614f2b565b60018060a01b0383165f526009602052600163ffffffff60405f2054166147ff63ffffffff84168287614ee0565b5f8381526007602052604090206001600160a01b03861660a083901b63ffffffff60a01b161790550163ffffffff81116126aa5761483d9084614f2b565b5f818152600e6020526040902080546001600160a01b03191690557f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b0316803b15610e69576040516323de665160e01b81526001600160a01b03938416600482015293909216602484015260448301525f908290606490829084905af18015610e5e576148ce5750565b5f613c8e91613a10565b61491f936148f66148ee63ffffffff93856149fc565b809285614ee0565b169190915f52600760205263ffffffff60a01b9060a01b169060018060a01b03161760405f2055565b5f8085816147c8565b91906387a211a28360601b17600c526020600c20928354938484116131435783613c8e95039055815f526020600c2083815401905582602052600c5160601c60018060a01b0382167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef602080a361418d565b60018060a01b031680638b78c6d819547f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e05f80a3638b78c6d81955565b60405160208101918252306040820152604081526149f6606082613a10565b51902090565b9063ffffffff9160018060a01b03165f52600860205260405f208160031c5f5260205260e060405f20549160051b161c1690565b335f52600d60205260405f20548015801580614b12575b335f52600c60205260405f20545f9481614aa8575b505090614a9f575b614a6c575050565b60405191825260208201527ffc89244482d96e83ebb3fcd7cd13b1dbdb3cda4ca9885d7b4a57e3d26a7451e760403392a2565b50811515614a64565b5f808084819499959699338352600c6020528260408120555af13d15614b0d573d614ad281613a82565b90614ae06040519283613a10565b81525f60203d92013e5b15614af95750925b5f80614a5c565b9390335f52600c60205260405f2055614af2565b614aea565b335f52600d6020525f6040812055614b2b838530614928565b614a47565b60405163789add5560e11b81527fc090fc4683624cfc3884e9d8de5eca132f2d0ec062aff75d43c0465d5ceeab23600482015290602090829060249082906001600160a01b03165afa908115610e5e575f91614b8d575b50151590565b90506020813d602011614bb7575b81614ba860209383613a10565b81010312610e6957515f614b87565b3d9150614b9b565b7f7a2e5c8b1f4d9a6c3e0b7d2f5a8c1e4b9d6f3a0c7e2b5d8f1a4c9e6b3d0f7a215c8015159182614bef57505090565b1015919050565b90670de0b6b3a7640000614c17836387a211a2600c525f526020600c205490565b6001600160a01b0384165f9081526009602052604090205463ffffffff1691900481811115614c6d5790614c4a91613c11565b90808211614c65575b50614c5c6143c5565b613c8e91614415565b90505f614c53565b818192935011614c7c57505050565b614c8591613c11565b905f5b82811015613ca157600190614ca5614c9f84614fdf565b84615013565b01614c88565b9291906387a211a2600c52835f52670de0b6b3a76400006020600c2054046387a211a2600c52815f52670de0b6b3a76400006020600c20540460018060a01b0386165f52600960205263ffffffff60405f20541660018060a01b0384165f52600960205263ffffffff60405f205416928082115f14614df757614d2d91613c11565b915b80821115614de857614d47614d6191614d5b93613c11565b925b83811015614dde578092838092613c11565b93613c11565b93808511614dd6575b5083614dc9575b5f5b818110614dad5750505f5b818110614d92575050613c8e929350614415565b600190614da7614da188614fdf565b88615013565b01614d7e565b600190614dc3614dbc89614fdf565b868a614735565b01614d73565b614dd16143c5565b614d71565b93505f614d6a565b8392838092613c11565b5050614d5b614d615f92614d49565b50505f91614d2f565b614e0982614bbf565b613f1a5764e8d4a51000614e3081614111600554865f52600a60205260405f205490613c11565b04908215908180614ed8575b614ed2577fe992e5edd2a9058442e44178788b99aee673ab9ac3f4220f33a463e8614bf2359260409215614ead575b80614e88575b825194855260208501526001600160a01b031692a2565b60018060a01b0382165f52600d602052825f20614ea6828254613ba7565b9055614e71565b60018060a01b0382165f52600c602052825f20614ecb868254613ba7565b9055614e6b565b50505050565b508215614e3c565b6001600160a01b03165f908152600860209081526040808320600385901c84529091529020805463ffffffff60059390931b60e01683811b199091169390921690911b919091179055565b6001600160a01b03165f908152600960205260409020805463ffffffff191663ffffffff92909216919091179055565b61ffff60c89116029061ffff82169182036126aa57565b61ffff166105aa019061ffff82116126aa57565b61ffff1661019a019061ffff82116126aa57565b90604051600a608082019360a083016040525f8552935b5f190193603082820601855304928315614fcd57600a90614fb1565b809350608091030191601f1901918252565b61500f63ffffffff9160018060a01b0381165f526009602052826150088160405f20541661471d565b16906149fc565b1690565b61501d8282614e00565b615039825f52600760205263ffffffff60405f205460a01c1690565b6150865f9160018060a01b03841693845f52600960205261506363ffffffff60405f20541661471d565b9163ffffffff8316908263ffffffff8216928084036151a5575b50505050614f2b565b5f838152600760209081526040808320839055600a8252808320839055600b8252808320839055600e909152902080546001600160a01b0319169055600480545f19019081905515615193575b7f000000000000000000000000c1e66f065ee0960e2ee4e1d7c1b3b48a9972bacc6001600160a01b031690813b15610e69575f80926064604051809581936323de665160e01b83528860048401528160248401528960448401525af18015610e5e57615161575b7fd6a6bcd88cdc4656d5f4e14e7dfbc9bc3f2f9811f8d6b508f3bee7d999d4d41c915080a3565b505f61516c91613a10565b7fd6a6bcd88cdc4656d5f4e14e7dfbc9bc3f2f9811f8d6b508f3bee7d999d4d41c5f61513a565b61010061ff00195f5416175f556150d3565b6151bb936148f66148ee63ffffffff93856149fc565b5f80828161507d565b613b96600161ffff60209316838061523361ffff806103e8808704960616600a81105f146152715761522b60226151fb8693614f9a565b60405193849161030360f41b828401528051918291018484015e81015f838201520301601f198101835282613a10565b945b16614f9a565b926040519684889551918291018487015e840190601760f91b83830152805192839101602183015e01015f838201520301601f198101835282613a10565b60648110156152be576152b860216152898693614f9a565b604051938491600360fc1b828401528051918291018484015e81015f838201520301601f198101835282613a10565b9461522d565b6152b890614f9a565b9081518110156112a157016020019056fea26469706673582212209f999cddf9cd2794360063ab2400d65a01613befbc824184bfaa05922d7e642c64736f6c634300081a0033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90000000000000000000000000fe76f05a01163e5c90329a0d1a2c8e389fd0f110000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3000000000000000000000000df0a7ec235fb104e5b3e7426da7709186a809d470000000000000000000000000000000000000000000000f17d101c704d7a4443

-----Decoded View---------------
Arg [0] : _poolManager (address): 0x000000000004444c5dc75cB358380D2e3dE08A90
Arg [1] : _owner (address): 0xfE76f05A01163E5c90329A0d1A2c8e389Fd0f110
Arg [2] : _posm (address): 0xbD216513d74C8cf14cf4747E6AaA6420FF64ee9e
Arg [3] : _permit2 (address): 0x000000000022D473030F116dDEE9F6B43aC78BA3
Arg [4] : _migrationVault (address): 0xdF0A7EC235Fb104E5B3e7426DA7709186A809d47
Arg [5] : _migrationAmount (uint256): 4454677055887032075331

-----Encoded View---------------
6 Constructor Arguments found :
Arg [0] : 000000000000000000000000000000000004444c5dc75cb358380d2e3de08a90
Arg [1] : 000000000000000000000000fe76f05a01163e5c90329a0d1a2c8e389fd0f110
Arg [2] : 000000000000000000000000bd216513d74c8cf14cf4747e6aaa6420ff64ee9e
Arg [3] : 000000000000000000000000000000000022d473030f116ddee9f6b43ac78ba3
Arg [4] : 000000000000000000000000df0a7ec235fb104e5b3e7426da7709186a809d47
Arg [5] : 0000000000000000000000000000000000000000000000f17d101c704d7a4443

🤖 Code Reader

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

Custom Contract ABI

                            

Block Uncle Number Difficulty Gas Used Reward
View All Uncles
Loading...
Loading
Loading...
Loading
Loading...
Loading
[ Download: CSV Export  ]
[ Download: CSV Export  ]

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