UNPKG

@uniswap/v4-periphery

Version:

🦄 Peripheral smart contracts for interacting with Uniswap v4

1 lines • 963 kB
{"abi":[{"type":"receive","stateMutability":"payable"},{"type":"function","name":"IS_SCRIPT","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"LIQUIDITY_PARAMS","inputs":[],"outputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"MAX_PRICE_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"MIN_PRICE_LIMIT","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"REMOVE_LIQUIDITY_PARAMS","inputs":[],"outputs":[{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"},{"name":"liquidityDelta","type":"int256","internalType":"int256"},{"name":"salt","type":"bytes32","internalType":"bytes32"}],"stateMutability":"view"},{"type":"function","name":"SWAP_PARAMS","inputs":[],"outputs":[{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"amountSpecified","type":"int256","internalType":"int256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"_WETH9","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IWETH9"}],"stateMutability":"view"},{"type":"function","name":"deployAndApprovePosm","inputs":[{"name":"poolManager","type":"address","internalType":"contract IPoolManager"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployPermit2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"deployPosmHookModifyLiquidities","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"deployPosmHookSavesDelta","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"positionDescriptor","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IPositionDescriptor"}],"stateMutability":"view"},{"type":"function","name":"run","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"nonpayable"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_fuzz_mintFromDeltas_burn_fot","inputs":[{"name":"bips","type":"uint256","internalType":"uint256"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"},{"name":"tickLower","type":"int24","internalType":"int24"},{"name":"tickUpper","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_burn","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_burn_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_collect","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_collect_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_decreaseLiquidity","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_decreaseLiquidity_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_increaseLiquidity","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_increaseLiquidity_reenter_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_increaseLiquidity_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_hook_mint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_increaseFromDeltas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_increaseFromDeltas_fot","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_mintFromDeltas_fot","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrap_openDelta_reinvest","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrap_revertsInsufficientBalance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unwrap_usingContractBalance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_wrap_mint_openDelta","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_wrap_mint_revertsInsufficientBalance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_wrap_mint_usingContractBalance","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_wrap_mint_usingExactAmount","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"error","name":"InvalidBips","inputs":[]}],"bytecode":{"object":"0x600c805460ff199081166001908117909255601f80548216831790556077196080819052607860a0819052670de0b6b3a764000060c08190525f60e0819052602080546378ffff8865ffffffffffff19918216811790925560219390935560228290556101009490945261012092909252670de0b6b3a763ffff196101408190526101608390526023805490921690931790556024919091556025556101e06040526101808290526063196101a08190526bb504f333f9de6484597d89b36101c0819052602680549093168417909255602755602880546001600160a01b0319908116909217905560428054909116600e17905560438054614000600160a11b036001600160a81b031990911617905561011a9042906101ae565b604555604b80546001600160a01b03191661050017905560405161013d906101a0565b604051809103905ff080158015610156573d5f803e3d5ffd5b50604c80546001600160a01b03929092166001600160a01b0319928316179055604e8054821661abcd17905560508054909116610f8017905534801561019a575f80fd5b506101d3565b61121e806202cd6d83390190565b808201808211156101cd57634e487b7160e01b5f52601160045260245ffd5b92915050565b6202cb8b80620001e25f395ff3fe6080604052600436106200033a575f3560e01c80639d3dd07b11620001b2578063cb69539011620000ee578063eb3b5da81162000092578063f933e0ce116200006a578063f933e0ce14620008d5578063fa662c5e14620008ec578063fa7626d41462000903575f80fd5b8063eb3b5da81462000874578063f4367dcb146200088b578063f8ccbf4714620008a2575f80fd5b8063d6f7aa6b11620000c6578063d6f7aa6b146200082f578063e20c9f711462000846578063e6a61bbe146200085d575f80fd5b8063cb69539014620007ea578063d0f0f2681462000801578063d1e9a73e1462000818575f80fd5b8063b5508aa91162000156578063c0406226116200012e578063c040622614620007a5578063c7b8e15d14620007bc578063c9ec187214620007d3575f80fd5b8063b5508aa9146200074f578063b63ee5211462000766578063ba414fa6146200077d575f80fd5b8063a351449d116200018a578063a351449d14620006b4578063b0464fdc14620006cb578063b1a73b8a14620006e2575f80fd5b80639d3dd07b146200066f5780639e76080b1462000686578063a0b38250146200069d575f80fd5b8063542524dd11620002825780636b62ee811162000226578063916a17c611620001fe578063916a17c6146200060357806393ad73ed14620006295780639d29a8501462000658575f80fd5b80636b62ee8114620005a257806385226c8114620005b95780638c226f5e14620005df575f80fd5b806366d9a9a0116200025a57806366d9a9a0146200054e57806367382c05146200057457806368daee7a146200058b575f80fd5b8063542524dd14620004f257806355dfe2f5146200050957806363e8f7281462000520575f80fd5b80631498e16411620002ea57806339cd201311620002c257806339cd2013146200046c5780633e5e3c2314620004c45780633f7286f414620004db575f80fd5b80631498e16414620004095780631ed7831c14620004205780632ade38801462000446575f80fd5b80630a9254e4116200031e5780630a9254e414620003835780630dc71469146200039a578063106d023114620003b1575f80fd5b8063027d43d6146200034657806303ef31f6146200035f575f80fd5b366200034257005b5f80fd5b34801562000352575f80fd5b506200035d6200091e565b005b3480156200036b575f80fd5b506200035d6200037d3660046200da76565b62000e86565b3480156200038f575f80fd5b506200035d62000e9e565b348015620003a6575f80fd5b506200035d6200206c565b348015620003bd575f80fd5b50604754620003df9073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b34801562000415575f80fd5b506200035d620026b6565b3480156200042c575f80fd5b506200043762002817565b6040516200040091906200da94565b34801562000452575f80fd5b506200045d62002886565b6040516200040091906200db3a565b34801562000478575f80fd5b506023546024546025546200049b92600281810b936301000000909204900b9184565b60408051600295860b81529390940b602084015292820152606081019190915260800162000400565b348015620004d0575f80fd5b5062000437620029db565b348015620004e7575f80fd5b506200043762002a48565b348015620004fe575f80fd5b50620003df62002ab5565b34801562000515575f80fd5b506200035d62002ad9565b3480156200052c575f80fd5b50604d54620003df9073ffffffffffffffffffffffffffffffffffffffff1681565b3480156200055a575f80fd5b5062000565620030f7565b6040516200040091906200dcb0565b34801562000580575f80fd5b506200035d6200327c565b34801562000597575f80fd5b506200035d62003397565b348015620005ae575f80fd5b506200035d6200393f565b348015620005c5575f80fd5b50620005d062003d90565b6040516200040091906200dd52565b348015620005eb575f80fd5b506200035d620005fd3660046200ddda565b62003e65565b3480156200060f575f80fd5b506200061a62004d9b565b6040516200040091906200de31565b34801562000635575f80fd5b506020546021546022546200049b92600281810b936301000000909204900b9184565b34801562000664575f80fd5b506200035d62004ea2565b3480156200067b575f80fd5b506200035d620057ef565b34801562000692575f80fd5b506200035d62005d3b565b348015620006a9575f80fd5b506200035d62006124565b348015620006c0575f80fd5b506200035d6200660f565b348015620006d7575f80fd5b506200061a62006e71565b348015620006ee575f80fd5b506026546027546028546200071b9260ff16919073ffffffffffffffffffffffffffffffffffffffff1683565b604080519315158452602084019290925273ffffffffffffffffffffffffffffffffffffffff169082015260600162000400565b3480156200075b575f80fd5b50620005d062006f78565b34801562000772575f80fd5b506200035d6200704d565b34801562000789575f80fd5b506200079462007506565b604051901515815260200162000400565b348015620007b1575f80fd5b50620003df620075da565b348015620007c8575f80fd5b50620003df620076a4565b348015620007df575f80fd5b50620003df620076b6565b348015620007f6575f80fd5b506200035d620076c6565b3480156200080d575f80fd5b506200035d62007850565b34801562000824575f80fd5b506200035d62008229565b3480156200083b575f80fd5b506200035d620087e5565b34801562000852575f80fd5b506200043762008d9c565b34801562000869575f80fd5b506200035d62008e09565b34801562000880575f80fd5b506200035d620090f0565b34801562000897575f80fd5b506200035d6200993c565b348015620008ae575f80fd5b50604354620007949074010000000000000000000000000000000000000000900460ff1681565b348015620008e1575f80fd5b506200035d62009b58565b348015620008f8575f80fd5b506200035d62009cc3565b3480156200090f575f80fd5b50601f54620007949060ff1681565b606b546040517f69fe0e2d0000000000000000000000000000000000000000000000000000000081526064600482015273ffffffffffffffffffffffffffffffffffffffff909116906369fe0e2d906024015f604051808303815f87803b15801562000988575f80fd5b505af11580156200099b573d5f803e3d5ffd5b505050505f60445f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562000a0b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000a3191906200ded7565b606b549091505f9062000a5b9073ffffffffffffffffffffffffffffffffffffffff16306200a0da565b605854606b549192506835ab028ac154b8000091683635c9adc5dea00000915f91829173ffffffffffffffffffffffffffffffffffffffff91821691161462000aa657838362000aa9565b82845b60205491935091505f9062000af5906c010000000000000000000000009062000ad59060020b6200a1b0565b60205462000aed906301000000900460020b6200a1b0565b88896200a4c4565b6fffffffffffffffffffffffffffffffff1690505f62000b146200a5f4565b6058546040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018690526001606082015290915062000b8a90600b906080015b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529190528391906200a652565b506059546040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018490526001606082015262000bcc90600b9060800162000b53565b5060205462000c4490600590605890600281810b9163010000009004900b6fffffffffffffffffffffffffffffffff8060015f5b6040519080825280601f01601f19166020018201604052801562000c2b576020820181803683370190505b5060405160200162000b5397969594939291906200df1c565b505f62000c51826200a88f565b6044546045546040517fdd46508f00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9091169163dd46508f9162000cb0918591906004016200dff1565b5f604051808303815f87803b15801562000cc8575f80fd5b505af115801562000cdb573d5f803e3d5ffd5b5050606b545f925062000d06915073ffffffffffffffffffffffffffffffffffffffff16306200a0da565b6044546040517f6352211e000000000000000000000000000000000000000000000000000000008152600481018d905291925062000daa9173ffffffffffffffffffffffffffffffffffffffff90911690636352211e906024015b602060405180830381865afa15801562000d7d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000da391906200e014565b306200a8c3565b6044546040517f1efeed33000000000000000000000000000000000000000000000000000000008152600481018c905262000e5a9173ffffffffffffffffffffffffffffffffffffffff1690631efeed3390602401602060405180830381865afa15801562000e1b573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062000e4191906200e032565b6fffffffffffffffffffffffffffffffff16856200a957565b62000e7a62000e6a828b6200e090565b683635c9adc5dea000006200a957565b50505050505050505050565b62000e91816200a9b0565b62000e9b6200ab5b565b50565b62000ede6040518060400160405280600581526020017f414c4943450000000000000000000000000000000000000000000000000000008152506200aba5565b605655605580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560408051808201909152600381527f424f420000000000000000000000000000000000000000000000000000000000602082015262000f65906200aba5565b50605780547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905562000fb56200ad09565b62000fbf6200b30d565b5050602b5462000fe59073ffffffffffffffffffffffffffffffffffffffff1662000e86565b605554620010099073ffffffffffffffffffffffffffffffffffffffff166200b394565b6055546200102d9073ffffffffffffffffffffffffffffffffffffffff166200b4e8565b62001037620076c6565b604f546200105b9073ffffffffffffffffffffffffffffffffffffffff166200b394565b602954602a54604f546200109d9273ffffffffffffffffffffffffffffffffffffffff9081169281169116610bb86c010000000000000000000000006200b5ea565b6054558051603680547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602083015160378054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff167701000000000000000000000000000000000000000000000091909316029190911790556080909201516038805490931690821617909155604d54602a54620011c59291821691165f610bb86c010000000000000000000000006200b751565b8051605180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602083015160528054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151605380549093169116179055620012cb306200b7a8565b604d54620012ef9073ffffffffffffffffffffffffffffffffffffffff166200b929565b6040805160a0810182525f808252602a5473ffffffffffffffffffffffffffffffffffffffff90811660208401819052610bb884860152603c6060850152608090930191909152603980547fffffffffffffffffffffffff00000000000000000000000000000000000000009081168255603a80547fffffffffffffffffff000000000000000000000000000000000000000000000016909417750bb80000000000000000000000000000000000000000177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16773c000000000000000000000000000000000000000000000017909355603b8054909316909255602b5492517f6276cbbe000000000000000000000000000000000000000000000000000000008152921691636276cbbe9162001438916c01000000000000000000000000906004016200e0a6565b6020604051808303815f875af115801562001455573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200147b91906200e11c565b50604051806060016040528060366040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681526020016001820160179054906101000a900460020b60020b60020b8152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc460020b8152602001603c60020b815250605b5f820151815f015f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548162ffffff021916908362ffffff16021790555060608201518160010160176101000a81548162ffffff021916908360020b62ffffff1602179055506080820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506020820151816003015f6101000a81548162ffffff021916908360020b62ffffff16021790555060408201518160030160036101000a81548162ffffff021916908360020b62ffffff160217905550905050604051806060016040528060516040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681526020016001820160179054906101000a900460020b60020b60020b8152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815250508152602001620018fa605160010160179054906101000a900460020b6200ba5d565b60020b81526020016200191f605160010160179054906101000a900460020b6200ba9d565b60020b815250605f5f820151815f015f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548162ffffff021916908362ffffff16021790555060608201518160010160176101000a81548162ffffff021916908360020b62ffffff1602179055506080820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506020820151816003015f6101000a81548162ffffff021916908360020b62ffffff16021790555060408201518160030160036101000a81548162ffffff021916908360020b62ffffff160217905550905050604051806060016040528060396040518060a00160405290815f82015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600182015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016001820160149054906101000a900462ffffff1662ffffff1662ffffff1681526020016001820160179054906101000a900460020b60020b60020b8152602001600282015f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152505081526020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8860020b8152602001607860020b81525060635f820151815f015f820151815f015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506020820151816001015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060408201518160010160146101000a81548162ffffff021916908362ffffff16021790555060608201518160010160176101000a81548162ffffff021916908360020b62ffffff1602179055506080820151816002015f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050506020820151816003015f6101000a81548162ffffff021916908360020b62ffffff16021790555060408201518160030160036101000a81548162ffffff021916908360020b62ffffff1602179055509050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663c88a5e6d30683635c9adc5dea000006040518363ffffffff1660e01b815260040162001e2d92919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b5f604051808303815f87803b15801562001e45575f80fd5b505af115801562001e58573d5f803e3d5ffd5b505060445460405173ffffffffffffffffffffffffffffffffffffffff909116925062001e8691506200d990565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff08015801562001ebd573d5f803e3d5ffd5b50606b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216918217905562001f0d906200b929565b606b5462001f329073ffffffffffffffffffffffffffffffffffffffff16306200bab8565b606b54602a5462001f6f9173ffffffffffffffffffffffffffffffffffffffff90811691165f610bb86c010000000000000000000000006200b751565b8051605880547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602083015160598054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151605a80549093169116179055565b604454604080517f75794a3c000000000000000000000000000000000000000000000000000000008152905168056bc75e2d63100000925f9273ffffffffffffffffffffffffffffffffffffffff909116916375794a3c916004808201926020929091908290030181865afa158015620020e8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200210e91906200ded7565b6040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d5490921660e08401528252605e5480820b602084015263010000009004900b91810191909152909150620021f39083305f5b6040519080825280601f01601f191660200182016040528015620021ec576020820181803683370190505b506200bb1e565b604454604080517f75794a3c00000000000000000000000000000000000000000000000000000000815290515f9273ffffffffffffffffffffffffffffffffffffffff16916375794a3c9160048083019260209291908290030181865afa15801562002261573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200228791906200ded7565b6040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d54831660e0850152908352605e5480820b602085015263010000009004900b92820192909252604f54929350678ac7230489e80000925f926200237d9291859116845b6040519080825280601f01601f19166020018201604052801562002376576020820181803683370190505b506200bb8c565b6040805160a08101825260365473ffffffffffffffffffffffffffffffffffffffff9081168252603754808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b60608201526038549091166080820152909150620024349060017ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000846200bbae565b506044546040517f1efeed33000000000000000000000000000000000000000000000000000000008152600481018690525f9173ffffffffffffffffffffffffffffffffffffffff1690631efeed3390602401602060405180830381865afa158015620024a3573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620024c991906200e032565b6fffffffffffffffffffffffffffffffff169050620024e981876200a957565b6044546040517f1efeed330000000000000000000000000000000000000000000000000000000081526004810186905273ffffffffffffffffffffffffffffffffffffffff90911690631efeed3390602401602060405180830381865afa15801562002557573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200257d91906200e032565b6fffffffffffffffffffffffffffffffff1690506200259d81846200a957565b6044546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101879052620025f89173ffffffffffffffffffffffffffffffffffffffff1690636352211e9060240162000d61565b6044546040517f6352211e00000000000000000000000000000000000000000000000000000000815260048101869052620026ae9173ffffffffffffffffffffffffffffffffffffffff1690636352211e90602401602060405180830381865afa15801562002669573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200268f91906200e014565b604f5473ffffffffffffffffffffffffffffffffffffffff166200a8c3565b505050505050565b5f620026c16200a5f4565b60408051680579a814e10a7400006020820152919250620026e6916016910162000b53565b505f620026f3826200a88f565b6040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527ff4d678b8000000000000000000000000000000000000000000000000000000006004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e0906024015f604051808303815f87803b15801562002779575f80fd5b505af11580156200278c573d5f803e3d5ffd5b50506044546045546040517fdd46508f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909216935063dd46508f9250620027ec918591906004016200dff1565b5f604051808303815f87803b15801562002804575f80fd5b505af1158015620026ae573d5f803e3d5ffd5b606060168054806020026020016040519081016040528092919081815260200182805480156200287c57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162002850575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015620029d2575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015620029ba578382905f5260205f2001805462002928906200e13a565b80601f016020809104026020016040519081016040528092919081815260200182805462002956906200e13a565b8015620029a55780601f106200297b57610100808354040283529160200191620029a5565b820191905f5260205f20905b8154815290600101906020018083116200298757829003601f168201915b50505050508152602001906001019062002908565b505050508152505081526020019060010190620028a9565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200287c57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162002850575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200287c57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162002850575050505050905090565b62002ad6600173fffd8963efd1fc6a506488495d951d5263988d266200e18d565b81565b602a546040517f70a0823100000000000000000000000000000000000000000000000000000000815230600482015247915f9173ffffffffffffffffffffffffffffffffffffffff909116906370a0823190602401602060405180830381865afa15801562002b4a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002b7091906200ded7565b90505f60445f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa15801562002bde573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002c0491906200ded7565b6062549091505f9062002c57906c010000000000000000000000009062002c2e9060020b6200a1b0565b60625462002c46906301000000900460020b6200a1b0565b68056bc75e2d63100000806200a4c4565b90505f62002c646200a5f4565b60625490915062002cde90600290605f9080830b9063010000009004830b866fffffffffffffffffffffffffffffffff8060015f5b6040519080825280601f01601f19166020018201604052801562002cc4576020820181803683370190505b5060405160200162000b539897969594939291906200e1bc565b50604080515f602082015262002cf8916015910162000b53565b50604d546040805173ffffffffffffffffffffffffffffffffffffffff90921660208301525f908201819052606082015262002d3a90600b9060800162000b53565b50602a546040805173ffffffffffffffffffffffffffffffffffffffff909216602083015262002d6e916012910162000b53565b50604080515f602082015260019181019190915262002d939060149060600162000b53565b505f62002da0826200a88f565b6044546045546040517fdd46508f00000000000000000000000000000000000000000000000000000000815292935073ffffffffffffffffffffffffffffffffffffffff9091169163dd46508f9168058788cb94b1d800009162002e099186916004016200dff1565b5f604051808303818588803b15801562002e21575f80fd5b505af115801562002e34573d5f803e3d5ffd5b5050602a546040517f70a082310000000000000000000000000000000000000000000000000000000081523060048201524794505f935073ffffffffffffffffffffffffffffffffffffffff90911691506370a0823190602401602060405180830381865afa15801562002eaa573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002ed091906200ded7565b905062002ef462002ee2838a6200e090565b68056bc75e2d6310000060016200bdc1565b62002f0462002ee282896200e090565b6044546040517f6352211e0000000000000000000000000000000000000000000000000000000081526004810188905262002f5f9173ffffffffffffffffffffffffffffffffffffffff1690636352211e9060240162000d61565b6044546040517f1efeed3300000000000000000000000000000000000000000000000000000000815260048101889052620030219173ffffffffffffffffffffffffffffffffffffffff1690631efeed3390602401602060405180830381865afa15801562002fd0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002ff691906200e032565b6fffffffffffffffffffffffffffffffff16866fffffffffffffffffffffffffffffffff166200a957565b604d546044546040517f70a0823100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152620030c79291909116906370a08231906024015b602060405180830381865afa1580156200309a573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620030c091906200ded7565b5f6200a957565b604454620030ed9073ffffffffffffffffffffffffffffffffffffffff16315f6200a957565b5050505050505050565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015620029d2578382905f5260205f2090600202016040518060400160405290815f820180546200314d906200e13a565b80601f01602080910402602001604051908101604052809291908181526020018280546200317b906200e13a565b8015620031ca5780601f10620031a057610100808354040283529160200191620031ca565b820191905f5260205f20905b815481529060010190602001808311620031ac57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156200326357602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116200320f5790505b505050505081525050815260200190600101906200311a565b5f6040516200328b906200d99e565b604051809103905ff080158015620032a5573d5f803e3d5ffd5b50604b546040805173ffffffffffffffffffffffffffffffffffffffff808516803b8381016020908101909552808452959650737109709ecfa91a80626ff3989d68f67f5b1dd12d9563b4d6c78295909216935f91908401903c6040518363ffffffff1660e01b81526004016200331e9291906200e2ab565b5f604051808303815f87803b15801562003336575f80fd5b505af115801562003349573d5f803e3d5ffd5b5050604b54604a80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff909216919091179055505050565b604454604080517f75794a3c000000000000000000000000000000000000000000000000000000008152905168056bc75e2d63100000925f9273ffffffffffffffffffffffffffffffffffffffff909116916375794a3c916004808201926020929091908290030181865afa15801562003413573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906200343991906200ded7565b6040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d5490921660e08401528252605e5480820b602084015263010000009004900b91810191909152909150620034f19083305f620021c1565b603054670de0b6b3a76400009067016345785d8a00009073ffffffffffffffffffffffffffffffffffffffff1663234266d7605b84845f6040519080825280601f01601f19166020018201604052801562003553576020820181803683370190505b506040518563ffffffff1660e01b81526004016200357594939291906200e2db565b6020604051808303815f875af115801562003592573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620035b891906200ded7565b506040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d5490921660e08401528252605e5480820b602084015263010000009004900b918101919091525f906200369d908590835b6040519080825280601f01601f19166020018201604052801562003696576020820181803683370190505b506200be45565b604f546040805173ffffffffffffffffffffffffffffffffffffffff909216602480840182905282518085038201815260449094018352602080850180517f0ca968d8000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff91821617909152845160048152808401865291820180519091167fa9e35b2f000000000000000000000000000000000000000000000000000000001790529251949550737109709ecfa91a80626ff3989d68f67f5b1dd12d9463f28dceb3947f90bfb8650000000000000000000000000000000000000000000000000000000094620037c994937f575e24b40000000000000000000000000000000000000000000000000000000093016200e34e565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529181526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff000000000000000000000000000000000000000000000000000000009485161790525160e084901b90921682526200385b916004016200e3ba565b5f604051808303815f87803b15801562003873575f80fd5b505af115801562003886573d5f803e3d5ffd5b50506040805160a08101825260365473ffffffffffffffffffffffffffffffffffffffff9081168252603754808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b60608201526038549091166080820152620026ae9250905060017ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000846200bbae565b604454604080517f75794a3c000000000000000000000000000000000000000000000000000000008152905168056bc75e2d63100000925f9273ffffffffffffffffffffffffffffffffffffffff909116916375794a3c916004808201926020929091908290030181865afa158015620039bb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620039e191906200ded7565b6040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d5490921660e08401528252605e5480820b602084015263010000009004900b9181019190915290915062003a999083305f620021c1565b60448054604f546040517f095ea7b300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201526024810185905291169163095ea7b391015f604051808303815f87803b15801562003b0c575f80fd5b505af115801562003b1f573d5f803e3d5ffd5b50506040805161010081018252605b5473ffffffffffffffffffffffffffffffffffffffff90811660608301908152605c54808316608085015262ffffff7401000000000000000000000000000000000000000082041660a0850152770100000000000000000000000000000000000000000000009004600290810b60c0850152605d5490921660e08401528252605e5480820b602084015263010000009004900b91810191909152678ac7230489e8000092505f915062003c1290849084845b6040519080825280601f01601f19166020018201604052801562003c0b576020820181803683370190505b506200be5e565b6040805160a08101825260365473ffffffffffffffffffffffffffffffffffffffff9081168252603754808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b6060820152603854909116608082015290915062003cc99060017ffffffffffffffffffffffffffffffffffffffffffffffffff21f494c589c0000846200bbae565b506044546040517f1efeed33000000000000000000000000000000000000000000000000000000008152600481018590525f9173ffffffffffffffffffffffffffffffffffffffff1690631efeed3390602401602060405180830381865afa15801562003d38573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003d5e91906200e032565b6fffffffffffffffffffffffffffffffff16905062003d898162003d8385886200e3ce565b6200a957565b5050505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015620029d2578382905f5260205f2001805462003dd3906200e13a565b80601f016020809104026020016040519081016040528092919081815260200182805462003e01906200e13a565b801562003e505780601f1062003e265761010080835404028352916020019162003e50565b820191905f5260205f20905b81548152906001019060200180831162003e3257829003601f168201915b50505050508152602001906001019062003db3565b62003e758560016127106200be80565b606b546040517f69fe0e2d0000000000000000000000000000000000000000000000000000000081526004810183905291965073ffffffffffffffffffffffffffffffffffffffff16906369fe0e2d906024015f604051808303815f87803b15801562003ee0575f80fd5b505af115801562003ef3573d5f803e3d5ffd5b505060595462003fe69250600285810b925062003f4e91770100000000000000000000000000000000000000000000009004900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186200e411565b60595462003f7b919077010000000000000000000000000000000000000000000000900460020b6200e48a565b605954600291820b9162003fb091770100000000000000000000000000000000000000000000009004900b620d89e86200e411565b60595462003fdd919077010000000000000000000000000000000000000000000000900460020b6200e48a565b60020b6200bed1565b6059549092506200404190600283810b9162003f4e9177010000000000000000000000000000000000000000000000909104900b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff276186200e411565b605954909150620040719077010000000000000000000000000000000000000000000000900460020b836200e411565b6059546200409e919077010000000000000000000000000000000000000000000000900460020b6200e48a565b605954909250620040ce9077010000000000000000000000000000000000000000000000900460020b826200e411565b605954620040fb919077010000000000000000000000000000000000000000000000900460020b6200e48a565b6040517f4c63e562000000000000000000000000000000000000000000000000000000008152600284810b9083900b136004820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d90634c63e562906024015f6040518083038186803b15801562004169575f80fd5b505afa1580156200417c573d5f803e3d5ffd5b50506040805160a0808201835260585473ffffffffffffffffffffffffffffffffffffffff9081168352605954808216602085015274010000000000000000000000000000000000000000810462ffffff16948401949094527701000000000000000000000000000000000000000000000090930460020b6060830152605a549092166080820152205f92506200422e9150602b5473ffffffffffffffffffffffffffffffffffffffff16906200bfcd565b50506059549192505f9177010000000000000000000000000000000000000000000000900460020b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761881810784139082900503620d89e891909105036001016fffffffffffffffffffffffffffffffff04905090505f80620042c784620042b5886200a1b0565b620042c0886200a1b0565b866200c0b7565b91509150815f14620042ff576a084595161401484a0000008211620042ed578162004302565b6a084595161401484a00000062004302565b60015b9150801562004337576a084595161401484a00000081116200432557806200433a565b6a084595161401484a0000006200433a565b60015b90506200434a886001846200be80565b97506200435a876001836200be80565b96505050505f60445f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166375794a3c6040518163ffffffff1660e01b8152600401602060405180830381865afa158015620043cb573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620043f191906200ded7565b604080518082019091526058549192505f918190620044279073ffffffffffffffffffffffffffffffffffffffff16306200a0da565b81525f60209091018190526040805180820190915260595492935090918190620044689073ffffffffffffffffffffffffffffffffffffffff16306200a0da565b81525f602090910181905260408051808201909152602b54605854939450919290918291620044b19173ffffffffffffffffffffffffffffffffffffffff91821691166200a0da565b81525f602090910181905260408051808201909152602b54605954939450919290918291620044fa9173ffffffffffffffffffffffffffffffffffffffff91821691166200a0da565b81526020015f81525090505f620045106200a5f4565b6058546040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018d9052600160608201529091506200455490600b9060800162000b53565b506059546040805173ffffffffffffffffffffffffffffffffffffffff909216602083015281018b9052600160608201526200459690600b9060800162000b53565b50620045bc600560588b8b6fffffffffffffffffffffffffffffffff8060015f62000c00565b506058546059546040805173ffffffffffffffffffffffffffffffffffffffff9384166020820152929091169082015260016060820152620046049060119060800162000b53565b508b612710148015620046b55750605854606b5473ffffffffffffffffffffffffffffffffffffffff90811691161462004678578673ffffffffffffffffffffffffffffffffffffffff166200465a8a6200a1b0565b73ffffffffffffffffffffffffffffffffffffffff161015620046b3565b8673ffffffffffffffffffffffffffffffffffffffff166200469a896200a1b0565b73ffffffffffffffffffffffffffffffffffffffff1611155b155b15620047d7576040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527faefeb924000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e0906024015f604051808303815f87803b1580156200473e575f80fd5b505af115801562004751573d5f803e3d5ffd5b505060445473ffffffffffffffffffffffffffffffffffffffff16915063dd46508f905062004780836200a88f565b6045546040518363ffffffff1660e01b8152600401620047a29291906200dff1565b5f604051808303815f87803b158015620047ba575f80fd5b505af1158015620047cd573d5f803e3d5ffd5b5050505062004d8d565b60445473ffffffffffffffffffffffffffffffffffffffff1663dd46508f62004800836200a88f565b6045546040518363ffffffff1660e01b8152600401620048229291906200dff1565b5f604051808303815f87803b1580156200483a575f80fd5b505af11580156200484d573d5f803e3d5ffd5b505060585462004877925073fffff