@uniswap/v4-periphery
Version:
🦄 Peripheral smart contracts for interacting with Uniswap v4
1 lines • 726 kB
JSON
{"abi":[{"type":"receive","stateMutability":"payable"},{"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":"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":"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":"testQuoter_quoteExactInputSingle_OneForZero_MultiplePositions","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInputSingle_ZeroForOne_MultiplePositions","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2_0TickLoaded_startingInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2_0TickLoaded_startingNotInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2_1TickLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2_2TicksLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2_2TicksLoaded_initializedAfter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_0to2to1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_2to0_0TickLoaded_startingInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_2to0_0TickLoaded_startingNotInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_2to0_2TicksLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_2to0_2TicksLoaded_initializedAfter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactInput_2to1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutputSingle_0to1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutputSingle_1to0","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2_0TickLoaded_startingInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2_0TickLoaded_startingNotInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2_1TickLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2_1TickLoaded_initializedAfter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2_2TicksLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_0to2to1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_2to0_1TickLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_2to0_2TicksLoaded","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_2to0_2TicksLoaded_initializedAfter","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testQuoter_quoteExactOutput_2to1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_fuzz_quoter_msgSender","inputs":[{"name":"pranker","type":"address","internalType":"address"},{"name":"zeroForOne","type":"bool","internalType":"bool"},{"name":"exactInput","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"AfterSwapMsgSender","inputs":[{"name":"msgSender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"BeforeSwapMsgSender","inputs":[{"name":"msgSender","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"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}],"bytecode":{"object":"0x600c8054600160ff199182168117909255601f80548216831790556077196080819052607860a0819052670de0b6b3a764000060c08190525f60e08190526020805465ffffffffffff199081166378ffff8890811790925560219390935560228290556101009490945261012092909252670de0b6b3a763ffff196101408190526101608390526023805490921690931790556024919091556025556101e06040526101808290526063196101a08190526bb504f333f9de6484597d89b36101c081905260268054909316909317909155602755602880546001600160a01b0319908116909217905560428054600e90831617905560438054909116614000600160a01b03179055348015610112575f80fd5b5062021fc880620001225f395ff3fe6080604052600436106102da575f3560e01c80636d6344211161017b578063b0464fdc116100d1578063d4c7cfb111610087578063ee3b47d411610062578063ee3b47d414610755578063fa7626d414610769578063fe3f51c514610782575f80fd5b8063d4c7cfb114610719578063e20c9f711461072d578063e582394814610741575f80fd5b8063b5508aa9116100b7578063b5508aa9146106cd578063ba414fa6146106e1578063c7b8e15d14610705575f80fd5b8063b0464fdc1461064f578063b1a73b8a14610663575f80fd5b8063916a17c6116101315780639bf0e27e1161010c5780639bf0e27e14610613578063a11d4c9914610627578063ae0bd3eb1461063b575f80fd5b8063916a17c6146105b157806393ad73ed146105d257806395602125146105ff575f80fd5b8063838358c611610161578063838358c61461056857806385226c811461057c578063903c37e51461059d575f80fd5b80636d634421146105405780636fdd92ba14610554575f80fd5b80633e5e3c2311610230578063542524dd116101e657806364bff669116101c157806364bff669146104f757806366d9a9a01461050b5780636711166f1461052c575f80fd5b8063542524dd14610496578063564afec4146104cf5780636320fb9b146104e3575f80fd5b80633f7286f4116102165780633f7286f41461045a57806344bd1dff1461046e57806352ace85d14610482575f80fd5b80633e5e3c23146104325780633f5054d614610446575f80fd5b80632ade3880116102905780632eb362a41161026b5780632eb362a4146103b557806337be4913146103c957806339cd2013146103dd575f80fd5b80632ade38801461036c5780632be1ceba1461038d5780632ce829a9146103a1575f80fd5b80630a9254e4116102c05780630a9254e41461031a5780630d87d7c61461032e5780631ed7831c14610342575f80fd5b8063065797c9146102e55780630a3740fa146102fb575f80fd5b366102e157005b5f80fd5b3480156102f0575f80fd5b506102f9610796565b005b348015610306575f80fd5b506102f9610315366004617b26565b61095e565b348015610325575f80fd5b506102f9610d8b565b348015610339575f80fd5b506102f9611a88565b34801561034d575f80fd5b50610356611c49565b6040516103639190617b6e565b60405180910390f35b348015610377575f80fd5b50610380611cb6565b6040516103639190617c12565b348015610398575f80fd5b506102f9611dff565b3480156103ac575f80fd5b506102f9611fc2565b3480156103c0575f80fd5b506102f9612266565b3480156103d4575f80fd5b506102f9612596565b3480156103e8575f80fd5b5060235460245460255461040a92600281810b936301000000909204900b9184565b60408051600295860b81529390940b6020840152928201526060810191909152608001610363565b34801561043d575f80fd5b5061035661283a565b348015610451575f80fd5b506102f96128a5565b348015610465575f80fd5b50610356612b49565b348015610479575f80fd5b506102f9612bb4565b34801561048d575f80fd5b506102f9612df8565b3480156104a1575f80fd5b506104aa612fb9565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610363565b3480156104da575f80fd5b506102f9612fdb565b3480156104ee575f80fd5b506102f961319e565b348015610502575f80fd5b506102f96134ce565b348015610516575f80fd5b5061051f613691565b6040516103639190617d80565b348015610537575f80fd5b506102f961380a565b34801561054b575f80fd5b506102f9613a88565b34801561055f575f80fd5b506102f9613cc6565b348015610573575f80fd5b506102f9613f6a565b348015610587575f80fd5b5061059061412b565b6040516103639190617e1c565b3480156105a8575f80fd5b506102f96141f6565b3480156105bc575f80fd5b506105c561439e565b6040516103639190617e91565b3480156105dd575f80fd5b5060205460215460225461040a92600281810b936301000000909204900b9184565b34801561060a575f80fd5b506102f96144a1565b34801561061e575f80fd5b506102f9614664565b348015610632575f80fd5b506102f96148f9565b348015610646575f80fd5b506102f9614b9d565b34801561065a575f80fd5b506105c5614d79565b34801561066e575f80fd5b5060265460275460285461069a9260ff16919073ffffffffffffffffffffffffffffffffffffffff1683565b604080519315158452602084019290925273ffffffffffffffffffffffffffffffffffffffff1690820152606001610363565b3480156106d8575f80fd5b50610590614e7c565b3480156106ec575f80fd5b506106f5614f47565b6040519015158152602001610363565b348015610710575f80fd5b506104aa615017565b348015610724575f80fd5b506102f9615027565b348015610738575f80fd5b50610356615205565b34801561074c575f80fd5b506102f9615270565b348015610760575f80fd5b506102f96152fe565b348015610774575f80fd5b50601f546106f59060ff1681565b34801561078d575f80fd5b506102f96153fc565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556046548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152610896939092909183018282801561088957602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161085e575b50505050506127106154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc9906108f1908690600401617f33565b60408051808303815f875af115801561090c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906109309190618065565b915091506109408161c350615707565b61094d8162061a80615783565b6109598261268f6157db565b505050565b604080516101208101825260525473ffffffffffffffffffffffffffffffffffffffff9081166080830190815260535480831660a085015274010000000000000000000000000000000000000000810462ffffff1660c085015277010000000000000000000000000000000000000000000000900460020b60e084015260545490911661010083015281528315156020808301919091526127108284015282515f8082529181019093529160608201526040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063491cc7c2906084015f604051808303815f87803b158015610a89575f80fd5b505af1158015610a9b573d5f803e3d5ffd5b505060405173ffffffffffffffffffffffffffffffffffffffff871681527f690665146a95b58be05eeff00f64ab48d521677e97e2c66af1d364f734bc0ce79250602001905060405180910390a16040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063491cc7c2906084015f604051808303815f87803b158015610b61575f80fd5b505af1158015610b73573d5f803e3d5ffd5b505060405173ffffffffffffffffffffffffffffffffffffffff871681527f17f25cc1d3bd08d4b7c575dc3d2ac6512eedd366c52ca1dcdb197d2c3c64d3da9250602001905060405180910390a16040517fca669fa700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ca669fa7906024015f604051808303815f87803b158015610c39575f80fd5b505af1158015610c4b573d5f803e3d5ffd5b5050505081610cee576044546040517f5873307300000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911690635873307390610caa9084906004016180b4565b60408051808303815f875af1158015610cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610ce99190618065565b610d83565b6044546040517faa9d21cb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091169063aa9d21cb90610d449084906004016180b4565b60408051808303815f875af1158015610d5f573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610d839190618065565b505050505050565b610d93615833565b602b5460408051808201909152600181525f6020820152610dca9173ffffffffffffffffffffffffffffffffffffffff1690615e16565b604480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff928316179055602b54604051911690610e1d90617a4d565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff080158015610e53573d5f803e3d5ffd5b50604580547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055604051601290610ea890617a5b565b60608082526005908201527f5465737430000000000000000000000000000000000000000000000000000000608082015260a0602082018190526001908201527f300000000000000000000000000000000000000000000000000000000000000060c082015260ff909116604082015260e001604051809103905ff080158015610f34573d5f803e3d5ffd5b50604680547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff929092169182179055604080516020833b8083018201909352828252737109709ecfa91a80626ff3989d68f67f5b1dd12d9363b4d6c78293611111939290915f918401903c6040518363ffffffff1660e01b8152600401610fd292919061817e565b5f604051808303815f87803b158015610fe9575f80fd5b505af1158015610ffb573d5f803e3d5ffd5b5050604680547fffffffffffffffffffffffff0000000000000000000000000000000000000000166111119081179091556040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015270010000000000000000000000000000000060248201529092506340c10f1991506044015f604051808303815f87803b158015611093575f80fd5b505af11580156110a5573d5f803e3d5ffd5b505060465460408051602073ffffffffffffffffffffffffffffffffffffffff909316803b8083018501909352828252737109709ecfa91a80626ff3989d68f67f5b1dd12d955063b4d6c7829450612222939192915f91908401903c6040518363ffffffff1660e01b815260040161111e92919061817e565b5f604051808303815f87803b158015611135575f80fd5b505af1158015611147573d5f803e3d5ffd5b5050604780547fffffffffffffffffffffffff0000000000000000000000000000000000000000166122229081179091556040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015270010000000000000000000000000000000060248201529092506340c10f1991506044015f604051808303815f87803b1580156111df575f80fd5b505af11580156111f1573d5f803e3d5ffd5b505060465460408051602073ffffffffffffffffffffffffffffffffffffffff909316803b8083018501909352828252737109709ecfa91a80626ff3989d68f67f5b1dd12d955063b4d6c7829450613333939192915f91908401903c6040518363ffffffff1660e01b815260040161126a92919061817e565b5f604051808303815f87803b158015611281575f80fd5b505af1158015611293573d5f803e3d5ffd5b5050604880547fffffffffffffffffffffffff0000000000000000000000000000000000000000166133339081179091556040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015270010000000000000000000000000000000060248201529092506340c10f1991506044015f604051808303815f87803b15801561132b575f80fd5b505af115801561133d573d5f803e3d5ffd5b505050505f60405161134e90617a69565b604051809103905ff080158015611367573d5f803e3d5ffd5b5090505f604060801790507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663b4d6c782828473ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b815260040161140092919061817e565b5f604051808303815f87803b158015611417575f80fd5b505af1158015611429573d5f803e3d5ffd5b5050604654604754611457935073ffffffffffffffffffffffffffffffffffffffff9182169250165f615f78565b8051604980547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416179091556020830151604a8054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151604b8054909316908216179091556046546048546115699291821691165f615f78565b8051604c80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff938416179091556020830151604d8054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151604e80549093169082161790915560475460485461167b9291821691165f615f78565b8051604f80547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602083015160508054604086015160608701519386167fffffffffffffffffff0000000000000000000000000000000000000000000000909216919091177401000000000000000000000000000000000000000062ffffff92831602177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009190931602919091179055608090920151605180549093169082161790915560465460475461178d92918216911683615f78565b8051605280547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff93841617909155602080840151605380546040808801516060808a01519589167fffffffffffffffffff0000000000000000000000000000000000000000000000909416939093177401000000000000000000000000000000000000000062ffffff9283168102919091177fffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffff16770100000000000000000000000000000000000000000000009683168702179094556080988901516054805490981690891617909655805160a08101825260495488168152604a548089169682019690965292850490951694820194909452910460020b91810191909152604b54909116918101919091526118da90616028565b6040805160a081018252604f5473ffffffffffffffffffffffffffffffffffffffff9081168252605054808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b6060820152605154909116608082015261196890616028565b6040805160a08101825260525473ffffffffffffffffffffffffffffffffffffffff9081168252605354808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b606082015260545490911660808201526119f690616028565b6040805160a081018252604c5473ffffffffffffffffffffffffffffffffffffffff9081168252604d54808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b6060820152604e549091166080820152611a8490616385565b5050565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556048548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152611b879390929091830182828015611b7b57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611b50575b5050505050600a6154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc990611be2908690600401617f33565b60408051808303815f875af1158015611bfd573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611c219190618065565b91509150611c318161c350615707565b611c3e8162061a80615783565b6109598260086157db565b60606016805480602002602001604051908101604052809291908181526020018280548015611cac57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611c81575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015611df6575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611ddf578382905f5260205f20018054611d54906181ac565b80601f0160208091040260200160405190810160405280929190818152602001828054611d80906181ac565b8015611dcb5780601f10611da257610100808354040283529160200191611dcb565b820191905f5260205f20905b815481529060010190602001808311611dae57829003601f168201915b505050505081526020019060010190611d37565b505050508152505081526020019060010190611cd9565b50505050905090565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556046548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152611eff9390929091830182828015611ef257602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611ec7575b50505050506117706168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af990611f5a908690600401617f33565b60408051808303815f875af1158015611f75573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611f999190618065565b91509150611fa98161c350615707565b611fb68162061a80615783565b610959826117a76157db565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560485485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526120c293909290918301828280156120b557602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161208a575b5050505050610fa06168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af99061211d908690600401617f33565b60408051808303815f875af1158015612138573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061215c9190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602a60248201527f51756f7465725f71756f746545786163744f75747075745f6f6e65486f705f3160448201527f5469636b4c6f616465640000000000000000000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af115801561221c573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061224091906181fd565b5061224d8161c350615707565b61225a8162061a80615783565b61095982610fbd6157db565b6040805160a081018252604c5473ffffffffffffffffffffffffffffffffffffffff9081168252604d54808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b6060820152604e5490911660808201526122f490616aa0565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560485485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526123f393909290918301828280156123e757602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116123bc575b505050505060646168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af99061244e908690600401617f33565b60408051808303815f875af1158015612469573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061248d9190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152603260248201527f51756f7465725f71756f746545786163744f75747075745f6f6e65486f705f7360448201527f74617274696e67496e697469616c697a6564000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af115801561254d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061257191906181fd565b5061257e8161c350615707565b61258b8162061a80615783565b6109598260666157db565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556048548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152612696939092909183018282801561268957602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161265e575b5050505050613a986168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af9906126f1908690600401617f33565b60408051808303815f875af115801561270c573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906127309190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602b60248201527f51756f7465725f71756f746545786163744f75747075745f6f6e65486f705f3260448201527f5469636b734c6f6164656400000000000000000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af11580156127f0573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061281491906181fd565b506128218161c350615707565b61282e8162061a80615783565b61095982613ba96157db565b60606018805480602002602001604051908101604052809291908181526020018280548015611cac57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611c81575050505050905090565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560465485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526129a5939092909183018282801561299857602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161296d575b505050505061186a6154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc990612a00908690600401617f33565b60408051808303815f875af1158015612a1b573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612a3f9190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f51756f7465725f71756f74654578616374496e7075745f6f6e65486f705f696e60448201527f697469616c697a6564416674657200000000000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af1158015612aff573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612b2391906181fd565b50612b308161c350615707565b612b3d8162061a80615783565b6109598261182e6157db565b60606017805480602002602001604051908101604052809291908181526020018280548015611cac57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311611c81575050505050905090565b6044546040805161012081018252604c5473ffffffffffffffffffffffffffffffffffffffff90811660808301908152604d5480831660a085015262ffffff7401000000000000000000000000000000000000000082041660c085015277010000000000000000000000000000000000000000000000900460020b60e0840152604e54821661010084015282525f602080840182905261271084860181905285518381529182018652606085019190915293517faa9d21cb000000000000000000000000000000000000000000000000000000008152939461268f94919384939091169163aa9d21cb91612caa916004016180b4565b60408051808303815f875af1158015612cc5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ce99190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f51756f7465725f6578616374496e70757453696e676c655f6f6e65466f725a6560448201527f726f5f6d756c7469706c65506f736974696f6e7300000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084015b6020604051808303815f875af1158015612daa573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dce91906181fd565b50612ddb8161c350615707565b612de88162061a80615783565b612df282846157db565b50505050565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556046548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152612ef79390929091830182828015612eeb57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311612ec0575b505050505060676154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc990612f52908690600401617f33565b60408051808303815f875af1158015612f6d573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612f919190618065565b91509150612fa18161c350615707565b612fae8162061a80615783565b6109598260656157db565b612fd8600173fffd8963efd1fc6a506488495d951d5263988d26618241565b81565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560465485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526130db93909290918301828280156130ce57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116130a3575b505050505061184f6168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af990613136908690600401617f33565b60408051808303815f875af1158015613151573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906131759190618065565b915091506131858161c350615707565b6131928162061a80615783565b6109598261188b6157db565b6040805160a081018252604c5473ffffffffffffffffffffffffffffffffffffffff9081168252604d54808216602084015262ffffff74010000000000000000000000000000000000000000820416938301939093527701000000000000000000000000000000000000000000000090920460020b6060820152604e54909116608082015261322c90616aa0565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff97881617909155604654855493840186559290930180549093169190941617905580546040805160208381028201810190925282815261332b939092909183018282801561331f57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116132f4575b505050505060c86154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc990613386908690600401617f33565b60408051808303815f875af11580156133a1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906133c59190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152603160248201527f51756f7465725f71756f74654578616374496e7075745f6f6e65486f705f737460448201527f617274696e67496e697469616c697a656400000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af1158015613485573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906134a991906181fd565b506134b681619c40615707565b6134c38162061a80615783565b6109598260c66157db565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560475485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526135ce93909290918301828280156135c157602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311613596575b505050505061268f6168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af990613629908690600401617f33565b60408051808303815f875af1158015613644573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906136689190618065565b915091506136788161c350615707565b6136858162061a80615783565b610959826127106157db565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611df6578382905f5260205f2090600202016040518060400160405290815f820180546136e4906181ac565b80601f0160208091040260200160405190810160405280929190818152602001828054613710906181ac565b801561375b5780601f106137325761010080835404028352916020019161375b565b820191905f5260205f20905b81548152906001019060200180831161373e57829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156137f257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841161379f5790505b505050505081525050815260200190600101906136b4565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff97881617909155604854855480850187558501805483169188169190911790556047548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152613923939092909183018282801561391657602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff1681526001909101906020018083116138eb575b50505050506126116168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af99061397e908690600401617f33565b60408051808303815f875af1158015613999573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906139bd9190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601f60248201527f51756f7465725f71756f746545786163744f75747075745f74776f486f70730060448201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906064016020604051808303815f875af1158015613a57573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613a7b91906181fd565b506136788161c350615707565b604454604080516101208101825260495473ffffffffffffffffffffffffffffffffffffffff90811660808301908152604a5480831660a085015262ffffff7401000000000000000000000000000000000000000082041660c085015277010000000000000000000000000000000000000000000000900460020b60e0840152604b54821661010084015282525f602080840182905261271084860181905285518381529182018652606085019190915293517f587330730000000000000000000000000000000000000000000000000000000081529394909384939290911691635873307391613b7c91906004016180b4565b60408051808303815f875af1158015613b97573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613bbb9190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602360248201527f51756f7465725f65786163744f757470757453696e676c655f6f6e65466f725a60448201527f65726f000000000000000000000000000000000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084015b6020604051808303815f875af1158015613c7c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613ca091906181fd565b50613cad8161c350615707565b613cba8162061a80615783565b610959826127956157db565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556048548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152613dc69390929091830182828015613db957602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311613d8e575b50505050506117ff6168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af990613e21908690600401617f33565b60408051808303815f875af1158015613e3c573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613e609190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f51756f7465725f71756f746545786163744f75747075745f6f6e65486f705f6960448201527f6e697469616c697a65644166746572000000000000000000000000000000000060648201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906084016020604051808303815f875af1158015613f20573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190613f4491906181fd565b50613f518161c350615707565b613f5e8162061a80615783565b610959826118386157db565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff978816179091556048548554938401865592909301805490931691909416179055805460408051602083810282018101909252828152614069939092909183018282801561405d57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311614032575b5050505050600a6168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af9906140c4908690600401617f33565b60408051808303815f875af11580156140df573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906141039190618065565b915091506141138161c350615707565b6141208162061a80615783565b61095982600c6157db565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611df6578382905f5260205f2001805461416b906181ac565b80601f0160208091040260200160405190810160405280929190818152602001828054614197906181ac565b80156141e25780601f106141b9576101008083540402835291602001916141e2565b820191905f5260205f20905b8154815290600101906020018083116141c557829003601f168201915b50505050508152602001906001019061414e565b60485460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560465485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526142f4939092909183018282801561268957602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161265e575050505050613a986168af565b6044546040517f147d2af90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063147d2af99061434f908690600401617f33565b60408051808303815f875af115801561436a573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061438e9190618065565b915091506128218161c350615707565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015611df6575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561448957602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116144365790505b505050505081525050815260200190600101906143c1565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560485485549384018655929093018054909316919094161790558054604080516020838102820181019092528281526145a1939092909183018282801561459457602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311614569575b50505050506118386154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc9906145fc908690600401617f33565b60408051808303815f875af1158015614617573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061463b9190618065565b9150915061464b8161c350615707565b6146588162061a80615783565b610959826117ff6157db565b60465460558054600181810183555f8381527f71beda120aafdd3bb922b360a066d10b7ce81d7ac2ad9874daac46e2282f6b4592830180547fffffffffffffffffffffffff000000000000000000000000000000000000000090811673ffffffffffffffffffffffffffffffffffffffff9788161790915560485485548085018755850180548316918816919091179055604754855493840186559290930180549093169190941617905580546040805160208381028201810190925282815261477b939092909183018282801561088957602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831161085e5750505050506127106154f6565b6044546040517fca253dc90000000000000000000000000000000000000000000000000000000081529192505f91829173ffffffffffffffffffffffffffffffffffffffff169063ca253dc9906147d6908690600401617f33565b60408051808303815f875af11580156147f1573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148159190618065565b6040517fdd9fca1200000000000000000000000000000000000000000000000000000000815260206004820152601e60248201527f51756f7465725f71756f74654578616374496e7075745f74776f486f7073000060448201529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd9fca12906064016020604051808303815f875af11580156148af573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906148d391906181fd565b506148e08161c350615707565b6148e