UNPKG

@uniswap/v4-core

Version:

🦄 Core smart contracts of Uniswap v4

1 lines • 205 kB
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"bitmap","inputs":[{"name":"","type":"int16","internalType":"int16"}],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"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":"test_flipTick_flippingATickThatResultsInDeletingAWord_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_flipTick_flippingFirstTickInWordToInitialized_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_flipTick_flippingSecondTickInWordToInitialized_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_flipTick_flipsOnlyTheSpecifiedTick","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_flipTick_revertsOnlyItself","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_fuzz_compress","inputs":[{"name":"tick","type":"int24","internalType":"int24"},{"name":"tickSpacing","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"test_fuzz_flipTick","inputs":[{"name":"tick","type":"int24","internalType":"int24"},{"name":"tickSpacing","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_fuzz_nextInitializedTickWithinOneWord","inputs":[{"name":"tick","type":"int24","internalType":"int24"},{"name":"lte","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_fuzz_nextInitializedTickWithinOneWord_onEmptyBitmap","inputs":[{"name":"tick","type":"int24","internalType":"int24"},{"name":"tickSpacing","type":"int24","internalType":"int24"},{"name":"nextBitPos","type":"uint8","internalType":"uint8"},{"name":"lte","type":"bool","internalType":"bool"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_fuzz_position","inputs":[{"name":"tick","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"pure"},{"type":"function","name":"test_isInitialized_isFalseAtFirst","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_isInitialized_isFlippedBackByFlipTick","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_isInitialized_isFlippedByFlipTick","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_isInitialized_isNotChangedByAnotherFlipToADifferentTick","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_isInitialized_isNotChangedByAnotherFlipToADifferentTickOnAnotherWord","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_doesNotExceedBoundary","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_forEntireWord_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_justBelowBoundary_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_onBoundary_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTheNextInitializedTickFromTheNextWord","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTheNextWordsInitializedTickIfOnTheRightBoundary","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTheNextWordsInitializedTickIfOnTheRightBoundary2","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTheTickDirectlyToTheRight","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTheTickDirectlyToTheRight2","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTickToRightIfAtInitializedTick","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_returnsTickToRightIfAtInitializedTick2","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_skipsEntireWord","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteFalse_skipsHalfWord","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_atTheWordBoundary","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_boundaryIsInitialized","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_entireEmptyWord","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_forEntireWord_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_halfwayThroughEmptyWord","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_justBelowBoundary_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_onBoundary_gas","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_returnsSameTickIfInitialized","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_returnsTickDirectlyToTheLeftOfInputTickIfNotInitialized","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_willNotExceedTheWordBoundary","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_wordBoundary","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"test_nextInitializedTickWithinOneWord_lteTrue_wordBoundaryLess1nextInitializedTickInNextWord","inputs":[],"outputs":[],"stateMutability":"view"},{"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":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f5561679290816100348239f35b5f80fdfe60806040526004361015610011575f80fd5b5f803560e01c806308c4f25214614fb257806308cb51db14614ea75780630a793df114614cf25780630a9254e414614b575780630c541ce8146149a55780630ca4d8c4146147f65780630f087045146146f9578063113388e11461457e57806315b81518146143815780631896ae581461427b5780631ed7831c146141d2578063224f34d61461416d5780632671166114613ff85780632ade388014613dcc5780632b54228814613d855780632c9d859a146116375780633e5e3c2314613cdc5780633efe221114613a895780633f7286f4146139e05780633ffc81ee1461398d578063468c7de314613457578063472b139a146133535780635097c43814612798578063522968ae14612686578063530e89df1461261e5780635570fd0e1461249b5780635a8ce00d1461238f5780635d50ff20146122355780635e60d0f9146120af5780635f9ab2c414611f455780636401fc4314611ddf57806366d9a9a014611c845780636f7d245614611c1957806385226c8114611b715780638917af5314611a0b5780638e69267e1461189a578063916a17c6146117c5578063adc0c8091461163c578063af7ba7ac14611637578063af8e3f56146115e7578063b0464fdc14611512578063b5508aa91461146a578063ba414fa614611427578063bda2624914611226578063bfabd07614610ef7578063ca55c29414610ca4578063cae05c12146109f6578063d0a0dff21461098b578063d6afd3441461083a578063e20c9f7114610781578063f56af3b41461069c578063f7dd25df146104b2578063fa7626d4146104715763fe252dd11461026c575f80fd5b3461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57604f60081d60010b81526020805260408120547fffffffffffffffffffffffffffffffffffffffffffff80000000000000000000811680158015928492918061046457610460577fffffffffffffffffffffffffffffffffffffffffffff800000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb19160ff93850316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b604f0160020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b6004820152605460248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575b5061043982615b1a565b80f35b8161044691615530565b61045157815f61042f565b5080fd5b6040513d84823e3d90fd5b8280fd5b50505060ff6103b7565b80fd5b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57602060ff601f54166040519015158152f35b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060081d60010b8152602080526040812054801580159183918061067457610451578082031660e07e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f7f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c936101e085161c63d76453e004161a91161760020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000160020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b60048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff3860248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575061043982615b1a565b50507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6105d4565b503461046e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57806106d5615351565b6101008160020b6106f08160081d8060020b9060010b615ff6565b07737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561077d5760ff9081604051937f98296c540000000000000000000000000000000000000000000000000000000085521660048401521660248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761076c5750f35b8161077691615530565b61046e5780f35b5050fd5b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b81811061080e5761080a856107fe81870382615530565b60405191829182615279565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016107e7565b503461046e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57610872615351565b9061088661087e615361565b60020b6161cb565b60020b918060020b90831561095e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff84147fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083141661093157828461043994958405809382848712918261091b575b505061090d575b60020b930712900360020b615ff6565b6109169061570f565b6108fd565b610925925061575e565b60020b1515825f6108f6565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57600260081d81526020805260408120600481541890556104396109f1600160081d60010b5f5260208052600260405f205416151590565b615b9d565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f6e657874496e697469616c697a65645469636b57697468696e4f6e65576f726460448201527f5f6c746546616c73655f666f72456e74697265576f72640000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c8f575b505061030160081d60010b81526020805260408120547ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe811690811580610c8457610460577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9160ff93850316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b6103010160020b5b506040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b610c799060203d602011610c7d575b610c718183615530565b810190615571565b5080f35b503d610c67565b5050506103ff610c05565b81610c9991615530565b61046e57805f610ae9565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc960081d60010b81526020805260408120547ffffffffffffffe000000000000000000000000000000000000000000000000008116801580159284929180610ece57610460577ffffffffffffffe000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff379160ff93850316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc90160020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b60048201527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc960248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575061043982615b1a565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff610e2e565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57610f637fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a60081d5f526020805260405f2063040000008154189055565b610fab610fa67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a60081d60010b5f5260208052630400000060405f205416151590565b615b1a565b610fee6109f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960081d60010b5f5260208052630200000060405f205416151590565b6110316109f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1b60081d60010b5f5260208052630800000060405f205416151590565b6110556109f1601a60081d60010b5f5260208052630400000060405f205416151590565b6110986109f17ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1a60081d60010b5f5260208052630400000060405f205416151590565b6110d57fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a60081d5f526020805260405f2063040000008154189055565b6111186109f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1a60081d60010b5f5260208052630400000060405f205416151590565b61115b6109f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1960081d60010b5f5260208052630200000060405f205416151590565b61119e6109f17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1b60081d60010b5f5260208052630800000060405f205416151590565b6111c26109f1601a60081d60010b5f5260208052630400000060405f205416151590565b6112056109f17ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe1a60081d60010b5f5260208052630400000060405f205416151590565b6104396109f1600160081d60010b5f5260208052600260405f205416151590565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff60081d60010b815260208052604081205480158015918391806113ff5761045157807f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff936fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c851060031b1792831c1c601f161a1781031660020b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeff0360020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b60048201527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0060248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015610455576113ea575b5061043982615b9d565b816113f491615530565b61045157815f6113e0565b50507ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe00611349565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576020611460615a41565b6040519015158152f35b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576019546114a5816155ba565b916114b36040519384615530565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b8383106114f5576040518061080a87826153c6565b600160208192611504856155d2565b8152019201920191906114e0565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57601c5461154d816155ba565b9161155b6040519384615530565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b83831061159d576040518061080a8782615443565b600260206001926040516115b0816154e7565b73ffffffffffffffffffffffffffffffffffffffff86541681526115d585870161579d565b83820152815201920192019190611588565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576104396109f1600160081d60010b5f5260208052600260405f205416151590565b61530b565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152603660248201527f6e657874496e697469616c697a65645469636b57697468696e4f6e65576f726460448201527f5f6c7465547275655f666f72456e74697265576f7264000000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610455576117b0575b505061040060081d600190810b8252602080526040822054168015806117a65761045157506040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b5050610400610c05565b816117ba91615530565b61046e57805f61172f565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57601d54611800816155ba565b9161180e6040519384615530565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b838310611850576040518061080a8782615443565b60026020600192604051611863816154e7565b73ffffffffffffffffffffffffffffffffffffffff865416815261188885870161579d565b8382015281520192019201919061183b565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5761018060081d60010b81526020805260408120547fffffffffffffffffffffffffffffffff00000000000000000000000000000000811690811580159190806119f9576119f55760ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff807fffffffffffffffffffffffffffffffff000000000000000000000000000000006109f19361043996880316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b6101800160020b5b60020b615f7e565b8380fd5b505061043991506109f16101ff6119ed565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152602e60248201527f666c69705469636b5f666c697070696e675365636f6e645469636b496e576f7260448201527f64546f496e697469616c697a65640000000000000000000000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557611b5c575b5050611b0a6047616480565b6040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b81611b6691615530565b61046e57805f611afe565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57601a54611bac816155ba565b91611bba6040519384615530565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b838310611bfc576040518061080a87826153c6565b600160208192611c0b856155d2565b815201920192019190611be7565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57611c63600160081d5f526020805260405f2060028154189055565b610439610fa6600160081d60010b5f5260208052600260405f205416151590565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57601b54611cbf816155ba565b611ccc6040519182615530565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b838310611da457868587604051928392602084019060208552518091526040840160408260051b8601019392905b828210611d3957505050500390f35b91936020611d94827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0600195979984950301865288519083611d8483516040845260408401906152c8565b9201519084818403910152615371565b9601920192018594939192611d2a565b60026020600192604051611db7816154e7565b611dc0866155d2565b8152611dcd85870161579d565b83820152815201920192019190611cfc565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152603460248201527f6e657874496e697469616c697a65645469636b57697468696e4f6e65576f726460448201527f5f6c746546616c73655f6f6e426f756e646172790000000000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557611f30575b5050611edc615d55565b50506040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b81611f3a91615530565b61046e57805f611ed2565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57604e60081d60010b81526020805260408120547fffffffffffffffffffffffffffffffffffffffffffffc00000000000000000008116908115801591908061209e576119f55760ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb27fffffffffffffffffffffffffffffffffffffffffffffc0000000000000000000610fa69361043996880316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b604e0160020b5b60020b615e8f565b50506104399150610fa660ff612096565b503461046e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576120e7615351565b6120f261087e615361565b60020b6120ff818361575e565b60020b156121ef57826040517fd4d8f3e60000000000000000000000000000000000000000000000000000000060208201528360020b60248201528260448201526044815261214f606482615530565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157816121aa91604051809381927ff28dceb30000000000000000000000000000000000000000000000000000000083526020600484015260248301906152c8565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015610455576121da575b5050610439916164c6565b816121e491615530565b61046057825f6121cf565b90612230826122016104399484616545565b9261220c82826164c6565b6122216122198383616545565b851590615c15565b61222b82826164c6565b616545565b615c15565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576101fd60081d60010b81526020805260408120547fe000000000000000000000000000000000000000000000000000000000000000811690811580159190806119f9576119f55760ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff037fe0000000000000000000000000000000000000000000000000000000000000006109f19361043996880316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b6101fd0160020b60020b615f7e565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57604e60081d60010b8152602080526040812054697fffffffffffffffffff1680158015908061248c5761046057610fa660ff837f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be610439966fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c851060031b1792831c1c601f161a17604e031660020b604e0360020b60020b615e8f565b506104399150610fa683612096565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152603a60248201527f6e657874496e697469616c697a65645469636b57697468696e4f6e65576f726460448201527f5f6c7465547275655f6a75737442656c6f77426f756e646172790000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557612609575b505060ff60081d60010b81526020805260408120548015806126015761045157506040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b505080610c05565b8161261391615530565b61046e57805f61258e565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5761010160081d8152602080526040812060028154189055611205610fa661010160081d60010b5f5260208052600260405f205416151590565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152603760248201527f6e657874496e697469616c697a65645469636b57697468696e4f6e65576f726460448201527f5f6c7465547275655f6f6e426f756e646172795f6761730000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557612783575b5050611edc615c8f565b8161278d91615530565b61046e57805f612779565b503461046e5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576127d0615351565b6127d8615361565b6044359160ff83169283810361334f576064359182159182158403612ec3579060020b8681121561331f57197f8000000000000000000000000000000000000000000000000000000000000000037f800000000000000000000000000000000000000000000000000000000000000081116132f2577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81019081116132f257945b60019187967f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890895f146128d4576024897f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b899850612904905f927f80000000000000000000000000000000000000000000000000000000000d89e8916165a4565b7f80000000000000000000000000000000000000000000000000000000000000008110156132c2577f8000000000000000000000000000000000000000000000000000000000000000037f80000000000000000000000000000000000000000000000000000000000000008111613157571984810180911161315757905b6040517fa322c40e0000000000000000000000000000000000000000000000000000000081528260048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa91821561314b57809261323c575b50505f612a2c612a888293612a5c6129ee616190565b916040519485937f4b5c42770000000000000000000000000000000000000000000000000000000060208601526040602486015260648501906152c8565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc8483030160448501526152c8565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282615530565b6020815191016a636f6e736f6c652e6c6f675afa5060020b9560020b8781125f146131e457197f8000000000000000000000000000000000000000000000000000000000000000037f80000000000000000000000000000000000000000000000000000000000000008111613098577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8101908111613098575b87907f80000000000000000000000000000000000000000000000000000000000000018583156131b45761093157826109315790612b81917f8000000000000000000000000000000000000000000000000000000000007fff916165a4565b7f8000000000000000000000000000000000000000000000000000000000000000811015613184577f8000000000000000000000000000000000000000000000000000000000000000037f80000000000000000000000000000000000000000000000000000000000000008111613157571984810180911161315757905b6040517fa322c40e0000000000000000000000000000000000000000000000000000000081528260048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa91821561314b5780926130c5575b50505f612a2c612c6b8293612a5c6129ee616190565b6020815191016a636f6e736f6c652e6c6f675afa5060020b95868881830712910503918294613082575b60ff9182918983861691895f14613049575083612cb293166165a4565b5f80612cff612d31612cc2616190565b6040519283917fb60e72cc0000000000000000000000000000000000000000000000000000000060208401526040602484015260648301906152c8565b866044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282615530565b6020815191016a636f6e736f6c652e6c6f675afa50165b1660020b9060020b60081d60081b60020b017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff82131761301c57849060020b02928360020b93840361301c57848407612ffe578484058060081d875260216020528260ff6040892092161b81541890555f14612ee25760ff8216908260020b60081d900b85526021602052604085207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8260ff031c90541693841592831593845f14612ec757612ec35760ff612ebb93877f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be6104399a6fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b0260020b5b91615b1a565b60020b615ff6565b8680fd5b506104399550612ebb9260020b900360020b0260020b612eb5565b809101908160020b917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8160ff16928460081d810b8852602160205260ff6040892093161b011990541693841592831593845f14612fdf57612ec35760ff612ebb9387610439988a03167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b0260020b91615b1a565b50610439955060ff612ebb9381031660020b0160020b0260020b612eb5565b6044601c85876040519163d4d8f3e683526020830152604082015201fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6130579350849291506165a4565b5f80612cff613067612cc2616190565b6020815191016a636f6e736f6c652e6c6f675afa5016612d48565b9160020b627fffff811461309857830191612c95565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9091503d8082843e6130d78184615530565b8201916020818403126104515780519067ffffffffffffffff8211610460570182601f820112156104515780519061310e82616156565b9361311c6040519586615530565b82855260208383010111610460575f938493602084612a2c9582612c6b96018386015e83010152935050612c55565b604051903d90823e3d90fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f800000000000000000000000000000000000000000000000000000000000000081019081116131575790612bff565b509150612b81905f927f8000000000000000000000000000000000000000000000000000000000007fff916165a4565b7f8000000000000000000000000000000000000000000000000000000000000000810180911115612b22576024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b9091503d8082843e61324e8184615530565b8201916020818403126104515780519067ffffffffffffffff8211610460570182601f820112156104515780519061328582616156565b936132936040519586615530565b82855260208383010111610460575f938493602084612a2c9582612a8896018386015e830101529350506129d8565b7f800000000000000000000000000000000000000000000000000000000000000081019081116131575790612982565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b7f800000000000000000000000000000000000000000000000000000000000000081018091116132f25794612879565b8480fd5b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576103ff60081d60010b815260208052604081205480158015908061344657610460576109f160ff837f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be610439966fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c851060031b1792831c1c601f161a1781031660020b6103ff0360020b5b60020b615f06565b5061043991506109f161030061343e565b503461046e5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5761348f615351565b602435801515810361046057801561397e57827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8001008360020b12155b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907f4c63e562000000000000000000000000000000000000000000000000000000008252151560048201528181602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561045557613969575b50508160020b836001820712810392825f146138615760ff8416938060020b60081d60010b865260208052604086207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8660ff031c905416801595861596875f146138515761384d57817f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff946fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c861060031b1792831c1c601f161a1790031660020b900360020b5b925b1561371b57848360020b92737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907f95fd154e00000000000000000000000000000000000000000000000000000000825284600483015260248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561045557613706575b50506136cd6136c584836156d5565b60020b61606c565b818160020b136136e65750509061223061043992616510565b806136fc6136f661370193616510565b156160e4565b61570f565b6136cd565b8161371091615530565b61334f57845f6136b6565b8260020b91737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561384957856040517f5a362d450000000000000000000000000000000000000000000000000000000081528460048201528260248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa801561045557613834575b50506137a66136c5600193866156d5565b017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008112627fffff821317613807575b818160020b126137ef5750509061223061043992616510565b806137fe6136f6600193616510565b0160020b6137d6565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b8161383e91615530565b61384957855f613795565b8580fd5b8780fd5b50905060020b900360020b613635565b92600101928360020b8460ff16948160081d60010b8752602080527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600160ff60408a2093161b0119905416801595861596875f146139555761384d578160ff928903167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17031660020b0160020b5b92613637565b5060ff809250031660020b0160020b61394f565b8161397391615530565b61046057825f61353a565b82627ffeff8360020b126134ca565b503461046e5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576004358060010b8091036104515781604091602093528280522054604051908152f35b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110613a5d5761080a856107fe81870382615530565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201613a46565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffca60081d60010b81526020805260408120547ffffffffffffffc000000000000000000000000000000000000000000000000008116801580159284929180613cb357610460577ffffffffffffffc000000000000000000000000000000000000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff369160ff93850316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffca0160020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b60048201527ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575061043982615b1a565b5050507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff613c13565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110613d595761080a856107fe81870382615530565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201613d42565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576104396109f1613dc2615c8f565b919060020b615e17565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57601e54613e07816155ba565b613e146040519182615530565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b838310613f625786858760405192839260208401906020855251809152604084019160408260051b8601019392815b838310613e805786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc09086929496030183528551906020604082019273ffffffffffffffffffffffffffffffffffffffff81511683520151916040602083015282518091526060820190602060608260051b850101940192855b828110613f1957505050505060208060019297019301930190928695949293613e73565b9091929394602080613f55837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa0876001960301895289516152c8565b9701950193929101613ef5565b604051613f6e816154e7565b73ffffffffffffffffffffffffffffffffffffffff8354168152600183018054613f97816155ba565b91613fa56040519384615530565b8183528a526020808b20908b9084015b838210613fdb575050505060019282602092836002950152815201920192019190613e44565b600160208192613fea866155d2565b815201930191019091613fb5565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561046e57806040517f3cad9d7b00000000000000000000000000000000000000000000000000000000815260206004820152602d60248201527f666c69705469636b5f666c697070696e6746697273745469636b496e576f726460448201527f546f496e697469616c697a6564000000000000000000000000000000000000006064820152818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557614158575b505061271060081d815260208052604081206201000081541890556040517ff6402eda00000000000000000000000000000000000000000000000000000000815260208160048185737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561045557610c58575080f35b8161416291615530565b61046e57805f6140eb565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e576141b7600160081d5f526020805260405f2060028154189055565b611205600160081d5f526020805260405f2060028154189055565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061424f5761080a856107fe81870382615530565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201614238565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5761038460081d60010b8152602080526040812054701fffffffffffffffffffffffffffffffff1680158015908061344657610460576109f160ff837f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be610439966fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c851060031b1792831c1c601f161a176084031660020b6103840360020b60020b615f06565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e5761015460081d815260208052604081206a1000000000000000000000815418905561014960081d60010b8152602080526040812054817ffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000008216801592831593845f1461457357610460577ffffffffffffffffffffffffffffffffffffffffffffffe0000000000000000007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb79160ff93850316167e1f0d1e100c1d070f090b19131c1706010e11080a1a141802121b1503160405601f6101e07f804040554300526644320000502061067405302602000010750620017611707760fc7fb6db6db6ddddddddd34d34d349249249210842108c6318c639ce739cffffffff860260f81c161b60f71c1692831c63d76453e004161a17011660020b6101490160020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b600482015261015460248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575061043982615b1a565b5050506101ff6144f1565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57604860081d60010b81526020805260408120546901ffffffffffffffffff1680158015918391806146f15761045157807f07060605060205000602030205040001060502050303040105050304000000006f8421084210842108cc6318c6db6d54be60ff936fffffffffffffffffffffffffffffffff1060071b83811c67ffffffffffffffff1060061b1783811c63ffffffff1060051b1783811c61ffff1060041b1783811c851060031b1792831c1c601f161a176048031660020b60480360020b5b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561045157604051907ffe74f05b00000000000000000000000000000000000000000000000000000000825260020b6004820152604660248201528181604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa80156104555761043c575061043982615b1a565b505080614670565b503461046e57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261046e57604f60081d60010b815260208052604081205469ffffffffffffffffffff1680158015908061248c576104605