@layerzerolabs/hyperliquid-composer
Version:
LayerZero Labs reference EVM OmniChain Fungible Token (OFT) implementation for Hyperliquid
1 lines • 353 kB
JSON
{"abi":[{"type":"function","name":"AMOUNT_TO_FUND","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"AMOUNT_TO_SEND","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"ERC20","inputs":[],"outputs":[{"name":"coreIndexId","type":"uint64","internalType":"uint64"},{"name":"decimalDiff","type":"int8","internalType":"int8"},{"name":"assetBridgeAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"ETH_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"HLP_CORE_WRITER","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HLP_EID","inputs":[],"outputs":[{"name":"","type":"uint32","internalType":"uint32"}],"stateMutability":"view"},{"type":"function","name":"HLP_PRECOMPILE_READ_SPOT_BALANCE","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HLP_PRECOMPILE_READ_USER_EXISTS","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2_MAINNET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HL_LZ_ENDPOINT_V2_TESTNET","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"HYPE","inputs":[],"outputs":[{"name":"coreIndexId","type":"uint64","internalType":"uint64"},{"name":"decimalDiff","type":"int8","internalType":"int8"},{"name":"assetBridgeAddress","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"coreSpotFromChainId","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"erc20","type":"uint64","internalType":"uint64"},{"name":"hype","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"eidFromChainId","inputs":[{"name":"","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"ethEid","type":"uint32","internalType":"uint32"},{"name":"hlpEid","type":"uint32","internalType":"uint32"}],"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":"hyperLiquidComposer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract HyperLiquidComposer"}],"stateMutability":"view"},{"type":"function","name":"oft","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract OFTMock"}],"stateMutability":"view"},{"type":"function","name":"recovery","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"test_insuffient_gas_revert","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_panic_invalid_message","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unauthorized_call_not_endpoint","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_unauthorized_call_not_oft","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"typeConversionTest","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract TypeConversionTest"}],"stateMutability":"view"},{"type":"function","name":"userA","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"userB","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"event","name":"SlotFound","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"fsig","type":"bytes4","indexed":false,"internalType":"bytes4"},{"name":"keysHash","type":"bytes32","indexed":false,"internalType":"bytes32"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"WARNING_UninitedSlot","inputs":[{"name":"who","type":"address","indexed":false,"internalType":"address"},{"name":"slot","type":"uint256","indexed":false,"internalType":"uint256"}],"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":"0x600c8054600160ff199182168117909255601f8054909116909117905560248054600160a01b600160e01b0319166503782dace9d960b21b1790556025805466038d7ea4c680006001600160401b031990911617905560c06040526005608090815264757365724160d81b60a05262000078906200013c565b602880546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260058152643ab9b2b92160d91b6020820152620000bf906200013c565b602980546001600160a01b0319166001600160a01b03929092169190911790556040805180820190915260088152677265636f7665727960c01b602082015262000109906200013c565b602a80546001600160a01b0319166001600160a01b039290921691909117905534801562000135575f80fd5b5062000319565b5f62000148826200014f565b5092915050565b5f80826040516020016200016491906200028a565b60408051808303601f190181529082905280516020909101206001625e79b760e01b03198252600482018190529150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015620001ce573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620001f49190620002a7565b6040516318caf8e360e31b8152909250737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c657c71890620002329085908790600401620002d6565b5f604051808303815f87803b1580156200024a575f80fd5b505af11580156200025d573d5f803e3d5ffd5b50505050915091565b5f5b838110156200028257818101518382015260200162000268565b50505f910152565b5f82516200029d81846020870162000266565b9190910192915050565b5f60208284031215620002b8575f80fd5b81516001600160a01b0381168114620002cf575f80fd5b9392505050565b60018060a01b0383168152604060208201525f82518060408401526200030481606085016020870162000266565b601f01601f1916919091016060019392505050565b61e05f80620003275f395ff3fe608060405234801562000010575f80fd5b50600436106200029c575f3560e01c8063929c05791162000173578063c1d1ead811620000e3578063deb22e9a1162000093578063fa7626d41162000077578063fa7626d41462000735578063fad942fa1462000743578063fbe021a1146200074d575f80fd5b8063deb22e9a146200070a578063e20c9f71146200072b575f80fd5b8063cb1a295f11620000c7578063cb1a295f146200067f578063cc4aa20414620006a0578063ddceafa914620006e9575f80fd5b8063c1d1ead81462000647578063c203ccab1462000663575f80fd5b8063b0464fdc116200013f578063ba414fa61162000123578063ba414fa614620005f5578063ba8726791462000610578063bb641b3e146200061a575f80fd5b8063b0464fdc14620005e1578063b5508aa914620005eb575f80fd5b8063929c057914620005685780639b5215f61462000595578063a09e743014620005b6578063a9783f6f14620005d7575f80fd5b806366d9a9a0116200020f5780637ecd9ac311620001db5780638bb1ad9911620001bf5780638bb1ad9914620005165780639127ace21462000520578063916a17c6146200054f575f80fd5b80637ecd9ac314620004e157806385226c8114620004fd575f80fd5b806366d9a9a0146200042c5780637645f2b1146200044557806376e86e72146200044f5780637773fb7314620004d7575f80fd5b80632ade3880116200026b5780633e5e3c23116200024f5780633e5e3c2314620003c65780633f7286f414620003d05780635f60057d14620003da575f80fd5b80632ade38801462000366578063318f405a146200037f575f80fd5b80630a85348314620002a05780630a9254e414620003025780631ed7831c146200030e57806325996dae1462000327575b5f80fd5b620002dc620002b1366004620043bb565b60276020525f908152604090205467ffffffffffffffff808216916801000000000000000090041682565b6040805167ffffffffffffffff9384168152929091166020830152015b60405180910390f35b6200030c6200076e565b005b62000318620007cb565b604051620002f99190620043d3565b602a54620003509074010000000000000000000000000000000000000000900463ffffffff1681565b60405163ffffffff9091168152602001620002f9565b620003706200083a565b604051620002f991906200447f565b602b54620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001620002f9565b620003186200098f565b62000318620009fc565b6200040e620003eb366004620043bb565b60266020525f908152604090205463ffffffff8082169164010000000090041682565b6040805163ffffffff938416815292909116602083015201620002f9565b6200043662000a69565b604051620002f99190620045e9565b6200030c62000bee565b602154620004989067ffffffffffffffff8116906801000000000000000081045f0b906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1683565b6040805167ffffffffffffffff90941684525f9290920b602084015273ffffffffffffffffffffffffffffffffffffffff1690820152606001620002f9565b620003a061081081565b620003a073333333333333333333333333333333333333333381565b6200050762000e12565b604051620002f9919062004692565b6200030c62000ee7565b602554620005359067ffffffffffffffff1681565b60405167ffffffffffffffff9091168152602001620002f9565b6200055962001116565b604051620002f9919062004716565b602a5462000350907801000000000000000000000000000000000000000000000000900463ffffffff1681565b602254620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b602354620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b6200030c6200121d565b620005596200134c565b6200050762001453565b620005ff62001528565b6040519015158152602001620002f9565b620003a061080181565b602454620005359074010000000000000000000000000000000000000000900467ffffffffffffffff1681565b620003a073f9e1815f151024bde4b7c10bac10e8ba9f6b53e181565b620003a0733a73033c0b1407574c76bdbac67f126f6b4a9aa981565b602954620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b602054620004989067ffffffffffffffff8116906801000000000000000081045f0b906901000000000000000000900473ffffffffffffffffffffffffffffffffffffffff1683565b602a54620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b602854620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b62000318620015fc565b601f54620005ff9060ff1681565b6200030c62001669565b602454620003a09073ffffffffffffffffffffffffffffffffffffffff1681565b620007786200190e565b602254602354602454620007c99273ffffffffffffffffffffffffffffffffffffffff90811692169074010000000000000000000000000000000000000000900467ffffffffffffffff1662002655565b565b606060168054806020026020016040519081016040528092919081815260200182805480156200083057602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000804575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b8282101562000986575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b828210156200096e578382905f5260205f20018054620008dc90620047b4565b80601f01602080910402602001604051908101604052809291908181526020018280546200090a90620047b4565b8015620009595780601f106200092f5761010080835404028352916020019162000959565b820191905f5260205f20905b8154815290600101906020018083116200093b57829003601f168201915b505050505081526020019060010190620008bc565b5050505081525050815260200190600101906200085d565b50505050905090565b606060188054806020026020016040519081016040528092919081815260200182805480156200083057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000804575050505050905090565b606060178054806020026020016040519081016040528092919081815260200182805480156200083057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000804575050505050905090565b6060601b805480602002602001604051908101604052809291908181526020015f905b8282101562000986578382905f5260205f2090600202016040518060400160405290815f8201805462000abf90620047b4565b80601f016020809104026020016040519081016040528092919081815260200182805462000aed90620047b4565b801562000b3c5780601f1062000b125761010080835404028352916020019162000b3c565b820191905f5260205f20905b81548152906001019060200180831162000b1e57829003601f168201915b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801562000bd557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168152602001906004019060208260030104928301926001038202915080841162000b815790505b5050505050815250508152602001906001019062000a8c565b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000c48575f80fd5b505af115801562000c5b573d5f803e3d5ffd5b5050602b546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000cdc575f80fd5b505af115801562000cef573d5f803e3d5ffd5b50506023546022546040517fd0a1026000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201525f6024820181905260a0604483015260a4820181905233606483015260c0608483015260c48201529116925063d0a10260915060e4015f604051808303815f87803b15801562000d88575f80fd5b505af115801562000d9b573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000df9575f80fd5b505af115801562000e0c573d5f803e3d5ffd5b50505050565b6060601a805480602002602001604051908101604052809291908181526020015f905b8282101562000986578382905f5260205f2001805462000e5590620047b4565b80601f016020809104026020016040519081016040528092919081815260200182805462000e8390620047b4565b801562000ed25780601f1062000ea85761010080835404028352916020019162000ed2565b820191905f5260205f20905b81548152906001019060200180831162000eb457829003601f168201915b50505050508152602001906001019062000e35565b5f620249f09050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663f48448146040518163ffffffff1660e01b81526004015f604051808303815f87803b15801562000f48575f80fd5b505af115801562000f5b573d5f803e3d5ffd5b5050602b546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801562000fdc575f80fd5b505af115801562000fef573d5f803e3d5ffd5b50506023546022546040517fd0a1026000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201525f6024820181905260a0604483015260a4820181905233606483015260c0608483015260c48201529116925063d0a102609150839060e4015f604051808303815f88803b1580156200108a575f80fd5b5087f11580156200109d573d5f803e3d5ffd5b5050505050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620010fc575f80fd5b505af11580156200110f573d5f803e3d5ffd5b5050505050565b6060601d805480602002602001604051908101604052809291908181526020015f905b8282101562000986575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200120457602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620011b05790505b5050505050815250508152602001906001019062001139565b6040517fc31eb0e00000000000000000000000000000000000000000000000000000000081527f7eb966c8000000000000000000000000000000000000000000000000000000006004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063c31eb0e0906024015f604051808303815f87803b158015620012a0575f80fd5b505af1158015620012b3573d5f803e3d5ffd5b50506023546022546040517fd0a1026000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201525f6024820181905260a0604483015260a4820181905233606483015260c0608483015260c48201529116925063d0a10260915060e4015f604051808303815f87803b15801562000df9575f80fd5b6060601c805480602002602001604051908101604052809291908181526020015f905b8282101562000986575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff1683526001810180548351818702810187019094528084529394919385830193928301828280156200143a57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411620013e65790505b505050505081525050815260200190600101906200136f565b60606019805480602002602001604051908101604052809291908181526020015f905b8282101562000986578382905f5260205f200180546200149690620047b4565b80601f0160208091040260200160405190810160405280929190818152602001828054620014c490620047b4565b8015620015135780601f10620014e95761010080835404028352916020019162001513565b820191905f5260205f20905b815481529060010190602001808311620014f557829003601f168201915b50505050508152602001906001019062001476565b6008545f9060ff161562001540575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015620015cf573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620015f5919062004807565b1415905090565b606060158054806020026020016040519081016040528092919081815260200182805480156200083057602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff16815260019091019060200180831162000804575050505050905090565b6022546040805173ffffffffffffffffffffffffffffffffffffffff92831660248201525f60448083019190915282518083039091018152606490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fc8b356c60000000000000000000000000000000000000000000000000000000017905260235491517f61ebcf120000000000000000000000000000000000000000000000000000000081529092737109709ecfa91a80626ff3989d68f67f5b1dd12d926361ebcf12926200174892869216906004016200481f565b5f604051808303815f87803b15801562001760575f80fd5b505af115801562001773573d5f803e3d5ffd5b5050602b546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015620017f4575f80fd5b505af115801562001807573d5f803e3d5ffd5b50506023546040517fd0a102600000000000000000000000000000000000000000000000000000000081525f600482018190526024820181905260a0604483015260a4820181905233606483015260c0608483015260c482015273ffffffffffffffffffffffffffffffffffffffff909116925063d0a10260915060e4015f604051808303815f87803b1580156200189d575f80fd5b505af1158015620018b0573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620010fc575f80fd5b604080518082018252619ce18152619daa60208083019182526103e65f818152602680845294517f113a6407f23900cfa1ecac751a02199ded2b9291b7b61d7b3fc27cad18581d048054955163ffffffff9283167fffffffffffffffffffffffffffffffffffffffffffffffff0000000000000000978816176401000000009184168202179091558751808901895261765d815261769f8187019081526103e780865298875290517f354415ee754a59ff734517214ff8c4e3c5311a1050a5d2254382ba8bdca2307680549251918516929098169190911792160217909355845180860186526104da8152610451818401908152828552602780855291517f81f48bd84279ade89ca0299913d9e40d06f4ae51ee08f3cd6f968120d220e10d8054925167ffffffffffffffff9283167fffffffffffffffffffffffffffffffff0000000000000000000000000000000094851617680100000000000000009184168202179091558851808a0190995260eb89526096898701908152979096529190935294517fcb63f41d83a6606379654c30ef8a1498bf816351aa303c37a41e329cc6e7a10380549551918716959093169490941793909416909102919091179055461480159062001ae25750466103e714155b1562001d3a576040517ff877cb1900000000000000000000000000000000000000000000000000000000815260206004820152601360248201527f5250435f55524c5f48595045524c49515549440000000000000000000000000060448201525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f877cb19906064015f60405180830381865afa15801562001b7e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262001ba79190810190620048b9565b6040517f98680034000000000000000000000000000000000000000000000000000000008152909150737109709ecfa91a80626ff3989d68f67f5b1dd12d9063986800349062001bfc90849060040162004953565b6020604051808303815f875af192505050801562001c39575060408051601f3d908101601f1916820190925262001c369181019062004807565b60015b62001d365762001cb56040518060400160405280601081526020017f466f726b696e67206d61696e6e65742000000000000000000000000000000000815250826040518060400160405280600781526020017f206661696c65640000000000000000000000000000000000000000000000000081525062002668565b6040517fdd82d13e00000000000000000000000000000000000000000000000000000000815260016004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063dd82d13e906024015f604051808303815f87803b15801562001d19575f80fd5b505af115801562001d2c573d5f803e3d5ffd5b5050505062001d38565b505b505b737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663b4d6c78261080160405162001d7b9062004307565b604051809103905ff08015801562001d95573d5f803e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b815260040162001de692919062004967565b5f604051808303815f87803b15801562001dfe575f80fd5b505af115801562001e11573d5f803e3d5ffd5b50505050737109709ecfa91a80626ff3989d68f67f5b1dd12d73ffffffffffffffffffffffffffffffffffffffff1663b4d6c78261081060405162001e569062004315565b604051809103905ff08015801562001e70573d5f803e3d5ffd5b5073ffffffffffffffffffffffffffffffffffffffff16803b806020016040519081016040528181525f908060200190933c6040518363ffffffff1660e01b815260040162001ec192919062004967565b5f604051808303815f87803b15801562001ed9575f80fd5b505af115801562001eec573d5f803e3d5ffd5b50505050466103e61462001f1557733a73033c0b1407574c76bdbac67f126f6b4a9aa962001f2b565b73f9e1815f151024bde4b7c10bac10e8ba9f6b53e15b602b80547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055465f8181526026602090815260408083208054602a80547fffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffff811663ffffffff9384167401000000000000000000000000000000000000000002908117835593547fffffffff0000000000000000ffffffffffffffffffffffffffffffffffffffff9091167fffffffff00000000ffffffffffffffffffffffffffffffffffffffffffffffff9094169390931764010000000090930490911678010000000000000000000000000000000000000000000000000291909117905560278252918290205482516060810190935267ffffffffffffffff80821680855294680100000000000000009092041692918201906103e6146200208f57600a62002092565b60095b5f0b8152602001620020a484620026e1565b73ffffffffffffffffffffffffffffffffffffffff9081169091528151602080548482015160409586015185166901000000000000000000027fffffff0000000000000000000000000000000000000000ffffffffffffffffff60ff90921668010000000000000000027fffffffffffffffffffffffffffffffffffffffffffffff00000000000000000093841667ffffffffffffffff968716171782161783558551606081018752938716808552600a9385019390935273222222222222222222222222222222222222222293860193909352602180547c2222222222222222222222222222222222222222000000000000000000680a00000000000000009190931690931792909217909216919091179055602b5491519116903390620021cd9062004323565b620021da9291906200499f565b604051809103905ff080158015620021f4573d5f803e3d5ffd5b50602280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216918217905560205460405167ffffffffffffffff8216916801000000000000000090045f0b90620022659062004331565b73ffffffffffffffffffffffffffffffffffffffff909316835267ffffffffffffffff90911660208301525f0b6040820152606001604051809103905ff080158015620022b4573d5f803e3d5ffd5b50602380547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9290921691909117905560405162002308906200433f565b604051809103905ff08015801562002322573d5f803e3d5ffd5b50602480547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff9283161781556020546040517f312f619f00000000000000000000000000000000000000000000000000000000815269010000000000000000008204909316600484015267ffffffffffffffff9081169183019190915260448201526108019063312f619f906064015f604051808303815f87803b158015620023df575f80fd5b505af1158015620023f2573d5f803e3d5ffd5b50506021546040517f312f619f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6901000000000000000000830416600482015267ffffffffffffffff91821660248201526044810191909152610801925063312f619f91506064015f604051808303815f87803b15801562002485575f80fd5b505af115801562002498573d5f803e3d5ffd5b50506028546040517f2501ecee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b1580156200250e575f80fd5b505af115801562002521573d5f803e3d5ffd5b50506029546040517f2501ecee00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152600160248201526108109250632501ecee91506044015f604051808303815f87803b15801562002597575f80fd5b505af1158015620025aa573d5f803e3d5ffd5b5050602b546040517fc88a5e6d00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116600482015268056bc75e2d631000006024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063c88a5e6d91506044015f604051808303815f87803b1580156200263a575f80fd5b505af11580156200264d573d5f803e3d5ffd5b505050505050565b620026638383835f62002712565b505050565b62002663838383604051602401620026839392919062004a49565b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2ced7cef00000000000000000000000000000000000000000000000000000000179052620029b5565b5f6200270c67ffffffffffffffff831673200000000000000000000000000000000000000062004abe565b92915050565b6040805173ffffffffffffffffffffffffffffffffffffffff85811660248084019190915283518084039091018152604490920183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f70a082310000000000000000000000000000000000000000000000000000000017905291515f92871691620027a29162004ad4565b5f60405180830381855afa9150503d805f8114620027dc576040519150601f19603f3d011682016040523d82523d5f602084013e620027e1565b606091505b509150505f81806020019051810190620027fc919062004807565b90506200284f846200284887620028417f70a08231000000000000000000000000000000000000000000000000000000006200283a600d8d620029c3565b9062002a0f565b9062002a47565b9062002a7f565b82156200264d5760408051600481526024810182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f18160ddd0000000000000000000000000000000000000000000000000000000017905290515f9173ffffffffffffffffffffffffffffffffffffffff891691620028d4919062004ad4565b5f60405180830381855afa9150503d805f81146200290e576040519150601f19603f3d011682016040523d82523d5f602084013e62002913565b606091505b509150505f818060200190518101906200292e919062004807565b905082861015620029595762002945868462004af1565b62002951908262004af1565b905062002974565b62002965838762004af1565b62002971908262004abe565b90505b620029ab81620028487f18160ddd000000000000000000000000000000000000000000000000000000006200283a600d8d620029c3565b5050505050505050565b620029c08162002a8f565b50565b6004820180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff83161790555f825b9392505050565b6002820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001660e083901c1790555f8262002a08565b6001808301805491820181555f9081526020812073ffffffffffffffffffffffffffffffffffffffff84169201919091558262002a08565b62002a8b828262002aae565b5050565b5f6a636f6e736f6c652e6c6f6790505f80835160208501845afa505050565b60048201546002830154600384015473ffffffffffffffffffffffffffffffffffffffff9092169160e09190911b905f62002ae98662003068565b73ffffffffffffffffffffffffffffffffffffffff85165f908152602088815260408083207fffffffff0000000000000000000000000000000000000000000000000000000088168452825280832090519394509262002b4e91859187910162004b07565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff1662002b8c5762002b8a865f6200317b565b505b73ffffffffffffffffffffffffffffffffffffffff84165f908152602087815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832090519091839162002bf191869188910162004b07565b6040516020818303038152906040528051906020012081526020019081526020015f2090505f8160020154826001015462002c2d919062004abe565b111562002d65575f8160020154826001015462002c4b919062004abe565b62002c599061010062004af1565b62002c6690600262004c61565b6040517f6900a3ae0000000000000000000000000000000000000000000000000000000081526004810182905290915081881090737109709ecfa91a80626ff3989d68f67f5b1dd12d90636900a3ae906024015f60405180830381865afa15801562002cd4573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f1916820160405262002cfd9190810190620048b9565b60405160200162002d0f919062004c6e565b6040516020818303038152906040529062002d62576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162002d59919062004953565b60405180910390fd5b50505b80546040517f667f9d7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8716600482015260248101919091525f90737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562002dee573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062002e14919062004807565b60018381015460028501549293505f92908101610100039190911b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b1983169089901b1783546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8a166004820152602481019190915260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562002ee8575f80fd5b505af115801562002efb573d5f803e3d5ffd5b505050505f8062002f0c8b62003190565b9150915081158062002f1e5750898114155b15620030505784546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8b166004820152602481019190915260448101859052737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562002fae575f80fd5b505af115801562002fc1573d5f803e3d5ffd5b50506040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152603360248201527f73746453746f726167652066696e642853746453746f72616765293a2046616960448201527f6c656420746f2077726974652076616c75652e000000000000000000000000006064820152608401915062002d599050565b6200305b8b6200326e565b5050505050505050505050565b60608160070180546200307b90620047b4565b90505f03620030e1576200270c82600101805480602002602001604051908101604052809291908181526020018280548015620030d657602002820191905f5260205f20905b815481526020019060010190808311620030c1575b505050505062003279565b816007018054620030f290620047b4565b80601f01602080910402602001604051908101604052809291908181526020018280546200312090620047b4565b80156200316f5780601f1062003145576101008083540402835291602001916200316f565b820191905f5260205f20905b8154815290600101906020018083116200315157829003601f168201915b50505050509050919050565b5f6200318883836200331d565b549392505050565b60028101545f908190819060e01b620031a98562003068565b604051602001620031bc92919062004d00565b60408051601f198184030181529082905260048601549092505f91829173ffffffffffffffffffffffffffffffffffffffff1690620031fd90859062004ad4565b5f60405180830381855afa9150503d805f811462003237576040519150601f19603f3d011682016040523d82523d5f602084013e6200323c565b606091505b50915091505f6200326082886003015460206200325a919062004d49565b62003c84565b929792965091945050505050565b620029c08162003d17565b60605f825160206200328c919062004d49565b67ffffffffffffffff811115620032a757620032a762004858565b6040519080825280601f01601f191660200182016040528015620032d2576020820181803683370190505b5090505f5b835181101562003316575f848281518110620032f757620032f762004d63565b60209081029190910181015183820285019091015250600101620032d7565b5092915050565b6004820154600283015460038401545f9273ffffffffffffffffffffffffffffffffffffffff169160e01b9083620033558762003068565b73ffffffffffffffffffffffffffffffffffffffff85165f908152602089815260408083207fffffffff00000000000000000000000000000000000000000000000000000000881684528252808320905193945092620033ba91859187910162004b07565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff161562003490578515620033fd57620033fd8762003d17565b73ffffffffffffffffffffffffffffffffffffffff84165f908152602088815260408083207fffffffff0000000000000000000000000000000000000000000000000000000087168452825280832090519092916200346191859187910162004b07565b6040516020818303038152906040528051906020012081526020019081526020015f209450505050506200270c565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663266cf1096040518163ffffffff1660e01b81526004015f604051808303815f87803b158015620034f8575f80fd5b505af11580156200350b573d5f803e3d5ffd5b505050505f6200351b8862003190565b6040517f65bc948100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff881660048201529092505f9150737109709ecfa91a80626ff3989d68f67f5b1dd12d906365bc9481906024015f604051808303815f875af11580156200359e573d5f803e3d5ffd5b505050506040513d5f823e601f3d908101601f19168201604052620035c7919081019062004e16565b50905080515f036200365e57604080517f08c379a00000000000000000000000000000000000000000000000000000000081526020600482015260248101919091527f73746453746f726167652066696e642853746453746f72616765293a204e6f2060448201527f73746f726167652075736520646574656374656420666f72207461726765742e606482015260840162002d59565b80515b5f6200366d8262004e7d565b9150811062003abf575f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663667f9d7089858581518110620036cb57620036cb62004d63565b60200260200101516040518363ffffffff1660e01b81526004016200371292919073ffffffffffffffffffffffffffffffffffffffff929092168252602082015260400190565b602060405180830381865afa1580156200372e573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003754919062004807565b905080620037cb577f080fc4a96620c4462e705b23f346413fe3796bb63c6f8d8591baec0e231577a58884848151811062003793576200379362004d63565b6020908102919091018101516040805173ffffffffffffffffffffffffffffffffffffffff9094168452918301520160405180910390a15b620037f38b848481518110620037e557620037e562004d63565b602002602001015162003dbc565b620037ff575062003661565b60068b01545f90819060ff161562003853575f6200383a8e8787815181106200382c576200382c62004d63565b602002602001015162004033565b909450925090508062003851575050505062003661565b505b6001828201610100031b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff01811b8316811c86811462003897575050505062003661565b7f9c9555b1e3102e3cf48f427d79cb678f5d9bd1ed0ad574389461e255f95170ed8b8b8a8c604051602001620038cf92919062004b07565b60405160208183030381529060405280519060200120898981518110620038fa57620038fa62004d63565b6020908102919091018101516040805173ffffffffffffffffffffffffffffffffffffffff90961686527fffffffff000000000000000000000000000000000000000000000000000000009094169185019190915291830152606082015260800160405180910390a1604051806080016040528087878151811062003983576200398362004d63565b60200260200101515f1c8152602001848152602001838152602001600115158152508e5f015f8d73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8c7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019081526020015f205f8a8c60405160200162003a4692919062004b07565b60408051808303601f1901815291815281516020928301208352828201939093529082015f2083518155908301516001820155908201516002820155606090910151600390910180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016911515919091179055505050505b5073ffffffffffffffffffffffffffffffffffffffff86165f90815260208a815260408083207fffffffff00000000000000000000000000000000000000000000000000000000891684528252808320905190929162003b2491879189910162004b07565b60408051601f198184030181529181528151602092830120835290820192909252015f206003015460ff1662003bdd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152602f60248201527f73746453746f726167652066696e642853746453746f72616765293a20536c6f60448201527f74287329206e6f7420666f756e642e0000000000000000000000000000000000606482015260840162002d59565b871562003bef5762003bef8962003d17565b73ffffffffffffffffffffffffffffffffffffffff86165f90815260208a815260408083207fffffffff00000000000000000000000000000000000000000000000000000000891684528252808320905190929162003c5391879189910162004b07565b6040516020818303038152906040528051906020012081526020019081526020015f20965050505050505092915050565b5f805f602085511162003c9957845162003c9c565b60205b90505f5b8181101562003d0d5762003cb681600862004d49565b8662003cc3838862004abe565b8151811062003cd65762003cd662004d63565b01602001517fff0000000000000000000000000000000000000000000000000000000000000016901c929092179160010162003ca0565b5090949350505050565b6004810180547fffffffffffffffffffffffff00000000000000000000000000000000000000001690556002810180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000016905562003d7a600182015f6200434d565b5f600382018190556006820180547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00169055620029c09060078301906200436a565b6004828101546040517f667f9d7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018290525f908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa15801562003e4d573d5f803e3d5ffd5b505050506040513d601f19601f8201168201806040525081019062003e73919062004807565b90505f8062003e828662003190565b90925090505f811562003e96575f62003eb8565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff5b6004888101546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b15801562003f4b575f80fd5b505af115801562003f5e573d5f803e3d5ffd5b505050505f62003f6e8862003190565b60048a8101546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018a905260448101889052909250737109709ecfa91a80626ff3989d68f67f5b1dd12d91506370ca10bb906064015f604051808303815f87803b15801562004002575f80fd5b505af115801562004015573d5f803e3d5ffd5b50505050838015620040275750808314155b98975050505050505050565b6004828101546040517f667f9d7000000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018290525f90819081908190737109709ecfa91a80626ff3989d68f67f5b1dd12d9063667f9d7090604401602060405180830381865afa158015620040c8573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190620040ee919062004807565b90505f806200410088886001620041da565b915091505f80620041138a8a5f620041da565b60048c8101546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff90911691810191909152602481018c9052604481018890529193509150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b158015620041a8575f80fd5b505af1158015620041bb573d5f803e3d5ffd5b50505050838015620041ca5750815b9a92995097509095505050505050565b5f805f5b610100811015620042f7575f84620041fa576001821b6200420c565b620042078260ff62004af1565b6001901b5b6004888101546040517f70ca10bb00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff909116918101919091526024810188905260448101829052909150737109709ecfa91a80626ff3989d68f67f5b1dd12d906370ca10bb906064015f604051808303815f87803b1580156200429f575f80fd5b505af1158015620042b2573d5f803e3d5ffd5b505050505f80620042c38962003190565b91509150818015620042d457508015155b15620042eb576001849550955050505050620042ff565b505050600101620041de565b505f80915091505b935093915050565b6102bb8062004eb583390190565b6101be806200517083390190565b613f13806200532e83390190565b612c41806200924183390190565b6121a8806200be8283390190565b5080545f8255905f5260205f2090810190620029c09190620043a1565b5080546200437890620047b4565b5f825580601f1062004388575050565b601f0160209004905f5260205f2090810190620029c091905b5b80821115620043b7575f8155600101620043a2565b5090565b5f60208284031215620043cc575f80fd5b5035919050565b602080825282518282018190525f9190848201906040850190845b818110156200442257835173ffffffffffffffffffffffffffffffffffffffff1683529284019291840191600101620043ee565b50909695505050505050565b5f5b838110156200444a57818101518382015260200162004430565b50505f910152565b5f81518084526200446b8160208601602086016200442e565b601f01601f19169290920160200192915050565b602080825282518282018190525f919060409081850190600581811b87018401888601875b848110156200457c577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08a84030186528151805173ffffffffffffffffffffffffffffffffffffffff168452880151888401889052805188850181905290890190606081871b8601810191908601905f5b8181101562004565577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08885030183526200455284865162004452565b948d01949350918c019160010162004515565b5050509689019693505090870190600101620044a4565b50909998505050505050505050565b5f815180845260208085019450602084015f5b83811015620045de5781517fffffffff0000000000000000000000000000000000000000000000000000000016875295820195908201906001016200459e565b509495945050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562004684577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc089840301855281518051878552620046558886018262004452565b91890151858303868b01529190506200466f81836200458b565b96890196945050509086019060010162004610565b509098975050505050505050565b5f60208083016020845280855180835260408601915060408160051b8701019250602087015f5b8281101562004709577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0888603018452620046f685835162004452565b94509285019290850190600101620046b9565b5092979650505050505050565b5f60208083018184528085518083526040925060408601915060408160051b8701018488015f5b8381101562004684578883037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc00185528151805173ffffffffffffffffffffffffffffffffffffffff168452870151878401879052620047a0878501826200458b565b95880195935050908601906001016200473d565b600181811c90821680620047c957607f821691505b60208210810362004801577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f6020828403121562004818575f80fd5b5051919050565b604081525f62004833604083018562004452565b905073ffffffffffffffffffffffffffffffffffffffff831660208301529392505050565b7f4e487b710000000000000000000