1 line
406 KiB
JSON
1 line
406 KiB
JSON
{"abi":[{"type":"function","name":"COIN","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockERC20"}],"stateMutability":"view"},{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"USD","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract MockERC20"}],"stateMutability":"view"},{"type":"function","name":"coinInitialBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"exactInputOrderIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"exactOutputOrderIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"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":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"factory","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVaultFactory"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"fee","inputs":[],"outputs":[{"name":"","type":"uint24","internalType":"uint24"}],"stateMutability":"view"},{"type":"function","name":"init","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"init","inputs":[{"name":"router","type":"address","internalType":"contract IRouter"},{"name":"feeManager","type":"address","internalType":"contract FeeManager"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initDebugFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"initNoFees","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"inverted","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"limitOrderIndex","inputs":[],"outputs":[{"name":"","type":"uint64","internalType":"uint64"}],"stateMutability":"view"},{"type":"function","name":"oneSqrtX96","inputs":[],"outputs":[{"name":"","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"placeOrder","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"pool","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IUniswapV3Pool"}],"stateMutability":"view"},{"type":"function","name":"price","inputs":[],"outputs":[{"name":"sqrtPriceX96","type":"uint160","internalType":"uint160"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"lower","type":"int24","internalType":"int24"},{"name":"upper","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"coinAmount","type":"uint256","internalType":"uint256"},{"name":"usdAmount","type":"uint256","internalType":"uint256"},{"name":"lower","type":"int24","internalType":"int24"},{"name":"upper","type":"int24","internalType":"int24"}],"outputs":[{"name":"tokenId","type":"uint256","internalType":"uint256"},{"name":"liquidity","type":"uint128","internalType":"uint128"},{"name":"amount0","type":"uint256","internalType":"uint256"},{"name":"amount1","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"stake","inputs":[{"name":"amount","type":"uint256","internalType":"uint256"},{"name":"width","type":"int24","internalType":"int24"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"inToken","type":"address","internalType":"contract MockERC20"},{"name":"outToken","type":"address","internalType":"contract MockERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"},{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swap","inputs":[{"name":"inToken","type":"address","internalType":"contract MockERC20"},{"name":"outToken","type":"address","internalType":"contract MockERC20"},{"name":"amountIn","type":"uint256","internalType":"uint256"}],"outputs":[{"name":"amountOut","type":"uint256","internalType":"uint256"}],"stateMutability":"nonpayable"},{"type":"function","name":"swapTo1","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"swapToPrice","inputs":[{"name":"sqrtPriceLimitX96","type":"uint160","internalType":"uint160"}],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"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":"testExecuteLimitOrder","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testExecuteOrderExactInput","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testExecuteOrderExactOutput","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testPlaceOrder","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"token0","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"token1","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"usdInitialBalance","inputs":[],"outputs":[{"name":"","type":"uint256","internalType":"uint256"}],"stateMutability":"view"},{"type":"function","name":"vault","inputs":[],"outputs":[{"name":"","type":"address","internalType":"contract IVault"}],"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":"0x6080806040523460565773c36442b4a4522e871399cd717abdd847ab11fe8860018060a01b03196001541617600155600160ff196013541617601355600160ff19602554161760255562011dde90816200005c8239f35b600080fdfe60a0604052600436101561001257600080fd5b60006080526080513560e01c80630a9254e41461270f5780630dfe1681146126bc57806316f0115b146126695780631bf6c21b146126165780631ed7831c146125685780632ade3880146122d35780633420899b146122985780633e5e3c23146121ea5780633f7286f41461213c57806341cca3b51461055e5780634a09d3dd146120b457806353486e2f1461207257806358cec2eb1461202b57806366d9a9a014611e5b57806367e368fc14611e1657806369ae948f14611dcc5780636fe2ae0e146102a45780637083accc146119e157806385226c81146118845780638e3b558a1461181b5780638f7d7c50146117e1578063916a17c6146114735780639febdbf714611390578063a035b1fe14611338578063a54a72b7146112e5578063b5508aa914611157578063ba414fa614611113578063bc0087c7146110c9578063c45a015514611075578063c4b5da7414610edf578063c578d91d14610e87578063d21220a714610e34578063d6f130021461074d578063d768078814610710578063ddca3f43146106cb578063df791e5014610596578063e1c7392a1461055e578063e20c9f71146104a0578063e3baf41a14610397578063ee08ef9b1461035a578063f09a4016146102e2578063f5c609e0146102a4578063fa7626d4146102625763fbfa77cf1461020657600080fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60255460081c16604051908152f35b60805180fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602060ff602554166040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc6151ca565b60805180f35b3461025c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760043573ffffffffffffffffffffffffffffffffffffffff8116810361025c5760243573ffffffffffffffffffffffffffffffffffffffff8116810361025c576102dc91614871565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020602654604051908152f35b3461025c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576103ce613707565b6080518160020b131561025c5760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa908115610493576102dc9260805192610457575b508061044861044e92846147cd565b92614807565b90600435613e96565b61044e91925061047e9060e03d60e01161048c575b6104768183613916565b8101906145d0565b505050505090509190610439565b503d61046c565b6040513d608051823e3d90fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601c54918281520190601c608051527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211906080515b8181106105325761052e8561052281870382613916565b60405191829182613596565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161050b565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc613d55565b3461025c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576105cd6136bc565b6105d56136e4565b73ffffffffffffffffffffffffffffffffffffffff6002541691604051927f0dfe1681000000000000000000000000000000000000000000000000000000008452602084600481845afa9283156104935773ffffffffffffffffffffffffffffffffffffffff61067b946020966080519161069e575b5073ffffffffffffffffffffffffffffffffffffffff8516911603610683576401000276a4925b6044359261572b565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d2592610672565b6106be9150873d89116106c4575b6106b68183613916565b8101906147a1565b8761064b565b503d6106ac565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602062ffffff60025460a01c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020602754604051908152f35b3461025c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760043560243561078a613717565b60643591600283900b830361025c5760065460a01c60ff169391929182908515610e2d57825b8615610e255750945b610e07575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa80156104935773ffffffffffffffffffffffffffffffffffffffff9160805191610de8575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa80156104935773ffffffffffffffffffffffffffffffffffffffff9160805191610dc9575b501694863b1561025c576040517f40c10f190000000000000000000000000000000000000000000000000000000081526080513060048301526024820186905281806044810103816080518c5af1801561049357610db0575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815260208180600481018884604083019273c36442b4a4522e871399cd717abdd847ab11fe888152015203816080518c5af1801561049357610d79575b50853b1561025c576040517f40c10f190000000000000000000000000000000000000000000000000000000081526080513060048301526024820184905281806044810103816080518b5af1801561049357610d60575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815260208180600481018684604083019273c36442b4a4522e871399cd717abdd847ab11fe888152015203816080518b5af1801561049357610d29575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156104935760805192610ce8575b5090610a4881610a4e93615fb2565b93615fb2565b9233933315610ce0575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156104935760805195610caf575b5060405197610aa8896138bf565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e0880193608051855261010089019560805187526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff166101248301525161014482015280806080515a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156104935760805191829182918291610c3a575b506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b93505050506080813d608011610ca7575b81610c5860809383613916565b8101031261025c578051906020810151906fffffffffffffffffffffffffffffffff8216820361025c576040810151606090910151919291906fffffffffffffffffffffffffffffffff610c0d565b3d9150610c4b565b610cd291955060203d602011610cd9575b610cca8183613916565b810190615710565b9388610a9a565b503d610cc0565b309450610a58565b91506020823d602011610d21575b81610d0360209383613916565b8101031261025c57610a48610d1a610a4e936145a6565b9250610a39565b3d9150610cf6565b6020813d602011610d58575b81610d4260209383613916565b8101031261025c57610d53906145c3565b6109f8565b3d9150610d35565b608051610d6c91613916565b60805161025c5787610996565b6020813d602011610da8575b81610d9260209383613916565b8101031261025c57610da3906145c3565b61093f565b3d9150610d85565b608051610dbc91613916565b60805161025c57876108dd565b610de2915060203d6020116106c4576106b68183613916565b88610884565b610e01915060203d6020116106c4576106b68183613916565b8761082d565b909250610e149150614841565b90610e1e82614841565b90846107be565b9050946107b9565b80926107b0565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b3461025c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc610ec16136bc565b73ffffffffffffffffffffffffffffffffffffffff60025416615c29565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760405161214780820182811067ffffffffffffffff821117611044578291620077c183390390608051f0801561049357604051610f4b816138a3565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610f77816138a3565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610fa4836138bf565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff841117611044578392611019926200606e8539615e91565b0390608051f080156104935773ffffffffffffffffffffffffffffffffffffffff6102dc9216614871565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260416004526024608051fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff6080515416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285460801c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602061114d6146c7565b6040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602054611193816139a5565b6111a06040519182613916565b818152602081019160206080515260206080512092608051905b8282106111d7576040516020808252819061052e90820187613645565b6040516080518654600181811c9190811680156112db575b6020831081146112aa57828552908115611269575060011461122e575b506001928261122085946020940382613916565b8152019501910190936111ba565b6080805189905251602081209092505b8183106112535750508101602001600161120c565b600181602092548386880101520192019161123e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191506001905061120c565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260226004526024608051fd5b91607f16916111ef565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602061137261464a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5773ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285416906040516113f681613887565b6080518152813b1561025c57604051927f6e98833d000000000000000000000000000000000000000000000000000000008452600484015260805160248401525160448301528160648160805193608051905af180156104935761145a5760805180f35b60805161146691613916565b60805161025c57806102dc565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576023546114af816139a5565b6114bc6040519182613916565b81815260208101916023608051527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f423092608051905b828210611506576040518061052e8682613727565b6040516115128161381f565b73ffffffffffffffffffffffffffffffffffffffff8654168152600186016040519081602082549182815201916080515260206080512090608051915b81600784011061175a57846001979460029794602097946115b2945491818110611726575b8181106116f2575b8181106116be575b81811061168a575b818110611656575b818110611622575b8181106115f0575b106115c4575b500382613916565b838201528152019501910190936114f1565b7fffffffff0000000000000000000000000000000000000000000000000000000016815286018d6115aa565b828a1b7fffffffff00000000000000000000000000000000000000000000000000000000168452928901928b016115a4565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560401b16815201930161159c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301611594565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560801b16815201930161158c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301611584565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560c01b16815201930161157c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301611574565b9260016101006008927fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e082015201940192019161154f565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020611372614577565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5773ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460401c16906040516113f681613887565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576021546118c0816139a5565b6118cd6040519182613916565b818152602081019160216080515260206080512092608051905b828210611904576040516020808252819061052e90820187613645565b6040516080518654600181811c9190811680156119d7575b6020831081146112aa57828552908115611996575060011461195b575b506001928261194d85946020940382613916565b8152019501910190936118e7565b6080805189905251602081209092505b81831061198057505081016020016001611939565b600181602092548386880101520192019161196b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b8401909101915060019050611939565b91607f169161191c565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57611a1c610ec1614577565b6040805190611a2b9082613916565b600281527f4c4c0000000000000000000000000000000000000000000000000000000000006020820152737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561025c57604051907ff28dceb3000000000000000000000000000000000000000000000000000000008252602060048301528180611ab16080519360248301906135e6565b0381608051737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561049357611db3575b5073ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460801c1690604051611b1281613887565b6080518152813b1561025c57604051927f6e98833d000000000000000000000000000000000000000000000000000000008452600484015260805160248401525160448301528160648160805193608051905af1801561049357611d9a575b5060408051611bb391611b849082613916565b600881527f696e7665727465640000000000000000000000000000000000000000000000006020820152615618565b60008060ff60065460a01c16604051907f32458eed0000000000000000000000000000000000000000000000000000000060208301521515602482015260248152611bff604482613916565b6020815191016a636f6e736f6c652e6c6f675afa5060408051611c5591611c269082613916565b600e81527f6f726967696e616c2070726963650000000000000000000000000000000000006020820152615618565b611c7b73ffffffffffffffffffffffffffffffffffffffff611c7561464a565b16615676565b73ffffffffffffffffffffffffffffffffffffffff611c98614577565b1673ffffffffffffffffffffffffffffffffffffffff612712820216908082046127121490151715611d695773ffffffffffffffffffffffffffffffffffffffff612710611d309204611cef818360025416615c29565b60408051611c7591611d019082613916565b600981527f6e657720707269636500000000000000000000000000000000000000000000006020820152615618565b73ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460801c16906040516113f681613887565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260116004526024608051fd5b608051611da691613916565b60805161025c5780611b71565b608051611dbf91613916565b60805161025c5780611ad8565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285460401c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602060ff60065460a01c166040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602254611e97816139a5565b611ea46040519182613916565b81815260208101916022608051527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e51092608051905b828210611eee576040518061052e8682613727565b604051611efa8161381f565b73ffffffffffffffffffffffffffffffffffffffff8654168152600186016040519081602082549182815201916080515260206080512090608051915b816007840110611fa45784600197946002979460209794611f92945491818110611726578181106116f2578181106116be5781811061168a5781811061165657818110611622578181106115f057106115c457500382613916565b83820152815201950191019093611ed9565b9260016101006008927fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920191611f37565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285416604051908152f35b3461025c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc6120ac613707565b61044e613717565b3461025c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576120eb6136bc565b6120f36136e4565b60643573ffffffffffffffffffffffffffffffffffffffff8116810361025c5760209261067b926044359173ffffffffffffffffffffffffffffffffffffffff6002541661572b565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601e54918281520190601e608051527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350906080515b8181106121be5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016121a7565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601f54918281520190601f608051527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807906080515b81811061226c5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201612255565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc610ec1614577565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760245461230f816139a5565b9061231d6040519283613916565b8082526020820180916024608051527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4608051925b82841061240457848660405191829160208301906020845251809152604083019060408160051b8501019291608051905b82821061239257505050500390f35b919360206123f4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186526040838a5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190613645565b9601920192018594939192612383565b6040516124108161381f565b825473ffffffffffffffffffffffffffffffffffffffff1681526001830180549061243a826139a5565b916124486040519384613916565b808352602083019160805152602060805120608051925b828410612485575050505060019282602092836002950152815201920193019290612352565b6040516080518354600181811c919081161561255e575b6020821060018216146112aa578184526001811690811561251d57506001146124e2575b50600192826124d485946020940382613916565b81520192019301929061245f565b6080805186905251602081209092505b818310612507575050810160200160016124c0565b60018160209254838688010152019201916124f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150600190506124c0565b90607f169061249c565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601d54918281520190601d608051527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f906080515b8181106125ea5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016125d3565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57612747613d55565b6024602073ffffffffffffffffffffffffffffffffffffffff6080515416604051928380927f5eb512e7000000000000000000000000000000000000000000000000000000008252306004830152608051905af19081156104935760805191613547575b507fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff006025549260081b169116178060255573ffffffffffffffffffffffffffffffffffffffff60035416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610493576080519061350c575b6128549150613965565b80620186a00290620186a0820403611d6957823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805160089390931c73ffffffffffffffffffffffffffffffffffffffff16600482015260248101919091529182908180604481010391608051905af18015610493576134fa575b5073ffffffffffffffffffffffffffffffffffffffff600454166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa801561049357608051906134bf575b61293d9150613965565b80620186a00290620186a0820403611d695773ffffffffffffffffffffffffffffffffffffffff60255460081c1690823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af18015610493576134a6575b5073ffffffffffffffffffffffffffffffffffffffff600354166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610493576080519061346b575b612a3f9150613965565b80620f42400290620f4240820403611d6957806026556004602073ffffffffffffffffffffffffffffffffffffffff825416604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80156104935760805190613430575b612ab69150613965565b80620f42400290620f4240820403611d695760275573ffffffffffffffffffffffffffffffffffffffff60255460081c1690823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af1801561049357613417575b5073ffffffffffffffffffffffffffffffffffffffff6004541673ffffffffffffffffffffffffffffffffffffffff60255460081c16602754823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af18015610493576133fe575b50612c0c6139bd565b61ffff612c1882613ab4565b515263ffffffff610180612c2b83613ab4565b510152600160a0612c3b83613ab4565b51015273ffffffffffffffffffffffffffffffffffffffff60045416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa801561049357608051906133c3575b612ca09150613965565b80600302906003820403611d6957600a6064910473ffffffffffffffffffffffffffffffffffffffff600354169360405190612cdb8261381f565b600182526101f4602083015260405195612cf48761386a565b86526020860152604085015280606085015204608083015260805160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa80156104935767ffffffffffffffff91608051916133a4575b50167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006028541617602855813b1561025c5760405180927f16ddc0730000000000000000000000000000000000000000000000000000000082528180612e0a6080519560048301613b30565b0391608051905af180156104935761338b575b50612e266139bd565b61ffff612e3282613ab4565b515263ffffffff610180612e4583613ab4565b510152600160a0612e5583613ab4565b51015273ffffffffffffffffffffffffffffffffffffffff60035416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa80156104935760805190613350575b612eba9150613965565b80600302906003820403611d6957600a6064910473ffffffffffffffffffffffffffffffffffffffff6004541662ffffff60025460a01c169060405191612f008361381f565b60018352602083015260405195612f168761386a565b865260208601526040850152806060850152046080830152600160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa9081156104935760805191613331575b507fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff00000000000000006028549260401b16911617602855813b1561025c5760405180927f16ddc07300000000000000000000000000000000000000000000000000000000825281806130386080519560048301613b30565b0391608051905af1801561049357613318575b506130546139bd565b61ffff61306082613ab4565b515263ffffffff61018061307383613ab4565b5101526006549060a082901c60ff161561330e57635368da9b5b63ffffffff6101a061309e84613ab4565b5101519116905273ffffffffffffffffffffffffffffffffffffffff60055416916040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481875afa801561049357608051906132d3575b6131079150613965565b9081600302916003830403611d6957600a606492049073ffffffffffffffffffffffffffffffffffffffff62ffffff60025460a01c16916040519261314b8461381f565b600184526020840152604051966131618861386a565b87521660208601526040850152806060850152046080830152600160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa90811561049357608051916132a4575b507fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff000000000000000000000000000000006028549260801b16911617602855813b1561025c5760405180927f16ddc073000000000000000000000000000000000000000000000000000000008252818061328c6080519560048301613b30565b0391608051905af180156104935761145a5760805180f35b6132c6915060203d6020116132cc575b6132be8183613916565b810190613b10565b83613202565b503d6132b4565b506020813d602011613306575b816132ed60209383613916565b8101031261025c5761330161310791613957565b6130fd565b3d91506132e0565b632b8cc06661308d565b60805161332491613916565b60805161025c578061304b565b61334a915060203d6020116132cc576132be8183613916565b83612fb6565b506020813d602011613383575b8161336a60209383613916565b8101031261025c5761337e612eba91613957565b612eb0565b3d915061335d565b60805161339791613916565b60805161025c5780612e1d565b6133bd915060203d6020116132cc576132be8183613916565b84612d9e565b506020813d6020116133f6575b816133dd60209383613916565b8101031261025c576133f1612ca091613957565b612c96565b3d91506133d0565b60805161340a91613916565b60805161025c5780612c03565b60805161342391613916565b60805161025c5780612b59565b506020813d602011613463575b8161344a60209383613916565b8101031261025c5761345e612ab691613957565b612aac565b3d915061343d565b506020813d60201161349e575b8161348560209383613916565b8101031261025c57613499612a3f91613957565b612a35565b3d9150613478565b6080516134b291613916565b60805161025c57806129dd565b506020813d6020116134f2575b816134d960209383613916565b8101031261025c576134ed61293d91613957565b612933565b3d91506134cc565b60805161350691613916565b806128db565b506020813d60201161353f575b8161352660209383613916565b8101031261025c5761353a61285491613957565b61284a565b3d9150613519565b90506020813d60201161358e575b8161356260209383613916565b8101031261025c575173ffffffffffffffffffffffffffffffffffffffff8116810361025c57816127ab565b3d9150613555565b602060408183019282815284518094520192019060005b8181106135ba5750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016135ad565b919082519283825260005b8481106136305750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016135f1565b9080602083519182815201916020808360051b8301019401926000915b83831061367157505050505090565b90919293946020806136ad837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0866001960301875289516135e6565b97019301930191939290613662565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036136df57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036136df57565b602435908160020b82036136df57565b604435908160020b82036136df57565b602081016020825282518091526040820190602060408260051b8501019401916000905b82821061375a57505050505090565b9091929395947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087820301825284516020606081604085019373ffffffffffffffffffffffffffffffffffffffff81511686520151936040838201528451809452019201906000905b8082106137e5575050506020806001929601920192019092919593949561374b565b9091926020806001927fffffffff0000000000000000000000000000000000000000000000000000000087511681520194019201906137c3565b6040810190811067ffffffffffffffff82111761383b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610140810190811067ffffffffffffffff82111761383b57604052565b6020810190811067ffffffffffffffff82111761383b57604052565b60a0810190811067ffffffffffffffff82111761383b57604052565b610160810190811067ffffffffffffffff82111761383b57604052565b6101e0810190811067ffffffffffffffff82111761383b57604052565b610100810190811067ffffffffffffffff82111761383b57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761383b57604052565b519060ff821682036136df57565b60ff16604d811161397657600a0a90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff811161383b5760051b60200190565b604080519091906139ce8382613916565b60018152917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018260005b828110613a0557505050565b602090604051613a14816138dc565b60008152600083820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e082015260006101008201526000610120820152600061014082015260006101608201526000610180820152604051613a7c8161381f565b600081526000848201526101a0820152604051613a988161381f565b600081526000848201526101c0820152828285010152016139f9565b805115613ac15760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015613ac15760400190565b805160021015613ac15760600190565b908160209103126136df575167ffffffffffffffff811681036136df5790565b906020825261018082019073ffffffffffffffffffffffffffffffffffffffff815116602084015273ffffffffffffffffffffffffffffffffffffffff6020820151166040840152604081015180516002811015613d265760209262ffffff846101a0946101209460608a01520151166080870152606081015160a0870152608081015160c087015260a0810151151560e087015260c0810151151561010087015260e081015115158287015267ffffffffffffffff610100820151166101408701520151936101608082015284518094520192019060005b818110613c165750505090565b9091926020610220600192613d1b6101c0885161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff61018082015116610180850152613cfc6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019401929101613c09565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60405161214780820182811067ffffffffffffffff82111761383b578291620077c1833903906000f08015613e8a57604051613d90816138a3565b6000815260006020820152600060408201526000606082015260006080820152604051613dbc816138a3565b600081526000602082015260006040820152600060608201526000608082015260405191613de9836138bf565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761383b578392613e5e926200606e8539615e91565b03906000f08015613e8a5773ffffffffffffffffffffffffffffffffffffffff613e889216614871565b565b6040513d6000823e3d90fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a76400001485171561454a5760011c93620f42408202918204620f424014171561451d5760011c82919260ff60065460a01c16948560001461451657825b861561450e5750945b6144f0575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156144e5579073ffffffffffffffffffffffffffffffffffffffff9188916144c6575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa9081156144bb579073ffffffffffffffffffffffffffffffffffffffff91899161449c575b501694863b1561444d576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156143a757614488575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156143a757614451575b50853b1561444d576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156143a757908991614438575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156143a757614401575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156143a75789916143ba575b50610a488161417393615fb2565b92339333156143b2575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156143a7578995614386575b50604051976141cb896138bf565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f1801561437b57614323575050565b6080813d608011614373575b8161433c60809383613916565b8101031261436f578051916020820151906fffffffffffffffffffffffffffffffff8216820361436c5750505050565b80fd5b5080fd5b3d915061432f565b6040513d84823e3d90fd5b6143a091955060203d602011610cd957610cca8183613916565b93386141bd565b6040513d8b823e3d90fd5b30945061417d565b90506020813d6020116143f9575b816143d560209383613916565b810103126143f55790610a486143ed614173936145a6565b919250614165565b8880fd5b3d91506143c8565b6020813d602011614430575b8161441a60209383613916565b810103126143f55761442b906145c3565b614127565b3d915061440d565b8161444291613916565b61444d5787386140c9565b8780fd5b6020813d602011614480575b8161446a60209383613916565b810103126143f55761447b906145c3565b614077565b3d915061445d565b8861449591999299613916565b963861401a565b6144b5915060203d6020116106c4576106b68183613916565b38613fc4565b6040513d8a823e3d90fd5b6144df915060203d6020116106c4576106b68183613916565b38613f6d565b6040513d89823e3d90fd5b9092506144fd9150614841565b9061450782614841565b9038613efe565b905094613ef9565b8092613ef0565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615614598576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b51908160020b82036136df57565b519061ffff821682036136df57565b519081151582036136df57565b908160e09103126136df57805173ffffffffffffffffffffffffffffffffffffffff811681036136df5791614607602083016145a6565b91614614604082016145b4565b91614621606083016145b4565b9161462e608082016145b4565b9161464760c061464060a08501613957565b93016145c3565b90565b600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa908115613e8a576000916146a5575090565b6146be915060e03d60e01161048c576104768183613916565b50505050505090565b600f5460ff1680156146d65790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613e8a5760009161476f575b50151590565b90506020813d602011614799575b8161478a60209383613916565b810103126136df575138614769565b3d915061477d565b908160209103126136df575173ffffffffffffffffffffffffffffffffffffffff811681036136df5790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083121761397657565b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff83131761397657565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146139765760000390565b906000916040519161595e918284019284841067ffffffffffffffff85111761519d57849273ffffffffffffffffffffffffffffffffffffffff6060959381936200b543873916835216602082015284604082015203019082f0801561512b5760405190611c3b908183019183831067ffffffffffffffff841117615138579173ffffffffffffffffffffffffffffffffffffffff84926060946200990885393383521660208201526078604082015203019082f0801561512b5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617815580806149e6614a1860405161497f604082613916565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af3330000000000000000000000000000000000000000000000000000000060208401526040602484015260648301906135e6565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613916565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff8311176151705760e08162010ea1938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156151655773ffffffffffffffffffffffffffffffffffffffff614b579116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355614b52604051614b23604082613916565b600381527f4d454800000000000000000000000000000000000000000000000000000000006020820152615618565b6156b8565b604051918083019183831067ffffffffffffffff8411176151385791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f0801561512b5773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455614c71604051614c42604082613916565b600481527f55535844000000000000000000000000000000000000000000000000000000006020820152615618565b614c7a816156b8565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146151245782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461511d57505b16948592161717600655614e32604051614db8608082613916565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c000000000000000000000000006060820152615618565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff614e69614577565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af190811561437b579073ffffffffffffffffffffffffffffffffffffffff9183916150fe575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255614f44604051614f15604082613916565b600781527f763320706f6f6c000000000000000000000000000000000000000000000000006020820152615618565b614f4d816156b8565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e88084156150ed576903c1fb96f3938f910000915b85156150dc576903c1fb96f3938f910000955b61509c575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156144e5579073ffffffffffffffffffffffffffffffffffffffff9188916144c6575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa9081156144bb579073ffffffffffffffffffffffffffffffffffffffff91899161449c57501694863b1561444d576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101614009565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000811461451d578403916150d683614841565b38614fa9565b6903c1fb96f3938f91000095614fa4565b6903c1fb96f3938f91000091614f91565b615117915060203d6020116106c4576106b68183613916565b38614ed8565b9050614d9d565b8282614d68565b50604051903d90823e3d90fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d85823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60405160806151d98183613916565b60038252600091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825b81811061557a57505061555561521a82613ab4565b51526001602061522983613ab4565b5101528161016061523983613ab4565b51015261555561524882613af0565b51526001602061525783613af0565b510152603c61016061526883613af0565b51015261555561527782613b00565b51526001602061528683613b00565b510152607861016061529783613b00565b510152604051906152a78261381f565b600182526101f46020830152604051916152c08361386a565b73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb983527382af49447d8a07e3bd95bd0d56f35241523fbab16020840152604083015268056bc75e2d631000006060830152670de0b6b3a76400006080830152600160a08301528260c08301528260e083015267ffffffffffffffff61010083015261012082015281806153576153c0604051615383816153578860208301613b30565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613916565b6040519283917f0be77f560000000000000000000000000000000000000000000000000000000060208401526020602484015260448301906135e6565b6020815191016a636f6e736f6c652e6c6f675afa5061543b6040516153e6606082613916565b602b81527f74657374506c6163654f726465723a2063616c6c696e67207661756c742e6e7560208201527f6d537761704f72646572730000000000000000000000000000000000000000006040820152615618565b73ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa90811561556f576154aa9167ffffffffffffffff918691615550575b5016615676565b6154ea6040516154bb604082613916565b601d81527f74657374506c6163654f726465723a20506c6163696e67206f726465720000006020820152615618565b813b1561554c5761552d839283926040519485809481937f16ddc07300000000000000000000000000000000000000000000000000000000835260048301613b30565b03925af1801561437b5761553f575050565b8161554991613916565b50565b8280fd5b615569915060203d6020116132cc576132be8183613916565b386154a3565b6040513d86823e3d90fd5b602090604051615589816138dc565b85815285838201528560408201528560608201528560808201528560a08201528560c08201528560e082015285610100820152856101208201528561014082015285610160820152856101808201526040516155e48161381f565b86815286848201526101a08201526040516155fe8161381f565b86815286848201526101c082015282828601015201615205565b600061535761565f82936040519283917f41304fac0000000000000000000000000000000000000000000000000000000060208401526020602484015260448301906135e6565b6020815191016a636f6e736f6c652e6c6f675afa50565b60008091604051907ff82c50f100000000000000000000000000000000000000000000000000000000602083015260248201526024815261565f604482613916565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc20000000000000000000000000000000000000000000000000000000060208401521660248201526024815261565f604482613916565b908160209103126136df575162ffffff811681036136df5790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af18015613e8a57615941575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa938415613e8a5773ffffffffffffffffffffffffffffffffffffffff80957f414bf3890000000000000000000000000000000000000000000000000000000097600091615922575b5060405194615840866138f9565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115613e8a576000916158f3575090565b90506020813d60201161591a575b8161590e60209383613916565b810103126136df575190565b3d9150615901565b61593b915060203d602011610cd957610cca8183613916565b38615832565b6020813d60201161598b575b8161595a60209383613916565b810103126136df5773ffffffffffffffffffffffffffffffffffffffff956159836020926145c3565b5095506157a2565b3d915061594d565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af18015613e8a57615bd7575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa948515613e8a57600095615bb6575b5060405192615a6c846138f9565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115613e8a576000916158f3575090565b615bd091955060203d602011610cd957610cca8183613916565b9338615a5e565b6020813d602011615c21575b81615bf060209383613916565b810103126136df5773ffffffffffffffffffffffffffffffffffffffff95615c196020926145c3565b509550615a07565b3d9150615be3565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215615e86578692615e5f575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314615e56576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156144bb5773ffffffffffffffffffffffffffffffffffffffff6020916004938b91615e39575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa80156144bb5773ffffffffffffffffffffffffffffffffffffffff918991615e1a575b50169080841115615e135782935b1015615e0b5750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b1561436f5781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af196871561512b576155499697615dfb575b505073e592427a0aece92de3edee1f18e0157c05861564615993565b81615e0591613916565b38615ddf565b905091615d66565b8193615d5d565b615e33915060203d6020116106c4576106b68183613916565b38615d4f565b615e509150833d85116106c4576106b68183613916565b38615cfd565b50505050509050565b615e7991925060e03d60e01161048c576104768183613916565b5050505050509038615c83565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152615f2e6080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b615f7460a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b801561603e5760008185079412600014616007576002615fda85614841565b9105600290810b91900b13615ff4575090614647916147cd565b6146479261600191614807565b906147cd565b6002906000949394500560020b8260020b1360001461603457614647929161602e916147cd565b90614807565b50614647916147cd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234606c57731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c0526120d59081610072823960805181818161065a0152610a91015260a051816103cd015260c051816112f30152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630f82d675146101d25780635b1b3179146101ae5763802b95df1461003d57600080fd5b346101a9576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a9576040516000610140820167ffffffffffffffff81118382101761017c57604052600435600281101561017857825260243573ffffffffffffffffffffffffffffffffffffffff8116810361017857602083015260443573ffffffffffffffffffffffffffffffffffffffff8116810361017857604083015260643573ffffffffffffffffffffffffffffffffffffffff81168103610178576060830152608435608083015260a43560a083015260c43580151581036101785760c083015260e43580151581036101785760e083015261010435610100830152610124359062ffffff821682036101755760406101698484610120820152610527565b82519182526020820152f35b80fd5b5080fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600080fd5b346101a95760206101ca6101c1366101ee565b939290926104aa565b604051908152f35b346101a95760206101ca6101e5366101ee565b9392909261032f565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126101a95760043560028110156101a9579060243573ffffffffffffffffffffffffffffffffffffffff811681036101a9579060443573ffffffffffffffffffffffffffffffffffffffff811681036101a9579060643562ffffff811681036101a9579060843580151581036101a95790565b610100810190811067ffffffffffffffff8211176102a357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176102a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176102a357604052565b9392909193600281101561047b576001146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b6103f26103ca73ffffffffffffffffffffffffffffffffffffffff9260049660e095611b92565b827f000000000000000000000000000000000000000000000000000000000000000016611bf9565b16604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa801561046f576104379260009161043a575b50611b03565b90565b61045c915060e03d60e011610468575b61045481836102ee565b81019061112c565b50505050505038610431565b503d61044a565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9392919093600281101561047b5760011461051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b610437936112c7565b90815191600283101561047b5760016000931461059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b6101008101805180158015611090575b505060c08201511561099b5760808201519360246020840195602073ffffffffffffffffffffffffffffffffffffffff885116604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215610990578392610958575b508115801561094b575b6108ec578082106108e5575b73ffffffffffffffffffffffffffffffffffffffff61068a818951169561068184847f0000000000000000000000000000000000000000000000000000000000000000168099611fb7565b5160601b612019565b169073ffffffffffffffffffffffffffffffffffffffff8851169573ffffffffffffffffffffffffffffffffffffffff6040820151169073ffffffffffffffffffffffffffffffffffffffff606062ffffff610120840151169201511691604051986106f58a610286565b8952602089019081526040808a0192835260608a019384524260808b0190815260a08b01958652600160c08c0190815260e08c0197885291517f414bf3890000000000000000000000000000000000000000000000000000000081529a5173ffffffffffffffffffffffffffffffffffffffff90811660048d01529251831660248c0152925162ffffff1660448b01529251811660648a015290516084890152915160a48801525160c487015290511660e48501526020846101048185875af19384156108da5782946108a6575b506024602073ffffffffffffffffffffffffffffffffffffffff885116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa92831561089a57809361084d575b5050610845610437939273ffffffffffffffffffffffffffffffffffffffff92611b85565b955116611e50565b909192506020823d602011610892575b8161086a602093836102ee565b810103126101755750519061084573ffffffffffffffffffffffffffffffffffffffff610820565b3d915061085d565b604051903d90823e3d90fd5b9093506020813d6020116108d2575b816108c2602093836102ee565b81010312610178575192386107c3565b3d91506108b5565b6040513d84823e3d90fd5b5080610636565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060a0850151821061062a565b9091506020813d602011610988575b81610974602093836102ee565b8101031261098457519038610620565b8280fd5b3d9150610967565b6040513d85823e3d90fd5b8391935081938260246020830192602073ffffffffffffffffffffffffffffffffffffffff855116604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561099057839261105c575b5081156108ec578060406024920190602073ffffffffffffffffffffffffffffffffffffffff835116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa928315611051578593611019575b5073ffffffffffffffffffffffffffffffffffffffff610ab8818851169861068187847f000000000000000000000000000000000000000000000000000000000000000016809c611fb7565b169373ffffffffffffffffffffffffffffffffffffffff87511693886020610bf761010473ffffffffffffffffffffffffffffffffffffffff8851169861012088019962ffffff8b5116986060810199608073ffffffffffffffffffffffffffffffffffffffff8c51169201519260405194610b3386610286565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610fe5575b50610f18575050600194610c136111f8565b6308c379a014610c4a575b505050505061089a57509073ffffffffffffffffffffffffffffffffffffffff610437925b5116611e50565b610c52611216565b9485610c5f575b50610c1e565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610ca38b610286565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610ee0575b50610e31578787610d7b6111f8565b6308c379a014610d93575b50604051903d90823e3d90fd5b610d9b611216565b15610d865760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610e19575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610dda565b90929496919395506024602073ffffffffffffffffffffffffffffffffffffffff855116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610990578391610eac575b50610e9f91611b85565b9593388080808080610c59565b90506020813d602011610ed8575b81610ec7602093836102ee565b810103126109845751610e9f610e95565b3d9150610eba565b9096506020813d602011610f10575b81610efc602093836102ee565b81010312610f0c57519538610d6c565b8880fd5b3d9150610eef565b92509698505073ffffffffffffffffffffffffffffffffffffffff9199506024935060209250985116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561089a578092610fac575b5050610fa6610437939273ffffffffffffffffffffffffffffffffffffffff92611b85565b93610c43565b9091506020823d602011610fdd575b81610fc8602093836102ee565b81010312610175575051610fa6610437610f81565b3d9150610fbb565b9091506020813d602011611011575b81611001602093836102ee565b81010312610f0c57519038610c01565b3d9150610ff4565b9092506020813d602011611049575b81611035602093836102ee565b8101031261104557519138610a6c565b8480fd5b3d9150611028565b6040513d87823e3d90fd5b9091506020813d602011611088575b81611078602093836102ee565b8101031261098457519038610a03565b3d915061106b565b60e0840151156105ad576110c257780100000000000000000000000000000000000000000000000004815238806105ad565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff821682036101a957565b519061ffff821682036101a957565b519081151582036101a957565b908160e09103126101a957611140816110ef565b9160208201518060020b81036101a9579161115d60408201611110565b9161116a60608301611110565b9161117760808201611110565b9160a082015160ff811681036101a95760c061043791930161111f565b67ffffffffffffffff81116102a35760051b60200190565b8051156111b95760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156111b95760400190565b60009060033d1161120557565b905060046000803e60005160e01c90565b600060443d10610437576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176112c1578282019283519167ffffffffffffffff83116112b9577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116112b95750610437929101602001906102ee565b949350505050565b92915050565b73ffffffffffffffffffffffffffffffffffffffff926112ea926103ca92611b92565b169063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611362575b5060e0600492604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa801561046f576104379260009161043a5750611b03565b6040516113706060826102ee565b600281526020810190604036833782611388826111ac565b526000611394826111e8565b526040519182917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b818110611ae45750505090806000920381875afa600091816119cc575b5061143057505060016114056111f8565b6308c379a01461141b575b61046f5760e0611319565b611423611216565b1561141057506000611410565b9091925061144a611440826111e8565b5160060b916111ac565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000083121761198e5760030b9060060b8115611675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000082141661198e5781810560020b916000821291826119bd575b5050611940575b60020b90600082121561193a5781600003915b620d89e883116118dc5760018316156118b35770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b169260028116611897575b6004811661187b575b6008811661185f575b60108116611843575b60208116611827575b6040811661180b575b608081166117ef575b61010081166117d3575b61020081166117b7575b610400811661179b575b610800811661177f575b6110008116611763575b6120008116611747575b614000811661172b575b618000811661170f575b6201000081166116f3575b6202000081166116d8575b6204000081166116bd575b62080000166116a4575b600012611644575b73ffffffffffffffffffffffffffffffffffffffff6104379263ffffffff81161560001461163b5760ff60005b169060201c0116611b03565b60ff600161162f565b8115611675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9190910490611602565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c916115fa565b6d2216e584f5fa1ea926041bedfe9890930260801c926115f0565b926e5d6af8dedb81196699c329225ee6040260801c926115e5565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c926115da565b926f31be135f97d08fd981231505542fcfa60260801c926115cf565b926f70d869a156d2a1b890bb3df62baf32f70260801c926115c5565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926115bb565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926115b1565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926115a7565b926ff3392b0822b70005940c7a398e4b70f30260801c9261159d565b926ff987a7253ac413176f2b074cf7815e540260801c92611593565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c92611589565b926ffe5dee046a99a2a811c461f1969c30530260801c9261157f565b926fff2ea16466c96a3843ec78b326b528610260801c92611576565b926fff973b41fa98c081472e6896dfb254c00260801c9261156d565b926fffcb9843d60f6159c9db58835c9266440260801c92611564565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c9261155b565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c92611552565b926ffff97272373d413259a46990580e213a0260801c92611549565b70ffffffffffffffffffffffffffffffffff70010000000000000000000000000000000061153e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611507565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000811461198e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016114f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b1515905038806114ed565b90913d8082843e6119dd81846102ee565b82019060408383031261017557825167ffffffffffffffff81116101785783019282601f85011215610178578351611a1481611194565b94611a2260405196876102ee565b81865260208087019260051b8201019085821161104557602001915b818310611ac65750505060208101519067ffffffffffffffff8211610984570182601f8201121561017857805191602080611a7885611194565b611a8560405191826102ee565b858152019360051b8301019384116101755750602001905b828210611aae5750505090386113f4565b60208091611abb846110ef565b815201910190611a9d565b82518060060b8103611ae057815260209283019201611a3e565b8580fd5b825163ffffffff168452859450602093840193909201916001016113d7565b9015611b655773ffffffffffffffffffffffffffffffffffffffff168015611675578078ffffffffffffffffffffffffffffffffffffffffffffffffff6104379278010000000000000000000000000000000000000000000000000416611d90565b73ffffffffffffffffffffffffffffffffffffffff610437911680611d11565b9190820391821161198e57565b9173ffffffffffffffffffffffffffffffffffffffff62ffffff92600060408051611bbc816102d2565b828152826020820152015281811682861611611bf3575b8160405195611be1876102d2565b16855216602084015216604082015290565b93611bd3565b73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff602084015116808210156101a95762ffffff604073ffffffffffffffffffffffffffffffffffffffff9501511660405191602083019384526040830152606082015260608152611c776080826102ee565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54605582015260558152611d0a6075826102ee565b5190201690565b6000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611d8657836c0100000000000000000000000011156101755750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611e4357838211156101a9576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b50809250156101a9570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611eb26064826102ee565b51925af13d15611fb0573d67ffffffffffffffff81116102a35760405190611f0260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ee565b81523d6000602083013e5b81611f79575b5015611f1b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611f8e575b505038611f13565b81925090602091810103126101a9576020611fa9910161111f565b3880611f86565b6060611f0d565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611eb26064826102ee565b806120245750600090565b906003821115612099576001820180831161198e5760011c825b838210612049575050565b909250826000811561206c575080820490810180911161198e5760011c9061203e565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220f90d9f81223e04a2519fa93e3f06cf8ce2bdc9a1e925672c0c62212ab389ed7e64736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea2646970667358221220f3fe0859a0e7476d4ae3a2c87137789afea874aa95c7ca412caa11406349aa8664736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220938095cedbaeafed2a53f2c6cfff3c34ee2d471517e68c22255053f9471df05f64736f6c634300081a003360e03461011157601f61595e38819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615831908161012d82396080518181816103eb015281816104d50152818161188301528181613348015281816143930152614465015260a0518181816105360152818161145a015281816117440152818161225901528181612ca201528181612db201526133a9015260c0518181816101b2015281816103060152610b2e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c806316ddc0731461328f5780632800c78f146131cd57806354fd4d501461319357806358b72a09146131575780636e98833d1461120a57806377bad6b514610d4c5780638489f9bf14610c755780638f46487614610c11578063a449d03014610b52578063ac210cc714610ae3578063b39f43621461040f578063d0fb0203146103a0578063de0e9a3e14610293578063e78f84e71461024d578063ea598cb01461013f5763eaa3aa72146100cd57600080fd5b3461013c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c5760406101306101213660048601613c7b565b61012a36613bea565b9061419d565b82519182526020820152f35b80fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761019273ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b61019a6141e8565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166101dd8115156140db565b803b1561024a5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af1801561023f5761022a575b506001905580f35b81610234916137ee565b61013c578038610222565b6040513d84823e3d90fd5b50fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602067ffffffffffffffff60045416604051908152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576102e673ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6102ee6141e8565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166103318115156140db565b803b1561024a578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561039357610383575b6001815580f35b61038c916137ee565b388161037c565b50604051903d90823e3d90fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff8111610adf5761045a903690600401613c7b565b6024356003811015610adb5761048973ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6104916141e8565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa928315610ad0578493610a9f575b50610510838261419d565b93909261051e8585336142c8565b60ff608067ffffffffffffffff6004541693015116947f00000000000000000000000000000000000000000000000000000000000000009361056360ff825110614677565b67ffffffffffffffff60045461058361057c845161429f565b8210614677565b169280610892575067ffffffffffffffff935b885b825160ff82169081101561084d576105b0908461414d565b51906105bf60408301516146dc565b6002811015610820576001036107c25787878b610100850167ffffffffffffffff81511667ffffffffffffffff8103610644575b505090610605929160ff956003614a6b565b501660ff811461061757600101610598565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b915092506106539150886155e0565b9067ffffffffffffffff8216809152600454111561076457610676906004613e8c565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610755575b81610748575b8161072c575b50156106ce5787878b38806105f3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460181c1614386106be565b60038101541591506106b8565b600581015460ff1691506106b2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b9388600186148015610a93575b15610a355760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610a0857604052610982578352602083019187835260408401918252680100000000000000008110156109db5780600161090f920160055560056145ca565b9390936109af5751916003831015610982578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610596565b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b5050886002861461089f565b610ac291935060a03d60a011610ac9575b610aba81836137ee565b810190613d6d565b9138610505565b503d610ab0565b6040513d86823e3d90fd5b8280fd5b5080fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610b8a613895565b60045467ffffffffffffffff82161015610bb357610ba9602091614638565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b503461013c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c576040610130610c66366004860161391a565b610c6f36613bea565b906145e2565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc486020610cd0613895565b610cf373ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b610cfb6141e8565b6007610d08826004613e8c565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610dd2610d87613895565b6060610100604051610d988161377c565b610da0613dd6565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613e3e565b509060405190610de18261377c565b610dea83613ed8565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495610e71876138ac565b96610e7f60405198896137ee565b808852602088019189526020892089925b82841061119b57505050506101008901958652604051998a9960208b52519861012060208c01526101206102a08c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff60206040850151610f1f61018086018251613bae565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015115156102408e015261010081015167ffffffffffffffff166102608e015201516101606102808d015280519a8b90526102c08c019a6020909101908a5b818110611074575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b818110611030575050500390f35b919350916020608060019263ffffffff6060885180518452828682015116868501528260408201511660408501520151166060820152019401910191849392611022565b919b600191939495969798999a9b9d506102206020916111858f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff610180820151166101808501526111666101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a9998979695949392610f97565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610a08576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c610e90565b503461013c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57611242613895565b906024359160ff83168303610adf5760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112610adf576040516020810181811067ffffffffffffffff82111761312a5760405260443590526112a56141e8565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561311f5783916130d0575b506112ec82613e3e565b50916112f781614638565b613072576006830180548610156130455784526020842061131b86600a8601614552565b509560405191610100830183811067ffffffffffffffff821117613018576040528683528660208401528660408401528660608401528660808401528660a08401528660c08401528660e0840152600188015463ffffffff8160401c16421015612fba5763ffffffff8160201c164210612f5c5763ffffffff164210612efe576003820281015460ff8160301c1680612ee6575b15612aaf57611441600288015473ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416602060ff60058d015460101c16809460405196879283927f5b1b3179000000000000000000000000000000000000000000000000000000008452868860ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa938415612aa4578c94612a6b575b506114a363ffffffff600160038a028901015416614806565b921515911114612a2557806c01000000000000000000000000016c01000000000000000000000000116106175761153792916114ee916c0100000000000000000000000001906149ec565b60208601525b61ffff60038901549161151c8261150d818416866145b7565b048060808a01528d54906142bb565b60c088015260501c16806129f6575b506009880154906142bb565b8060e08501528060c0850151116129eb575b5060c083015197600487015480991061298d5760058701549560ff8760081c1660001461298557955b8873ffffffffffffffffffffffffffffffffffffffff60018a0154169767ffffffffffffffff808460181c16146000146128dd5781928a8a849e62ffffff9360ff915b8c73ffffffffffffffffffffffffffffffffffffffff80600288015497541698602060c0840151930151966040519a6115ed8c613730565b6115f9888b168d613ea8565b60208c015260408b0152166060890152608088015260a0870152818116151560c087015260101c16151560e085015261010084015260081c1661012082015260405162ffffff61012060208301937f802b95df000000000000000000000000000000000000000000000000000000008552611678602485018251613bae565b73ffffffffffffffffffffffffffffffffffffffff602082015116604485015273ffffffffffffffffffffffffffffffffffffffff604082015116606485015273ffffffffffffffffffffffffffffffffffffffff6060820151166084850152608081015160a485015260a081015160c485015260c0810151151560e485015260e08101511515610104850152610100810151610124850152015116610144820152610144815261172b610164826137ee565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d156128d5573d9267ffffffffffffffff84116128a857604051936117b460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601866137ee565b84523d8a602086013e5b15612898576040838051810103126127aa57604060208401519301519280604087015260ff60058a01541660001461288e57611805905b8060c088015260098a0154614161565b600989015561181960c08601518354614161565b825560a08501516127f0575b50614e2061183a60ff60078a015416846145b7565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156127b65789916127c1575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818c8b5af180156127b657612777575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160181c169467ffffffffffffffff8603611acb575b50505067ffffffffffffffff919250806119c0600360079301546009830154906142bb565b600482015411156119f857015460301c1667ffffffffffffffff81036119e9575b506001815580f35b6119f290615501565b386119e1565b015460301c1667ffffffffffffffff81141580611a2a575b611a1b575b5061037c565b611a2490615501565b38611a15565b50600554811015611a9e57600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611a7157600114611a10565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611ae5611adf60249497969598613e3e565b50613ed8565b96604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015610ad057849061273d575b611b2f92506142bb565b606085015260ff6007820154166004549067ffffffffffffffff8216916801000000000000000081101561271057806001611b6f92016004556004613e8c565b5050611b7c826004613e8c565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055604087015180519060028210156126e3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff00602060028c015494015160081b16931691161717600287015560608701516003870155608087015160048701556005860160a0880151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008354169116178155611cf860c0890151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e088015181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff0000161781556101008801517fffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffff6affffffffffffffff00000083549260181b1691161790556101208701518051906801000000000000000082116120bd5760068801548260068a0155808310612662575b506020016006880187526020872087915b8383106122ee57505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078801937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760581b16161694161765ffffffff00004260101b161717161790558291835b61012087015180518210156121555781611e809161414d565b51606081015115801590612148575b6120ea57600a870154680100000000000000008110156120bd57806001611ebf9201600a8a0155600a8901614552565b5050611ece82600a8901614552565b506020820151156120a657611f376001611ef963ffffffff6101608601511663ffffffff42166157e1565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6040820151156120935763ffffffff80611f5a81610180860151168242166157e1565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c081015115801590612086575b61207d575b60a08101511590811561204e575b5015611ff057600101611e67565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e534c00000000000000000000000000000000000000000000000000000000006044820152fd5b6101a001515163ffffffff8116151591508161206d575b501538611fe2565b6380000000915016151538612065565b60019450611fd4565b5060e08101511515611fcf565b63ffffffff808061018085015116611f5a565b611f37600163ffffffff6101608501511692611efb565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060808101511515611e8f565b50509294919390936121b1575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a29083923861199b565b60206121c060408401516146dc565b73ffffffffffffffffffffffffffffffffffffffff8451169061224073ffffffffffffffffffffffffffffffffffffffff84870151169560e062ffffff86604084015101511691015115159060405197889586957f5b1b31790000000000000000000000000000000000000000000000000000000087526004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156122e357859261229d575b50600801558067ffffffffffffffff612162565b929150926020833d6020116122db575b816122ba602093836137ee565b810103126122d7579151919290919067ffffffffffffffff612289565b8480fd5b3d91506122ad565b6040513d87823e3d90fd5b805180518354602083015162ff000090151560101b1661ffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909116171783556040810151151583546060830151151560201b64ff00000000166080840151151560281b60a0850151151560301b60c0860151151560381b60e0870151151560401b90610100880151151560481b9261012089015160501b6bffff0000000000000000000016946101408a015160601b6effffff00000000000000000000000016966101608b015160781b72ffffffff00000000000000000000000000000016986101808c015160981b76ffffffff00000000000000000000000000000000000000169a60181b63ff00000016907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166125fc91907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190611dab565b60038181020481036126b65760038381020483036126b657600689018852602088208360030281015b826003028201811061269e575050611d9a565b808a600392558a60018201558a60028201550161268b565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50906020813d60201161276f575b81612758602093836137ee565b8101031261276b5790611b2f9151611b25565b8380fd5b3d915061274b565b6020813d6020116127ae575b81612790602093836137ee565b810103126127aa575180151581036127aa575060ff611915565b8880fd5b3d9150612783565b6040513d8b823e3d90fd5b6127e3915060203d6020116127e9575b6127db81836137ee565b810190614273565b386118b3565b503d6127d1565b61280e9062ffffff60c08701519160038702015460601c16906145b7565b60a08501519081156128615761282c63ffffffff9283920442614161565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611825565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b50611805836117f5565b8251838a821561013c5750602001fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6060926117be565b9050604051917f70a082310000000000000000000000000000000000000000000000000000000083523060048401526020836024818c5afa801561297a57908a8a8d94938590612939575b8596509e62ffffff9360ff916115b5565b5050509150916020813d602011612972575b81612958602093836137ee565b8101031261296e57918a92918a8a859451612928565b8a80fd5b3d915061294b565b6040513d8d823e3d90fd5b503095611572565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611549565b612a0761ffff9160808801516145b7565b048060a08701528060c0870151111561152b5760c08601523861152b565b806c01000000000000000000000000016c0100000000000000000000000011610617576115379291612a66916c01000000000000000000000000019061492c565b6114ee565b9093508b8160203d602011612a9d575b602092612a8882846137ee565b5081010312612a995751923861148a565b8b80fd5b503d612a7b565b6040513d8e823e3d90fd5b878452612ac36001600385028401016146e9565b612d0c575b612ad96002600385028401016146e9565b612ae7575b611537906114f4565b835115612bff575b60ff8160401c16600014612be857612b2263ffffffff600789015460101c16600889015490600260038702860101614782565b905b81855111612b8a576115379173ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b0154161060ff60058b015460101c16151503612b7f575b509050612ade565b602086015238612b77565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612bf960026003850284010161470e565b90612b24565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612c8960ff60058d015460101c1660405195869485947f0f82d67500000000000000000000000000000000000000000000000000000000865260ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156127b6578991612cda575b508452612aef565b90506020813d602011612d04575b81612cf5602093836137ee565b810103126127aa575138612cd2565b3d9150612ce8565b600287015473ffffffffffffffffffffffffffffffffffffffff88541673ffffffffffffffffffffffffffffffffffffffff60018a015416612d99602060ff60058d015460101c16809560405193849283927f0f82d675000000000000000000000000000000000000000000000000000000008452878960ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612aa4578c91612eb3575b50875260ff8460381c16600014612e9c57612e1863ffffffff60078c015460101c1660088c015490600160038a02890101614782565b925b8388511115612e3e571515911003612e33575b50612ac8565b602085015238612e2d565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b612ead60016003880287010161470e565b92612e1a565b90508b8160203d602011612edf575b602092612ecf82846137ee565b5081010312612a99575138612de2565b503d612ec2565b5063ffffffff600160038502840101541615156113af565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613117575b816130eb602093836137ee565b81010312610adb575173ffffffffffffffffffffffffffffffffffffffff81168103610adb57386112e2565b3d91506130de565b6040513d85823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761318f61382f565b5080f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405160028152f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761321f73ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6132276141e8565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff8111610adf576132da90369060040161391a565b6132fd73ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6133056141e8565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561311f578391613711575b506133838183614223565b9190926133918385336142c8565b60ff608067ffffffffffffffff6004541693015116907f0000000000000000000000000000000000000000000000000000000000000000936040908151926133d983856137ee565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106136fa57505061341484614140565b5261341e83614140565b5061342c60ff845110614677565b67ffffffffffffffff60045461344561057c865161429f565b169267ffffffffffffffff95895b825160ff8216908110156136bb5761346b908461414d565b51613478868201516146dc565b60028110156109825760010361365e578888826101008d9401838151168481036134ef575b50509160ff9493916134b0936003614a6b565b501660ff81146134c257600101613453565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506134ff9150896155e0565b908a821680915260045411156136015761351a906004613e8c565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff8354161491826135f2575b826135e5575b826135d2575b5050156135755788888b92388061349d565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460181c16148938613563565b600381015415925061355d565b600581015460ff169250613557565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b602090613705613dd6565b82828901015201613402565b61372a915060a03d60a011610ac957610aba81836137ee565b38613378565b610140810190811067ffffffffffffffff82111761374d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff82111761374d57604052565b6040810190811067ffffffffffffffff82111761374d57604052565b6101e0810190811067ffffffffffffffff82111761374d57604052565b60a0810190811067ffffffffffffffff82111761374d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761374d57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361385257565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361385257565b359062ffffff8216820361385257565b3590811515820361385257565b6004359067ffffffffffffffff8216820361385257565b67ffffffffffffffff811161374d5760051b60200190565b359061ffff8216820361385257565b359063ffffffff8216820361385257565b9190826040910312613852576040516138fc81613799565b602061391581839561390d816138d3565b8552016138d3565b910152565b9190828103926101608412613852576040519061393682613730565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0839661396484613857565b855261397260208501613857565b602086015201126138525760405161398981613799565b604082013560028110156138525781526139a560608301613878565b602082015260408301526080810135606083015260a081013560808301526139cf60c08201613888565b60a08301526139e060e08201613888565b60c08301526139f26101008201613888565b60e083015261012081013567ffffffffffffffff81168103613852576101008301526101408101359067ffffffffffffffff8211613852570182601f8201121561385257803590613a42826138ac565b93613a5060405195866137ee565b828552602061022081870194028301019181831161385257602001925b828410613a7f57505050506101200152565b6102208483031261385257602061022091604051613a9c816137b5565b613aa5876138c4565b8152613ab2838801613888565b83820152613ac260408801613888565b6040820152613ad360608801613888565b6060820152613ae460808801613888565b6080820152613af560a08801613888565b60a0820152613b0660c08801613888565b60c0820152613b1760e08801613888565b60e0820152613b296101008801613888565b610100820152613b3c61012088016138c4565b610120820152613b4f6101408801613878565b610140820152613b6261016088016138d3565b610160820152613b7561018088016138d3565b610180820152613b89856101a089016138e4565b6101a0820152613b9d856101e089016138e4565b6101c0820152815201930192613a6d565b906002821015613bbb5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126138525760405190613c21826137d2565b8160243560ff8116810361385257815260443560ff8116810361385257602082015260643560ff8116810361385257604082015260843560ff8116810361385257606082015260a4359060ff821682036138525760800152565b9080601f83011215613852578135613c92816138ac565b92613ca060405194856137ee565b81845260208085019260051b820101918383116138525760208201905b838210613ccc57505050505090565b813567ffffffffffffffff811161385257602091613cef8784809488010161391a565b815201910190613cbd565b15613d0157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b519060ff8216820361385257565b908160a091031261385257613dce608060405192613d8a846137d2565b613d9381613d5f565b8452613da160208201613d5f565b6020850152613db260408201613d5f565b6040850152613dc360608201613d5f565b606085015201613d5f565b608082015290565b60405190613de382613730565b6060610120836000815260006020820152604051613e0081613799565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e082015260006101008201520152565b600454811015613e5d576004600052600b602060002091020190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8054821015613e5d57600052600b602060002091020190600090565b6002821015613bbb5752565b90604051613ec181613799565b602063ffffffff8294548181168452821c16910152565b90604051613ee581613730565b6006819373ffffffffffffffffffffffffffffffffffffffff815416835273ffffffffffffffffffffffffffffffffffffffff6001820154166020840152604051613f2f81613799565b62ffffff6002830154613f4560ff821684613ea8565b60081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260ff8160101c16151560e086015260181c1661010084015201908154613fb3816138ac565b92613fc160405194856137ee565b818452602084019060005260206000206000915b838310613fe757505050506101200152565b60036020600192604051613ffa816137b5565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c166101808201526140b5858701613eb4565b6101a08201526140c760028701613eb4565b6101c0820152815201920192019190613fd5565b156140e257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b805115613e5d5760200190565b8051821015613e5d5760209160051b010190565b9190820180921161416e57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b81518410156141e0576141d76001916141d16141cb866141c5898861414d565b516145e2565b92614161565b97614161565b930192946141a5565b949392505050565b6002600054146141f9576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b919060608301511561426a578061425061424a6142679360ff602081835116920151161b90565b946156a1565b9060ff606081604084015116920151161b906145b7565b90565b50600091508190565b90816020910312613852575173ffffffffffffffffffffffffffffffffffffffff811681036138525790565b67ffffffffffffffff039067ffffffffffffffff821161416e57565b9190820391821161416e57565b916142d38183614161565b34106144f45781158015614422575b5080158015614350575b506142f691614161565b348110614301575050565b60008080936143118294346142bb565b9082908215614346575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57565b6040513d6000823e3d90fd5b6108fc915061431b565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561433a5760008481949282949383948491614403575b5083916143f9575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57386142ec565b6108fc91506143d6565b61441c915060203d6020116127e9576127db81836137ee565b386143ce565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561433a57600085819492829493839484916144d5575b5083916144cb575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57386142e2565b6108fc91506144a8565b6144ee915060203d6020116127e9576127db81836137ee565b386144a0565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b8054821015613e5d5760005260206000209060011b0190600090565b9373ffffffffffffffffffffffffffffffffffffffff6080948162ffffff9499989561459e8960a081019c613bae565b1660208801521660408601521660608401521515910152565b8181029291811591840414171561416e57565b8054821015613e5d5760005260206000200190600090565b61010081019167ffffffffffffffff808451161461462d57614623611adf61461e6146299567ffffffffffffffff8060045416915116906155e0565b613e3e565b9161564e565b9091565b906146299250614223565b67ffffffffffffffff6003541667ffffffffffffffff82161090811561465c575090565b60ff915061466d6007916004613e8c565b50015460081c1690565b1561467e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613bbb5790565b5463ffffffff811615908115916146fe575090565b63ffffffff915060201c16151590565b5463ffffffff61471f818316614806565b9160201c16801561473f579061473761426792614806565b904291615758565b5090565b8181029291600082127f800000000000000000000000000000000000000000000000000000000000000082141661416e57818405149015171561416e57565b54909163ffffffff6147a381614799818616614806565b9460201c16614806565b931660030b916147b38385614743565b91600083820393128184128116908285139015161761416e576c01000000000000000000000000916147e491614743565b05906000828201928312911290801582169115161761416e5761426792615758565b637fffffff81161561492657637f800000811660030b60171d60030b60ff81146148c8576380000000627fffff831660030b826148bd5760011b925b166148b1575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146148a4576000031b90565b600081131561473f571d90565b60009190910390614848565b628000001792614842565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b918280851094039380850394146149df5783821115613852576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015613852570490565b6000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414614a6157836c01000000000000000000000000111561013c5750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b60010180549295939491934263ffffffff169367ffffffffffffffff811692906801000000000000000081101561374d57614ab891614ab1826001879401835582613e8c565b5050613e8c565b5073ffffffffffffffffffffffffffffffffffffffff80875116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602086019773ffffffffffffffffffffffffffffffffffffffff89511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560028201966040810180519889516002811015613bbb5760009a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b1693169116171790556060820151600385015560808201516004850155600584019260a0830151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008654169116178455614c3960c0840151151585907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08301805185547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff000016178555936101008401517fffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffff6affffffffffffffff00000083549260181b169116179055600685019a61012084019b8c5190815191680100000000000000008311614f7d578154838355808410615454575b509d9e9d602001908d5260208d208d915b8383106150ad575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078901947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558896899a600a86019b5b8d518051821015614fb75781614da89161414d565b51606081015115801590614faa575b6120ea578d5468010000000000000000811015614f7d578c8f8f92614dee91614de7826001899401835582614552565b5050614552565b50602084015190929015614f6657614e546001614e1663ffffffff61016088015116856157e1565b945b019384907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b50604083015115614f525763ffffffff614e7781928261018087015116906157e1565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c081015115801590614f45575b614f3c575b60a081015115908115614f0d575b5015611ff057600101614d93565b6101a001515163ffffffff81161515915081614f2c575b501538614eff565b6380000000915016151538614f24565b60019a50614ef1565b5060e08101511515614eec565b5063ffffffff808061018085015116614e77565b614e54600163ffffffff6101608701511694614e18565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614db7565b5050939792969b50939750939850614fd3575b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff60209461504462ffffff878480614fff8a516146dc565b955116965116975101511697511515604051988997889687957f5b1b31790000000000000000000000000000000000000000000000000000000087526004870161456e565b0392165afa9283156150a1578093615069575b50506008015538808080808080614fca565b909192506020823d602011615099575b81615086602093836137ee565b8101031261013c57505190600838615057565b3d9150615079565b604051903d90823e3d90fd5b9e9f9e8051805161ffff1683547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016178355602081015115156151219084907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff0000835492151560101b169116179055565b6040810151151583546060830151151560201b64ff00000000166080840151151560281b60a0850151151560301b60c0860151151560381b60e0870151151560401b90610100880151151560481b9261012089015160501b6bffff0000000000000000000016946101408a015160601b6effffff00000000000000000000000016966101608b015160781b72ffffffff00000000000000000000000000000016986101808c015160981b76ffffffff00000000000000000000000000000000000000169a60181b63ff00000016907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166153eb91907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909f9e9f614cf0565b806003029060038204036154d457836003026003810485036154a6578f90848252602082209283019201905b82821061548e575050614cdf565b8082556001820181905560028201556003018f615480565b5060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61550c9060056145ca565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff821161416e5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061556957505050565b600181600761558167ffffffffffffffff9486613e8c565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615553565b60009067800000000000000083166155f757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff821161562157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115615695579061569061568a6156848461567e6142679660ff602081835116920151161b90565b97614223565b90614161565b916156a1565b6145b7565b50509050600090600090565b600091825b6101208301518051851015615751576101206156c58661ffff9361414d565b51015116906000826156ee575061012091506156e46001918290614161565b94019390506156a6565b5061ffff615701818481041693846145b7565b10615716575b6156e461012092600192614161565b6001820180921115615707577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5092509050565b909182818302019282156157b25783038290050361577f5750600081136142675750600090565b6000121590506157ad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9063ffffffff8091169116019063ffffffff821161416e5756fea2646970667358221220c5c34d008c6c3283613ab5d5efc3e17730dc53209bf32ae81a08f15ae3ae00cf64736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a26469706673582212209bd955e45c4f7a85fa0381c0ad96a4fd56ad19f080f79b0d445717d616b71d9364736f6c634300081a0033","sourceMap":"1964:3528:94:-:0;;;;;;;705:42:86;1964:3528:94;;;;;;677:71:86;1964:3528:94;;;677:71:86;1964:3528:94;677:71:86;1964:3528:94;;3166:4:3;1964:3528:94;;;3166:4:3;1964:3528:94;677:71:86;1964:3528:94;;1038:4:13;1964:3528:94;;;1038:4:13;1964:3528:94;;;;;;;;;;;","linkReferences":{}},"deployedBytecode":{"object":"0x60a0604052600436101561001257600080fd5b60006080526080513560e01c80630a9254e41461270f5780630dfe1681146126bc57806316f0115b146126695780631bf6c21b146126165780631ed7831c146125685780632ade3880146122d35780633420899b146122985780633e5e3c23146121ea5780633f7286f41461213c57806341cca3b51461055e5780634a09d3dd146120b457806353486e2f1461207257806358cec2eb1461202b57806366d9a9a014611e5b57806367e368fc14611e1657806369ae948f14611dcc5780636fe2ae0e146102a45780637083accc146119e157806385226c81146118845780638e3b558a1461181b5780638f7d7c50146117e1578063916a17c6146114735780639febdbf714611390578063a035b1fe14611338578063a54a72b7146112e5578063b5508aa914611157578063ba414fa614611113578063bc0087c7146110c9578063c45a015514611075578063c4b5da7414610edf578063c578d91d14610e87578063d21220a714610e34578063d6f130021461074d578063d768078814610710578063ddca3f43146106cb578063df791e5014610596578063e1c7392a1461055e578063e20c9f71146104a0578063e3baf41a14610397578063ee08ef9b1461035a578063f09a4016146102e2578063f5c609e0146102a4578063fa7626d4146102625763fbfa77cf1461020657600080fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60255460081c16604051908152f35b60805180fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602060ff602554166040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc6151ca565b60805180f35b3461025c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760043573ffffffffffffffffffffffffffffffffffffffff8116810361025c5760243573ffffffffffffffffffffffffffffffffffffffff8116810361025c576102dc91614871565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020602654604051908152f35b3461025c5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576103ce613707565b6080518160020b131561025c5760049060e073ffffffffffffffffffffffffffffffffffffffff60025416604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa908115610493576102dc9260805192610457575b508061044861044e92846147cd565b92614807565b90600435613e96565b61044e91925061047e9060e03d60e01161048c575b6104768183613916565b8101906145d0565b505050505090509190610439565b503d61046c565b6040513d608051823e3d90fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601c54918281520190601c608051527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211906080515b8181106105325761052e8561052281870382613916565b60405191829182613596565b0390f35b825473ffffffffffffffffffffffffffffffffffffffff1684526020909301926001928301920161050b565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc613d55565b3461025c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576105cd6136bc565b6105d56136e4565b73ffffffffffffffffffffffffffffffffffffffff6002541691604051927f0dfe1681000000000000000000000000000000000000000000000000000000008452602084600481845afa9283156104935773ffffffffffffffffffffffffffffffffffffffff61067b946020966080519161069e575b5073ffffffffffffffffffffffffffffffffffffffff8516911603610683576401000276a4925b6044359261572b565b604051908152f35b73fffd8963efd1fc6a506488495d951d5263988d2592610672565b6106be9150873d89116106c4575b6106b68183613916565b8101906147a1565b8761064b565b503d6106ac565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602062ffffff60025460a01c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020602754604051908152f35b3461025c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760043560243561078a613717565b60643591600283900b830361025c5760065460a01c60ff169391929182908515610e2d57825b8615610e255750945b610e07575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa80156104935773ffffffffffffffffffffffffffffffffffffffff9160805191610de8575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa80156104935773ffffffffffffffffffffffffffffffffffffffff9160805191610dc9575b501694863b1561025c576040517f40c10f190000000000000000000000000000000000000000000000000000000081526080513060048301526024820186905281806044810103816080518c5af1801561049357610db0575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815260208180600481018884604083019273c36442b4a4522e871399cd717abdd847ab11fe888152015203816080518c5af1801561049357610d79575b50853b1561025c576040517f40c10f190000000000000000000000000000000000000000000000000000000081526080513060048301526024820184905281806044810103816080518b5af1801561049357610d60575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815260208180600481018684604083019273c36442b4a4522e871399cd717abdd847ab11fe888152015203816080518b5af1801561049357610d29575b50604051907fd0c93a7c000000000000000000000000000000000000000000000000000000008252602082600481895afa9182156104935760805192610ce8575b5090610a4881610a4e93615fb2565b93615fb2565b9233933315610ce0575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156104935760805195610caf575b5060405197610aa8896138bf565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e0880193608051855261010089019560805187526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff166101248301525161014482015280806080515a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f180156104935760805191829182918291610c3a575b506fffffffffffffffffffffffffffffffff60809460405194855216602084015260408301526060820152f35b93505050506080813d608011610ca7575b81610c5860809383613916565b8101031261025c578051906020810151906fffffffffffffffffffffffffffffffff8216820361025c576040810151606090910151919291906fffffffffffffffffffffffffffffffff610c0d565b3d9150610c4b565b610cd291955060203d602011610cd9575b610cca8183613916565b810190615710565b9388610a9a565b503d610cc0565b309450610a58565b91506020823d602011610d21575b81610d0360209383613916565b8101031261025c57610a48610d1a610a4e936145a6565b9250610a39565b3d9150610cf6565b6020813d602011610d58575b81610d4260209383613916565b8101031261025c57610d53906145c3565b6109f8565b3d9150610d35565b608051610d6c91613916565b60805161025c5787610996565b6020813d602011610da8575b81610d9260209383613916565b8101031261025c57610da3906145c3565b61093f565b3d9150610d85565b608051610dbc91613916565b60805161025c57876108dd565b610de2915060203d6020116106c4576106b68183613916565b88610884565b610e01915060203d6020116106c4576106b68183613916565b8761082d565b909250610e149150614841565b90610e1e82614841565b90846107be565b9050946107b9565b80926107b0565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b3461025c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc610ec16136bc565b73ffffffffffffffffffffffffffffffffffffffff60025416615c29565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760405161214780820182811067ffffffffffffffff821117611044578291620077c183390390608051f0801561049357604051610f4b816138a3565b60e381526028602082015260b5604082015260246060820152601e6080820152604051610f77816138a3565b60e381526028602082015260b5604082015260246060820152601e608082015260405191610fa4836138bf565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff841117611044578392611019926200606e8539615e91565b0390608051f080156104935773ffffffffffffffffffffffffffffffffffffffff6102dc9216614871565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260416004526024608051fd5b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff6080515416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285460801c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602061114d6146c7565b6040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602054611193816139a5565b6111a06040519182613916565b818152602081019160206080515260206080512092608051905b8282106111d7576040516020808252819061052e90820187613645565b6040516080518654600181811c9190811680156112db575b6020831081146112aa57828552908115611269575060011461122e575b506001928261122085946020940382613916565b8152019501910190936111ba565b6080805189905251602081209092505b8183106112535750508101602001600161120c565b600181602092548386880101520192019161123e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191506001905061120c565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260226004526024608051fd5b91607f16916111ef565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60035416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602061137261464a565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5773ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285416906040516113f681613887565b6080518152813b1561025c57604051927f6e98833d000000000000000000000000000000000000000000000000000000008452600484015260805160248401525160448301528160648160805193608051905af180156104935761145a5760805180f35b60805161146691613916565b60805161025c57806102dc565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576023546114af816139a5565b6114bc6040519182613916565b81815260208101916023608051527fd57b2b5166478fd4318d2acc6cc2c704584312bdd8781b32d5d06abda57f423092608051905b828210611506576040518061052e8682613727565b6040516115128161381f565b73ffffffffffffffffffffffffffffffffffffffff8654168152600186016040519081602082549182815201916080515260206080512090608051915b81600784011061175a57846001979460029794602097946115b2945491818110611726575b8181106116f2575b8181106116be575b81811061168a575b818110611656575b818110611622575b8181106115f0575b106115c4575b500382613916565b838201528152019501910190936114f1565b7fffffffff0000000000000000000000000000000000000000000000000000000016815286018d6115aa565b828a1b7fffffffff00000000000000000000000000000000000000000000000000000000168452928901928b016115a4565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560401b16815201930161159c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301611594565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560801b16815201930161158c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560a01b168152019301611584565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560c01b16815201930161157c565b92898c917fffffffff000000000000000000000000000000000000000000000000000000008560e01b168152019301611574565b9260016101006008927fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e082015201940192019161154f565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576020611372614577565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5773ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460401c16906040516113f681613887565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576021546118c0816139a5565b6118cd6040519182613916565b818152602081019160216080515260206080512092608051905b828210611904576040516020808252819061052e90820187613645565b6040516080518654600181811c9190811680156119d7575b6020831081146112aa57828552908115611996575060011461195b575b506001928261194d85946020940382613916565b8152019501910190936118e7565b6080805189905251602081209092505b81831061198057505081016020016001611939565b600181602092548386880101520192019161196b565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b8401909101915060019050611939565b91607f169161191c565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57611a1c610ec1614577565b6040805190611a2b9082613916565b600281527f4c4c0000000000000000000000000000000000000000000000000000000000006020820152737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561025c57604051907ff28dceb3000000000000000000000000000000000000000000000000000000008252602060048301528180611ab16080519360248301906135e6565b0381608051737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561049357611db3575b5073ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460801c1690604051611b1281613887565b6080518152813b1561025c57604051927f6e98833d000000000000000000000000000000000000000000000000000000008452600484015260805160248401525160448301528160648160805193608051905af1801561049357611d9a575b5060408051611bb391611b849082613916565b600881527f696e7665727465640000000000000000000000000000000000000000000000006020820152615618565b60008060ff60065460a01c16604051907f32458eed0000000000000000000000000000000000000000000000000000000060208301521515602482015260248152611bff604482613916565b6020815191016a636f6e736f6c652e6c6f675afa5060408051611c5591611c269082613916565b600e81527f6f726967696e616c2070726963650000000000000000000000000000000000006020820152615618565b611c7b73ffffffffffffffffffffffffffffffffffffffff611c7561464a565b16615676565b73ffffffffffffffffffffffffffffffffffffffff611c98614577565b1673ffffffffffffffffffffffffffffffffffffffff612712820216908082046127121490151715611d695773ffffffffffffffffffffffffffffffffffffffff612710611d309204611cef818360025416615c29565b60408051611c7591611d019082613916565b600981527f6e657720707269636500000000000000000000000000000000000000000000006020820152615618565b73ffffffffffffffffffffffffffffffffffffffff60255460081c1667ffffffffffffffff60285460801c16906040516113f681613887565b7f4e487b71000000000000000000000000000000000000000000000000000000006080515260116004526024608051fd5b608051611da691613916565b60805161025c5780611b71565b608051611dbf91613916565b60805161025c5780611ad8565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285460401c16604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602060ff60065460a01c166040519015158152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602254611e97816139a5565b611ea46040519182613916565b81815260208101916022608051527f61035b26e3e9eee00e0d72fd1ee8ddca6894550dca6916ea2ac6baa90d11e51092608051905b828210611eee576040518061052e8682613727565b604051611efa8161381f565b73ffffffffffffffffffffffffffffffffffffffff8654168152600186016040519081602082549182815201916080515260206080512090608051915b816007840110611fa45784600197946002979460209794611f92945491818110611726578181106116f2578181106116be5781811061168a5781811061165657818110611622578181106115f057106115c457500382613916565b83820152815201950191019093611ed9565b9260016101006008927fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e0820152019401920191611f37565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602067ffffffffffffffff60285416604051908152f35b3461025c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc6120ac613707565b61044e613717565b3461025c5760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576120eb6136bc565b6120f36136e4565b60643573ffffffffffffffffffffffffffffffffffffffff8116810361025c5760209261067b926044359173ffffffffffffffffffffffffffffffffffffffff6002541661572b565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601e54918281520190601e608051527f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350906080515b8181106121be5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016121a7565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601f54918281520190601f608051527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d807906080515b81811061226c5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff16845260209093019260019283019201612255565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c576102dc610ec1614577565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c5760245461230f816139a5565b9061231d6040519283613916565b8082526020820180916024608051527f7cd332d19b93bcabe3cce7ca0c18a052f57e5fd03b4758a09f30f5ddc4b22ec4608051925b82841061240457848660405191829160208301906020845251809152604083019060408160051b8501019291608051905b82821061239257505050500390f35b919360206123f4827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc060019597998495030186526040838a5173ffffffffffffffffffffffffffffffffffffffff815116845201519181858201520190613645565b9601920192018594939192612383565b6040516124108161381f565b825473ffffffffffffffffffffffffffffffffffffffff1681526001830180549061243a826139a5565b916124486040519384613916565b808352602083019160805152602060805120608051925b828410612485575050505060019282602092836002950152815201920193019290612352565b6040516080518354600181811c919081161561255e575b6020821060018216146112aa578184526001811690811561251d57506001146124e2575b50600192826124d485946020940382613916565b81520192019301929061245f565b6080805186905251602081209092505b818310612507575050810160200160016124c0565b60018160209254838688010152019201916124f2565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b84019091019150600190506124c0565b90607f169061249c565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57604051806020601d54918281520190601d608051527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f906080515b8181106125ea5761052e8561052281870382613916565b825473ffffffffffffffffffffffffffffffffffffffff168452602090930192600192830192016125d3565b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60045416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57602073ffffffffffffffffffffffffffffffffffffffff60055416604051908152f35b3461025c576080517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261025c57612747613d55565b6024602073ffffffffffffffffffffffffffffffffffffffff6080515416604051928380927f5eb512e7000000000000000000000000000000000000000000000000000000008252306004830152608051905af19081156104935760805191613547575b507fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff006025549260081b169116178060255573ffffffffffffffffffffffffffffffffffffffff60035416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa8015610493576080519061350c575b6128549150613965565b80620186a00290620186a0820403611d6957823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805160089390931c73ffffffffffffffffffffffffffffffffffffffff16600482015260248101919091529182908180604481010391608051905af18015610493576134fa575b5073ffffffffffffffffffffffffffffffffffffffff600454166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa801561049357608051906134bf575b61293d9150613965565b80620186a00290620186a0820403611d695773ffffffffffffffffffffffffffffffffffffffff60255460081c1690823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af18015610493576134a6575b5073ffffffffffffffffffffffffffffffffffffffff600354166040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481855afa8015610493576080519061346b575b612a3f9150613965565b80620f42400290620f4240820403611d6957806026556004602073ffffffffffffffffffffffffffffffffffffffff825416604051928380927f313ce5670000000000000000000000000000000000000000000000000000000082525afa80156104935760805190613430575b612ab69150613965565b80620f42400290620f4240820403611d695760275573ffffffffffffffffffffffffffffffffffffffff60255460081c1690823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af1801561049357613417575b5073ffffffffffffffffffffffffffffffffffffffff6004541673ffffffffffffffffffffffffffffffffffffffff60255460081c16602754823b1561025c576040517f40c10f1900000000000000000000000000000000000000000000000000000000815260805173ffffffffffffffffffffffffffffffffffffffff909316600482015260248101919091529182908180604481010391608051905af18015610493576133fe575b50612c0c6139bd565b61ffff612c1882613ab4565b515263ffffffff610180612c2b83613ab4565b510152600160a0612c3b83613ab4565b51015273ffffffffffffffffffffffffffffffffffffffff60045416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa801561049357608051906133c3575b612ca09150613965565b80600302906003820403611d6957600a6064910473ffffffffffffffffffffffffffffffffffffffff600354169360405190612cdb8261381f565b600182526101f4602083015260405195612cf48761386a565b86526020860152604085015280606085015204608083015260805160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa80156104935767ffffffffffffffff91608051916133a4575b50167fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006028541617602855813b1561025c5760405180927f16ddc0730000000000000000000000000000000000000000000000000000000082528180612e0a6080519560048301613b30565b0391608051905af180156104935761338b575b50612e266139bd565b61ffff612e3282613ab4565b515263ffffffff610180612e4583613ab4565b510152600160a0612e5583613ab4565b51015273ffffffffffffffffffffffffffffffffffffffff60035416906040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481865afa80156104935760805190613350575b612eba9150613965565b80600302906003820403611d6957600a6064910473ffffffffffffffffffffffffffffffffffffffff6004541662ffffff60025460a01c169060405191612f008361381f565b60018352602083015260405195612f168761386a565b865260208601526040850152806060850152046080830152600160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa9081156104935760805191613331575b507fffffffffffffffffffffffffffffffff0000000000000000ffffffffffffffff6fffffffffffffffff00000000000000006028549260401b16911617602855813b1561025c5760405180927f16ddc07300000000000000000000000000000000000000000000000000000000825281806130386080519560048301613b30565b0391608051905af1801561049357613318575b506130546139bd565b61ffff61306082613ab4565b515263ffffffff61018061307383613ab4565b5101526006549060a082901c60ff161561330e57635368da9b5b63ffffffff6101a061309e84613ab4565b5101519116905273ffffffffffffffffffffffffffffffffffffffff60055416916040517f313ce567000000000000000000000000000000000000000000000000000000008152602081600481875afa801561049357608051906132d3575b6131079150613965565b9081600302916003830403611d6957600a606492049073ffffffffffffffffffffffffffffffffffffffff62ffffff60025460a01c16916040519261314b8461381f565b600184526020840152604051966131618861386a565b87521660208601526040850152806060850152046080830152600160a083015260805160c083015260805160e083015267ffffffffffffffff61010083015261012082015273ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa90811561049357608051916132a4575b507fffffffffffffffff0000000000000000ffffffffffffffffffffffffffffffff77ffffffffffffffff000000000000000000000000000000006028549260801b16911617602855813b1561025c5760405180927f16ddc073000000000000000000000000000000000000000000000000000000008252818061328c6080519560048301613b30565b0391608051905af180156104935761145a5760805180f35b6132c6915060203d6020116132cc575b6132be8183613916565b810190613b10565b83613202565b503d6132b4565b506020813d602011613306575b816132ed60209383613916565b8101031261025c5761330161310791613957565b6130fd565b3d91506132e0565b632b8cc06661308d565b60805161332491613916565b60805161025c578061304b565b61334a915060203d6020116132cc576132be8183613916565b83612fb6565b506020813d602011613383575b8161336a60209383613916565b8101031261025c5761337e612eba91613957565b612eb0565b3d915061335d565b60805161339791613916565b60805161025c5780612e1d565b6133bd915060203d6020116132cc576132be8183613916565b84612d9e565b506020813d6020116133f6575b816133dd60209383613916565b8101031261025c576133f1612ca091613957565b612c96565b3d91506133d0565b60805161340a91613916565b60805161025c5780612c03565b60805161342391613916565b60805161025c5780612b59565b506020813d602011613463575b8161344a60209383613916565b8101031261025c5761345e612ab691613957565b612aac565b3d915061343d565b506020813d60201161349e575b8161348560209383613916565b8101031261025c57613499612a3f91613957565b612a35565b3d9150613478565b6080516134b291613916565b60805161025c57806129dd565b506020813d6020116134f2575b816134d960209383613916565b8101031261025c576134ed61293d91613957565b612933565b3d91506134cc565b60805161350691613916565b806128db565b506020813d60201161353f575b8161352660209383613916565b8101031261025c5761353a61285491613957565b61284a565b3d9150613519565b90506020813d60201161358e575b8161356260209383613916565b8101031261025c575173ffffffffffffffffffffffffffffffffffffffff8116810361025c57816127ab565b3d9150613555565b602060408183019282815284518094520192019060005b8181106135ba5750505090565b825173ffffffffffffffffffffffffffffffffffffffff168452602093840193909201916001016135ad565b919082519283825260005b8481106136305750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006020809697860101520116010190565b806020809284010151828286010152016135f1565b9080602083519182815201916020808360051b8301019401926000915b83831061367157505050505090565b90919293946020806136ad837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0866001960301875289516135e6565b97019301930191939290613662565b6004359073ffffffffffffffffffffffffffffffffffffffff821682036136df57565b600080fd5b6024359073ffffffffffffffffffffffffffffffffffffffff821682036136df57565b602435908160020b82036136df57565b604435908160020b82036136df57565b602081016020825282518091526040820190602060408260051b8501019401916000905b82821061375a57505050505090565b9091929395947fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc087820301825284516020606081604085019373ffffffffffffffffffffffffffffffffffffffff81511686520151936040838201528451809452019201906000905b8082106137e5575050506020806001929601920192019092919593949561374b565b9091926020806001927fffffffff0000000000000000000000000000000000000000000000000000000087511681520194019201906137c3565b6040810190811067ffffffffffffffff82111761383b57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610140810190811067ffffffffffffffff82111761383b57604052565b6020810190811067ffffffffffffffff82111761383b57604052565b60a0810190811067ffffffffffffffff82111761383b57604052565b610160810190811067ffffffffffffffff82111761383b57604052565b6101e0810190811067ffffffffffffffff82111761383b57604052565b610100810190811067ffffffffffffffff82111761383b57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761383b57604052565b519060ff821682036136df57565b60ff16604d811161397657600a0a90565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b67ffffffffffffffff811161383b5760051b60200190565b604080519091906139ce8382613916565b60018152917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0018260005b828110613a0557505050565b602090604051613a14816138dc565b60008152600083820152600060408201526000606082015260006080820152600060a0820152600060c0820152600060e082015260006101008201526000610120820152600061014082015260006101608201526000610180820152604051613a7c8161381f565b600081526000848201526101a0820152604051613a988161381f565b600081526000848201526101c0820152828285010152016139f9565b805115613ac15760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b805160011015613ac15760400190565b805160021015613ac15760600190565b908160209103126136df575167ffffffffffffffff811681036136df5790565b906020825261018082019073ffffffffffffffffffffffffffffffffffffffff815116602084015273ffffffffffffffffffffffffffffffffffffffff6020820151166040840152604081015180516002811015613d265760209262ffffff846101a0946101209460608a01520151166080870152606081015160a0870152608081015160c087015260a0810151151560e087015260c0810151151561010087015260e081015115158287015267ffffffffffffffff610100820151166101408701520151936101608082015284518094520192019060005b818110613c165750505090565b9091926020610220600192613d1b6101c0885161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff61018082015116610180850152613cfc6101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019401929101613c09565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b60405161214780820182811067ffffffffffffffff82111761383b578291620077c1833903906000f08015613e8a57604051613d90816138a3565b6000815260006020820152600060408201526000606082015260006080820152604051613dbc816138a3565b600081526000602082015260006040820152600060608201526000608082015260405191613de9836138bf565b6146508352611c206020840152600a604084015260646060840152608083015260a08201523360c08201523360e0820152336101008201523361012082015233610140820152604051906117538083019183831067ffffffffffffffff84111761383b578392613e5e926200606e8539615e91565b03906000f08015613e8a5773ffffffffffffffffffffffffffffffffffffffff613e889216614871565b565b6040513d6000823e3d90fd5b9091600092670de0b6b3a7640000830292801593818104670de0b6b3a76400001485171561454a5760011c93620f42408202918204620f424014171561451d5760011c82919260ff60065460a01c16948560001461451657825b861561450e5750945b6144f0575b5073ffffffffffffffffffffffffffffffffffffffff60025416916040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156144e5579073ffffffffffffffffffffffffffffffffffffffff9188916144c6575b5016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa9081156144bb579073ffffffffffffffffffffffffffffffffffffffff91899161449c575b501694863b1561444d576040517f40c10f1900000000000000000000000000000000000000000000000000000000815230600482015260248101859052888180604481015b0381838c5af180156143a757614488575b506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018590526020816044818c8c5af180156143a757614451575b50853b1561444d576040517f40c10f19000000000000000000000000000000000000000000000000000000008152306004820152602481018390528881604481838b5af180156143a757908991614438575b50506040517f095ea7b300000000000000000000000000000000000000000000000000000000815273c36442b4a4522e871399cd717abdd847ab11fe886004820152602481018390526020816044818c8b5af180156143a757614401575b506040517fd0c93a7c000000000000000000000000000000000000000000000000000000008152602081600481895afa9081156143a75789916143ba575b50610a488161417393615fb2565b92339333156143b2575b602060049596604051968780927fddca3f430000000000000000000000000000000000000000000000000000000082525afa9485156143a7578995614386575b50604051976141cb896138bf565b885260208801968752604088019462ffffff168552606088019360020b8452608088019060020b815260a0880191825260c0880192835260e08801938985526101008901958a87526101208a019773ffffffffffffffffffffffffffffffffffffffff1688526101408a0198428a526040519a7f88316456000000000000000000000000000000000000000000000000000000008c525173ffffffffffffffffffffffffffffffffffffffff1660048c01525173ffffffffffffffffffffffffffffffffffffffff1660248b01525162ffffff1660448a01525160020b60648901525160020b60848801525160a48701525160c48601525160e4850152516101048401525173ffffffffffffffffffffffffffffffffffffffff16610124830152516101448201528080835a926101649173c36442b4a4522e871399cd717abdd847ab11fe88608095f1801561437b57614323575050565b6080813d608011614373575b8161433c60809383613916565b8101031261436f578051916020820151906fffffffffffffffffffffffffffffffff8216820361436c5750505050565b80fd5b5080fd5b3d915061432f565b6040513d84823e3d90fd5b6143a091955060203d602011610cd957610cca8183613916565b93386141bd565b6040513d8b823e3d90fd5b30945061417d565b90506020813d6020116143f9575b816143d560209383613916565b810103126143f55790610a486143ed614173936145a6565b919250614165565b8880fd5b3d91506143c8565b6020813d602011614430575b8161441a60209383613916565b810103126143f55761442b906145c3565b614127565b3d915061440d565b8161444291613916565b61444d5787386140c9565b8780fd5b6020813d602011614480575b8161446a60209383613916565b810103126143f55761447b906145c3565b614077565b3d915061445d565b8861449591999299613916565b963861401a565b6144b5915060203d6020116106c4576106b68183613916565b38613fc4565b6040513d8a823e3d90fd5b6144df915060203d6020116106c4576106b68183613916565b38613f6d565b6040513d89823e3d90fd5b9092506144fd9150614841565b9061450782614841565b9038613efe565b905094613ef9565b8092613ef0565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60065460a01c60ff1615614598576e0f424000000000000000000000000090565b6910c6f7a0b5ed8d36b4c790565b51908160020b82036136df57565b519061ffff821682036136df57565b519081151582036136df57565b908160e09103126136df57805173ffffffffffffffffffffffffffffffffffffffff811681036136df5791614607602083016145a6565b91614614604082016145b4565b91614621606083016145b4565b9161462e608082016145b4565b9161464760c061464060a08501613957565b93016145c3565b90565b600460e073ffffffffffffffffffffffffffffffffffffffff60025416604051928380927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa908115613e8a576000916146a5575090565b6146be915060e03d60e01161048c576104768183613916565b50505050505090565b600f5460ff1680156146d65790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613e8a5760009161476f575b50151590565b90506020813d602011614799575b8161478a60209383613916565b810103126136df575138614769565b3d915061477d565b908160209103126136df575173ffffffffffffffffffffffffffffffffffffffff811681036136df5790565b9060020b9060020b0390627fffff82137fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000083121761397657565b9060020b9060020b01907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8000008212627fffff83131761397657565b60020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff80000081146139765760000390565b906000916040519161595e918284019284841067ffffffffffffffff85111761519d57849273ffffffffffffffffffffffffffffffffffffffff6060959381936200b543873916835216602082015284604082015203019082f0801561512b5760405190611c3b908183019183831067ffffffffffffffff841117615138579173ffffffffffffffffffffffffffffffffffffffff84926060946200990885393383521660208201526078604082015203019082f0801561512b5773ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617815580806149e6614a1860405161497f604082613916565b601481527f4d6f636b456e763a206d73672e73656e6465723a00000000000000000000000060208201526040519283917f319af3330000000000000000000000000000000000000000000000000000000060208401526040602484015260648301906135e6565b336044830152037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613916565b6020815191016a636f6e736f6c652e6c6f675afa50604051610f08908181019080821067ffffffffffffffff8311176151705760e08162010ea1938585833960608152601660608201527f4d6f636b20457468657265756d2048617264666f726b00000000000000000000608082015260a06020820152600360a08201527f4d4548000000000000000000000000000000000000000000000000000000000060c08201526012604082015203019084f080156151655773ffffffffffffffffffffffffffffffffffffffff614b579116807fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355614b52604051614b23604082613916565b600381527f4d454800000000000000000000000000000000000000000000000000000000006020820152615618565b6156b8565b604051918083019183831067ffffffffffffffff8411176151385791839160e093833960608152601060608201527f4a6f6b652043757272656e637920584400000000000000000000000000000000608082015260a06020820152600460a08201527f555358440000000000000000000000000000000000000000000000000000000060c08201526006604082015203019082f0801561512b5773ffffffffffffffffffffffffffffffffffffffff16807fffffffffffffffffffffffff00000000000000000000000000000000000000006004541617600455614c71604051614c42604082613916565b600481527f55535844000000000000000000000000000000000000000000000000000000006020820152615618565b614c7a816156b8565b60207fffffffffffffffffffffff00000000000000000000000000000000000000000060847501f400000000000000000000000000000000000000007fffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffff6002541617938460025573ffffffffffffffffffffffffffffffffffffffff600354166006549073ffffffffffffffffffffffffffffffffffffffff74ff000000000000000000000000000000000000000084831160a01b169160ff837fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff86161760a01c1694856000146151245782815b1695867fffffffffffffffffffffffff0000000000000000000000000000000000000000600554161760055560001461511d57505b16948592161717600655614e32604051614db8608082613916565b605381527f6966207468697320697320746865206c617374206c696e65206265666f726520868201527f6120726576657274207468656e206d616b65207375726520746f2072756e206660408201527f6f7267652077697468202d2d7270632d75726c000000000000000000000000006060820152615618565b8573ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff614e69614577565b62ffffff604051998a9889977f13ead5620000000000000000000000000000000000000000000000000000000089526004890152602488015260a01c1660448601521660648401525af190811561437b579073ffffffffffffffffffffffffffffffffffffffff9183916150fe575b5016807fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255614f44604051614f15604082613916565b600781527f763320706f6f6c000000000000000000000000000000000000000000000000006020820152615618565b614f4d816156b8565b60065460a01c60ff16907ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff2761890620d89e88084156150ed576903c1fb96f3938f910000915b85156150dc576903c1fb96f3938f910000955b61509c575b506040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481875afa9081156144e5579073ffffffffffffffffffffffffffffffffffffffff9188916144c6575016946040517fd21220a7000000000000000000000000000000000000000000000000000000008152602081600481885afa9081156144bb579073ffffffffffffffffffffffffffffffffffffffff91899161449c57501694863b1561444d576040517f40c10f190000000000000000000000000000000000000000000000000000000081523060048201526024810185905288818060448101614009565b9193505060020b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000811461451d578403916150d683614841565b38614fa9565b6903c1fb96f3938f91000095614fa4565b6903c1fb96f3938f91000091614f91565b615117915060203d6020116106c4576106b68183613916565b38614ed8565b9050614d9d565b8282614d68565b50604051903d90823e3d90fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6040513d85823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024867f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60405160806151d98183613916565b60038252600091907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001825b81811061557a57505061555561521a82613ab4565b51526001602061522983613ab4565b5101528161016061523983613ab4565b51015261555561524882613af0565b51526001602061525783613af0565b510152603c61016061526883613af0565b51015261555561527782613b00565b51526001602061528683613b00565b510152607861016061529783613b00565b510152604051906152a78261381f565b600182526101f46020830152604051916152c08361386a565b73fd086bc7cd5c481dcc9c85ebe478a1c0b69fcbb983527382af49447d8a07e3bd95bd0d56f35241523fbab16020840152604083015268056bc75e2d631000006060830152670de0b6b3a76400006080830152600160a08301528260c08301528260e083015267ffffffffffffffff61010083015261012082015281806153576153c0604051615383816153578860208301613b30565b037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08101835282613916565b6040519283917f0be77f560000000000000000000000000000000000000000000000000000000060208401526020602484015260448301906135e6565b6020815191016a636f6e736f6c652e6c6f675afa5061543b6040516153e6606082613916565b602b81527f74657374506c6163654f726465723a2063616c6c696e67207661756c742e6e7560208201527f6d537761704f72646572730000000000000000000000000000000000000000006040820152615618565b73ffffffffffffffffffffffffffffffffffffffff60255460081c16906040517fe78f84e7000000000000000000000000000000000000000000000000000000008152602081600481865afa90811561556f576154aa9167ffffffffffffffff918691615550575b5016615676565b6154ea6040516154bb604082613916565b601d81527f74657374506c6163654f726465723a20506c6163696e67206f726465720000006020820152615618565b813b1561554c5761552d839283926040519485809481937f16ddc07300000000000000000000000000000000000000000000000000000000835260048301613b30565b03925af1801561437b5761553f575050565b8161554991613916565b50565b8280fd5b615569915060203d6020116132cc576132be8183613916565b386154a3565b6040513d86823e3d90fd5b602090604051615589816138dc565b85815285838201528560408201528560608201528560808201528560a08201528560c08201528560e082015285610100820152856101208201528561014082015285610160820152856101808201526040516155e48161381f565b86815286848201526101a08201526040516155fe8161381f565b86815286848201526101c082015282828601015201615205565b600061535761565f82936040519283917f41304fac0000000000000000000000000000000000000000000000000000000060208401526020602484015260448301906135e6565b6020815191016a636f6e736f6c652e6c6f675afa50565b60008091604051907ff82c50f100000000000000000000000000000000000000000000000000000000602083015260248201526024815261565f604482613916565b6000809173ffffffffffffffffffffffffffffffffffffffff604051917f2c2ecbc20000000000000000000000000000000000000000000000000000000060208401521660248201526024815261565f604482613916565b908160209103126136df575162ffffff811681036136df5790565b9391929073ffffffffffffffffffffffffffffffffffffffff16906040517f095ea7b300000000000000000000000000000000000000000000000000000000815273e592427a0aece92de3edee1f18e0157c0586156460048201528160248201526020816044816000875af18015613e8a57615941575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa938415613e8a5773ffffffffffffffffffffffffffffffffffffffff80957f414bf3890000000000000000000000000000000000000000000000000000000097600091615922575b5060405194615840866138f9565b855281602086019316835262ffffff604086019116815262ffffff606086019133835283608088019542875260a089019788528160c08a019960008b528160e082019c168c526040519d8e52511660048d0152511660248b015251166044890152511660648701525160848601525160a48501525160c4840152511660e482015260208161010481600073e592427a0aece92de3edee1f18e0157c058615645af1908115613e8a576000916158f3575090565b90506020813d60201161591a575b8161590e60209383613916565b810103126136df575190565b3d9150615901565b61593b915060203d602011610cd957610cca8183613916565b38615832565b6020813d60201161598b575b8161595a60209383613916565b810103126136df5773ffffffffffffffffffffffffffffffffffffffff956159836020926145c3565b5095506157a2565b3d915061594d565b9173ffffffffffffffffffffffffffffffffffffffff8091959295169216906040517f095ea7b30000000000000000000000000000000000000000000000000000000081528260048201526c1000000000000000000000000060248201526020816044816000885af18015613e8a57615bd7575b50602073ffffffffffffffffffffffffffffffffffffffff956004604051809881937fddca3f43000000000000000000000000000000000000000000000000000000008352165afa948515613e8a57600095615bb6575b5060405192615a6c846138f9565b8352602083019373ffffffffffffffffffffffffffffffffffffffff168452604083019462ffffff168552606083013381526080840142815260a08501906c10000000000000000000000000825260c08601926000845260e087019473ffffffffffffffffffffffffffffffffffffffff16855260405198899889987f414bf389000000000000000000000000000000000000000000000000000000008a525173ffffffffffffffffffffffffffffffffffffffff1660048a01525173ffffffffffffffffffffffffffffffffffffffff1660248901525162ffffff1660448801525173ffffffffffffffffffffffffffffffffffffffff1660648701525160848601525160a48501525160c48401525173ffffffffffffffffffffffffffffffffffffffff1660e48301525a92600061010492602095f1908115613e8a576000916158f3575090565b615bd091955060203d602011610cd957610cca8183613916565b9338615a5e565b6020813d602011615c21575b81615bf060209383613916565b810103126136df5773ffffffffffffffffffffffffffffffffffffffff95615c196020926145c3565b509550615a07565b3d9150615be3565b919060009273ffffffffffffffffffffffffffffffffffffffff8116604051907f3850c7bd00000000000000000000000000000000000000000000000000000000825260e082600481845afa918215615e86578692615e5f575b5073ffffffffffffffffffffffffffffffffffffffff808516921691808314615e56576040517f0dfe1681000000000000000000000000000000000000000000000000000000008152602081600481865afa80156144bb5773ffffffffffffffffffffffffffffffffffffffff6020916004938b91615e39575b501693604051928380927fd21220a70000000000000000000000000000000000000000000000000000000082525afa80156144bb5773ffffffffffffffffffffffffffffffffffffffff918991615e1a575b50169080841115615e135782935b1015615e0b5750915b8573ffffffffffffffffffffffffffffffffffffffff8316803b1561436f5781906044604051809a81937f40c10f190000000000000000000000000000000000000000000000000000000083523060048401526c1000000000000000000000000060248401525af196871561512b576155499697615dfb575b505073e592427a0aece92de3edee1f18e0157c05861564615993565b81615e0591613916565b38615ddf565b905091615d66565b8193615d5d565b615e33915060203d6020116106c4576106b68183613916565b38615d4f565b615e509150833d85116106c4576106b68183613916565b38615cfd565b50505050509050565b615e7991925060e03d60e01161048c576104768183613916565b5050505050509038615c83565b6040513d88823e3d90fd5b91909161024073ffffffffffffffffffffffffffffffffffffffff61014061026084019563ffffffff815116855263ffffffff602082015116602086015260ff604082015116604086015260ff6060820151166060860152615f2e6080820151608087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b615f7460a082015161012087019060ff60808092828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b8260c0820151166101c08601528260e0820151166101e086015282610100820151166102008601528261012082015116610220860152015116910152565b8060020b918060020b801561603e5760008185079412600014616007576002615fda85614841565b9105600290810b91900b13615ff4575090614647916147cd565b6146479261600191614807565b906147cd565b6002906000949394500560020b8260020b1360001461603457614647929161602e916147cd565b90614807565b50614647916147cd565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfe610120604052346103c8576040516117533881900390601f8201601f19168301906001600160401b038211848310176103cd5782916040528339810190610260818303126103c8576040516000929061016081016001600160401b038111828210176103b45760405261033092916102ca9161007a846103e3565b815280610089602086016103e3565b946020820195865261009d604082016103f4565b956040830196875260ff6100b3606084016103f4565b60608501908152816100dd6100cb8960808801610402565b9860808801998a526101208701610402565b9960a087019a8b5263ffffffff6100f76101c0880161047b565b9560c0890196875261010c6101e0890161047b565b60e08a0152816101496102406101256102008c0161047b565b9a6101008d019b8c5261012061013e610220830161047b565b9d019c8d520161047b565b9a61014081019b8c525116608052511660a052511660c052511660e052845160ff815116908a549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff1916171617161717178955865160ff815116906001549161ff00602083015160081b169062ff0000604084015160101b169164ff00000000608063ff000000606087015160181b1695015160201b169464ff00000000199263ff000000199162ffffff19161716171617171760015560018060a01b039051166101005260018060a01b0390511660018060a01b0319600654161760065560018060a01b0390511660018060a01b0319600754161760075560018060a01b0390511660018060a01b031960085416176008555160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7f6b70211f17be77ef10da93671831209be5e36d99f83d0af732a06620014dbd3c8480a25160a09060ff60806040519282815116845282602082015116602085015282604082015116604085015282606082015116606085015201511660808201522090565b7fc2c2b17cbe5e4e289c8ffa4a475958e90abf0424b118e08c384fc284625338af6040519280a26112c3908161049082396080518181816102210152610890015260a0518181816105230152610bfe015260c05181610d38015260e051816105d30152610100518181816101c2015281816103f9015281816107340152610a150152f35b634e487b7160e01b85526041600452602485fd5b600080fd5b634e487b7160e01b600052604160045260246000fd5b519063ffffffff821682036103c857565b519060ff821682036103c857565b91908260a09103126103c85760405160a081016001600160401b038111828210176103cd57604052608061047681839561043b816103f4565b8552610449602082016103f4565b602086015261045a604082016103f4565b604086015261046b606082016103f4565b6060860152016103f4565b910152565b51906001600160a01b03821682036103c85756fe608080604052600436101561001357600080fd5b60003560e01c9081631db89da114610d5c5750806344a505db14610d00578063478c3b1a146109cd57806357d1c53d14610910578063591cef8f146106e95780636f7a2458146106a7578063860aefcf1461066d5780639af1d35a146105f7578063ab1a57a81461059b578063be98952314610547578063c0021df1146104e8578063ca7784cc1461032b578063d0c683b1146102e9578063ea43b36b14610297578063ebd3cdcd14610245578063f1d08853146101e6578063f851a440146101775763f9828cff146100e557600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761011c610f52565b5061016e610128610f7d565b60405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b0390f35b600080fd5b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60065416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff60085416604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60035416604051908152f35b346101725760807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760043573ffffffffffffffffffffffffffffffffffffffff811681036101725760243573ffffffffffffffffffffffffffffffffffffffff8116809103610172576044359073ffffffffffffffffffffffffffffffffffffffff8216809203610172576064359273ffffffffffffffffffffffffffffffffffffffff84168094036101725761042073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b7fffffffffffffffff0000000000000000000000000000000000000000ffffffff77ffffffffffffffffffffffffffffffffffffffff000000006005549260201b169116176005557fffffffffffffffffffffffff000000000000000000000000000000000000000060085416176008557fffffffffffffffffffffffff000000000000000000000000000000000000000060065416176006557fffffffffffffffffffffffff00000000000000000000000000000000000000006007541617600755600080f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602073ffffffffffffffffffffffffffffffffffffffff600554821c16604051908152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761062e610f52565b5063ffffffff600354168015159081610662575b50156106555761016e6101286002610fbc565b61016e6101286000610fbc565b905042101581610642565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725761016e61012861105f565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602063ffffffff60055416604051908152f35b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600061075b73ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610ffa565b6107636110a3565b60ff61076d610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00600454161760045561079f610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006004549260081b169116176004556107d9610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006004549260101b16911617600455610814610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006004549260181b16911617600455610850610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006004549260201b1691161760045563ffffffff6108b6817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060055416176005556108e9610e9c565b7f633123e8c6bc7eb742d7524d9584642f04bbc47f7e900c57909de46fbc2b34968380a380f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257610947610f52565b5061016e610953610f03565b60ff6004548181168352818160081c166020840152818160101c166040840152818160181c16606084015260201c16608082015260405191829182919091608060ff8160a0840195828151168552826020820151166020860152826040820151166040860152826060820151166060860152015116910152565b346101725760a07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257600073ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000001633148015610cdc575b15610c7e57610a4b6110a3565b610ad1610a5661105f565b610a8560ff610a63610dab565b1660ff610a6e610dbb565b161b60ff83511660ff6020850151161b1015610dfb565b610ab760ff610a92610dcb565b1660ff610a9d610ddb565b161b60ff60408401511660ff6060850151161b1015610dfb565b60ff806080610ac4610deb565b9301511691161115610dfb565b60ff610adb610dab565b167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff006002541617600255610b0d610dbb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff006002549260081b16911617600255610b47610dcb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff00006002549260101b16911617600255610b82610ddb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffff63ff0000006002549260181b16911617600255610bbe610deb565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffff64ff000000006002549260201b1691161760025563ffffffff610c24817f00000000000000000000000000000000000000000000000000000000000000001642610e60565b16807fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000006003541617600355610c57610e9c565b7f1b9ba1eeed6885eb6b63df058a321a2e4299a0b65a613a47927282306f7995108380a380f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601560248201527f6e6f742061646d696e206f722061646a757374657200000000000000000000006044820152fd5b5073ffffffffffffffffffffffffffffffffffffffff60055460201c163314610a3e565b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261017257602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346101725760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101725760209073ffffffffffffffffffffffffffffffffffffffff600754168152f35b60043560ff811681036101725790565b60243560ff811681036101725790565b60443560ff811681036101725790565b60643560ff811681036101725790565b60843560ff811681036101725790565b15610e0257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f464c0000000000000000000000000000000000000000000000000000000000006044820152fd5b91908201809211610e6d57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60405160043560ff811680910361017257815260243560ff811680910361017257602082015260443560ff811680910361017257604082015260643560ff81168091036101725760608201526084359060ff82168092036101725760a09160808201522090565b6040519060a0820182811067ffffffffffffffff821117610f2357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610f5a610f03565b906000825260006020830152600060408301526000606083015260006080830152565b610f85610f03565b9060ff6002548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b9060ff610fc7610f03565b92548181168452818160081c166020850152818160101c166040850152818160181c16606085015260201c166080830152565b1561100157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f742061646d696e00000000000000000000000000000000000000000000006044820152fd5b611067610f52565b5063ffffffff600554168015159081611098575b501561108e5761108b6004610fbc565b90565b61108b6001610fbc565b90504210153861107b565b63ffffffff600554168015159081611282575b50611203575b63ffffffff6003541680151590816111f8575b506110d657565b60806110e0610f7d565b60ff815116602082019060ff8251161b6001549160ff83169160ff8460081c1693604086019360ff85511695606088019660ff8851161b9160ff808560101c169460181c169481831b106111ed575b505081831b106111e2575b505083516000805492519351945196909501517fffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000090921660ff919091161760089290921b61ff00169190911760109290921b62ff0000169190911760189390931b63ff000000169290921760209290921b64ff0000000016919091179055600380547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000169055565b83528352388061113a565b88528452388061112f565b9050421015386110cf565b600454600180547fffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000001660ff83161761ff0083161762ff000083161763ff00000083161764ff00000000909216919091179055600580547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000001690556110bc565b9050421015386110b656fea264697066735822122012f4b5804d7aa7905b34739443f96c89787d554d87f6337dba723a62f9e59b8b64736f6c634300081a003360e08060405234606c57731f98431c8ad98523631ae4a59f267346ea31f98460a05273e592427a0aece92de3edee1f18e0157c05861564608052600a60c0526120d59081610072823960805181818161065a0152610a91015260a051816103cd015260c051816112f30152f35b600080fdfe6080604052600436101561001257600080fd5b60003560e01c80630f82d675146101d25780635b1b3179146101ae5763802b95df1461003d57600080fd5b346101a9576101407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101a9576040516000610140820167ffffffffffffffff81118382101761017c57604052600435600281101561017857825260243573ffffffffffffffffffffffffffffffffffffffff8116810361017857602083015260443573ffffffffffffffffffffffffffffffffffffffff8116810361017857604083015260643573ffffffffffffffffffffffffffffffffffffffff81168103610178576060830152608435608083015260a43560a083015260c43580151581036101785760c083015260e43580151581036101785760e083015261010435610100830152610124359062ffffff821682036101755760406101698484610120820152610527565b82519182526020820152f35b80fd5b5080fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600080fd5b346101a95760206101ca6101c1366101ee565b939290926104aa565b604051908152f35b346101a95760206101ca6101e5366101ee565b9392909261032f565b7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc60a09101126101a95760043560028110156101a9579060243573ffffffffffffffffffffffffffffffffffffffff811681036101a9579060443573ffffffffffffffffffffffffffffffffffffffff811681036101a9579060643562ffffff811681036101a9579060843580151581036101a95790565b610100810190811067ffffffffffffffff8211176102a357604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6060810190811067ffffffffffffffff8211176102a357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176102a357604052565b9392909193600281101561047b576001146103a3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b6103f26103ca73ffffffffffffffffffffffffffffffffffffffff9260049660e095611b92565b827f000000000000000000000000000000000000000000000000000000000000000016611bf9565b16604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa801561046f576104379260009161043a575b50611b03565b90565b61045c915060e03d60e011610468575b61045481836102ee565b81019061112c565b50505050505038610431565b503d61044a565b6040513d6000823e3d90fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b9392919093600281101561047b5760011461051e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b610437936112c7565b90815191600283101561047b5760016000931461059d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152606490fd5b6101008101805180158015611090575b505060c08201511561099b5760808201519360246020840195602073ffffffffffffffffffffffffffffffffffffffff885116604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa918215610990578392610958575b508115801561094b575b6108ec578082106108e5575b73ffffffffffffffffffffffffffffffffffffffff61068a818951169561068184847f0000000000000000000000000000000000000000000000000000000000000000168099611fb7565b5160601b612019565b169073ffffffffffffffffffffffffffffffffffffffff8851169573ffffffffffffffffffffffffffffffffffffffff6040820151169073ffffffffffffffffffffffffffffffffffffffff606062ffffff610120840151169201511691604051986106f58a610286565b8952602089019081526040808a0192835260608a019384524260808b0190815260a08b01958652600160c08c0190815260e08c0197885291517f414bf3890000000000000000000000000000000000000000000000000000000081529a5173ffffffffffffffffffffffffffffffffffffffff90811660048d01529251831660248c0152925162ffffff1660448b01529251811660648a015290516084890152915160a48801525160c487015290511660e48501526020846101048185875af19384156108da5782946108a6575b506024602073ffffffffffffffffffffffffffffffffffffffff885116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa92831561089a57809361084d575b5050610845610437939273ffffffffffffffffffffffffffffffffffffffff92611b85565b955116611e50565b909192506020823d602011610892575b8161086a602093836102ee565b810103126101755750519061084573ffffffffffffffffffffffffffffffffffffffff610820565b3d915061085d565b604051903d90823e3d90fd5b9093506020813d6020116108d2575b816108c2602093836102ee565b81010312610178575192386107c3565b3d91506108b5565b6040513d84823e3d90fd5b5080610636565b6040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f49494100000000000000000000000000000000000000000000000000000000006044820152606490fd5b5060a0850151821061062a565b9091506020813d602011610988575b81610974602093836102ee565b8101031261098457519038610620565b8280fd5b3d9150610967565b6040513d85823e3d90fd5b8391935081938260246020830192602073ffffffffffffffffffffffffffffffffffffffff855116604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561099057839261105c575b5081156108ec578060406024920190602073ffffffffffffffffffffffffffffffffffffffff835116604051948580927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa928315611051578593611019575b5073ffffffffffffffffffffffffffffffffffffffff610ab8818851169861068187847f000000000000000000000000000000000000000000000000000000000000000016809c611fb7565b169373ffffffffffffffffffffffffffffffffffffffff87511693886020610bf761010473ffffffffffffffffffffffffffffffffffffffff8851169861012088019962ffffff8b5116986060810199608073ffffffffffffffffffffffffffffffffffffffff8c51169201519260405194610b3386610286565b8552878501526040840152606083015242608083015260a08201528660c08201528a60e08201528b60405195869485937fdb3e2198000000000000000000000000000000000000000000000000000000008552600485019073ffffffffffffffffffffffffffffffffffffffff60e0809282815116855282602082015116602086015262ffffff60408201511660408601528260608201511660608601526080810151608086015260a081015160a086015260c081015160c0860152015116910152565b5af1889181610fe5575b50610f18575050600194610c136111f8565b6308c379a014610c4a575b505050505061089a57509073ffffffffffffffffffffffffffffffffffffffff610437925b5116611e50565b610c52611216565b9485610c5f575b50610c1e565b9297955092985092989694809a509573ffffffffffffffffffffffffffffffffffffffff62ffffff81808851169b51169351169151169160405199610ca38b610286565b8a5260208a019081526040808b0192835260608b019384524260808c0190815260a08c01878152600160c08e0190815260e08e0197885292517f414bf3890000000000000000000000000000000000000000000000000000000081529c5173ffffffffffffffffffffffffffffffffffffffff90811660048f01529351841660248e0152935162ffffff1660448d01529351821660648c0152925160848b0152905160a48a0152905160c489015290511660e4870152602086610104818b875af1889681610ee0575b50610e31578787610d7b6111f8565b6308c379a014610d93575b50604051903d90823e3d90fd5b610d9b611216565b15610d865760405180927f08c379a000000000000000000000000000000000000000000000000000000000825260206004830152825192836024840152815b848110610e19575050601f837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe092604480968601015201168101030190fd5b60208282018101516044888401015286945001610dda565b90929496919395506024602073ffffffffffffffffffffffffffffffffffffffff855116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa908115610990578391610eac575b50610e9f91611b85565b9593388080808080610c59565b90506020813d602011610ed8575b81610ec7602093836102ee565b810103126109845751610e9f610e95565b3d9150610eba565b9096506020813d602011610f10575b81610efc602093836102ee565b81010312610f0c57519538610d6c565b8880fd5b3d9150610eef565b92509698505073ffffffffffffffffffffffffffffffffffffffff9199506024935060209250985116604051928380927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa91821561089a578092610fac575b5050610fa6610437939273ffffffffffffffffffffffffffffffffffffffff92611b85565b93610c43565b9091506020823d602011610fdd575b81610fc8602093836102ee565b81010312610175575051610fa6610437610f81565b3d9150610fbb565b9091506020813d602011611011575b81611001602093836102ee565b81010312610f0c57519038610c01565b3d9150610ff4565b9092506020813d602011611049575b81611035602093836102ee565b8101031261104557519138610a6c565b8480fd5b3d9150611028565b6040513d87823e3d90fd5b9091506020813d602011611088575b81611078602093836102ee565b8101031261098457519038610a03565b3d915061106b565b60e0840151156105ad576110c257780100000000000000000000000000000000000000000000000004815238806105ad565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b519073ffffffffffffffffffffffffffffffffffffffff821682036101a957565b519061ffff821682036101a957565b519081151582036101a957565b908160e09103126101a957611140816110ef565b9160208201518060020b81036101a9579161115d60408201611110565b9161116a60608301611110565b9161117760808201611110565b9160a082015160ff811681036101a95760c061043791930161111f565b67ffffffffffffffff81116102a35760051b60200190565b8051156111b95760200190565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8051600110156111b95760400190565b60009060033d1161120557565b905060046000803e60005160e01c90565b600060443d10610437576040517ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d016004823e8051913d602484011167ffffffffffffffff8411176112c1578282019283519167ffffffffffffffff83116112b9577ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3d850101602084870101116112b95750610437929101602001906102ee565b949350505050565b92915050565b73ffffffffffffffffffffffffffffffffffffffff926112ea926103ca92611b92565b169063ffffffff7f00000000000000000000000000000000000000000000000000000000000000001680611362575b5060e0600492604051938480927f3850c7bd0000000000000000000000000000000000000000000000000000000082525afa801561046f576104379260009161043a5750611b03565b6040516113706060826102ee565b600281526020810190604036833782611388826111ac565b526000611394826111e8565b526040519182917f883bdbfd0000000000000000000000000000000000000000000000000000000083526024830190602060048501525180915260448301919060005b818110611ae45750505090806000920381875afa600091816119cc575b5061143057505060016114056111f8565b6308c379a01461141b575b61046f5760e0611319565b611423611216565b1561141057506000611410565b9091925061144a611440826111e8565b5160060b916111ac565b5160060b900390667fffffffffffff82137fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000083121761198e5760030b9060060b8115611675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82147fffffffffffffffffffffffffffffffffffffffffffffffffff8000000000000082141661198e5781810560020b916000821291826119bd575b5050611940575b60020b90600082121561193a5781600003915b620d89e883116118dc5760018316156118b35770ffffffffffffffffffffffffffffffffff6ffffcb933bd6fad37aa2d162d1a5940015b169260028116611897575b6004811661187b575b6008811661185f575b60108116611843575b60208116611827575b6040811661180b575b608081166117ef575b61010081166117d3575b61020081166117b7575b610400811661179b575b610800811661177f575b6110008116611763575b6120008116611747575b614000811661172b575b618000811661170f575b6201000081166116f3575b6202000081166116d8575b6204000081166116bd575b62080000166116a4575b600012611644575b73ffffffffffffffffffffffffffffffffffffffff6104379263ffffffff81161560001461163b5760ff60005b169060201c0116611b03565b60ff600161162f565b8115611675577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9190910490611602565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6b048a170391f7dc42444e8fa290920260801c916115fa565b6d2216e584f5fa1ea926041bedfe9890930260801c926115f0565b926e5d6af8dedb81196699c329225ee6040260801c926115e5565b926f09aa508b5b7a84e1c677de54f3e99bc90260801c926115da565b926f31be135f97d08fd981231505542fcfa60260801c926115cf565b926f70d869a156d2a1b890bb3df62baf32f70260801c926115c5565b926fa9f746462d870fdf8a65dc1f90e061e50260801c926115bb565b926fd097f3bdfd2022b8845ad8f792aa58250260801c926115b1565b926fe7159475a2c29b7443b29c7fa6e889d90260801c926115a7565b926ff3392b0822b70005940c7a398e4b70f30260801c9261159d565b926ff987a7253ac413176f2b074cf7815e540260801c92611593565b926ffcbe86c7900a88aedcffc83b479aa3a40260801c92611589565b926ffe5dee046a99a2a811c461f1969c30530260801c9261157f565b926fff2ea16466c96a3843ec78b326b528610260801c92611576565b926fff973b41fa98c081472e6896dfb254c00260801c9261156d565b926fffcb9843d60f6159c9db58835c9266440260801c92611564565b926fffe5caca7e10e4e61c3624eaa0941cd00260801c9261155b565b926ffff2e50f5f656932ef12357cf3c7fdcc0260801c92611552565b926ffff97272373d413259a46990580e213a0260801c92611549565b70ffffffffffffffffffffffffffffffffff70010000000000000000000000000000000061153e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f54000000000000000000000000000000000000000000000000000000000000006044820152fd5b81611507565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff800000811461198e577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff016114f4565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b0760060b1515905038806114ed565b90913d8082843e6119dd81846102ee565b82019060408383031261017557825167ffffffffffffffff81116101785783019282601f85011215610178578351611a1481611194565b94611a2260405196876102ee565b81865260208087019260051b8201019085821161104557602001915b818310611ac65750505060208101519067ffffffffffffffff8211610984570182601f8201121561017857805191602080611a7885611194565b611a8560405191826102ee565b858152019360051b8301019384116101755750602001905b828210611aae5750505090386113f4565b60208091611abb846110ef565b815201910190611a9d565b82518060060b8103611ae057815260209283019201611a3e565b8580fd5b825163ffffffff168452859450602093840193909201916001016113d7565b9015611b655773ffffffffffffffffffffffffffffffffffffffff168015611675578078ffffffffffffffffffffffffffffffffffffffffffffffffff6104379278010000000000000000000000000000000000000000000000000416611d90565b73ffffffffffffffffffffffffffffffffffffffff610437911680611d11565b9190820391821161198e57565b9173ffffffffffffffffffffffffffffffffffffffff62ffffff92600060408051611bbc816102d2565b828152826020820152015281811682861611611bf3575b8160405195611be1876102d2565b16855216602084015216604082015290565b93611bd3565b73ffffffffffffffffffffffffffffffffffffffff82511673ffffffffffffffffffffffffffffffffffffffff602084015116808210156101a95762ffffff604073ffffffffffffffffffffffffffffffffffffffff9501511660405191602083019384526040830152606082015260608152611c776080826102ee565b519020604051907fffffffffffffffffffffffffffffffffffffffff00000000000000000000000060208301937fff00000000000000000000000000000000000000000000000000000000000000855260601b16602183015260358201527fe34f199b19b2b4f47f68442619d555527d244f78a3297ea89325f843f87b8b54605582015260558152611d0a6075826102ee565b5190201690565b6000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414611d8657836c0100000000000000000000000011156101755750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b91828085109403938085039414611e4357838211156101a9576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b50809250156101a9570490565b6000919082918260405173ffffffffffffffffffffffffffffffffffffffff60208201937f095ea7b300000000000000000000000000000000000000000000000000000000855216602482015281604482015260448152611eb26064826102ee565b51925af13d15611fb0573d67ffffffffffffffff81116102a35760405190611f0260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601836102ee565b81523d6000602083013e5b81611f79575b5015611f1b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f53410000000000000000000000000000000000000000000000000000000000006044820152fd5b8051801592508215611f8e575b505038611f13565b81925090602091810103126101a9576020611fa9910161111f565b3880611f86565b6060611f0d565b600092918380936040519073ffffffffffffffffffffffffffffffffffffffff60208301947f095ea7b3000000000000000000000000000000000000000000000000000000008652166024830152604482015260448152611eb26064826102ee565b806120245750600090565b906003821115612099576001820180831161198e5760011c825b838210612049575050565b909250826000811561206c575080820490810180911161198e5760011c9061203e565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526012600452fd5b6001915056fea2646970667358221220f90d9f81223e04a2519fa93e3f06cf8ce2bdc9a1e925672c0c62212ab389ed7e64736f6c634300081a003360c0346100c857601f611c3b38819003918201601f19168301916001600160401b038311848410176100cd578084926060946040528339810103126100c857610047816100e3565b906040610056602083016100e3565b9101519163ffffffff831683036100c85760805260008054610100600160a81b03191660089290921b610100600160a81b031691909117905560a052604051611b4390816100f8823960805181818161016a015281816102e801526105fe015260a05181818161034101526105910152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b51906001600160a01b03821682036100c85756fe6080604052600436101561001257600080fd5b60003560e01c80631a48240f146106b85780631f3a0e411461067757806341c0e1b5146105b55780634c2c3b0d146105565780635c60da1b146104a45780635eb512e714610463578063748328001461041e57806383f94db714610296578063890357301461021a578063901c4e4f146101e0578063a41e649c1461018e578063af2697451461011f5763dd009fdc146100ab57600080fd5b3461011a5760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a576100e2610700565b6024359060ff8216820361011a576020916100fc91610a70565b73ffffffffffffffffffffffffffffffffffffffff60405191168152f35b600080fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc33610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57606060025473ffffffffffffffffffffffffffffffffffffffff6003541660ff6040519273ffffffffffffffffffffffffffffffffffffffff8116845260a01c1660208301526040820152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5773ffffffffffffffffffffffffffffffffffffffff6102e2610700565b61030f827f0000000000000000000000000000000000000000000000000000000000000000163314610723565b16807fffffffffffffffffffffffff0000000000000000000000000000000000000000600154161760015563ffffffff7f00000000000000000000000000000000000000000000000000000000000000001642018042116103ef577fc94fd9ff734eca05ae1136d1e6db57d1f5f1b90ccef02700ffbda0967ac4fc2c9163ffffffff6040927fffffffffffffff00000000ffffffffffffffffffffffffffffffffffffffffff78ffffffff0000000000000000000000000000000000000000006000549260a81b1691161780600055835192835260a81c166020820152a1005b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602063ffffffff60005460a81c16604051908152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760206100fc61049f610700565b610814565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760005463ffffffff8160a81c16801515908161054b575b501561052a5750602073ffffffffffffffffffffffffffffffffffffffff6001541673ffffffffffffffffffffffffffffffffffffffff60405191168152f35b73ffffffffffffffffffffffffffffffffffffffff60209160081c166100fc565b9050421015826104ea565b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060405163ffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5761062573ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000163314610723565b60017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0060005416176000557f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a1005b3461011a5760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a57602060ff600054166040519015158152f35b3461011a5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261011a5760043560ff8116810361011a576100fc60209133610a70565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361011a57565b1561072a57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600c60248201527f6e6f7420757067726164657200000000000000000000000000000000000000006044820152fd5b6060810190811067ffffffffffffffff8211176107a457604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107a457604052565b60005463ffffffff8160a81c168015159081610a65575b506109d6575b5061093173ffffffffffffffffffffffffffffffffffffffff60005460081c166108c860405161086081610788565b82604073ffffffffffffffffffffffffffffffffffffffff87169283815260006020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b7fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff6002541660025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b6040517fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602082019260601b16825260006034820152601581526109766035826107d3565b519020604051610e5d80820182811067ffffffffffffffff8211176107a4578291610cb1833903906000f580156109ca5773ffffffffffffffffffffffffffffffffffffffff169060006002556000600355565b6040513d6000823e3d90fd5b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610831565b90504210153861082b565b9060005463ffffffff8160a81c168015159081610ca5575b50610c16575b50610bad73ffffffffffffffffffffffffffffffffffffffff60005460081c16610b27604051610abd81610788565b82604073ffffffffffffffffffffffffffffffffffffffff88169283815260ff88166020820152015273ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006002541617600255565b6002547fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff74ff00000000000000000000000000000000000000008560a01b1691161760025573ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006003541617600355565b7fff00000000000000000000000000000000000000000000000000000000000000604051917fffffffffffffffffffffffffffffffffffffffff000000000000000000000000602084019460601b16845260f81b166034820152601581526109766035826107d3565b60207faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56917fffffffffffffff000000000000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff0060015460081b169116178060005573ffffffffffffffffffffffffffffffffffffffff6040519160081c168152a138610a8e565b905042101538610a8856fe60c0806040523461019557600160005533608052630890357360e41b8152606081600481335afa90811561018957600091829183916100d5575b600180546001600160a01b03199081166001600160a01b0380861691821790935560a08690526002805490921692871692831790915560405160ff86168152600080516020610e1d8339815191529260209291600080516020610e3d833981519152908490a2604051908152a1604051610c6e90816101af8239608051818181610637015281816108d60152610b56015260a051816103e20152f35b91505060603d606011610182575b601f8101601f191682016001600160401b0381118382101761016e5760609183916040528101031261016a576101188161019a565b9060208101519260ff84168403610167575091602091600080516020610e3d833981519152836101596040600080516020610e1d833981519152970161019a565b929392939550505091610039565b80fd5b5080fd5b634e487b7160e01b84526041600452602484fd5b503d6100e3565b6040513d6000823e3d90fd5b600080fd5b51906001600160a01b03821682036101955756fe6080604052600436101561001d575b36610adb5761001b610a95565b005b60003560e01c80630900f010146100cd5780631f3a0e41146100c8578063205c2878146100c35780632e1a7d4d146100be57806341c0e1b5146100b95780634e70b1dc146100b45780635c60da1b146100af5780638da5cb5b146100aa578063c3b35a7e146100a5578063c45a0155146100a05763f3fef3a30361000e5761065b565b6105ec565b6104aa565b610458565b610406565b6103aa565b6102f4565b61025e565b6101aa565b610166565b6100f5565b73ffffffffffffffffffffffffffffffffffffffff8116036100f057565b600080fd5b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05761001b600435610133816100d2565b61015673ffffffffffffffffffffffffffffffffffffffff600254163314610734565b610892565b60009103126100f057565b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060ff60025460a01c166040519015158152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356101e5816100d2565b600080808073ffffffffffffffffffffffffffffffffffffffff6024359561021282600254163314610734565b169485828215610255575bf115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b610821565b506108fc61021d565b346100f05760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f05760025473ffffffffffffffffffffffffffffffffffffffff1660008080806004356102b9338714610734565b8582821561025557f115610250577f7fcf532c15f0a6db0bd6d0e038bea71d30d808c7d98cb3bf7268a95bf5081b65602060405160008152a2005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057740100000000000000000000000000000000000000007fffffffffffffffffffffff00ffffffffffffffffffffffffffffffffffffffff60025461037e73ffffffffffffffffffffffffffffffffffffffff82163314610734565b7f0f8eeedbc400fd6686703559f58d1e6143fdaed533f19a86c93d67a2fe4fb331600080a11617600255005b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405160ff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60015416604051908152f35b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602073ffffffffffffffffffffffffffffffffffffffff60025416604051908152f35b346100f05760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f0576004356104e5816100d2565b602435906104f2826100d2565b6044359161051973ffffffffffffffffffffffffffffffffffffffff600254163314610734565b6002600054146105c257604473ffffffffffffffffffffffffffffffffffffffff916000836020956002835560405197889687957fa9059cbb0000000000000000000000000000000000000000000000000000000087521660048601526024850152165af1801561025057610593575b61001b6001600055565b6105b49060203d6020116105bb575b6105ac8183610799565b810190610ac3565b5038610589565b503d6105a2565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b346100f05760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b346100f05760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126100f057600435610696816100d2565b60025473ffffffffffffffffffffffffffffffffffffffff166024356106bd338314610734565b6002600054146105c25760446020926002600055600073ffffffffffffffffffffffffffffffffffffffff60405196879586947fa9059cbb00000000000000000000000000000000000000000000000000000000865260048601526024850152165af18015610250576105935761001b6001600055565b1561073b57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff8211176107da57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b908160209103126100f0575161081e816100d2565b90565b6040513d6000823e3d90fd5b1561083457565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55560000000000000000000000000000000000000000000000000000000000006044820152fd5b604051907f5c60da1b00000000000000000000000000000000000000000000000000000000825260208260048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561025057600092610a64575b5061092c73ffffffffffffffffffffffffffffffffffffffff8083169316831461082d565b60015473ffffffffffffffffffffffffffffffffffffffff16918214610a60576109918173ffffffffffffffffffffffffffffffffffffffff167fffffffffffffffffffffffff00000000000000000000000000000000000000006001541617600155565b303b156100f0576040517f58b72a0900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff92909216600483015260008260248183305af1908115610250577faf6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b5692610a4092610a45575b5060405173ffffffffffffffffffffffffffffffffffffffff90911681529081906020820190565b0390a1565b80610a546000610a5a93610799565b8061015b565b38610a18565b5050565b610a8791925060203d602011610a8e575b610a7f8183610799565b810190610809565b9038610907565b503d610a75565b6040513481527fe1fffcc4923d04b559f4d29a8bfc6cda04eb5b0d3c460751c2402c5c5cc9109c60203392a2565b908160209103126100f0575180151581036100f05790565b60025460a01c60ff161580610b12575b610af490610bb2565b60015473ffffffffffffffffffffffffffffffffffffffff16610c17565b506040517f1f3a0e4100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa801561025057610af491600091610b93575b50159050610aeb565b610bac915060203d6020116105bb576105ac8183610799565b38610b8a565b15610bb957565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600160248201527f4b000000000000000000000000000000000000000000000000000000000000006044820152fd5b60008091368280378136915af43d6000803e15610c33573d6000f35b3d6000fdfea2646970667358221220f3fe0859a0e7476d4ae3a2c87137789afea874aa95c7ca412caa11406349aa8664736f6c634300081a0033af6aef99514fcb0d4860afcc8614993bb01ffaa339df4c917c46856940131b56416468bb91b91b2da4acfc37ed49064c0d99cb1d3ea6691055ce17e79137b8d4a2646970667358221220938095cedbaeafed2a53f2c6cfff3c34ee2d471517e68c22255053f9471df05f64736f6c634300081a003360e03461011157601f61595e38819003918201601f19168301916001600160401b0383118484101761011657808492606094604052833981010312610111578051906001600160a01b0382168203610111576020810151906001600160a01b038216820361011157604001516001600160a01b038116929083900361011157600160005560a05260805260c052604051615831908161012d82396080518181816103eb015281816104d50152818161188301528181613348015281816143930152614465015260a0518181816105360152818161145a015281816117440152818161225901528181612ca201528181612db201526133a9015260c0518181816101b2015281816103060152610b2e0152f35b600080fd5b634e487b7160e01b600052604160045260246000fdfe6080604052600436101561001257600080fd5b6000803560e01c806316ddc0731461328f5780632800c78f146131cd57806354fd4d501461319357806358b72a09146131575780636e98833d1461120a57806377bad6b514610d4c5780638489f9bf14610c755780638f46487614610c11578063a449d03014610b52578063ac210cc714610ae3578063b39f43621461040f578063d0fb0203146103a0578063de0e9a3e14610293578063e78f84e71461024d578063ea598cb01461013f5763eaa3aa72146100cd57600080fd5b3461013c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c5760406101306101213660048601613c7b565b61012a36613bea565b9061419d565b82519182526020820152f35b80fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761019273ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b61019a6141e8565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166101dd8115156140db565b803b1561024a5781600491604051928380927fd0e30db00000000000000000000000000000000000000000000000000000000082528235905af1801561023f5761022a575b506001905580f35b81610234916137ee565b61013c578038610222565b6040513d84823e3d90fd5b50fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602067ffffffffffffffff60045416604051908152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576102e673ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6102ee6141e8565b8073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000166103318115156140db565b803b1561024a578180916024604051809581937f2e1a7d4d00000000000000000000000000000000000000000000000000000000835260043560048401525af1801561039357610383575b6001815580f35b61038c916137ee565b388161037c565b50604051903d90823e3d90fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b5060407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff8111610adf5761045a903690600401613c7b565b6024356003811015610adb5761048973ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6104916141e8565b604051917f9af1d35a00000000000000000000000000000000000000000000000000000000835260a08360048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa928315610ad0578493610a9f575b50610510838261419d565b93909261051e8585336142c8565b60ff608067ffffffffffffffff6004541693015116947f00000000000000000000000000000000000000000000000000000000000000009361056360ff825110614677565b67ffffffffffffffff60045461058361057c845161429f565b8210614677565b169280610892575067ffffffffffffffff935b885b825160ff82169081101561084d576105b0908461414d565b51906105bf60408301516146dc565b6002811015610820576001036107c25787878b610100850167ffffffffffffffff81511667ffffffffffffffff8103610644575b505090610605929160ff956003614a6b565b501660ff811461061757600101610598565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b915092506106539150886155e0565b9067ffffffffffffffff8216809152600454111561076457610676906004613e8c565b5073ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff825416149081610755575b81610748575b8161072c575b50156106ce5787878b38806105f3565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b67ffffffffffffffff915060058291015460181c1614386106be565b60038101541591506106b8565b600581015460ff1691506106b2565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b60248c7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b8a837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608c8960ff8a51169160405192835260208301526040820152a26001815580f35b9388600186148015610a93575b15610a355760055467ffffffffffffffff81169660ff85511690604051936060850185811067ffffffffffffffff821117610a0857604052610982578352602083019187835260408401918252680100000000000000008110156109db5780600161090f920160055560056145ca565b9390936109af5751916003831015610982578354905191517fffffffffffffffffffffffffffffffffffffffffffff000000000000000000009190911660ff939093169290921760089190911b68ffffffffffffffff00161760489190911b69ff00000000000000000016179055610596565b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b60248d7f4e487b7100000000000000000000000000000000000000000000000000000000815280600452fd5b60248d7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600460248201527f4f434f4d000000000000000000000000000000000000000000000000000000006044820152fd5b5050886002861461089f565b610ac291935060a03d60a011610ac9575b610aba81836137ee565b810190613d6d565b9138610505565b503d610ab0565b6040513d86823e3d90fd5b8280fd5b5080fd5b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000168152f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610b8a613895565b60045467ffffffffffffffff82161015610bb357610ba9602091614638565b6040519015158152f35b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4f490000000000000000000000000000000000000000000000000000000000006044820152fd5b503461013c5760c07ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c576004359067ffffffffffffffff821161013c576040610130610c66366004860161391a565b610c6f36613bea565b906145e2565b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c577f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc486020610cd0613895565b610cf373ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b610cfb6141e8565b6007610d08826004613e8c565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff82541617905567ffffffffffffffff60405191168152a16001815580f35b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57610dd2610d87613895565b6060610100604051610d988161377c565b610da0613dd6565b815285602082015285604082015285838201528560808201528560a08201528560c08201528560e08201520152613e3e565b509060405190610de18261377c565b610dea83613ed8565b8252600783015490602083019160ff81168352604084019460ff8260081c1615158652606085019163ffffffff8160101c168352608086019067ffffffffffffffff8160301c16825267ffffffffffffffff60a088019160701c16815260088301549160c08801928352600a60098501549460e08a019586520194855495610e71876138ac565b96610e7f60405198896137ee565b808852602088019189526020892089925b82841061119b57505050506101008901958652604051998a9960208b52519861012060208c01526101206102a08c019a8c61014073ffffffffffffffffffffffffffffffffffffffff8351169101528c61016073ffffffffffffffffffffffffffffffffffffffff6020840151169101528c6101a062ffffff60206040850151610f1f61018086018251613bae565b01511691015260608101516101c08e015260808101516101e08e015260a081015115156102008e015260c081015115156102208e015260e081015115156102408e015261010081015167ffffffffffffffff166102608e015201516101606102808d015280519a8b90526102c08c019a6020909101908a5b818110611074575050905160ff1660408c01525051151560608a01525163ffffffff1660808901525167ffffffffffffffff90811660a089015290511660c08701525160e086015251610100850152518383037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0016101208501528051808452602093840193909101915b818110611030575050500390f35b919350916020608060019263ffffffff6060885180518452828682015116868501528260408201511660408501520151166060820152019401910191849392611022565b919b600191939495969798999a9b9d506102206020916111858f6101c0905161ffff81511684528581015115158685015260408101511515604085015260608101511515606085015260808101511515608085015260a0810151151560a085015260c0810151151560c085015260e0810151151560e0850152610100810151151561010085015261ffff6101208201511661012085015262ffffff6101408201511661014085015263ffffffff6101608201511661016085015263ffffffff610180820151166101808501526111666101a08201516101a086019063ffffffff60208092828151168552015116910152565b01516101e083019063ffffffff60208092828151168552015116910152565b019c019101918d9c9a9998979695949392610f97565b60409d9495969798999a9c9d516080810181811067ffffffffffffffff821117610a08576001926002926020926040528554815263ffffffff85870154818116858401528181861c16604084015260401c1660608201528152019201930192909c9b999897969594939c610e90565b503461013c5760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57611242613895565b906024359160ff83168303610adf5760207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffbc360112610adf576040516020810181811067ffffffffffffffff82111761312a5760405260443590526112a56141e8565b6040517f8da5cb5b000000000000000000000000000000000000000000000000000000008152602081600481305afa90811561311f5783916130d0575b506112ec82613e3e565b50916112f781614638565b613072576006830180548610156130455784526020842061131b86600a8601614552565b509560405191610100830183811067ffffffffffffffff821117613018576040528683528660208401528660408401528660608401528660808401528660a08401528660c08401528660e0840152600188015463ffffffff8160401c16421015612fba5763ffffffff8160201c164210612f5c5763ffffffff164210612efe576003820281015460ff8160301c1680612ee6575b15612aaf57611441600288015473ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b015416602060ff60058d015460101c16809460405196879283927f5b1b3179000000000000000000000000000000000000000000000000000000008452868860ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa938415612aa4578c94612a6b575b506114a363ffffffff600160038a028901015416614806565b921515911114612a2557806c01000000000000000000000000016c01000000000000000000000000116106175761153792916114ee916c0100000000000000000000000001906149ec565b60208601525b61ffff60038901549161151c8261150d818416866145b7565b048060808a01528d54906142bb565b60c088015260501c16806129f6575b506009880154906142bb565b8060e08501528060c0850151116129eb575b5060c083015197600487015480991061298d5760058701549560ff8760081c1660001461298557955b8873ffffffffffffffffffffffffffffffffffffffff60018a0154169767ffffffffffffffff808460181c16146000146128dd5781928a8a849e62ffffff9360ff915b8c73ffffffffffffffffffffffffffffffffffffffff80600288015497541698602060c0840151930151966040519a6115ed8c613730565b6115f9888b168d613ea8565b60208c015260408b0152166060890152608088015260a0870152818116151560c087015260101c16151560e085015261010084015260081c1661012082015260405162ffffff61012060208301937f802b95df000000000000000000000000000000000000000000000000000000008552611678602485018251613bae565b73ffffffffffffffffffffffffffffffffffffffff602082015116604485015273ffffffffffffffffffffffffffffffffffffffff604082015116606485015273ffffffffffffffffffffffffffffffffffffffff6060820151166084850152608081015160a485015260a081015160c485015260c0810151151560e485015260e08101511515610104850152610100810151610124850152015116610144820152610144815261172b610164826137ee565b519073ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165af4913d156128d5573d9267ffffffffffffffff84116128a857604051936117b460207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601866137ee565b84523d8a602086013e5b15612898576040838051810103126127aa57604060208401519301519280604087015260ff60058a01541660001461288e57611805905b8060c088015260098a0154614161565b600989015561181960c08601518354614161565b825560a08501516127f0575b50614e2061183a60ff60078a015416846145b7565b0460608501526040517fea43b36b00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156127b65789916127c1575b50606085015173ffffffffffffffffffffffffffffffffffffffff604051927fa9059cbb00000000000000000000000000000000000000000000000000000000845216600483015260248201526020816044818c8b5af180156127b657612777575b5060ff7f234549737f22f93fc832ad92234b4a16c08b5e5f40bfb872ec6540904522fc549360809367ffffffffffffffff9363ffffffff6001606060408b01519a0151920154169160405198895260208901526040880152606087015216941692a3600582015467ffffffffffffffff8160181c169467ffffffffffffffff8603611acb575b50505067ffffffffffffffff919250806119c0600360079301546009830154906142bb565b600482015411156119f857015460301c1667ffffffffffffffff81036119e9575b506001815580f35b6119f290615501565b386119e1565b015460301c1667ffffffffffffffff81141580611a2a575b611a1b575b5061037c565b611a2490615501565b38611a15565b50600554811015611a9e57600582527f036b6384b5eca791c62761152d0c79bb0604c104a5fb6f4eb0703f3154bb3db081015460ff166003811015611a7157600114611a10565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b6020611ae5611adf60249497969598613e3e565b50613ed8565b96604051938480927f70a082310000000000000000000000000000000000000000000000000000000082523060048301525afa8015610ad057849061273d575b611b2f92506142bb565b606085015260ff6007820154166004549067ffffffffffffffff8216916801000000000000000081101561271057806001611b6f92016004556004613e8c565b5050611b7c826004613e8c565b509473ffffffffffffffffffffffffffffffffffffffff80885116167fffffffffffffffffffffffff000000000000000000000000000000000000000087541617865573ffffffffffffffffffffffffffffffffffffffff60208801511673ffffffffffffffffffffffffffffffffffffffff6001880191167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416179055604087015180519060028210156126e3577fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff00602060028c015494015160081b16931691161717600287015560608701516003870155608087015160048701556005860160a0880151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008354169116178155611cf860c0890151151582907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e088015181547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff0000161781556101008801517fffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffff6affffffffffffffff00000083549260181b1691161790556101208701518051906801000000000000000082116120bd5760068801548260068a0155808310612662575b506020016006880187526020872087915b8383106122ee57505050507fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff6dffffffffffffffff00000000000060078801937fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0075ffffffffffffffff0000000000000000000000000000807fffffffffffffffffffffffffffffffffffff000000000000000000000000000088549760581b16161694161765ffffffff00004260101b161717161790558291835b61012087015180518210156121555781611e809161414d565b51606081015115801590612148575b6120ea57600a870154680100000000000000008110156120bd57806001611ebf9201600a8a0155600a8901614552565b5050611ece82600a8901614552565b506020820151156120a657611f376001611ef963ffffffff6101608601511663ffffffff42166157e1565b925b019182907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6040820151156120935763ffffffff80611f5a81610180860151168242166157e1565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c081015115801590612086575b61207d575b60a08101511590811561204e575b5015611ff057600101611e67565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e534c00000000000000000000000000000000000000000000000000000000006044820152fd5b6101a001515163ffffffff8116151591508161206d575b501538611fe2565b6380000000915016151538612065565b60019450611fd4565b5060e08101511515611fcf565b63ffffffff808061018085015116611f5a565b611f37600163ffffffff6101608501511692611efb565b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e490000000000000000000000000000000000000000000000000000000000006044820152fd5b5060808101511515611e8f565b50509294919390936121b1575b505060079067ffffffffffffffff927fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df966835606060405160018152876020820152876040820152a29083923861199b565b60206121c060408401516146dc565b73ffffffffffffffffffffffffffffffffffffffff8451169061224073ffffffffffffffffffffffffffffffffffffffff84870151169560e062ffffff86604084015101511691015115159060405197889586957f5b1b31790000000000000000000000000000000000000000000000000000000087526004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9182156122e357859261229d575b50600801558067ffffffffffffffff612162565b929150926020833d6020116122db575b816122ba602093836137ee565b810103126122d7579151919290919067ffffffffffffffff612289565b8480fd5b3d91506122ad565b6040513d87823e3d90fd5b805180518354602083015162ff000090151560101b1661ffff9092167fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000909116171783556040810151151583546060830151151560201b64ff00000000166080840151151560281b60a0850151151560301b60c0860151151560381b60e0870151151560401b90610100880151151560481b9261012089015160501b6bffff0000000000000000000016946101408a015160601b6effffff00000000000000000000000016966101608b015160781b72ffffffff00000000000000000000000000000016986101808c015160981b76ffffffff00000000000000000000000000000000000000169a60181b63ff00000016907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166125fc91907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff000000001617905560200190600301916001019190611dab565b60038181020481036126b65760038381020483036126b657600689018852602088208360030281015b826003028201811061269e575050611d9a565b808a600392558a60018201558a60028201550161268b565b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b6024877f4e487b710000000000000000000000000000000000000000000000000000000081526021600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b50906020813d60201161276f575b81612758602093836137ee565b8101031261276b5790611b2f9151611b25565b8380fd5b3d915061274b565b6020813d6020116127ae575b81612790602093836137ee565b810103126127aa575180151581036127aa575060ff611915565b8880fd5b3d9150612783565b6040513d8b823e3d90fd5b6127e3915060203d6020116127e9575b6127db81836137ee565b810190614273565b386118b3565b503d6127d1565b61280e9062ffffff60c08701519160038702015460601c16906145b7565b60a08501519081156128615761282c63ffffffff9283920442614161565b16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060018301541617600182015538611825565b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526012600452fd5b50611805836117f5565b8251838a821561013c5750602001fd5b60248a7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6060926117be565b9050604051917f70a082310000000000000000000000000000000000000000000000000000000083523060048401526020836024818c5afa801561297a57908a8a8d94938590612939575b8596509e62ffffff9360ff916115b5565b5050509150916020813d602011612972575b81612958602093836137ee565b8101031261296e57918a92918a8a859451612928565b8a80fd5b3d915061294b565b6040513d8d823e3d90fd5b503095611572565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54460000000000000000000000000000000000000000000000000000000000006044820152fd5b60c084015238611549565b612a0761ffff9160808801516145b7565b048060a08701528060c0870151111561152b5760c08601523861152b565b806c01000000000000000000000000016c0100000000000000000000000011610617576115379291612a66916c01000000000000000000000000019061492c565b6114ee565b9093508b8160203d602011612a9d575b602092612a8882846137ee565b5081010312612a995751923861148a565b8b80fd5b503d612a7b565b6040513d8e823e3d90fd5b878452612ac36001600385028401016146e9565b612d0c575b612ad96002600385028401016146e9565b612ae7575b611537906114f4565b835115612bff575b60ff8160401c16600014612be857612b2263ffffffff600789015460101c16600889015490600260038702860101614782565b905b81855111612b8a576115379173ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b0154161060ff60058b015460101c16151503612b7f575b509050612ade565b602086015238612b77565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c550000000000000000000000000000000000000000000000000000000000006044820152fd5b612bf960026003850284010161470e565b90612b24565b6002870154602073ffffffffffffffffffffffffffffffffffffffff89541673ffffffffffffffffffffffffffffffffffffffff60018b01541690612c8960ff60058d015460101c1660405195869485947f0f82d67500000000000000000000000000000000000000000000000000000000865260ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa9081156127b6578991612cda575b508452612aef565b90506020813d602011612d04575b81612cf5602093836137ee565b810103126127aa575138612cd2565b3d9150612ce8565b600287015473ffffffffffffffffffffffffffffffffffffffff88541673ffffffffffffffffffffffffffffffffffffffff60018a015416612d99602060ff60058d015460101c16809560405193849283927f0f82d675000000000000000000000000000000000000000000000000000000008452878960ff62ffffff8460081c1693166004870161456e565b038173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa908115612aa4578c91612eb3575b50875260ff8460381c16600014612e9c57612e1863ffffffff60078c015460101c1660088c015490600160038a02890101614782565b925b8388511115612e3e571515911003612e33575b50612ac8565b602085015238612e2d565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4c4c0000000000000000000000000000000000000000000000000000000000006044820152fd5b612ead60016003880287010161470e565b92612e1a565b90508b8160203d602011612edf575b602092612ecf82846137ee565b5081010312612a99575138612de2565b503d612ec2565b5063ffffffff600160038502840101541615156113af565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f524c0000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f54450000000000000000000000000000000000000000000000000000000000006044820152fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f544c0000000000000000000000000000000000000000000000000000000000006044820152fd5b6024887f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f4e4f0000000000000000000000000000000000000000000000000000000000006044820152fd5b90506020813d602011613117575b816130eb602093836137ee565b81010312610adb575173ffffffffffffffffffffffffffffffffffffffff81168103610adb57386112e2565b3d91506130de565b6040513d85823e3d90fd5b6024847f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b503461013c5760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761318f61382f565b5080f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c57602060405160028152f35b503461013c57807ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5761321f73ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6132276141e8565b7fce65bc44c9caad3bb118ec247275ee69b1ce0e86e3099162ad165bbb3eb3238b602067ffffffffffffffff60045416807fffffffffffffffffffffffffffffffffffffffffffffffff00000000000000006003541617600355604051908152a16001815580f35b5060207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261013c5760043567ffffffffffffffff8111610adf576132da90369060040161391a565b6132fd73ffffffffffffffffffffffffffffffffffffffff600254163314613cfa565b6133056141e8565b6040517f9af1d35a00000000000000000000000000000000000000000000000000000000815260a08160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa90811561311f578391613711575b506133838183614223565b9190926133918385336142c8565b60ff608067ffffffffffffffff6004541693015116907f0000000000000000000000000000000000000000000000000000000000000000936040908151926133d983856137ee565b600184527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08301895b8181106136fa57505061341484614140565b5261341e83614140565b5061342c60ff845110614677565b67ffffffffffffffff60045461344561057c865161429f565b169267ffffffffffffffff95895b825160ff8216908110156136bb5761346b908461414d565b51613478868201516146dc565b60028110156109825760010361365e578888826101008d9401838151168481036134ef575b50509160ff9493916134b0936003614a6b565b501660ff81146134c257600101613453565b60248b7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b91945092506134ff9150896155e0565b908a821680915260045411156136015761351a906004613e8c565b508973ffffffffffffffffffffffffffffffffffffffff60208401511673ffffffffffffffffffffffffffffffffffffffff8354161491826135f2575b826135e5575b826135d2575b5050156135755788888b92388061349d565b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f5300000000000000000000000000000000000000000000000000000000006044820152fd5b8192506005015460181c16148938613563565b600381015415925061355d565b600581015460ff169250613557565b606487517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f434f4900000000000000000000000000000000000000000000000000000000006044820152fd5b606486517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f55520000000000000000000000000000000000000000000000000000000000006044820152fd5b8b837fb8d5128cd9cda2db9057d427ff64975ed6b7fd2fab0d755f0800cf41df96683560608e898b805192600184526020840152820152a26001815580f35b602090613705613dd6565b82828901015201613402565b61372a915060a03d60a011610ac957610aba81836137ee565b38613378565b610140810190811067ffffffffffffffff82111761374d57604052565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b610120810190811067ffffffffffffffff82111761374d57604052565b6040810190811067ffffffffffffffff82111761374d57604052565b6101e0810190811067ffffffffffffffff82111761374d57604052565b60a0810190811067ffffffffffffffff82111761374d57604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff82111761374d57604052565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361385257565b600080fd5b359073ffffffffffffffffffffffffffffffffffffffff8216820361385257565b359062ffffff8216820361385257565b3590811515820361385257565b6004359067ffffffffffffffff8216820361385257565b67ffffffffffffffff811161374d5760051b60200190565b359061ffff8216820361385257565b359063ffffffff8216820361385257565b9190826040910312613852576040516138fc81613799565b602061391581839561390d816138d3565b8552016138d3565b910152565b9190828103926101608412613852576040519061393682613730565b60407fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0839661396484613857565b855261397260208501613857565b602086015201126138525760405161398981613799565b604082013560028110156138525781526139a560608301613878565b602082015260408301526080810135606083015260a081013560808301526139cf60c08201613888565b60a08301526139e060e08201613888565b60c08301526139f26101008201613888565b60e083015261012081013567ffffffffffffffff81168103613852576101008301526101408101359067ffffffffffffffff8211613852570182601f8201121561385257803590613a42826138ac565b93613a5060405195866137ee565b828552602061022081870194028301019181831161385257602001925b828410613a7f57505050506101200152565b6102208483031261385257602061022091604051613a9c816137b5565b613aa5876138c4565b8152613ab2838801613888565b83820152613ac260408801613888565b6040820152613ad360608801613888565b6060820152613ae460808801613888565b6080820152613af560a08801613888565b60a0820152613b0660c08801613888565b60c0820152613b1760e08801613888565b60e0820152613b296101008801613888565b610100820152613b3c61012088016138c4565b610120820152613b4f6101408801613878565b610140820152613b6261016088016138d3565b610160820152613b7561018088016138d3565b610180820152613b89856101a089016138e4565b6101a0820152613b9d856101e089016138e4565b6101c0820152815201930192613a6d565b906002821015613bbb5752565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffdc60a09101126138525760405190613c21826137d2565b8160243560ff8116810361385257815260443560ff8116810361385257602082015260643560ff8116810361385257604082015260843560ff8116810361385257606082015260a4359060ff821682036138525760800152565b9080601f83011215613852578135613c92816138ac565b92613ca060405194856137ee565b81845260208085019260051b820101918383116138525760208201905b838210613ccc57505050505090565b813567ffffffffffffffff811161385257602091613cef8784809488010161391a565b815201910190613cbd565b15613d0157565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600960248201527f6e6f74206f776e657200000000000000000000000000000000000000000000006044820152fd5b519060ff8216820361385257565b908160a091031261385257613dce608060405192613d8a846137d2565b613d9381613d5f565b8452613da160208201613d5f565b6020850152613db260408201613d5f565b6040850152613dc360608201613d5f565b606085015201613d5f565b608082015290565b60405190613de382613730565b6060610120836000815260006020820152604051613e0081613799565b6000815260006020820152604082015260008382015260006080820152600060a0820152600060c0820152600060e082015260006101008201520152565b600454811015613e5d576004600052600b602060002091020190600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b8054821015613e5d57600052600b602060002091020190600090565b6002821015613bbb5752565b90604051613ec181613799565b602063ffffffff8294548181168452821c16910152565b90604051613ee581613730565b6006819373ffffffffffffffffffffffffffffffffffffffff815416835273ffffffffffffffffffffffffffffffffffffffff6001820154166020840152604051613f2f81613799565b62ffffff6002830154613f4560ff821684613ea8565b60081c1660208201526040840152600381015460608401526004810154608084015267ffffffffffffffff600582015460ff8116151560a086015260ff8160081c16151560c086015260ff8160101c16151560e086015260181c1661010084015201908154613fb3816138ac565b92613fc160405194856137ee565b818452602084019060005260206000206000915b838310613fe757505050506101200152565b60036020600192604051613ffa816137b5565b63ffffffff865461ffff8116835260ff8160101c1615158584015260ff8160181c161515604084015260ff81861c161515606084015260ff8160281c161515608084015260ff8160301c16151560a084015260ff8160381c16151560c084015260ff8160401c16151560e084015260ff8160481c16151561010084015261ffff8160501c1661012084015262ffffff8160601c16610140840152818160781c1661016084015260981c166101808201526140b5858701613eb4565b6101a08201526140c760028701613eb4565b6101c0820152815201920192019190613fd5565b156140e257565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600260248201527f57550000000000000000000000000000000000000000000000000000000000006044820152fd5b805115613e5d5760200190565b8051821015613e5d5760209160051b010190565b9190820180921161416e57565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600092918391825b81518410156141e0576141d76001916141d16141cb866141c5898861414d565b516145e2565b92614161565b97614161565b930192946141a5565b949392505050565b6002600054146141f9576002600055565b7f3ee5aeb50000000000000000000000000000000000000000000000000000000060005260046000fd5b919060608301511561426a578061425061424a6142679360ff602081835116920151161b90565b946156a1565b9060ff606081604084015116920151161b906145b7565b90565b50600091508190565b90816020910312613852575173ffffffffffffffffffffffffffffffffffffffff811681036138525790565b67ffffffffffffffff039067ffffffffffffffff821161416e57565b9190820391821161416e57565b916142d38183614161565b34106144f45781158015614422575b5080158015614350575b506142f691614161565b348110614301575050565b60008080936143118294346142bb565b9082908215614346575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57565b6040513d6000823e3d90fd5b6108fc915061431b565b6040517f1db89da100000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561433a5760008481949282949383948491614403575b5083916143f9575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57386142ec565b6108fc91506143d6565b61441c915060203d6020116127e9576127db81836137ee565b386143ce565b6040517febd3cdcd00000000000000000000000000000000000000000000000000000000815260208160048173ffffffffffffffffffffffffffffffffffffffff7f0000000000000000000000000000000000000000000000000000000000000000165afa91821561433a57600085819492829493839484916144d5575b5083916144cb575b73ffffffffffffffffffffffffffffffffffffffff1690f11561433a57386142e2565b6108fc91506144a8565b6144ee915060203d6020116127e9576127db81836137ee565b386144a0565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f46454500000000000000000000000000000000000000000000000000000000006044820152fd5b8054821015613e5d5760005260206000209060011b0190600090565b9373ffffffffffffffffffffffffffffffffffffffff6080948162ffffff9499989561459e8960a081019c613bae565b1660208801521660408601521660608401521515910152565b8181029291811591840414171561416e57565b8054821015613e5d5760005260206000200190600090565b61010081019167ffffffffffffffff808451161461462d57614623611adf61461e6146299567ffffffffffffffff8060045416915116906155e0565b613e3e565b9161564e565b9091565b906146299250614223565b67ffffffffffffffff6003541667ffffffffffffffff82161090811561465c575090565b60ff915061466d6007916004613e8c565b50015460081c1690565b1561467e57565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f544d4f00000000000000000000000000000000000000000000000000000000006044820152fd5b516002811015613bbb5790565b5463ffffffff811615908115916146fe575090565b63ffffffff915060201c16151590565b5463ffffffff61471f818316614806565b9160201c16801561473f579061473761426792614806565b904291615758565b5090565b8181029291600082127f800000000000000000000000000000000000000000000000000000000000000082141661416e57818405149015171561416e57565b54909163ffffffff6147a381614799818616614806565b9460201c16614806565b931660030b916147b38385614743565b91600083820393128184128116908285139015161761416e576c01000000000000000000000000916147e491614743565b05906000828201928312911290801582169115161761416e5761426792615758565b637fffffff81161561492657637f800000811660030b60171d60030b60ff81146148c8576380000000627fffff831660030b826148bd5760011b925b166148b1575b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff810160030b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb70360030b600081126000146148a4576000031b90565b600081131561473f571d90565b60009190910390614848565b628000001792614842565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152600360248201527f4e614e00000000000000000000000000000000000000000000000000000000006044820152fd5b50600090565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff6c010000000000000000000000008209918160601b918280851094039380850394146149df5783821115613852576c01000000000000000000000000829109818060000316809204600281600302188082026002030280820260020302808202600203028082026002030280820260020302809102600203029360018380600003040190848311900302920304170290565b5080925015613852570490565b6000917fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8183099181810293848085109403938085039414614a6157836c01000000000000000000000000111561013c5750906c01000000000000000000000000910990828211900360a01b910360601c1790565b5050505060601c90565b60010180549295939491934263ffffffff169367ffffffffffffffff811692906801000000000000000081101561374d57614ab891614ab1826001879401835582613e8c565b5050613e8c565b5073ffffffffffffffffffffffffffffffffffffffff80875116167fffffffffffffffffffffffff0000000000000000000000000000000000000000825416178155602086019773ffffffffffffffffffffffffffffffffffffffff89511673ffffffffffffffffffffffffffffffffffffffff6001840191167fffffffffffffffffffffffff000000000000000000000000000000000000000082541617905560028201966040810180519889516002811015613bbb5760009a7fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000060ff63ffffff006020865494015160081b1693169116171790556060820151600385015560808201516004850155600584019260a0830151151560ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff008654169116178455614c3960c0840151151585907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff61ff00835492151560081b169116179055565b60e08301805185547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff1690151560101b62ff000016178555936101008401517fffffffffffffffffffffffffffffffffffffffffff0000000000000000ffffff6affffffffffffffff00000083549260181b169116179055600685019a61012084019b8c5190815191680100000000000000008311614f7d578154838355808410615454575b509d9e9d602001908d5260208d208d915b8383106150ad575050505075ffffffffffffffff0000000000000000000000000000906dffffffffffffffff0000000000007fffffffffffffffffffff0000000000000000ffffffffffffffffffffffffffff60078901947fffffffffffffffffffffffffffffffffffff000000000000000000000000ff0060ff875492169116171665ffffffff00004260101b16179160301b16171790558896899a600a86019b5b8d518051821015614fb75781614da89161414d565b51606081015115801590614faa575b6120ea578d5468010000000000000000811015614f7d578c8f8f92614dee91614de7826001899401835582614552565b5050614552565b50602084015190929015614f6657614e546001614e1663ffffffff61016088015116856157e1565b945b019384907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b50604083015115614f525763ffffffff614e7781928261018087015116906157e1565b7fffffffffffffffffffffffffffffffffffffffff00000000ffffffffffffffff6bffffffff000000000000000085549260401b1691161780845560201c16167fffffffffffffffffffffffffffffffffffffffffffffffffffffffff0000000082541617905560c081015115801590614f45575b614f3c575b60a081015115908115614f0d575b5015611ff057600101614d93565b6101a001515163ffffffff81161515915081614f2c575b501538614eff565b6380000000915016151538614f24565b60019a50614ef1565b5060e08101511515614eec565b5063ffffffff808061018085015116614e77565b614e54600163ffffffff6101608701511694614e18565b60248e7f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b5060808101511515614db7565b5050939792969b50939750939850614fd3575b50505050505050565b73ffffffffffffffffffffffffffffffffffffffff60209461504462ffffff878480614fff8a516146dc565b955116965116975101511697511515604051988997889687957f5b1b31790000000000000000000000000000000000000000000000000000000087526004870161456e565b0392165afa9283156150a1578093615069575b50506008015538808080808080614fca565b909192506020823d602011615099575b81615086602093836137ee565b8101031261013c57505190600838615057565b3d9150615079565b604051903d90823e3d90fd5b9e9f9e8051805161ffff1683547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000016178355602081015115156151219084907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ffff62ff0000835492151560101b169116179055565b6040810151151583546060830151151560201b64ff00000000166080840151151560281b60a0850151151560301b60c0860151151560381b60e0870151151560401b90610100880151151560481b9261012089015160501b6bffff0000000000000000000016946101408a015160601b6effffff00000000000000000000000016966101608b015160781b72ffffffff00000000000000000000000000000016986101808c015160981b76ffffffff00000000000000000000000000000000000000169a60181b63ff00000016907fffffffffffffffffffffffffffffffffffffffffffffffffffff000000ffffff16177fffffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffff16177fffffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffff169065ff000000000016177fffffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffff169066ff00000000000016177fffffffffffffffffffffffffffffffffffffffffffff00ffffffffffffffffff169067ff0000000000000016177fffffffffffffffffffffffffffffffffffffffff0000ffffffffffffffffffff169068ff000000000000000016177fffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffff169069ff00000000000000000016177fffffffffffffffffffffffffff00000000ffffffffffffffffffffffffffffff16177fffffffffffffffffff00000000ffffffffffffffffffffffffffffffffffffff161717178355600183016101a0820151805163ffffffff1663ffffffff1682547fffffffffffffffffffffffffffffffffffffffffffffffffffffffff00000000161782556020015163ffffffff166153eb91907fffffffffffffffffffffffffffffffffffffffffffffffff00000000ffffffff67ffffffff0000000083549260201b169116179055565b6101c0015180516002840180546020938401517fffffffffffffffffffffffffffffffffffffffffffffffff000000000000000090911663ffffffff909316929092179190921b67ffffffff0000000016179055602001906003019160010191909f9e9f614cf0565b806003029060038204036154d457836003026003810485036154a6578f90848252602082209283019201905b82821061548e575050614cdf565b8082556001820181905560028201556003018f615480565b5060248f7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b60248f7f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b61550c9060056145ca565b505467ffffffffffffffff60ff818360081c169260481c161667ffffffffffffffff8216019067ffffffffffffffff821161416e5767ffffffffffffffff91909116906004905b8267ffffffffffffffff82161061556957505050565b600181600761558167ffffffffffffffff9486613e8c565b50016101007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00ff8254161790557f74a075ee230588b5c76ea493a6d21b086384f29139b7227b9c6329e66106dc4860206040518584168152a10116615553565b60009067800000000000000083166155f757505090565b67ffffffffffffffff677fffffffffffffff9116019067ffffffffffffffff821161562157501690565b807f4e487b7100000000000000000000000000000000000000000000000000000000602492526011600452fd5b90929192606082015115615695579061569061568a6156848461567e6142679660ff602081835116920151161b90565b97614223565b90614161565b916156a1565b6145b7565b50509050600090600090565b600091825b6101208301518051851015615751576101206156c58661ffff9361414d565b51015116906000826156ee575061012091506156e46001918290614161565b94019390506156a6565b5061ffff615701818481041693846145b7565b10615716575b6156e461012092600192614161565b6001820180921115615707577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b5092509050565b909182818302019282156157b25783038290050361577f5750600081136142675750600090565b6000121590506157ad577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff90565b600090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b9063ffffffff8091169116019063ffffffff821161416e5756fea2646970667358221220c5c34d008c6c3283613ab5d5efc3e17730dc53209bf32ae81a08f15ae3ae00cf64736f6c634300081a003360806040523461034757610f08803803806100198161034c565b9283398101906060818303126103475780516001600160401b0381116103475782610045918301610371565b60208201519092906001600160401b03811161034757604091610069918401610371565b91015160ff81168091036103475782516001600160401b03811161025257600054600181811c9116801561033d575b602082101461023257601f81116102d9575b506020601f82116001146102735781929394600092610268575b50508160011b916000199060031b1c1916176000555b81516001600160401b03811161025257600154600181811c91168015610248575b602082101461023257601f81116101cd575b50602092601f8211600114610168579281929360009261015d575b50508160011b916000199060031b1c1916176001555b60ff1960025416176002556000600355604051610b2b90816103dd8239f35b015190503880610128565b601f198216936001600052806000209160005b8681106101b5575083600195961061019c575b505050811b0160015561013e565b015160001960f88460031b161c1916905538808061018e565b9192602060018192868501518155019401920161017b565b60016000527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf6601f830160051c81019160208410610228575b601f0160051c01905b81811061021c575061010d565b6000815560010161020f565b9091508190610206565b634e487b7160e01b600052602260045260246000fd5b90607f16906100fb565b634e487b7160e01b600052604160045260246000fd5b0151905038806100c4565b601f1982169060008052806000209160005b8181106102c1575095836001959697106102a8575b505050811b016000556100da565b015160001960f88460031b161c1916905538808061029a565b9192602060018192868b015181550194019201610285565b600080527f290decd9548b62a8d60345a988386fc84ba6bc95484008f6362f93160ef3e563601f830160051c81019160208410610333575b601f0160051c01905b81811061032757506100aa565b6000815560010161031a565b9091508190610311565b90607f1690610098565b600080fd5b6040519190601f01601f191682016001600160401b0381118382101761025257604052565b81601f82011215610347578051906001600160401b038211610252576103a0601f8301601f191660200161034c565b92828452602083830101116103475760005b8281106103c757505060206000918301015290565b806020809284010151828287010152016103b256fe6080604052600436101561001257600080fd5b60003560e01c806306fdde03146107d9578063095ea7b31461073257806318160ddd146106f657806323b872dd14610549578063313ce5671461050a57806340c10f191461046f57806342966c68146103dd57806370a082311461037857806395d89b411461017a578063a9059cbb1461012a5763dd62ed3e1461009557600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576100cc610961565b73ffffffffffffffffffffffffffffffffffffffff6100e9610984565b9116600052600560205273ffffffffffffffffffffffffffffffffffffffff604060002091166000526020526020604060002054604051908152f35b600080fd5b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020610170610166610961565b60243590336109f0565b6040519015158152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576000604051908091600154928360011c6001851694851561036e575b6020821086146103415783949582855290816000146102e15750600114610268575b5003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b0390f35b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526041600452fd5b600185528491507fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf65b8183106102c557505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b6020919350806001915483858801015201910190918392610291565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660208581019190915291151560051b840190910191507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe090506101e7565b6024857f4e487b710000000000000000000000000000000000000000000000000000000081526022600452fd5b90607f16906101c5565b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255773ffffffffffffffffffffffffffffffffffffffff6103c4610961565b1660005260046020526020604060002054604051908152f35b346101255760207ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557600435336000526004602052806040600020541061012557336000526004602052604060002061043d8282546109a7565b905560405190815230907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203392a3005b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576104a6610961565b73ffffffffffffffffffffffffffffffffffffffff60243591169081600052600460205260406000206104da8282546109e3565b90556040519081527fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60203092a3005b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557602060ff60025416604051908152f35b346101255760607ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610580610961565b610588610984565b6044359073ffffffffffffffffffffffffffffffffffffffff83168033036105b8575b60206101708484876109f0565b9190826000526005602052604060002073ffffffffffffffffffffffffffffffffffffffff3316600052602052604060002054821161069857602093836101709460005260058652604060002073ffffffffffffffffffffffffffffffffffffffff331660005286527fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff60406000205403610658575b50935090916105ab565b60005260058552604060002073ffffffffffffffffffffffffffffffffffffffff3316600052855260406000206106908482546109a7565b90558561064e565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601660248201527f496e73756666696369656e7420616c6c6f77616e6365000000000000000000006044820152fd5b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc360112610125576020600354604051908152f35b346101255760407ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc36011261012557610769610961565b73ffffffffffffffffffffffffffffffffffffffff6024359133600052600560205260406000208282166000526020528260406000205560405192835216907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560203392a3602060405160018152f35b346101255760007ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc3601126101255760006040519080918154928360011c600185169485156108ef575b6020821086146103415783949582855290816000146102e15750600114610894575003601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101761023b576102379250604052604051918291826108f9565b848052602085208592505b8183106108d357505081016020017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe06101e7565b602091935080600191548385880101520191019091839261089f565b90607f1690610823565b9190916020815282519283602083015260005b84811061094b5750507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f8460006040809697860101520116010190565b806020809284010151604082860101520161090c565b6004359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b6024359073ffffffffffffffffffffffffffffffffffffffff8216820361012557565b919082039182116109b457565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b919082018092116109b457565b73ffffffffffffffffffffffffffffffffffffffff16908160005260046020528260406000205410610a9757602073ffffffffffffffffffffffffffffffffffffffff7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef9284600052600483526040600020610a6d8782546109a7565b9055169384600052600482526040600020610a898282546109e3565b9055604051908152a3600190565b60646040517f08c379a000000000000000000000000000000000000000000000000000000000815260206004820152601460248201527f496e73756666696369656e742062616c616e63650000000000000000000000006044820152fdfea2646970667358221220472f407fc0858ded9b293b6382ecaf1afb5ec7358156e27805218e8502cabed164736f6c634300081a0033a26469706673582212209bd955e45c4f7a85fa0381c0ad96a4fd56ad19f080f79b0d445717d616b71d9364736f6c634300081a0033","sourceMap":"1964:3528:94:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;429:19;1964:3528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1016:26:13;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;2005:33;1964:3528;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;3210:7:86;1964:3528:94;;;;;;;;;;;;3254:12:86;;;;1964:3528:94;3254:12:86;;;;;;;;;3302:10;1964:3528:94;;;3254:12:86;;;1964:3528:94;3290:10:86;;;3302;3290;;;:::i;:::-;3302;;:::i;:::-;1964:3528:94;;;3302:10:86;:::i;3254:12::-;3302:10;3254:12;;;;;1964:3528:94;3254:12:86;1964:3528:94;3254:12:86;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;2421:18:6;1964:3528:94;;;;;;;2421:18:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1081:52:86;;:::i;1964:3528:94:-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;4516:4:86;1964:3528:94;;;;;4516:13:86;1964:3528:94;4516:13:86;;1964:3528:94;4516:13:86;1964:3528:94;4516:13:86;;;;;;;;;1964:3528:94;1586:88:87;1964:3528:94;;;;;4516:13:86;;;1964:3528:94;-1:-1:-1;1964:3528:94;;;;;4496:33:86;1964:3528:94;;817:10:46;4496:93:86;;1964:3528:94;;1586:88:87;;:::i;:::-;1964:3528:94;;;;;;4496:93:86;997:49:46;4496:93:86;;;4516:13;;;;;;;;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;1964:3528:94;;;;;;;;;;;;;;799:17:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;2044:32;1964:3528;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;4078:8:86;1590:14:0;139:16:68;;1964:3528:94;;;3784:43:86;;;;;4078:33;;;;;;4134;;;;;;;4177:81;;4134:33;1964:3528:94;;;;;;;;;6030:13:87;;1964:3528:94;6030:13:87;1964:3528:94;6030:13:87;;;;;;;;1964:3528:94;;;;6030:13:87;;;4134:33:86;1964:3528:94;;;;;;6083:13:87;;1964:3528:94;6083:13:87;1964:3528:94;6083:13:87;;;;;;;;1964:3528:94;;;;6083:13:87;;;4134:33:86;1964:3528:94;;6107:40:87;;;;;;1964:3528:94;;;6107:40:87;;1964:3528:94;;6127:4:87;1964:3528:94;6107:40:87;;1964:3528:94;;;;;;;;;;;;6107:40:87;1964:3528:94;;;6107:40:87;;;;;;;;;4134:33:86;1964:3528:94;;;;6157:43:87;;1964:3528:94;6157:43:87;;1964:3528:94;6157:43:87;;1964:3528:94;;;;;;;;;;;6157:43:87;1964:3528:94;;;6157:43:87;;;;;;;;;4134:33:86;6251:40:87;;;;;;1964:3528:94;;;6251:40:87;;1964:3528:94;;6127:4:87;1964:3528:94;6251:40:87;;1964:3528:94;;;;;;;;;;;;6251:40:87;1964:3528:94;;;6251:40:87;;;;;;;;;4134:33:86;1964:3528:94;;;;6301:43:87;;1964:3528:94;6301:43:87;;1964:3528:94;6301:43:87;;1964:3528:94;;;;;;;;;;;6301:43:87;1964:3528:94;;;6301:43:87;;;;;;;;;4134:33:86;1964:3528:94;;;6856:18:87;1964:3528:94;6856:18:87;;1964:3528:94;6856:18:87;1964:3528:94;6856:18:87;;;;;;;;;1964:3528:94;;6856:18:87;;;4134:33:86;6892:25:87;;;;6935;6892;;:::i;:::-;6935;;:::i;:::-;7093:10;;;;7117:23;7113:214;;4134:33:86;1964:3528:94;;;;;;7478:10:87;;;;1964:3528:94;7478:10:87;;;;;;;;;1964:3528:94;;7478:10:87;;;4134:33:86;1964:3528:94;;;;;;;:::i;:::-;139:16:68;;1964:3528:94;7392:194:87;;139:16:68;;;1964:3528:94;7392:194:87;;1964:3528:94;;;402:16:68;;1964:3528:94;7392:194:87;;1964:3528:94;;;;;;7392:194:87;;1964:3528:94;;;;;139:16:68;7392:194:87;;139:16:68;;;7392:194:87;;;139:16:68;;;1964:3528:94;7392:194:87;;1964:3528:94;;;139:16:68;;7392:194:87;;;1964:3528:94;;;139:16:68;;7392:194:87;;;1964:3528:94;;;139:16:68;;7392:194:87;;;7561:15;;139:16:68;;1964:3528:94;;7637:17:87;1964:3528:94;7637:17:87;;1964:3528:94;;;;7637:17:87;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:87;;;;1250:42:71;1964:3528:94;7637:17:87;;;;;;1964:3528:94;;;;;;;;;7637:17:87;;4134:33:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;7637:17:87;;;;;;1964:3528:94;7637:17:87;;1964:3528:94;7637:17:87;;;;;;1964:3528:94;7637:17:87;;;:::i;:::-;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:87;;;1964:3528:94;;7637:17:87;;;;;-1:-1:-1;7637:17:87;;7478:10;;;;;1964:3528:94;7478:10:87;1964:3528:94;7478:10:87;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;;7113:214;6127:4;;-1:-1:-1;7113:214:87;;6856:18;;;1964:3528:94;6856:18:87;;1964:3528:94;6856:18:87;;;;;;1964:3528:94;6856:18:87;;;:::i;:::-;;;1964:3528:94;;;;6892:25:87;1964:3528:94;6935:25:87;1964:3528:94;;:::i;:::-;6856:18:87;;;;;;;-1:-1:-1;6856:18:87;;6301:43;1964:3528:94;6301:43:87;;1964:3528:94;6301:43:87;;;;;;1964:3528:94;6301:43:87;;;:::i;:::-;;;1964:3528:94;;;;;;;:::i;:::-;6301:43:87;;;;;-1:-1:-1;6301:43:87;;6251:40;1964:3528:94;;6251:40:87;;;:::i;:::-;1964:3528:94;;;;6251:40:87;;;6157:43;1964:3528:94;6157:43:87;;1964:3528:94;6157:43:87;;;;;;1964:3528:94;6157:43:87;;;:::i;:::-;;;1964:3528:94;;;;;;;:::i;:::-;6157:43:87;;;;;-1:-1:-1;6157:43:87;;6107:40;1964:3528:94;;6107:40:87;;;:::i;:::-;1964:3528:94;;;;6107:40:87;;;6083:13;;;;1964:3528:94;6083:13:87;1964:3528:94;6083:13:87;;;;;;;:::i;:::-;;;;6030;;;;1964:3528:94;6030:13:87;1964:3528:94;6030:13:87;;;;;;;:::i;:::-;;;;4177:81:86;4213:6;;;;;;;:::i;:::-;4241;;;;:::i;:::-;4177:81;;;;4134:33;;;;;;4078;;;;;1964:3528:94;;;;;;;;;;;;;;959:21:86;1964:3528:94;;;;;;;;;;;;;;;;;;;2874:17:87;1964:3528:94;;:::i;:::-;;5093:4:86;1964:3528:94;;2874:17:87;:::i;1964:3528:94:-;;;;;;;;;;;;;;1193:20:86;;;;;;;;;;;;;;;;;;;1964:3528:94;;;1193:20:86;;;;;1964:3528:94;;;;;:::i;:::-;4671:3:81;1964:3528:94;;4701:2:81;4895:121;;;1964:3528:94;4762:3:81;1964:3528:94;4895:121:81;;1964:3528:94;4790:2:81;4895:121;;;1964:3528:94;4825:2:81;4895:121;;;1964:3528:94;;;;;;:::i;:::-;4671:3:81;1964:3528:94;;4701:2:81;4895:121;5066;;1964:3528:94;4762:3:81;1964:3528:94;5066:121:81;;1964:3528:94;4790:2:81;4895:121;5066;;1964:3528:94;4825:2:81;4895:121;5066;;1964:3528:94;;;;;;;:::i;:::-;4248:11:81;402:16:68;;4344:11:81;4895:121;5238:241;;402:16:68;4436:2:81;1964:3528:94;5238:241:81;;1964:3528:94;4517:3:81;4895:121;5238:241;;1964:3528:94;4895:121:81;5238:241;;139:16:68;1964:3528:94;5238:241:81;;139:16:68;3770:10:81;5238:241;;;139:16:68;3770:10:81;1964:3528:94;5238:241:81;;139:16:68;3770:10:81;5238:241;;;139:16:68;3770:10:81;5238:241;;;139:16:68;3770:10:81;5238:241;;;139:16:68;1964:3528:94;;5496:20:81;;;;;;;;;1193::86;5496::81;;;;;;;;;;;;;:::i;:::-;;1964:3528:94;;;5496:20:81;;;;;1964:3528:94;1188:59:86;1964:3528:94;;1188:59:86;:::i;5496:20:81:-;1964:3528:94;;;;;;;4790:2:81;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2163:29;1964:3528;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;2273:18:6;1964:3528:94;;;;:::i;:::-;;;;;;;:::i;:::-;;;;2273:18:6;1964:3528:94;;-1:-1:-1;2273:18:6;-1:-1:-1;;1964:3528:94;2273:18:6;-1:-1:-1;;1964:3528:94;-1:-1:-1;;;1964:3528:94;;;;;;;;;2273:18:6;1964:3528:94;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;2273:18:6;1964:3528:94;;;;;;;;;;;;;;2273:18:6;1964:3528:94;2273:18:6;;;1964:3528:94;;;;;;;;2273:18:6;1964:3528:94;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1964:3528:94;;;-1:-1:-1;2273:18:6;1964:3528:94;;-1:-1:-1;;;1964:3528:94;;;;;;-1:-1:-1;;1964:3528:94;;2273:18:6;1964:3528:94;;;;;;;2273:18:6;1964:3528:94;;;;;;;;;;;;;;;;;2273:18:6;1964:3528:94;;;;;;;;;;;;;;;;;;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;;1964:3528:94;;;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;822:21:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;3789:5;1964:3528;;;;;3803:21;1964:3528;;;;;;;;:::i;:::-;;;139:16:68;;3789:54:94;;;;;1964:3528;;3789:54;1964:3528;3789:54;;1964:3528;3789:54;;1964:3528;;;1590:14:0;;;;;;;;1964:3528:94;;3789:54;1964:3528;;;;;;3789:54;;;;;;;;;1964:3528;;;;3789:54;1964:3528;;3789:54;;;:::i;:::-;1964:3528;;;;3789:54;;;1964:3528;;;;;;;;;;;;3190:18:6;1964:3528:94;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;3190:18:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;139:16:68;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;139:16:68;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;3912:5;1964:3528;;;;;3926:20;1964:3528;;;;;;;;;;:::i;:::-;;;;;;;;;;;;2707:18:6;1964:3528:94;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;2707:18:6;-1:-1:-1;;1964:3528:94;;-1:-1:-1;;1964:3528:94;-1:-1:-1;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1964:3528:94;;;-1:-1:-1;1964:3528:94;;;-1:-1:-1;;;1964:3528:94;;;;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;;;;;;;;;;;;;;;;;;2874:17:87;3114:12:86;;:::i;2874:17:87:-;1964:3528:94;;;;;;;;:::i;:::-;5093:4:86;1590:14:0;;;1964:3528:94;1590:14:0;;;1964:3528:94;4867:28;;;;1964:3528;;4867:28;1964:3528;4867:28;;1964:3528;;4867:28;;1590:14:0;1964:3528:94;;1590:14:0;1964:3528:94;;1590:14:0;;;;;;:::i;:::-;4867:28:94;1964:3528;;;;4867:28;;;;;;;;1964:3528;;;4998:5;1964:3528;;;;1590:14:0;5012:15:94;1590:14:0;1964:3528:94;;;;;;;;;:::i;:::-;;;139:16:68;;4998:48:94;;;;;1964:3528;;4998:48;1964:3528;4998:48;;1964:3528;4998:48;;1964:3528;;;1590:14:0;;;;;;;;1964:3528:94;;4998:48;1964:3528;;;;;;4998:48;;;;;;;;;1964:3528;-1:-1:-1;1964:3528:94;;;5056:24;;1964:3528;;;;:::i;:::-;;1590:14:0;;;1964:3528:94;1590:14:0;;;5056:24:94;:::i;:::-;1222:159:16;1590:14:0;1964:3528:94;5103:8;1590:14:0;139:16:68;;1964:3528:94;;;6787:40:16;;1964:3528:94;6787:40:16;;;1964:3528:94;;1590:14:0;6787:40:16;;1964:3528:94;1590:14:0;6787:40:16;;;1590:14:0;6787:40:16;;:::i;:::-;1222:159;1964:3528:94;;1222:159:16;;591:42;1222:159;;-1:-1:-1;1964:3528:94;;;5122:30;;1964:3528;;;;:::i;:::-;1590:14:0;;;;1964:3528:94;1590:14:0;;;5122:30:94;:::i;:::-;5162:21;1964:3528;5175:7;;:::i;:::-;1964:3528;5162:21;:::i;:::-;1964:3528;5247:12;;:::i;:::-;1964:3528;;5260:5;1590:14:0;;1964:3528:94;1590:14:0;;;;5260:5:94;1590:14:0;;;;;;;1964:3528:94;5266:5;5383:22;1590:14:0;;2874:17:87;1964:3528:94;;5093:4:86;1964:3528:94;;2874:17:87;:::i;:::-;1964:3528:94;;;5348:25;;1964:3528;;;;:::i;:::-;1590:14:0;;;;1964:3528:94;1590:14:0;;;5348:25:94;:::i;5383:22::-;1964:3528;4998:5;1964:3528;;;;1590:14:0;5012:15:94;1590:14:0;1964:3528:94;;;;;;;;;:::i;1590:14:0:-;1964:3528:94;;;;;;;1590:14:0;1964:3528:94;;;4998:48;1964:3528;;4998:48;;;:::i;:::-;1964:3528;;;;4998:48;;;4867:28;1964:3528;;4867:28;;;:::i;:::-;1964:3528;;;;4867:28;;;1964:3528;;;;;;;;;;;;;;2123:34;1964:3528;;;;;;;;;;;;;;;;;;;;;;;;986:20:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;2883:26:6;1964:3528:94;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;2883:26:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;:::i;:::-;;;;;139:16:68;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;139:16:68;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2082:35;1964:3528;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;;:::i;:::-;;;:::i;:::-;;;;;;;;;;;;1586:88:87;1964:3528:94;;;;;4823:4:86;1964:3528:94;;1586:88:87;:::i;1964:3528:94:-;;;;;;;;;;;;;;;;3038:18:6;1964:3528:94;;;;;;;3038:18:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3331:16:6;1964:3528:94;;;;;;;3331:16:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2874:17:87;3114:12:86;;:::i;1964:3528:94:-;;;;;;;;;;;;3485:19:6;1964:3528:94;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;;;3485:19:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;139:16:68;;1964:3528:94;;;;;;;;;:::i;:::-;;;;;;;;:::i;:::-;;;;;;;-1:-1:-1;;;1964:3528:94;;-1:-1:-1;;1964:3528:94;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;139:16:68;1964:3528:94;;;;;;;;;;;;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;-1:-1:-1;;;1964:3528:94;;;-1:-1:-1;1964:3528:94;;;-1:-1:-1;;;1964:3528:94;;;;;;-1:-1:-1;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;2563:16:6;1964:3528:94;;;;;;;2563:16:6;1964:3528:94;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;767:26:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;875:21:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;502:335;;:::i;:::-;581:34;1964:3528;;;;;;;;581:34;;;;1964:3528;581:34;;609:4;1964:3528;581:34;;1964:3528;;;581:34;;;;;;;;1964:3528;;581:34;;;1964:3528;;;;566:50;1964:3528;;;;;;;;;566:50;1964:3528;;663:4;1964:3528;;;;;;663:15;;1964:3528;663:15;1964:3528;663:15;;;;;;;;1964:3528;;663:15;;;1964:3528;657:21;;;;:::i;:::-;1964:3528;647:7;1964:3528;;647:7;1964:3528;;;;;688:37;;;;;1964:3528;;;688:37;;1964:3528;;;;;;;;;;688:37;;1964:3528;;;;;;;;;;;;;;;;688:37;1964:3528;;;688:37;;;;;;;;;1964:3528;;;;;;;;;771:14;;1964:3528;771:14;1964:3528;771:14;;;;;;;;1964:3528;;771:14;;;1964:3528;765:20;;;;:::i;:::-;1964:3528;647:7;1964:3528;;647:7;1964:3528;;;;;;566:50;1964:3528;;;;795:35;;;;;;1964:3528;;;795:35;;1964:3528;;;;;;;795:35;;1964:3528;;;;;;;;;;;;;;;;795:35;1964:3528;;;795:35;;;;;;;;;1964:3528;;;663:4;1964:3528;;;;;2307:15;;1964:3528;2307:15;1964:3528;2307:15;;;;;;;;1964:3528;;2307:15;;;1964:3528;2303:19;;;;:::i;:::-;1964:3528;2291:9;1964:3528;;2291:9;1964:3528;;;;;;2270:52;1964:3528;;;;;;;;;2368:14;;;;1964:3528;2368:14;;;;;;;;1964:3528;;2368:14;;;1964:3528;2364:18;;;;:::i;:::-;1964:3528;2291:9;1964:3528;;2291:9;1964:3528;;;;;2332:50;1964:3528;;566:50;1964:3528;;;;2392:45;;;;;;1964:3528;;;2392:45;;1964:3528;;;;;;;2392:45;;1964:3528;;;;;;;;;;;;;;;;2392:45;1964:3528;;;2392:45;;;;;;;;;1964:3528;;;;;;;566:50;1964:3528;;;;2332:50;1964:3528;2447:43;;;;;1964:3528;;;2447:43;;1964:3528;;;;;;;2447:43;;1964:3528;;;;;;;;;;;;;;;;2447:43;1964:3528;;;2447:43;;;;;;;;;1964:3528;2563:16;;;:::i;:::-;317::68;2589:11:94;;;:::i;:::-;;317:16:68;402;2634:19:94;:11;;;:::i;:::-;;:19;402:16:68;2577:1:94;2680:23;:11;;;:::i;:::-;;:23;402:16:68;1964:3528:94;;;;;;;;2745:14;;1964:3528;2745:14;1964:3528;2745:14;;;;;;;;1964:3528;;2745:14;;;1964:3528;2741:18;;;;:::i;:::-;1964:3528;663:4;1964:3528;;663:4;1964:3528;;;;;2762:2;2943:3;402:16:68;;1964:3528:94;663:4;1964:3528;;;;;;;;;:::i;:::-;2577:1;402:16:68;;2922:3:94;1964:3528;2896:30;;402:16:68;1964:3528:94;;;;;;:::i;:::-;139:16:68;;1964:3528:94;2811:210;;139:16:68;1964:3528:94;2811:210;;139:16:68;2811:210:94;;;;139:16:68;402;2811:210:94;;;139:16:68;1964:3528:94;;2680:23;2811:210;;402:16:68;1964:3528:94;;2811:210;;;402:16:68;1964:3528:94;;;2811:210;;402:16:68;139;2811:210:94;;;139:16:68;2811:210:94;;;139:16:68;1964:3528:94;566:50;1964:3528;;;;;;;;3055:21;;1964:3528;3055:21;1964:3528;3055:21;;;;;;;;139:16:68;1964:3528:94;;;3055:21;;;1964:3528;;;139:16:68;3031:45:94;139:16:68;;;3031:45:94;139:16:68;3086:26:94;;;;;1964:3528;;3086:26;;1964:3528;3086:26;;1964:3528;;3086:26;1964:3528;;3086:26;1964:3528;3086:26;;;:::i;:::-;;1964:3528;;;3086:26;;;;;;;;;1964:3528;3167:16;;;:::i;:::-;317::68;3193:11:94;;;:::i;:::-;;317:16:68;402;2634:19:94;3238:11;;;:::i;:::-;;:19;402:16:68;2577:1:94;2680:23;3284:11;;;:::i;:::-;;:23;402:16:68;1964:3528:94;663:4;1964:3528;;;;;;3341:15;;1964:3528;3341:15;1964:3528;3341:15;;;;;;;;1964:3528;;3341:15;;;1964:3528;3337:19;;;;:::i;:::-;1964:3528;663:4;1964:3528;;663:4;1964:3528;;;;;2762:2;2943:3;402:16:68;;1964:3528:94;;;;;402:16:68;139;2680:23:94;139:16:68;1964:3528:94;;;;;;;;:::i;:::-;2577:1;402:16:68;;1964:3528:94;3477:30;;402:16:68;1964:3528:94;;;;;;:::i;:::-;139:16:68;;1964:3528:94;3392:209;;139:16:68;1964:3528:94;3392:209;;139:16:68;3392:209:94;2811:210;3392:209;;139:16:68;402;2811:210:94;3392:209;;139:16:68;2577:1:94;2680:23;3392:209;;402:16:68;1964:3528:94;;2811:210;3392:209;;402:16:68;1964:3528:94;;;3392:209;;402:16:68;139;2811:210:94;3392:209;;139:16:68;2811:210:94;3392:209;;139:16:68;1964:3528:94;566:50;1964:3528;;;;;;;;3634:21;;1964:3528;3634:21;1964:3528;3634:21;;;;;;;;;1964:3528;;3634:21;;;1964:3528;139:16:68;;;3031:45:94;139:16:68;;1964:3528:94;139:16:68;;;;;3031:45:94;139:16:68;3665:26:94;;;;;1964:3528;;3665:26;;1964:3528;3665:26;;1964:3528;;3665:26;1964:3528;;3665:26;1964:3528;3665:26;;;:::i;:::-;;1964:3528;;;3665:26;;;;;;;;;1964:3528;4132:16;;;:::i;:::-;317::68;4158:11:94;;;:::i;:::-;;317:16:68;402;2634:19:94;4203:11;;;:::i;:::-;;:19;402:16:68;4281:8:94;1590:14:0;;2680:23:94;139:16:68;;;1964:3528:94;;;;;4303:10;4281:58;402:16:68;4249:19:94;:11;;;:::i;:::-;;:19;;402:16:68;;;;1964:3528:94;4398:6;1964:3528;;;;;;4438:16;;1964:3528;4438:16;1964:3528;4438:16;;;;;;;;1964:3528;;4438:16;;;4281:58;4434:20;;;;:::i;:::-;1964:3528;;663:4;1964:3528;;663:4;1964:3528;;;;;2762:2;2943:3;402:16:68;;139;1964:3528:94;;402:16:68;139;2680:23:94;139:16:68;1964:3528:94;;;;;;;;:::i;:::-;2577:1;402:16:68;;1964:3528:94;4576:30;;402:16:68;1964:3528:94;;;;;;:::i;:::-;139:16:68;;1964:3528:94;;4517:183;;139:16:68;1964:3528:94;4517:183;;139:16:68;4517:183:94;2811:210;4517:183;;139:16:68;402;2811:210:94;4517:183;;139:16:68;2577:1:94;2680:23;4517:183;;402:16:68;1964:3528:94;;2811:210;4517:183;;402:16:68;1964:3528:94;;;4517:183;;402:16:68;139;2811:210:94;4517:183;;139:16:68;2811:210:94;4517:183;;139:16:68;1964:3528:94;566:50;1964:3528;;;;;;;;4728:21;;1964:3528;4728:21;1964:3528;4728:21;;;;;;;;;1964:3528;;4728:21;;;4281:58;1964:3528;;;3031:45;1964:3528;;2811:210;1964:3528;;;;;3031:45;1964:3528;4759:26;;;;;1964:3528;;4759:26;;1964:3528;4759:26;;1964:3528;;4759:26;1964:3528;;4759:26;1964:3528;4759:26;;;:::i;:::-;;1964:3528;;;4759:26;;;;;;;;;1964:3528;;;;4728:21;;;;1964:3528;4728:21;1964:3528;4728:21;;;;;;;;:::i;:::-;;;;;:::i;:::-;;;;;;;;;4438:16;;1964:3528;4438:16;;1964:3528;4438:16;;;;;;1964:3528;4438:16;;;:::i;:::-;;;1964:3528;;;;;4434:20;1964:3528;;:::i;:::-;4438:16;;;;;-1:-1:-1;4438:16:94;;4281:58;4328:10;4281:58;;3665:26;1964:3528;;3665:26;;;:::i;:::-;1964:3528;;;;3665:26;;;3634:21;;;;1964:3528;3634:21;1964:3528;3634:21;;;;;;;:::i;:::-;;;;3341:15;;1964:3528;3341:15;;1964:3528;3341:15;;;;;;1964:3528;3341:15;;;:::i;:::-;;;1964:3528;;;;;3337:19;1964:3528;;:::i;:::-;3341:15;;;;;-1:-1:-1;3341:15:94;;3086:26;1964:3528;;3086:26;;;:::i;:::-;1964:3528;;;;3086:26;;;3055:21;;;;1964:3528;3055:21;1964:3528;3055:21;;;;;;;:::i;:::-;;;;2745:14;;1964:3528;2745:14;;1964:3528;2745:14;;;;;;1964:3528;2745:14;;;:::i;:::-;;;1964:3528;;;;;2741:18;1964:3528;;:::i;:::-;2745:14;;;;;-1:-1:-1;2745:14:94;;2447:43;1964:3528;;2447:43;;;:::i;:::-;1964:3528;;;;2447:43;;;2392:45;1964:3528;;2392:45;;;:::i;:::-;1964:3528;;;;2392:45;;;2368:14;;1964:3528;2368:14;;1964:3528;2368:14;;;;;;1964:3528;2368:14;;;:::i;:::-;;;1964:3528;;;;;2364:18;1964:3528;;:::i;:::-;2368:14;;;;;-1:-1:-1;2368:14:94;;2307:15;;1964:3528;2307:15;;1964:3528;2307:15;;;;;;1964:3528;2307:15;;;:::i;:::-;;;1964:3528;;;;;2303:19;1964:3528;;:::i;:::-;2307:15;;;;;-1:-1:-1;2307:15:94;;795:35;1964:3528;;795:35;;;:::i;:::-;1964:3528;;;;795:35;;;771:14;;1964:3528;771:14;;1964:3528;771:14;;;;;;1964:3528;771:14;;;:::i;:::-;;;1964:3528;;;;;765:20;1964:3528;;:::i;:::-;771:14;;;;;-1:-1:-1;771:14:94;;688:37;1964:3528;;688:37;;;:::i;:::-;;;;663:15;;1964:3528;663:15;;1964:3528;663:15;;;;;;1964:3528;663:15;;;:::i;:::-;;;1964:3528;;;;;657:21;1964:3528;;:::i;:::-;663:15;;;;;-1:-1:-1;663:15:94;;581:34;;;1964:3528;581:34;;1964:3528;581:34;;;;;;1964:3528;581:34;;;:::i;:::-;;;1964:3528;;;;;;;;;;;;581:34;;;;;;-1:-1:-1;581:34:94;;1964:3528;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1964:3528:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;-1:-1:-1;1964:3528:94;;;;;-1:-1:-1;1964:3528:94;;139:16:68;1964:3528:94;;;;;;;;;;;;;:::o;:::-;1590:14:0;1964:3528:94;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;:::i;:::-;2577:1;1964:3528;;;;;;-1:-1:-1;1964:3528:94;;;;;;;;;:::o;:::-;;;;;;;;:::i;:::-;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;-1:-1:-1;1964:3528:94;;;;;;;;;:::i;:::-;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;;;;;;;;;;:::i;:::-;-1:-1:-1;1964:3528:94;;-1:-1:-1;1964:3528:94;;;;;;;;;;;;;;;;;317:16:68;1964:3528:94;;317:16:68;;;;;;:::o;:::-;;1964:3528:94;317:16:68;;;;;1964:3528:94;317:16:68;;1964:3528:94;;1078:4;317:16:68;;;;;;;:::o;:::-;1964:3528:94;;1258:1;317:16:68;;;;;;;:::o;139:::-;;;;;;;;;;1964:3528:94;;;139:16:68;;;;;:::o;:::-;;;;;;;;;1964:3528:94;139:16:68;;1964:3528:94;139:16:68;;;1964:3528:94;;139:16:68;;;;1964:3528:94;139:16:68;;;1964:3528:94;139:16:68;;;;;;402;;;;;;139;;1964:3528:94;139:16:68;1964:3528:94;139:16:68;;;;;;;;;1964:3528:94;139:16:68;;;1964:3528:94;139:16:68;;;;;;;1964:3528:94;139:16:68;;;;;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;;139:16:68;;;;1964:3528:94;139:16:68;;;1964:3528:94;139:16:68;;;;;;;;1964:3528:94;;;;;;;;139:16:68;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;317;139;;317;139;;;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;139:16:68;;;;1964:3528:94;;139:16:68;;;1964:3528:94;317:16:68;139;;;;317;139;;;;1964:3528:94;139:16:68;;;;1964:3528:94;139:16:68;;;1964:3528:94;402:16:68;139;;;;402;139;;;;402;139;;;;402;139;;;;;1964:3528:94;139:16:68;;;1964:3528:94;139:16:68;;;402;139;;;;;;402;139;;;;402;139;;;;;;;;;;;402;139;;;;;;402;139;;;;402;139;;;;;;;1964:3528:94;;139:16:68;;;;402;;139;402;;;;;139;402;1260:111:86;1964:3528:94;;1311:20:86;;;;;;;;;;;;;;;;;;;;;;;;;;1964:3528:94;;;;;:::i;:::-;1311:20:86;1964:3528:94;;1311:20:86;3037:121:81;;;1964:3528:94;1311:20:86;1964:3528:94;3037:121:81;;1964:3528:94;1311:20:86;3037:121:81;;;1964:3528:94;1311:20:86;3037:121:81;;;1964:3528:94;;;;;;:::i;:::-;1311:20:86;1964:3528:94;;1311:20:86;3037:121:81;3208;;1964:3528:94;1311:20:86;1964:3528:94;3208:121:81;;1964:3528:94;1311:20:86;3037:121:81;3208;;1964:3528:94;1311:20:86;3037:121:81;3208;;1964:3528:94;;;;;;;:::i;:::-;2506:11:81;402:16:68;;2602:11:81;3037:121;3380:241;;402:16:68;2694:2:81;1964:3528:94;3380:241:81;;1964:3528:94;2775:3:81;3037:121;3380:241;;1964:3528:94;3037:121:81;3380:241;;139:16:68;1964:3528:94;3380:241:81;;139:16:68;1998:10:81;3380:241;;;139:16:68;1998:10:81;3380:241;;;139:16:68;1998:10:81;3380:241;;;139:16:68;1998:10:81;3380:241;;;139:16:68;1998:10:81;3380:241;;;139:16:68;1964:3528:94;;3638:20:81;;;;;;;;;1311::86;3638::81;;;;;;;;;;;;;:::i;:::-;;;1311::86;3638::81;;;;;1964:3528:94;1306:58:86;1964:3528:94;;1306:58:86;:::i;:::-;1260:111::o;3638:20:81:-;1964:3528:94;;;1311:20:86;1964:3528:94;;;;;3327:221:86;;;-1:-1:-1;1964:3528:94;3431:6:86;1964:3528:94;;;;;;;;;3431:6:86;1964:3528:94;;;;;;402:16:68;;1964:3528:94;3480:5:86;1964:3528:94;;;;;3480:5:86;1964:3528:94;;;;;402:16:68;;3784:43:86;;1590:14:0;1964:3528:94;4078:8:86;1590:14:0;139:16:68;;1964:3528:94;4078:33:86;;;;;;;;4134;;;;;;;4177:81;;4134:33;1964:3528:94;;3440:1:86;1964:3528:94;;;;;;6030:13:87;;;;;;;;;;;;;;;1964:3528:94;6030:13:87;;;;;4134:33:86;1964:3528:94;;;;;;6083:13:87;;6030;6083;6030;6083;;;;;;;;;;1964:3528:94;6083:13:87;;;;;4134:33:86;1964:3528:94;;6107:40:87;;;;;;1964:3528:94;;;6107:40:87;;6127:4;6030:13;6107:40;;1964:3528:94;;;;;;;6127:4:87;1964:3528:94;;;;;6107:40:87;;;;;;;;;;;;;4134:33:86;-1:-1:-1;1964:3528:94;;;6157:43:87;;1964:3528:94;6030:13:87;6157:43;;1964:3528:94;;;;;;;6030:13:87;1964:3528:94;;;6157:43:87;;;;;;;;;;4134:33:86;6251:40:87;;;;;;1964:3528:94;;;6251:40:87;;6127:4;6030:13;6251:40;;1964:3528:94;;;;;;;6127:4:87;1964:3528:94;;;6127:4:87;6251:40;;;;;;;;;;;;4134:33:86;-1:-1:-1;;1964:3528:94;;;6301:43:87;;1964:3528:94;6030:13:87;6301:43;;1964:3528:94;;;;;;;6030:13:87;1964:3528:94;;;6301:43:87;;;;;;;;;;4134:33:86;1964:3528:94;;;;6856:18:87;;6030:13;6856:18;6030:13;6856:18;;;;;;;;;;;;;4134:33:86;6892:25:87;;;6935;6892;;:::i;6935:::-;7093:10;;;;7117:23;7113:214;;4134:33:86;6030:13:87;;1964:3528:94;;;;7478:10:87;;;;1964:3528:94;7478:10:87;;;;;;;;;;;;;4134:33:86;1964:3528:94;;;;;;;:::i;:::-;139:16:68;;6030:13:87;7392:194;;139:16:68;;;1964:3528:94;7392:194:87;;1964:3528:94;;;402:16:68;;7392:194:87;;;1964:3528:94;3440:1:86;1964:3528:94;;;7392:194:87;;;1964:3528:94;3440:1:86;1964:3528:94;;;139:16:68;7392:194:87;;139:16:68;;;7392:194:87;;;139:16:68;;;1964:3528:94;7392:194:87;;139:16:68;;;;7392:194:87;;;139:16:68;;;;7392:194:87;;;1964:3528:94;;;139:16:68;;7392:194:87;;;7561:15;;139:16:68;;1964:3528:94;;7637:17:87;1964:3528:94;7637:17:87;;1964:3528:94;;;6030:13:87;7637:17;;1964:3528:94;;;;;;;;;;;;;;;;3440:1:86;1964:3528:94;;;;;;3440:1:86;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;7637:17:87;;;;;;;1250:42:71;7392:194:87;7637:17;;;;;;;;3327:221:86;;:::o;7637:17:87:-;7392:194;7637:17;;7392:194;7637:17;;;;;;7392:194;7637:17;;;:::i;:::-;;;1964:3528:94;;;;;;;6030:13:87;1964:3528:94;;;;;;;;;;;-1:-1:-1;;;;3327:221:86:o;1964:3528:94:-;;;;;;;7637:17:87;;;-1:-1:-1;7637:17:87;;;1964:3528:94;;;;;;;;;7478:10:87;;;;;6030:13;7478:10;6030:13;7478:10;;;;;;;:::i;:::-;;;;;;1964:3528:94;;;;;;;;;7113:214:87;6127:4;;-1:-1:-1;7113:214:87;;6856:18;;;6030:13;6856:18;;6030:13;6856:18;;;;;;6030:13;6856:18;;;:::i;:::-;;;1964:3528:94;;;;;6892:25:87;1964:3528:94;6935:25:87;1964:3528:94;;:::i;:::-;6856:18:87;;;;;1964:3528:94;;;;6856:18:87;;;-1:-1:-1;6856:18:87;;6301:43;6030:13;6301:43;;6030:13;6301:43;;;;;;6030:13;6301:43;;;:::i;:::-;;;1964:3528:94;;;;;;;:::i;:::-;6301:43:87;;;;;-1:-1:-1;6301:43:87;;6251:40;;;;;:::i;:::-;1964:3528:94;;6251:40:87;;;;1964:3528:94;;;;6157:43:87;6030:13;6157:43;;6030:13;6157:43;;;;;;6030:13;6157:43;;;:::i;:::-;;;1964:3528:94;;;;;;;:::i;:::-;6157:43:87;;;;;-1:-1:-1;6157:43:87;;6107:40;;;;;;;;:::i;:::-;;;;;6083:13;;;;6030;6083;6030;6083;;;;;;;:::i;:::-;;;;;1964:3528:94;;;;;;;;;6030:13:87;;;;;;;;;;;;;;:::i;:::-;;;;;1964:3528:94;;;;;;;;;4177:81:86;4213:6;;;;;;;:::i;:::-;4241;;;;:::i;:::-;4177:81;;;;4134:33;;;;;;4078;;;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;2867:192:86;2936:8;1590:14:0;139:16:68;;1964:3528:94;;2936:90:86;;;2955:35;2867:192;:::o;2936:90::-;3002:23;2867:192;:::o;1964:3528:94:-;;;;;;;;;;:::o;:::-;;317:16:68;;;;1964:3528:94;;;;:::o;:::-;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;:::i;:::-;;:::o;4889:112:86:-;4982:12;1964:3528:94;;4982:4:86;1964:3528:94;;;;4982:12:86;;;;1964:3528:94;4982:12:86;;;;;;;;;-1:-1:-1;4982:12:86;;;4959:35;4889:112;:::o;4982:12::-;;;;1964:3528:94;4982:12:86;1964:3528:94;4982:12:86;;;;;;;:::i;:::-;;;;;;;4889:112;:::o;1243:204:2:-;1302:7;1964:3528:94;;;;;;;1325:14:2;:::o;1298:143::-;1964:3528:94;;;;1377:39:2;;1964:3528:94;1377:39:2;;;1964:3528:94;192:59:2;;;;1964:3528:94;192:59:2;1377:39;;;1964:3528:94;1377:39:2;;;;;;;1964:3528:94;1377:39:2;;;1298:143;1377:53;;;1370:60;:::o;1377:39::-;;;192:59;1377:39;;192:59;1377:39;;;;;;192:59;1377:39;;;:::i;:::-;;;192:59;;;;;1377:39;;;;;;-1:-1:-1;1377:39:2;;1964:3528:94;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;:::-;;;;;;;;;;;;;;;;;;:::o;477:7:46:-;1964:3528:94;;477:7:46;;;;;;;;:::o;1377:1483:86:-;;1549:1;1964:3528:94;;;1507:45:86;;;;;;;;;;;;;;;;;;1964:3528:94;;1507:45:86;;;;;;;1964:3528:94;;;;;;;;;;;;;1507:45:86;;;;;;;;;1964:3528:94;;1572:49:86;;;;;;;;;;1507:45;1572:49;;;;;;1964:3528:94;1572:49:86;;1964:3528:94;1572:49:86;;;;1589:10;1964:3528:94;;;;;;;1616:4:86;1964:3528:94;;;139:16:68;1572:49:86;;;;;;;;;1964:3528:94;;;;;;;;;;;;8230:54:16;1964:3528:94;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;;;8230:54:16;;;;1964:3528:94;8230:54:16;;;1964:3528:94;8230:54:16;;;1964:3528:94;;;;;;:::i;:::-;1589:10:86;1964:3528:94;;;;8230:54:16;1964:3528:94;8230:54:16;;;;;;:::i;:::-;1222:159;1964:3528:94;;1222:159:16;;591:42;1222:159;;;1964:3528:94;;1784:50:86;;;;;;;;;1507:45;1784:50;;;;;1964:3528:94;1784:50:86;;;;;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;1831:2:86;1964:3528:94;;;1590:14:0;1784:50:86;;;;;;;;;1964:3528:94;1886:13:86;1964:3528:94;;;;;;;;;;1844:19:86;1964:3528:94;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;1844:19:86;:::i;:::-;1886:13;:::i;:::-;1964:3528:94;;1916:44:86;;;;;;;;1507:45;1916:44;;;;;;;;1964:3528:94;1916:44:86;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;1958:1:86;1964:3528:94;;;1590:14:0;1916:44:86;;;;;;;;;1964:3528:94;;;;;;;;;;1970:20:86;1964:3528:94;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;1970:20:86;:::i;:::-;2013:12;;;:::i;:::-;1964:3528:94;;2451:74:86;1964:3528:94;;2036:9:86;1964:3528:94;;;;;2036:9:86;1964:3528:94;;;;;1958:1:86;1964:3528:94;2066:28:86;1964:3528:94;;2066:28:86;;;1964:3528:94;;;;;;;;;;;139:16:68;1964:3528:94;2113:39:86;;;;;;;;;1964:3528:94;;;;2104:48:86;1964:3528:94;;;2104:48:86;1964:3528:94;2171:39:86;;;;;;1964:3528:94;;;;;;;1958:1:86;1964:3528:94;2220:99:86;1964:3528:94;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;;;;;;;;;;;2220:99:86;:::i;:::-;1964:3528:94;;2451:4:86;1964:3528:94;;;2512:12:86;;:::i;:::-;1964:3528:94;;;2451:74:86;;;;;1964:3528:94;2451:74:86;;1964:3528:94;2451:74:86;;1964:3528:94;8230:54:16;1964:3528:94;;;;139:16:68;1964:3528:94;;;;;;;;;;2451:74:86;;;;;;;;1964:3528:94;2451:74:86;;;;;2171:39;1964:3528:94;;;;2036:9:86;1964:3528:94;;;2036:9:86;1964:3528:94;2536:23:86;1964:3528:94;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;2536:23:86;:::i;:::-;2582:13;;;:::i;:::-;1958:1;1590:14:0;1964:3528:94;139:16:68;1964:3528:94;;;477:7:46;;;;4078:33:86;;;;2692:23;4078:33;;4134;;;;2692:23;4134:33;;4177:81;;4134:33;1964:3528:94;;;;6030:13:87;;1964:3528:94;6030:13:87;1964:3528:94;6030:13:87;;;;;;;;;;1964:3528:94;6030:13:87;;;;;1964:3528:94;;;;;;6083:13:87;;1964:3528:94;6083:13:87;1964:3528:94;6083:13:87;;;;;;;;;;1964:3528:94;6083:13:87;;;;;1964:3528:94;;6107:40:87;;;;;;1964:3528:94;;;6107:40:87;;6127:4;1964:3528:94;6107:40:87;;1964:3528:94;;;;;;;6127:4:87;1964:3528:94;;;;;6107:40:87;1964:3528:94;4177:81:86;4213:6;;;;1964:3528:94;;477:7:46;;;;;;;4205:14:86;4241:6;4205:14;4241:6;:::i;:::-;4177:81;;;4134:33;2692:23;4134:33;;;4078;2692:23;4078:33;;;2451:74;;;;1964:3528:94;2451:74:86;1964:3528:94;2451:74:86;;;;;;;:::i;:::-;;;;2171:39;;;;;2113;;;;;1916:44;1964:3528:94;;;;;;;;;;;1916:44:86;8230:54:16;1964:3528:94;;;;;;;;1784:50:86;1964:3528:94;;;;;;;;;1784:50:86;8230:54:16;1964:3528:94;;;;;;;;1507:45:86;1964:3528:94;;;;;;;;;913:1047;1964:3528;;;;;;;:::i;:::-;994:1;1964:3528;;-1:-1:-1;;1964:3528:94;;;-1:-1:-1;1964:3528:94;;;;;;1006:11;;1029:5;1006:11;;;:::i;:::-;;317:16:68;1078:4:94;1964:3528;1044:11;;;:::i;:::-;;:31;402:16:68;1092:11:94;1964:3528;1092:11;;;:::i;:::-;;:21;402:16:68;1029:5:94;1127:11;;;:::i;:::-;;317:16:68;1078:4:94;1964:3528;1165:11;;;:::i;:::-;;:31;402:16:68;1237:2:94;1964:3528;1213:11;;;:::i;:::-;;:21;402:16:68;1029:5:94;1249:11;;;:::i;:::-;;317:16:68;1078:4:94;1964:3528;1287:11;;;:::i;:::-;;:31;402:16:68;1359:3:94;1964:3528;1335:11;;;:::i;:::-;;:21;402:16:68;1964:3528:94;;;;;;:::i;:::-;1078:4;402:16:68;;1595:3:94;1964:3528;1569:30;;402:16:68;1964:3528:94;;;;;;:::i;:::-;1469:42;139:16:68;;1513:42:94;1964:3528;1446:247;;139:16:68;1964:3528:94;1446:247;;139:16:68;1389:21:94;1964:3528;1446:247;;139:16:68;402;1964:3528:94;1446:247;;139:16:68;1078:4:94;1964:3528;1446:247;;402:16:68;1446:247:94;1964:3528;1446:247;;402:16:68;1446:247:94;1964:3528;1446:247;;402:16:68;139;1964:3528:94;1446:247;;139:16:68;1964:3528:94;1446:247;;139:16:68;1964:3528:94;;1590:14:0;2200:41:16;1964:3528:94;;1721:17;;;;1964:3528;1721:17;;;:::i;:::-;;1964:3528;1721:17;;;;;;:::i;:::-;1964:3528;;2200:41:16;;;;1964:3528:94;2200:41:16;;;1964:3528:94;2200:41:16;;;1590:14:0;;;;;;:::i;2200:41:16:-;1222:159;1964:3528:94;;1222:159:16;;591:42;1222:159;;;1749:59:94;1964:3528;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;;;;;;1749:59;:::i;:::-;1964:3528;1831:5;1964:3528;;;;;;;;1831:21;;1964:3528;1831:21;;;;;;;;;;;1818:35;1831:21;139:16:68;1831:21:94;;;;;1964:3528;;;1818:35;:::i;:::-;1872:45;1964:3528;;;;;;:::i;:::-;;1590:14:0;;1964:3528:94;;;;;1872:45;:::i;:::-;1927:26;;;;;;1964:3528;;;;;;1927:26;;;;;;1964:3528;1927:26;;1831:21;1927:26;;;:::i;:::-;;;;;;;;;;;913:1047;;:::o;1927:26::-;;;;;:::i;:::-;913:1047;:::o;1927:26::-;1964:3528;;;1831:21;;;;1964:3528;1831:21;1964:3528;1831:21;;;;;;;:::i;:::-;;;;;1964:3528;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;6598:121:16;1222:159;1964:3528:94;6669:42:16;6598:121;;1964:3528:94;;6669:42:16;;;;;;;;;;;;1964:3528:94;;;;;;:::i;6669:42:16:-;1222:159;1964:3528:94;;1222:159:16;;591:42;1222:159;;;6598:121::o;6356:116::-;1222:159;6356:116;;1964:3528:94;;6421:43:16;;;;;;;;;1964:3528:94;6421:43:16;;;;;;;:::i;6841:116::-;1222:159;6841:116;;1964:3528:94;;;6906:43:16;;;;;;1964:3528:94;6906:43:16;;;1964:3528:94;6906:43:16;;;;;;;:::i;1964:3528:94:-;;;;;;;;;;;;;;;;;;:::o;1688:897:87:-;;;;;1964:3528:94;;;;;;1897:43:87;;1964:3528:94;1897:43:87;;;1964:3528:94;;;;;;;1897:43:87;;;;;;;;;;;;;1688:897;1964:3528:94;;;;1897:43:87;1964:3528:94;;2448:10:87;;;;1964:3528:94;2448:10:87;;1964:3528:94;2448:10:87;;;;;;;1964:3528:94;2448:10:87;;1964:3528:94;2448:10:87;1897:43;2448:10;;;1688:897;1964:3528:94;;;;;;;:::i;:::-;139:16:68;;2363:166:87;1964:3528:94;2363:166:87;;1964:3528:94;;139:16:68;;1964:3528:94;;2363:166:87;;1964:3528:94;;402:16:68;;1964:3528:94;2363:166:87;;;2460:10;;139:16:68;;2363:166:87;;;;2472:15;;139:16:68;;2363:166:87;;;139:16:68;;;2363:166:87;;;;139:16:68;1897:43:87;139:16:68;;2363:166:87;1964:3528:94;2363:166:87;;1964:3528:94;;139:16:68;;1964:3528:94;;2546:32:87;;;1964:3528:94;;1897:43:87;2546:32;;1964:3528:94;;;;;;;;;1897:43:87;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:32:87;;;1897:43;1964:3528:94;2546:32:87;;;;;;;1897:43;2546:32;;;2539:39;1688:897;:::o;2546:32::-;;;1964:3528:94;2546:32:87;;1964:3528:94;2546:32:87;;;;;;1964:3528:94;2546:32:87;;;:::i;:::-;;;1964:3528:94;;;;;1688:897:87;:::o;2546:32::-;;;-1:-1:-1;2546:32:87;;2448:10;;;;1964:3528:94;2448:10:87;1964:3528:94;2448:10:87;;;;;;;:::i;:::-;;;;1897:43;1964:3528:94;1897:43:87;;1964:3528:94;1897:43:87;;;;;;1964:3528:94;1897:43:87;;;:::i;:::-;;;1964:3528:94;;;;;;;;;;:::i;:::-;1897:43:87;;;;;;;;-1:-1:-1;1897:43:87;;1688:897;;1964:3528:94;1688:897:87;;;;;1964:3528:94;;;;;;;1897:43:87;;;;;;1964:3528:94;3693:6:87;1964:3528:94;;;;;1897:43:87;;;;;;;;;;;;;1688:897;1964:3528:94;;;;1897:43:87;1964:3528:94;;2448:10:87;;;;1964:3528:94;2448:10:87;;1964:3528:94;2448:10:87;;;;;;;1897:43;2448:10;;;1688:897;1964:3528:94;;;;;;;:::i;:::-;139:16:68;;1964:3528:94;2363:166:87;;1964:3528:94;;;139:16:68;;1964:3528:94;2363:166:87;;1964:3528:94;;;402:16:68;;2363:166:87;;;2460:10;139:16:68;;2363:166:87;;;2472:15;139:16:68;;2363:166:87;;;139:16:68;3693:6:87;139:16:68;;2363:166:87;;;139:16:68;1897:43:87;139:16:68;;1964:3528:94;2363:166:87;;1964:3528:94;;;139:16:68;;1964:3528:94;;2546:32:87;;;;;1964:3528:94;2546:32:87;;1964:3528:94;;;1897:43:87;2546:32;;1964:3528:94;;;;;;;;;;;1897:43:87;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2546:32:87;;1897:43;2546:32;;1964:3528:94;2546:32:87;;;;;;;1897:43;2546:32;;;2539:39;1688:897;:::o;2448:10::-;;;;;1964:3528:94;2448:10:87;1964:3528:94;2448:10:87;;;;;;;:::i;:::-;;;;;1897:43;1964:3528:94;1897:43:87;;1964:3528:94;1897:43:87;;;;;;1964:3528:94;1897:43:87;;;:::i;:::-;;;1964:3528:94;;;;;;;;;;:::i;:::-;1897:43:87;;;;;;;;-1:-1:-1;1897:43:87;;2906:916;;;-1:-1:-1;1964:3528:94;;;;;;2705:12:87;1964:3528:94;2705:12:87;;1964:3528:94;2705:12:87;;;;;;;;;;;;;;;2906:916;1964:3528:94;;;;;;;3175:29:87;;;;3171:113;;1964:3528:94;;;3322:13:87;;;;2705:12;3322:13;;;;;;;;1964:3528:94;3322:13:87;;2705:12;3322:13;;;;;2906:916;1964:3528:94;;;;;3375:13:87;;;;1964:3528:94;3375:13:87;;;;;;;;1964:3528:94;3375:13:87;;;;;2906:916;-1:-1:-1;1964:3528:94;;3419:28:87;;;;;;:68;;;3518:28;;;;:68;;;1964:3528:94;;;;3709:33:87;;;;;1964:3528:94;;3709:33:87;1964:3528:94;;3709:33:87;;;;1964:3528:94;3709:33:87;;3730:4;2705:12;3709:33;;1964:3528:94;3693:6:87;1964:3528:94;;;;3709:33:87;;;;;;;3752:63;3709:33;;;;3518:68;3752:63;;1964:3528:94;3752:63:87;:::i;3709:33::-;;;;;:::i;:::-;;;;3518:68;;;;;;3419;;;;;3375:13;;;;3322;3375;3322;3375;;;;;;;:::i;:::-;;;;3322;;;;;;;;;;;;;;:::i;:::-;;;;3171:113;3267:7;;;;;;;:::o;2705:12::-;;;;;1964:3528:94;2705:12:87;1964:3528:94;2705:12:87;;;;;;;:::i;:::-;;;;;;;;;;;;1964:3528:94;;;;;;;;;;;;;;;;;;;;402:16:68;1964:3528:94;;402:16:68;139;;402;1964:3528:94;;;;402:16:68;1964:3528:94;;;139:16:68;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;;;;;;;;;1590:14:0;;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;1590:14:0;1964:3528:94;;;;;;;;;;;;;;;;;;;1590:14:0;;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;;;;;1590:14:0;1964:3528:94;;;;;1590:14:0;1964:3528:94;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::o;602:346:72:-;1964:3528:94;;;;;;;;;;;;;;;769:8:72;;765:176;1964:3528:94;;;;798:5:72;;;:::i;:::-;1964:3528:94;;;;;;;;;798:19:72;807:10;;820;;;;;:::i;798:56::-;833:21;841:12;;;;:::i;:::-;833:21;;:::i;765:176::-;1964:3528:94;894:10:72;-1:-1:-1;894:10:72;;;1964:3528:94;;;;;;;888:16:72;:53;894:10;;;907:21;915:12;;;;;:::i;:::-;907:21;;:::i;888:53::-;931:10;;;;:::i;1964:3528:94:-;402:16:68;1964:3528:94;402:16:68;;;;;1964:3528:94;402:16:68","linkReferences":{}},"methodIdentifiers":{"COIN()":"a54a72b7","IS_TEST()":"fa7626d4","USD()":"1bf6c21b","coinInitialBalance()":"ee08ef9b","exactInputOrderIndex()":"69ae948f","exactOutputOrderIndex()":"58cec2eb","excludeArtifacts()":"b5508aa9","excludeContracts()":"e20c9f71","excludeSenders()":"1ed7831c","factory()":"c45a0155","failed()":"ba414fa6","fee()":"ddca3f43","init()":"e1c7392a","init(address,address)":"f09a4016","initDebugFees()":"c4b5da74","initNoFees()":"41cca3b5","inverted()":"67e368fc","limitOrderIndex()":"bc0087c7","oneSqrtX96()":"8f7d7c50","placeOrder()":"f5c609e0","pool()":"16f0115b","price()":"a035b1fe","setUp()":"0a9254e4","stake(uint256,int24)":"e3baf41a","stake(uint256,int24,int24)":"53486e2f","stake(uint256,uint256,int24,int24)":"d6f13002","swap(address,address,uint256)":"df791e50","swap(address,address,uint256,uint160)":"4a09d3dd","swapTo1()":"3420899b","swapToPrice(uint160)":"c578d91d","targetArtifactSelectors()":"66d9a9a0","targetArtifacts()":"85226c81","targetContracts()":"3f7286f4","targetInterfaces()":"2ade3880","targetSelectors()":"916a17c6","targetSenders()":"3e5e3c23","testExecuteLimitOrder()":"7083accc","testExecuteOrderExactInput()":"8e3b558a","testExecuteOrderExactOutput()":"9febdbf7","testPlaceOrder()":"6fe2ae0e","token0()":"0dfe1681","token1()":"d21220a7","usdInitialBalance()":"d7680788","vault()":"fbfa77cf"},"rawMetadata":"{\"compiler\":{\"version\":\"0.8.26+commit.8a97fa7a\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"name\":\"log_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"log_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"\",\"type\":\"bytes32\"}],\"name\":\"log_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"\",\"type\":\"int256\"}],\"name\":\"log_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address\",\"name\":\"val\",\"type\":\"address\"}],\"name\":\"log_named_address\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"val\",\"type\":\"uint256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256[]\",\"name\":\"val\",\"type\":\"int256[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"address[]\",\"name\":\"val\",\"type\":\"address[]\"}],\"name\":\"log_named_array\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"val\",\"type\":\"bytes\"}],\"name\":\"log_named_bytes\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"bytes32\",\"name\":\"val\",\"type\":\"bytes32\"}],\"name\":\"log_named_bytes32\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"decimals\",\"type\":\"uint256\"}],\"name\":\"log_named_decimal_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"int256\",\"name\":\"val\",\"type\":\"int256\"}],\"name\":\"log_named_int\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"val\",\"type\":\"string\"}],\"name\":\"log_named_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"key\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"val\",\"type\":\"uint256\"}],\"name\":\"log_named_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"name\":\"log_string\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"log_uint\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"\",\"type\":\"bytes\"}],\"name\":\"logs\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"COIN\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"IS_TEST\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"USD\",\"outputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"coinInitialBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exactInputOrderIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"exactOutputOrderIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"excludedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"excludeSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"excludedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"factory\",\"outputs\":[{\"internalType\":\"contract IVaultFactory\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"failed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"fee\",\"outputs\":[{\"internalType\":\"uint24\",\"name\":\"\",\"type\":\"uint24\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IRouter\",\"name\":\"router\",\"type\":\"address\"},{\"internalType\":\"contract FeeManager\",\"name\":\"feeManager\",\"type\":\"address\"}],\"name\":\"init\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initDebugFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"initNoFees\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"inverted\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"limitOrderIndex\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"oneSqrtX96\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"placeOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"pool\",\"outputs\":[{\"internalType\":\"contract IUniswapV3Pool\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"price\",\"outputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceX96\",\"type\":\"uint160\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"setUp\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"coinAmount\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"usdAmount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"lower\",\"type\":\"int24\"},{\"internalType\":\"int24\",\"name\":\"upper\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"uint128\",\"name\":\"liquidity\",\"type\":\"uint128\"},{\"internalType\":\"uint256\",\"name\":\"amount0\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount1\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"int24\",\"name\":\"width\",\"type\":\"int24\"}],\"name\":\"stake\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"},{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract MockERC20\",\"name\":\"inToken\",\"type\":\"address\"},{\"internalType\":\"contract MockERC20\",\"name\":\"outToken\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"amountIn\",\"type\":\"uint256\"}],\"name\":\"swap\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"amountOut\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"swapTo1\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint160\",\"name\":\"sqrtPriceLimitX96\",\"type\":\"uint160\"}],\"name\":\"swapToPrice\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifactSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedArtifactSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetArtifacts\",\"outputs\":[{\"internalType\":\"string[]\",\"name\":\"targetedArtifacts_\",\"type\":\"string[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetContracts\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedContracts_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetInterfaces\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"string[]\",\"name\":\"artifacts\",\"type\":\"string[]\"}],\"internalType\":\"struct StdInvariant.FuzzInterface[]\",\"name\":\"targetedInterfaces_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSelectors\",\"outputs\":[{\"components\":[{\"internalType\":\"address\",\"name\":\"addr\",\"type\":\"address\"},{\"internalType\":\"bytes4[]\",\"name\":\"selectors\",\"type\":\"bytes4[]\"}],\"internalType\":\"struct StdInvariant.FuzzSelector[]\",\"name\":\"targetedSelectors_\",\"type\":\"tuple[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"targetSenders\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"targetedSenders_\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testExecuteLimitOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testExecuteOrderExactInput\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testExecuteOrderExactOutput\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"testPlaceOrder\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token0\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"token1\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"usdInitialBalance\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vault\",\"outputs\":[{\"internalType\":\"contract IVault\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"test/TestOrder.sol\":\"TestExecute\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":999999999},\"remappings\":[\":@forge-std/=lib_forge_std/src/\",\":@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/\",\":@uniswap/=lib_uniswap/\"],\"viaIR\":true},\"sources\":{\"lib_forge_std/src/Base.sol\":{\"keccak256\":\"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224\",\"dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK\"]},\"lib_forge_std/src/StdAssertions.sol\":{\"keccak256\":\"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe\",\"dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b\"]},\"lib_forge_std/src/StdChains.sol\":{\"keccak256\":\"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345\",\"dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w\"]},\"lib_forge_std/src/StdCheats.sol\":{\"keccak256\":\"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2\",\"dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc\"]},\"lib_forge_std/src/StdError.sol\":{\"keccak256\":\"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6\",\"dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj\"]},\"lib_forge_std/src/StdInvariant.sol\":{\"keccak256\":\"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d\",\"dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz\"]},\"lib_forge_std/src/StdJson.sol\":{\"keccak256\":\"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54\",\"dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp\"]},\"lib_forge_std/src/StdMath.sol\":{\"keccak256\":\"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92\",\"dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC\"]},\"lib_forge_std/src/StdStorage.sol\":{\"keccak256\":\"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678\",\"dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft\"]},\"lib_forge_std/src/StdStyle.sol\":{\"keccak256\":\"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8\",\"dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK\"]},\"lib_forge_std/src/StdToml.sol\":{\"keccak256\":\"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d\",\"dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy\"]},\"lib_forge_std/src/StdUtils.sol\":{\"keccak256\":\"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa\",\"dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr\"]},\"lib_forge_std/src/Test.sol\":{\"keccak256\":\"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e\",\"dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK\"]},\"lib_forge_std/src/Vm.sol\":{\"keccak256\":\"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649\",\"license\":\"MIT OR Apache-2.0\",\"urls\":[\"bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166\",\"dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT\"]},\"lib_forge_std/src/console.sol\":{\"keccak256\":\"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70\",\"dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec\"]},\"lib_forge_std/src/console2.sol\":{\"keccak256\":\"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973\",\"dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF\"]},\"lib_forge_std/src/interfaces/IERC165.sol\":{\"keccak256\":\"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc\",\"dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT\"]},\"lib_forge_std/src/interfaces/IERC20.sol\":{\"keccak256\":\"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7\",\"dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9\"]},\"lib_forge_std/src/interfaces/IERC721.sol\":{\"keccak256\":\"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f\",\"dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm\"]},\"lib_forge_std/src/interfaces/IMulticall3.sol\":{\"keccak256\":\"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0\",\"dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2\"]},\"lib_forge_std/src/mocks/MockERC20.sol\":{\"keccak256\":\"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f\",\"dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw\"]},\"lib_forge_std/src/mocks/MockERC721.sol\":{\"keccak256\":\"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b\",\"dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN\"]},\"lib_forge_std/src/safeconsole.sol\":{\"keccak256\":\"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae\",\"dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq\"]},\"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol\":{\"keccak256\":\"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac\",\"dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e\"]},\"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol\":{\"keccak256\":\"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009\",\"dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol\":{\"keccak256\":\"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827\",\"dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol\":{\"keccak256\":\"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff\",\"dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g\"]},\"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol\":{\"keccak256\":\"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02\",\"dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE\"]},\"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol\":{\"keccak256\":\"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a\",\"dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X\"]},\"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol\":{\"keccak256\":\"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e\",\"dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol\":{\"keccak256\":\"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2\",\"dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B\"]},\"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol\":{\"keccak256\":\"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5\",\"dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh\"]},\"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol\":{\"keccak256\":\"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652\",\"dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol\":{\"keccak256\":\"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5\",\"dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol\":{\"keccak256\":\"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7\",\"dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol\":{\"keccak256\":\"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03\",\"dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol\":{\"keccak256\":\"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047\",\"dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol\":{\"keccak256\":\"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735\",\"dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u\"]},\"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol\":{\"keccak256\":\"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f\",\"dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg\"]},\"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol\":{\"keccak256\":\"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d\",\"dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP\"]},\"lib_uniswap/v3-core/contracts/libraries/FullMath.sol\":{\"keccak256\":\"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d\",\"dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2\"]},\"lib_uniswap/v3-core/contracts/libraries/TickMath.sol\":{\"keccak256\":\"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3\",\"dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol\":{\"keccak256\":\"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd\",\"urls\":[\"bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0\",\"dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol\":{\"keccak256\":\"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471\",\"dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol\":{\"keccak256\":\"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56\",\"dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol\":{\"keccak256\":\"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f\",\"dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol\":{\"keccak256\":\"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407\",\"dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol\":{\"keccak256\":\"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f\",\"dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol\":{\"keccak256\":\"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53\",\"dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM\"]},\"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol\":{\"keccak256\":\"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b\",\"dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW\"]},\"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol\":{\"keccak256\":\"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844\",\"dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w\"]},\"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol\":{\"keccak256\":\"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48\",\"dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr\"]},\"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol\":{\"keccak256\":\"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd\",\"license\":\"GPL-2.0-or-later\",\"urls\":[\"bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2\",\"dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v\"]},\"src/core/FeeManager.sol\":{\"keccak256\":\"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf\",\"urls\":[\"bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4\",\"dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp\"]},\"src/core/IEEE754.sol\":{\"keccak256\":\"0x0e82f6729756c4697b3a603a56ed2c72747dd61ebc85e5e2f9042900d776a82d\",\"urls\":[\"bzz-raw://ca88595511ac4f6c50f1492c9a140dd6f5ab98c953438e0c9c57f77fd95c8495\",\"dweb:/ipfs/QmPHn9rmFf3AhyPCqqPp2pEZGQbvtyS6CpdZqvgEEHu217\"]},\"src/core/LineLib.sol\":{\"keccak256\":\"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06\",\"urls\":[\"bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb\",\"dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr\"]},\"src/core/OrderLib.sol\":{\"keccak256\":\"0x5b02146ea8ed0d7a0d0dd5284c4da635cdcd31539e4db4fd1598bc7e0d87bde7\",\"urls\":[\"bzz-raw://bb713eb417c4e9e3ea6a80b8024482caf795738bb509467811a8008627e158c6\",\"dweb:/ipfs/QmXQVinXdosLnG8vrFoRHdYrsALg9ssmP4gRUirarurMYM\"]},\"src/core/OrderSpec.sol\":{\"keccak256\":\"0xf51eaf348c95b8e2b60f479ca3383c4d7f045dd99d6eb9bca7b4af00a036e300\",\"urls\":[\"bzz-raw://a0f9026cb7fd179c4839f76b3d0c6f793b8f0280ac770f29a2d87fd890e9df71\",\"dweb:/ipfs/QmbAEKS5sYqeiVPnhg25BU2ddLsu6GGyaqtRUHYbsuD74D\"]},\"src/core/Router.sol\":{\"keccak256\":\"0x61b28f33930748ea605a294dbfaada7c57ce6c04dd29e84760733f20e0b00678\",\"urls\":[\"bzz-raw://7a24075c76ef67844b0a04c560706e5628c5c2d0afb7f4229a7ee48f48b74bad\",\"dweb:/ipfs/QmXpUaz4mH8cDVPYvJ1FjKCoUf7JGqRgeLrQpikSyqS5fs\"]},\"src/core/UniswapSwapper.sol\":{\"keccak256\":\"0x848e169acf0fd5a309e48264264cc91027b9f2fa737904f4275f7d7c8e9af6b2\",\"urls\":[\"bzz-raw://49cd7afc487f1df0bde9a698722a043f74728b5d2606d32d7db380c07ecfb797\",\"dweb:/ipfs/QmcTisrfAqfU2xd1UVcjFH9AEjGJ7MwVpV8Y856EvvWht1\"]},\"src/core/UniswapV3.sol\":{\"keccak256\":\"0xdc77030acc484b0ccf874288b32e0a06463faa12d1f054841b0b5adba6b3b278\",\"urls\":[\"bzz-raw://23d90797fe8397c870c678af525a370a9521388847772dcdefd084e5efb63924\",\"dweb:/ipfs/QmRp4xzV8kPeejGM8saXSzuwxYjxXAgWZKEDRxdRpsjHWT\"]},\"src/core/Util.sol\":{\"keccak256\":\"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8\",\"urls\":[\"bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce\",\"dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a\"]},\"src/core/Vault.sol\":{\"keccak256\":\"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8\",\"urls\":[\"bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e\",\"dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX\"]},\"src/core/VaultFactory.sol\":{\"keccak256\":\"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a\",\"urls\":[\"bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668\",\"dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr\"]},\"src/core/VaultImpl.sol\":{\"keccak256\":\"0xd0188794ab02bc9ca4b456655534d306f69b6e3735a74f71f63f9a507251877f\",\"urls\":[\"bzz-raw://9b2e1cd67edae2bf63d3c5212f355c4128c2bddddde4726d73ae9bcc8fbde80c\",\"dweb:/ipfs/QmYZ4fm9G72nhK6tBfzMnTR6VQwwRfER3xAmu2dwYsBXZv\"]},\"src/interface/IFeeManager.sol\":{\"keccak256\":\"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477\",\"urls\":[\"bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8\",\"dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj\"]},\"src/interface/IRouter.sol\":{\"keccak256\":\"0x97a5b9d4e25009cd6a80cd49de13db537dc2567191094ae9a910dd6c95dc6052\",\"urls\":[\"bzz-raw://bd1e8dee4853139a5004bd2348854fd43e6d96aea8cec01959ba640ee7f4eff6\",\"dweb:/ipfs/QmbSbkZsCm388SnAoGp2CGiNo8jEJCVugJuQbL16Jhy7Qr\"]},\"src/interface/IVault.sol\":{\"keccak256\":\"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66\",\"urls\":[\"bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21\",\"dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d\"]},\"src/interface/IVaultFactory.sol\":{\"keccak256\":\"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897\",\"urls\":[\"bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4\",\"dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc\"]},\"src/more/Dexorder.sol\":{\"keccak256\":\"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448\",\"urls\":[\"bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67\",\"dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK\"]},\"src/more/FeeManagerLib.sol\":{\"keccak256\":\"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707\",\"urls\":[\"bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885\",\"dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck\"]},\"src/more/MockERC20.sol\":{\"keccak256\":\"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca\",\"urls\":[\"bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a\",\"dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp\"]},\"test/MockEnv.sol\":{\"keccak256\":\"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118\",\"urls\":[\"bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf\",\"dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL\"]},\"test/MockUtil.sol\":{\"keccak256\":\"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694\",\"urls\":[\"bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f\",\"dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi\"]},\"test/TestOrder.sol\":{\"keccak256\":\"0x3ef49bdf284638b2b504fe7e72ef60f1c8b868c90b5fd381fddaf5d3a41e47be\",\"urls\":[\"bzz-raw://a16788ddf3e908192472e7d160e0a12f7c4040e01ebc8afc5e573400c8b084d3\",\"dweb:/ipfs/QmfMsgqp1KFRptMgoUH95zJCAmoH79gr9FeWZkRa3V2qkY\"]}},\"version\":1}","metadata":{"compiler":{"version":"0.8.26+commit.8a97fa7a"},"language":"Solidity","output":{"abi":[{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log","anonymous":false},{"inputs":[{"internalType":"address","name":"","type":"address","indexed":false}],"type":"event","name":"log_address","anonymous":false},{"inputs":[{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_array","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"log_bytes","anonymous":false},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32","indexed":false}],"type":"event","name":"log_bytes32","anonymous":false},{"inputs":[{"internalType":"int256","name":"","type":"int256","indexed":false}],"type":"event","name":"log_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address","name":"val","type":"address","indexed":false}],"type":"event","name":"log_named_address","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256[]","name":"val","type":"uint256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256[]","name":"val","type":"int256[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"address[]","name":"val","type":"address[]","indexed":false}],"type":"event","name":"log_named_array","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes","name":"val","type":"bytes","indexed":false}],"type":"event","name":"log_named_bytes","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"bytes32","name":"val","type":"bytes32","indexed":false}],"type":"event","name":"log_named_bytes32","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false},{"internalType":"uint256","name":"decimals","type":"uint256","indexed":false}],"type":"event","name":"log_named_decimal_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"int256","name":"val","type":"int256","indexed":false}],"type":"event","name":"log_named_int","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"string","name":"val","type":"string","indexed":false}],"type":"event","name":"log_named_string","anonymous":false},{"inputs":[{"internalType":"string","name":"key","type":"string","indexed":false},{"internalType":"uint256","name":"val","type":"uint256","indexed":false}],"type":"event","name":"log_named_uint","anonymous":false},{"inputs":[{"internalType":"string","name":"","type":"string","indexed":false}],"type":"event","name":"log_string","anonymous":false},{"inputs":[{"internalType":"uint256","name":"","type":"uint256","indexed":false}],"type":"event","name":"log_uint","anonymous":false},{"inputs":[{"internalType":"bytes","name":"","type":"bytes","indexed":false}],"type":"event","name":"logs","anonymous":false},{"inputs":[],"stateMutability":"view","type":"function","name":"COIN","outputs":[{"internalType":"contract MockERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"IS_TEST","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"USD","outputs":[{"internalType":"contract MockERC20","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"coinInitialBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"exactInputOrderIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"exactOutputOrderIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeArtifacts","outputs":[{"internalType":"string[]","name":"excludedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeContracts","outputs":[{"internalType":"address[]","name":"excludedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"excludeSenders","outputs":[{"internalType":"address[]","name":"excludedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"factory","outputs":[{"internalType":"contract IVaultFactory","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"failed","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"fee","outputs":[{"internalType":"uint24","name":"","type":"uint24"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[{"internalType":"contract IRouter","name":"router","type":"address"},{"internalType":"contract FeeManager","name":"feeManager","type":"address"}],"stateMutability":"nonpayable","type":"function","name":"init"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initDebugFees"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"initNoFees"},{"inputs":[],"stateMutability":"view","type":"function","name":"inverted","outputs":[{"internalType":"bool","name":"","type":"bool"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"limitOrderIndex","outputs":[{"internalType":"uint64","name":"","type":"uint64"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"oneSqrtX96","outputs":[{"internalType":"uint160","name":"","type":"uint160"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"placeOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"pool","outputs":[{"internalType":"contract IUniswapV3Pool","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"price","outputs":[{"internalType":"uint160","name":"sqrtPriceX96","type":"uint160"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"setUp"},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int24","name":"lower","type":"int24"},{"internalType":"int24","name":"upper","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"uint256","name":"coinAmount","type":"uint256"},{"internalType":"uint256","name":"usdAmount","type":"uint256"},{"internalType":"int24","name":"lower","type":"int24"},{"internalType":"int24","name":"upper","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake","outputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"uint128","name":"liquidity","type":"uint128"},{"internalType":"uint256","name":"amount0","type":"uint256"},{"internalType":"uint256","name":"amount1","type":"uint256"}]},{"inputs":[{"internalType":"uint256","name":"amount","type":"uint256"},{"internalType":"int24","name":"width","type":"int24"}],"stateMutability":"nonpayable","type":"function","name":"stake"},{"inputs":[{"internalType":"contract MockERC20","name":"inToken","type":"address"},{"internalType":"contract MockERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"},{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[{"internalType":"contract MockERC20","name":"inToken","type":"address"},{"internalType":"contract MockERC20","name":"outToken","type":"address"},{"internalType":"uint256","name":"amountIn","type":"uint256"}],"stateMutability":"nonpayable","type":"function","name":"swap","outputs":[{"internalType":"uint256","name":"amountOut","type":"uint256"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"swapTo1"},{"inputs":[{"internalType":"uint160","name":"sqrtPriceLimitX96","type":"uint160"}],"stateMutability":"nonpayable","type":"function","name":"swapToPrice"},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifactSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedArtifactSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetArtifacts","outputs":[{"internalType":"string[]","name":"targetedArtifacts_","type":"string[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetContracts","outputs":[{"internalType":"address[]","name":"targetedContracts_","type":"address[]"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetInterfaces","outputs":[{"internalType":"struct StdInvariant.FuzzInterface[]","name":"targetedInterfaces_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"string[]","name":"artifacts","type":"string[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSelectors","outputs":[{"internalType":"struct StdInvariant.FuzzSelector[]","name":"targetedSelectors_","type":"tuple[]","components":[{"internalType":"address","name":"addr","type":"address"},{"internalType":"bytes4[]","name":"selectors","type":"bytes4[]"}]}]},{"inputs":[],"stateMutability":"view","type":"function","name":"targetSenders","outputs":[{"internalType":"address[]","name":"targetedSenders_","type":"address[]"}]},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testExecuteLimitOrder"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testExecuteOrderExactInput"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testExecuteOrderExactOutput"},{"inputs":[],"stateMutability":"nonpayable","type":"function","name":"testPlaceOrder"},{"inputs":[],"stateMutability":"view","type":"function","name":"token0","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"token1","outputs":[{"internalType":"address","name":"","type":"address"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"usdInitialBalance","outputs":[{"internalType":"uint256","name":"","type":"uint256"}]},{"inputs":[],"stateMutability":"view","type":"function","name":"vault","outputs":[{"internalType":"contract IVault","name":"","type":"address"}]}],"devdoc":{"kind":"dev","methods":{},"version":1},"userdoc":{"kind":"user","methods":{},"version":1}},"settings":{"remappings":["@forge-std/=lib_forge_std/src/","@openzeppelin/contracts/=lib_openzeppelin_contracts/contracts/","@uniswap/=lib_uniswap/"],"optimizer":{"enabled":true,"runs":999999999},"metadata":{"bytecodeHash":"ipfs"},"compilationTarget":{"test/TestOrder.sol":"TestExecute"},"evmVersion":"paris","libraries":{},"viaIR":true},"sources":{"lib_forge_std/src/Base.sol":{"keccak256":"0x4ff1a785311017d1eedb1b4737956fa383067ad34eb439abfec1d989754dde1c","urls":["bzz-raw://f553622969b9fdb930246704a4c10dfaee6b1a4468c142fa7eb9dc292a438224","dweb:/ipfs/QmcxqHnqdQsMVtgsfH9VNLmZ3g7GhgNagfq7yvNCDcCHFK"],"license":"MIT"},"lib_forge_std/src/StdAssertions.sol":{"keccak256":"0x4584f551c3a875c26423c1e50a77179bc2f9c9c1ee6d0f0c6be0f89ca5ee8270","urls":["bzz-raw://ef118876a862b60ba8a6612b8b3f3a6c226e11a0071a2e9695f021586d1bfdbe","dweb:/ipfs/QmXd2vD91PkvoFWasFkgbDi89PctmgsHVxGvGNyhjmRK2b"],"license":"MIT"},"lib_forge_std/src/StdChains.sol":{"keccak256":"0x2ba8ee7e4a68efd4cd75331b229874f4d4dc0a1010599afad88fc2cae5cb5d4a","urls":["bzz-raw://77ce1968d402b0414fec0a344b59c275d0706d4df5ac6293d605dd2202016345","dweb:/ipfs/QmSVy4N4F15NzEuSpmvwRj1nTfAwaJpng7CywUBWLnWC4w"],"license":"MIT"},"lib_forge_std/src/StdCheats.sol":{"keccak256":"0xb72f3519e0bf7d31df5d68557525f4fc55d861c3fb3b0f7793144ef7c94cbeb7","urls":["bzz-raw://f3456d0f78e6f61203fa7871ba2df0d35925f10db3baee14be623ce2a35b84e2","dweb:/ipfs/QmWE6QQSBvJifHMraisBTrf1x4WCwrDoTPLX8UKajTiApc"],"license":"MIT"},"lib_forge_std/src/StdError.sol":{"keccak256":"0xbf477b11a42d7611696956546bcfaa29317d1166bf65e402344599c05943fc77","urls":["bzz-raw://bc2e117d1135e030862b96a6526a43feb38d396cc79857f1fb696d4eff0e5fd6","dweb:/ipfs/QmdSuQ5RrQudTLsNmWXGEeVJX8gR5U9XPm6m4dwwuQnJrj"],"license":"MIT"},"lib_forge_std/src/StdInvariant.sol":{"keccak256":"0x67299bfacd77fddfa2a67b8e2b901e0e333618a4975fb94850b07475e51f6de6","urls":["bzz-raw://1b61121d310f4053ce344b345b4a9ccf43b059daf9097ec2647f594beaca896d","dweb:/ipfs/QmZUCoTtXBM9zfAZVbj2dFPPnKaV1CSZzXE7zictyg3Gfz"],"license":"MIT"},"lib_forge_std/src/StdJson.sol":{"keccak256":"0x62bed173cb126f6d5006706cf249bac8a2d51bfa18f773f314784ff18adc622d","urls":["bzz-raw://5acc33dddbf2492e37dc32e89cd56ce917272d303a6874805f3a5768a6bfbf54","dweb:/ipfs/QmTsgFhcpUf16gAVazUXU3WspgX8nHke2hzVCvoqS25WEp"],"license":"MIT"},"lib_forge_std/src/StdMath.sol":{"keccak256":"0xd90ad4fd8aeaeb8929964e686e769fdedd5eded3fc3815df194a0ab9f91a3fb2","urls":["bzz-raw://7919b70f636c7b805223992f28ad1ad0145d6c1385b5931a3589aface5fe6c92","dweb:/ipfs/QmY7FRaULwoGgFteF8GawjQJRfasNgpWnU2aiMsFrYpuTC"],"license":"MIT"},"lib_forge_std/src/StdStorage.sol":{"keccak256":"0x651d84d948832f0ef45686417aa68ffb871378fa788a4123dbf37844903c66f3","urls":["bzz-raw://ff20f5ac9de3dc3ba86b1bf1f2723174e82ce3499ad67cb0ccfa7d28baeee678","dweb:/ipfs/QmRZkUFKz7AmF7yk6o317sk822HHhGVPXZQgX8G4LfYfft"],"license":"MIT"},"lib_forge_std/src/StdStyle.sol":{"keccak256":"0x43e2a8a9b9c2574dabe74f11adf6f782df218f463540e3b5b563609fe108597d","urls":["bzz-raw://51363ca97404cf4128e1141428949768c31929e75e014b02c85e887fbbb4f1b8","dweb:/ipfs/QmVhtbQc2fU4rRmbcfBtz34mAgG4BAZBsbna1Ca4SkoPsK"],"license":"MIT"},"lib_forge_std/src/StdToml.sol":{"keccak256":"0xc8a57915ace96f5b6a85b57e57690fc038cad9034a3dc368c11828a3707c61ab","urls":["bzz-raw://fa880a1a6e5d94005dcf4811b4c0df8d9c06407017ae111bd351483e2b76a72d","dweb:/ipfs/QmcxkEE58gE1vDcZofTr8QpvdjXjgR72yYg7o4vTPSLCsy"],"license":"MIT"},"lib_forge_std/src/StdUtils.sol":{"keccak256":"0x4a5853bb9688c4e1c65626036cddd8ea2af84ef1046b704ddc3782d84a892410","urls":["bzz-raw://09c1024e6aac9657312fcfcf5c3dee62c22edf9f74a1065e6924c4ec710ecafa","dweb:/ipfs/QmRNURoTUkd6DiZnf8yY8o3stJpVQBifopdSpQgP9RhvRr"],"license":"MIT"},"lib_forge_std/src/Test.sol":{"keccak256":"0x3b4bb409a156dee9ce261458117fe9f81080ca844a8a26c07c857c46d155effe","urls":["bzz-raw://5792c69fe24bdc063a14e08fe68275007fdb1e5e7e343840a77938cb7e95a64e","dweb:/ipfs/QmcAMhaurUwzhytJFYix4vRNeZeV8g27b8LnV3t7dvYtiK"],"license":"MIT"},"lib_forge_std/src/Vm.sol":{"keccak256":"0x882b5ae1b429dda7696bc57c913808f0942423d024fad8cedf0ba08d34040649","urls":["bzz-raw://31b63dcea38a411471679c9cc78b3f6d5ae830b9e0560091a6d6b1f0049aa166","dweb:/ipfs/QmW61wSQ3yj5j4yapXVCxmwdXFEr8ASnxjXiDev8QHVgHT"],"license":"MIT OR Apache-2.0"},"lib_forge_std/src/console.sol":{"keccak256":"0x91d5413c2434ca58fd278b6e1e79fd98d10c83931cc2596a6038eee4daeb34ba","urls":["bzz-raw://91ccea707361e48b9b7a161fe81f496b9932bc471e9c4e4e1e9c283f2453cc70","dweb:/ipfs/QmcB66sZhQ6Kz7MUHcLE78YXRUZxoZnnxZjN6yATsbB2ec"],"license":"MIT"},"lib_forge_std/src/console2.sol":{"keccak256":"0x954646445d1014c3cd85c7918f5e7adeeca5ee44b68c00bafa237e597a4e35ea","urls":["bzz-raw://516fa3be52da4763147175bfba4be0aa011fadbb0c1afb01f97265bd4cee7973","dweb:/ipfs/QmdixAyMJefx7qePChgdxcBH5MxhmN7vsqPuPLx3CgrVmF"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC165.sol":{"keccak256":"0x414b2861b1acbf816ccb7346d3f16cf6c1e002e9e5e40d2f1f26fa5ddc2ea600","urls":["bzz-raw://698352fb240868ea8f1d1fe389993035eeab930f10d06934f80ccfb2b6ccbfbc","dweb:/ipfs/QmT6WLHAgXxFhh12kWym895oTzXid1326iZiwT3pyfggoT"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC20.sol":{"keccak256":"0x4cab887298790f908c27de107e4e2907ca5413aee482ef776f8d2f353c5ef947","urls":["bzz-raw://bb715e0c4a2bdbe432bb624501506041f06e878e0b72675aebba30ad2c2b72e7","dweb:/ipfs/QmWhhLSvkxS2NrukJJHqFY8gDVE5r9rD4PfHvR24pwdKv9"],"license":"MIT"},"lib_forge_std/src/interfaces/IERC721.sol":{"keccak256":"0xf069262a264fdb69f8f37a10d2df7374649e9ba73f8414c9c8a3b51184625f15","urls":["bzz-raw://924a41ca82a68ffbd503a5faf2f76d13e9938f10501a71094716f12bb64b4b7f","dweb:/ipfs/QmdWnqfKc5ZGhmxNPTde4zrFchnv9Yk9MpCMb2rdhXE5gm"],"license":"MIT"},"lib_forge_std/src/interfaces/IMulticall3.sol":{"keccak256":"0x7aac1389150499a922d1f9ef5749c908cef127cb2075b92fa17e9cb611263d0a","urls":["bzz-raw://d95ebb7c7c463e08ebc12dab639945752fb2480acfc6e86da32f72732a7fd0c0","dweb:/ipfs/QmNXK8P8oPWwajsQHvAHw3JPyQidPLCGQN3hWu1Lk6PBL2"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC20.sol":{"keccak256":"0xadbdfc6639edec00ba94bb1133a0fd8de31ccafe45c2ef5df9b3ca61b60b559b","urls":["bzz-raw://bc766f01bccf669abac8cc7b2096cc1352a66471ca3772ae61b1801dedc4ed4f","dweb:/ipfs/QmNigaPj1LYkP7Z5xr4ijkUxr2K66fDGeoifG3WoM9ruyw"],"license":"MIT"},"lib_forge_std/src/mocks/MockERC721.sol":{"keccak256":"0x3293dcbb7acd28df553c954e4e39e288bf10aab7ecda8d50ef21b4f4a91a28d9","urls":["bzz-raw://9eb374daf6df34f4392f8926f1fddbce9f22c423066aeaefdfbe77395f77967b","dweb:/ipfs/QmWR81zBJRX2uyRjveGzikYPj6ZwKppWsU49YEQXTLWUsN"],"license":"MIT"},"lib_forge_std/src/safeconsole.sol":{"keccak256":"0xbaf41fdc6c54297e7cd8250e48b0f20eaac918e342a1028cef3f9a52ac086381","urls":["bzz-raw://a500ad81dea226f9910e6b50f99a9ff930105e393a692cbfb2185e4cdb4424ae","dweb:/ipfs/QmVbUQpXNMmMWRiy4FvBNczzq46BMGfUoBikvSHNiCxVTq"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/proxy/Proxy.sol":{"keccak256":"0xc3f2ec76a3de8ed7a7007c46166f5550c72c7709e3fc7e8bb3111a7191cdedbd","urls":["bzz-raw://e73efb4c2ca655882dc237c6b4f234a9bd36d97159d8fcaa837eb01171f726ac","dweb:/ipfs/QmTNnnv7Gu5fs5G1ZMh7Fexp8N4XUs3XrNAngjcxgiss3e"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC20/IERC20.sol":{"keccak256":"0xee2337af2dc162a973b4be6d3f7c16f06298259e0af48c5470d2839bfa8a22f4","urls":["bzz-raw://30c476b4b2f405c1bb3f0bae15b006d129c80f1bfd9d0f2038160a3bb9745009","dweb:/ipfs/Qmb3VcuDufv6xbHeVgksC4tHpc5gKYVqBEwjEXW72XzSvN"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/IERC721.sol":{"keccak256":"0xe0e3a2099f2e2ce3579dd35548f613928739642058dfec95b1745f93364ce3de","urls":["bzz-raw://36a3930518e5c4a3c83839aaa136b863af513e6eeee6a3654e8f910f8007f827","dweb:/ipfs/QmcU1b6SYYUMiXJ6jd5HY6sgYjJLdBu4smak1X1FDgkoaA"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Enumerable.sol":{"keccak256":"0x3d6954a93ac198a2ffa384fa58ccf18e7e235263e051a394328002eff4e073de","urls":["bzz-raw://1f58c799bd939d3951c94893e83ef86acd56989d1d7db7f9d180c515e29e28ff","dweb:/ipfs/QmTgAxHAAys4kq9ZfU9YB24MWYoHLGAKSxnYUigPFrNW7g"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol":{"keccak256":"0x37d1aaaa5a2908a09e9dcf56a26ddf762ecf295afb5964695937344fc6802ce1","urls":["bzz-raw://ed0bfc1b92153c5000e50f4021367b931bbe96372ac6facec3c4961b72053d02","dweb:/ipfs/Qmbwp8VDerjS5SV1quwHH1oMXxPQ93fzfLVqJ2RCqbowGE"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/ReentrancyGuard.sol":{"keccak256":"0x84496688b0b80f8e592f0db8ef82c3e7172a1658169b8f0832b522e935e216c0","urls":["bzz-raw://c98e6288d465afdbe084108995c6a8f19db173d6f068b92ef1f70f7edf6ffb3a","dweb:/ipfs/QmShqKgJLqoRK2vv4sFU3iouqFGvWUbvGopbZS8Qn9Bp1X"],"license":"MIT"},"lib_openzeppelin_contracts/contracts/utils/introspection/IERC165.sol":{"keccak256":"0xc859863e3bda7ec3cddf6dafe2ffe91bcbe648d1395b856b839c32ee9617c44c","urls":["bzz-raw://a9d5417888b873cf2225ed5d50b2a67be97c1504134a2a580512168d587ad82e","dweb:/ipfs/QmNr5fTb2heFW658NZn7dDnofZgFvQTnNxKRJ3wdnR1skX"],"license":"MIT"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Factory.sol":{"keccak256":"0xcc3d0c93fc9ac0febbe09f941b465b57f750bcf3b48432da0b97dc289cfdc489","urls":["bzz-raw://b9379ad954680c44a0bc523b314ae4c4da735f9fe1d02aa56ea5bdba6f1136f2","dweb:/ipfs/QmZXdgQNXKAckrXWz9R3mc47F1fvDvr28a2ewJrwNAw71B"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/IUniswapV3Pool.sol":{"keccak256":"0xfe6113d518466cd6652c85b111e01f33eb62157f49ae5ed7d5a3947a2044adb1","urls":["bzz-raw://1c42b9e6f5902ac38dd43e25750939baa7e0c1425dc75afd717c4412731065d5","dweb:/ipfs/QmWaoacnzsucTvBME2o7YgZBZMhaHv7fkj83htHMVWJKWh"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/callback/IUniswapV3SwapCallback.sol":{"keccak256":"0x3f485fb1a44e8fbeadefb5da07d66edab3cfe809f0ac4074b1e54e3eb3c4cf69","urls":["bzz-raw://095ce0626b41318c772b3ebf19d548282607f6a8f3d6c41c13edfbd5370c8652","dweb:/ipfs/QmVDZfJJ89UUCE1hMyzqpkZAtQ8jUsBgZNE5AMRG7RzRFS"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolActions.sol":{"keccak256":"0x9453dd0e7442188667d01d9b65de3f1e14e9511ff3e303179a15f6fc267f7634","urls":["bzz-raw://982f4328f956c3e60e67501e759eb292ac487f76460c774c50e9ae4fcc92aae5","dweb:/ipfs/QmRnzEDsaqtd9PJEVcgQi7p5aV5pMSvRUoGZJAdwFUJxgZ"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolDerivedState.sol":{"keccak256":"0xe603ac5b17ecdee73ba2b27efdf386c257a19c14206e87eee77e2017b742d9e5","urls":["bzz-raw://8febc9bdb399a4d94bb89f5377732652e2400e4a8dee808201ade6848f9004e7","dweb:/ipfs/QmaKDqYYFU4d2W2iN77aDHptfbFmYZRrMYXHeGpJmM8C1c"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolEvents.sol":{"keccak256":"0x8071514d0fe5d17d6fbd31c191cdfb703031c24e0ece3621d88ab10e871375cd","urls":["bzz-raw://d0b571930cc7488b1d546a7e9cea7c52d8b3c4e207da657ed0e0db7343b8cd03","dweb:/ipfs/QmaGK6vVwB95QSTR1XMYvrh7ivYAYZxi3fD7v6VMA4jZ39"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolImmutables.sol":{"keccak256":"0xf6e5d2cd1139c4c276bdbc8e1d2b256e456c866a91f1b868da265c6d2685c3f7","urls":["bzz-raw://b99c8c9ae8e27ee6559e5866bea82cbc9ffc8247f8d15b7422a4deb287d4d047","dweb:/ipfs/QmfL8gaqt3ffAnm6nVj5ksuNpLygXuL3xq5VBqrkwC2JJ3"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolOwnerActions.sol":{"keccak256":"0x759b78a2918af9e99e246dc3af084f654e48ef32bb4e4cb8a966aa3dcaece235","urls":["bzz-raw://64144fb96e1c7fdba87305acadb98a198d26a3d46c097cb3a666e567f6f29735","dweb:/ipfs/QmUnWVwN9FKB9uV5Pr8YfLpWZnYM2DENnRMaadZ492JS9u"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/interfaces/pool/IUniswapV3PoolState.sol":{"keccak256":"0x852dc1f5df7dcf7f11e7bb3eed79f0cea72ad4b25f6a9d2c35aafb48925fd49f","urls":["bzz-raw://ed63907c38ff36b0e22bc9ffc53e791ea74f0d4f0e7c257fdfb5aaf8825b1f0f","dweb:/ipfs/QmSQrckghEjs6HVsA5GVgpNpZWvTXMY5eQLF7cN6deFeEg"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FixedPoint96.sol":{"keccak256":"0x0ba8a9b95a956a4050749c0158e928398c447c91469682ca8a7cc7e77a7fe032","urls":["bzz-raw://186d3b528866065a5856f96d2aeec698efa99f8da913e9adf34f8cc296cc993d","dweb:/ipfs/QmUAiMvtAQp8c9dy57bqJYzG7hkb1uChiPaQmt264skoqP"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-core/contracts/libraries/FullMath.sol":{"keccak256":"0x77608bce1ddeb28ed9963b554b55e8a083277eda7be31e2c7255ef532cc408be","urls":["bzz-raw://8fcb307cf783b612ab9abd339296391d202974e7aa158deff23d9fb3aaac832d","dweb:/ipfs/QmXhcwQajcGZADQtVoQpSWYNY4tB3Y42GPPyiaW62M5JH2"],"license":"MIT"},"lib_uniswap/v3-core/contracts/libraries/TickMath.sol":{"keccak256":"0x350d6743e4d8ff3b7f3bcc569919b22dd13e46918a7994d29d7cb5c60080ee4d","urls":["bzz-raw://513f138148bd8b28edb0625d27c593b09155a1f71cc3c081659d448d079ca8d3","dweb:/ipfs/QmRhWsD9JhoKLVT9ShUkDC2kYcNneDKXbt3NTHEpDkRZ2G"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IERC20Metadata.sol":{"keccak256":"0xf03a00e27f6b4fd49d0062a5f5be46809e11b336f5b5bb0266c5ab02235b88cd","urls":["bzz-raw://b3b0df9468cf07a6d4b78d65dab6871bf27a49776d92f8e4a42e2586571841b0","dweb:/ipfs/QmTSS9xpictvtAiGCjZmymM7C7jyZ8eK3KK85dDD4ncwaP"],"license":null},"lib_uniswap/v3-periphery/contracts/interfaces/IERC721Permit.sol":{"keccak256":"0x9e3c2a4ee65ddf95b2dfcb0815784eea3a295707e6f8b83e4c4f0f8fe2e3a1d4","urls":["bzz-raw://bfd939085b3618101b955f87c7fabf38338ba1aad480295acb8102ebc5d72471","dweb:/ipfs/QmauQD8bGDHTztmTDfaKXjzM7Wacrq2XU7VcTbwn1WrDBL"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/INonfungiblePositionManager.sol":{"keccak256":"0x3357b065654abb7f4a9ebd184a260bc39efde2afa4e99dca2e72ffc28e9c2984","urls":["bzz-raw://f7682dab014724be8e0a5a401b047788ff9c70b77fa5bd567ea6adc333cb3b56","dweb:/ipfs/QmatH1Gc6z3AkP4dHjAEBKfCBbgBfD4vCceF4TuZU2bCyW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryImmutableState.sol":{"keccak256":"0x7affcfeb5127c0925a71d6a65345e117c33537523aeca7bc98085ead8452519d","urls":["bzz-raw://e16b291294210e71cb0f20cd0afe62ae2dc6878d627f5ccc19c4dc9cd80aec3f","dweb:/ipfs/QmQGitSyBr26nour81BZmpmDMyJpvZRqHQZvnCD1Acb127"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPeripheryPayments.sol":{"keccak256":"0xb547e10f1e69bed03621a62b73a503e260643066c6b4054867a4d1fef47eb274","urls":["bzz-raw://f9a90f58f5fd5fb42f7811f4094113b532f307b14a73764c91f977590747f407","dweb:/ipfs/QmSeNH2mfiDMKf3Q6V2sqtNxx1s72JNuA1VVxRM9HoMqYp"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/IPoolInitializer.sol":{"keccak256":"0x9d7695e8d94c22cc5fcced602017aabb988de89981ea7bee29ea629d5328a862","urls":["bzz-raw://61b50933026ee1017db2a6273af8cedc3238c95dca58880db0918dbdbb2f064f","dweb:/ipfs/QmUebR26pqG25d18aBELKz8aFFKkmHa8PxntzXTA7o9Ldu"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/ISwapRouter.sol":{"keccak256":"0x9bfaf1feb32814623e627ab70f2409760b15d95f1f9b058e2b3399a8bb732975","urls":["bzz-raw://a8a2c3e55965b61bcd91993d8e1d5d34b8b8a63e0fdfce87a85f6af92526fd53","dweb:/ipfs/QmQj2CSCSwqDSU4KMNWxGsN2336Cy64WgpV1X1EHXNZWxM"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/interfaces/external/IWETH9.sol":{"keccak256":"0xa15c06ebc0fac4057529d5580114c73a9ec1ceed1c4192d6a2c8178e5cad5f82","urls":["bzz-raw://bc05180f3b4fe5f8e5f604f3e2e84dec88b9b05c02d82c672cec8047e573c12b","dweb:/ipfs/QmQLbbXriaQBGC1MMgFysrmafnmLvpHYd66DvcbhyTxxGW"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/LiquidityAmounts.sol":{"keccak256":"0xf149581d28e1c81736dfe72be73ee1301d4945340cc6282fcdd63fe3c85abf24","urls":["bzz-raw://0b67f375180bb62fe6753601cd09740496dcdcec4c0a4f9eaa6e94c5e1bb6844","dweb:/ipfs/QmWYwkmqynRq7g81Nijg4eEkPgSRGnegDrbbEKkkTC1k2w"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/PoolAddress.sol":{"keccak256":"0x0a107d09991fd2dc9a3ca13bf0745f0b6f6f6ffea3e55ad3677ecdbadef089b4","urls":["bzz-raw://e179110a9ec825b7f15384a9c61f90261fe6227b289dac9996b0ed9cf1655b48","dweb:/ipfs/Qma2amC8zJSW2PzPCk1nBYiFd4mjZiAW9z4kxjoYZPCtRr"],"license":"GPL-2.0-or-later"},"lib_uniswap/v3-periphery/contracts/libraries/TransferHelper.sol":{"keccak256":"0x9af98b0908c96320ca6d08b22f0efca864742f6adbe5794cafe2d1d2e808b0cd","urls":["bzz-raw://da1d1e81e5bf534f0bf2934b3193db6cb1933f91ec006d2b88e9ad10a617a2d2","dweb:/ipfs/QmcPBk47QLMFWcX2y2S9eMFsJgoYWBd3R8ey55Bgmv6w6v"],"license":"GPL-2.0-or-later"},"src/core/FeeManager.sol":{"keccak256":"0xf90bbdb7bffa3ee966653d58199e324c2f1d1b567de6dee5d27a6b7714354aaf","urls":["bzz-raw://71b6428b3b7295e61a26fee0f4c7911111a3b994cc9162125165e75238d8fdc4","dweb:/ipfs/QmPZYdZQ1b7S3MwfwdsYxKcPtE27o5txUkLSewYTuSVTgp"],"license":null},"src/core/IEEE754.sol":{"keccak256":"0x0e82f6729756c4697b3a603a56ed2c72747dd61ebc85e5e2f9042900d776a82d","urls":["bzz-raw://ca88595511ac4f6c50f1492c9a140dd6f5ab98c953438e0c9c57f77fd95c8495","dweb:/ipfs/QmPHn9rmFf3AhyPCqqPp2pEZGQbvtyS6CpdZqvgEEHu217"],"license":null},"src/core/LineLib.sol":{"keccak256":"0xf72474162cefdb8d591e5c5db911288ba5ec61acff198f12b0a581fdcd0b1b06","urls":["bzz-raw://770c8d00911448fd8242441edda313c7c9559a75ab10c1f5f626bc4e4f7243eb","dweb:/ipfs/QmeJhPWRr6QXGDViu1czrVTcAYDc2FwDnYV7jyNGLCXqdr"],"license":null},"src/core/OrderLib.sol":{"keccak256":"0x5b02146ea8ed0d7a0d0dd5284c4da635cdcd31539e4db4fd1598bc7e0d87bde7","urls":["bzz-raw://bb713eb417c4e9e3ea6a80b8024482caf795738bb509467811a8008627e158c6","dweb:/ipfs/QmXQVinXdosLnG8vrFoRHdYrsALg9ssmP4gRUirarurMYM"],"license":null},"src/core/OrderSpec.sol":{"keccak256":"0xf51eaf348c95b8e2b60f479ca3383c4d7f045dd99d6eb9bca7b4af00a036e300","urls":["bzz-raw://a0f9026cb7fd179c4839f76b3d0c6f793b8f0280ac770f29a2d87fd890e9df71","dweb:/ipfs/QmbAEKS5sYqeiVPnhg25BU2ddLsu6GGyaqtRUHYbsuD74D"],"license":null},"src/core/Router.sol":{"keccak256":"0x61b28f33930748ea605a294dbfaada7c57ce6c04dd29e84760733f20e0b00678","urls":["bzz-raw://7a24075c76ef67844b0a04c560706e5628c5c2d0afb7f4229a7ee48f48b74bad","dweb:/ipfs/QmXpUaz4mH8cDVPYvJ1FjKCoUf7JGqRgeLrQpikSyqS5fs"],"license":null},"src/core/UniswapSwapper.sol":{"keccak256":"0x848e169acf0fd5a309e48264264cc91027b9f2fa737904f4275f7d7c8e9af6b2","urls":["bzz-raw://49cd7afc487f1df0bde9a698722a043f74728b5d2606d32d7db380c07ecfb797","dweb:/ipfs/QmcTisrfAqfU2xd1UVcjFH9AEjGJ7MwVpV8Y856EvvWht1"],"license":null},"src/core/UniswapV3.sol":{"keccak256":"0xdc77030acc484b0ccf874288b32e0a06463faa12d1f054841b0b5adba6b3b278","urls":["bzz-raw://23d90797fe8397c870c678af525a370a9521388847772dcdefd084e5efb63924","dweb:/ipfs/QmRp4xzV8kPeejGM8saXSzuwxYjxXAgWZKEDRxdRpsjHWT"],"license":null},"src/core/Util.sol":{"keccak256":"0xe97bfa45237eebe5ea061a763f6a5d39435d5441afa4471ca43e2b69b4669dc8","urls":["bzz-raw://70d517a964a5d1019303097ce83fa127e76d1e1f34154da1c95b9108128b81ce","dweb:/ipfs/Qmbc7g5hxCz4LS3ykKJuehyXTH3bR2xuUurLNyiRFSsL3a"],"license":null},"src/core/Vault.sol":{"keccak256":"0xe7bf3ebbedfb36d03f550638814826a0462a54cd19bf480c12e47a61a1f3c3e8","urls":["bzz-raw://9d92f622dd17e9faf74e0cc686994ec43ca9fafd5d9b43a162d60f1ccd9e589e","dweb:/ipfs/Qmcw95EsgadYHZtvD32TWy4nK6T7GHmY3gWwUArSMe1pwX"],"license":null},"src/core/VaultFactory.sol":{"keccak256":"0xa2656c325f71ec00607234c67193e55186787087658e5f68a63fdc99256d0b5a","urls":["bzz-raw://af40a53b2a46f9a7ba732cec5488b7fa1d89567ef4f09f1b5f1892445ba76668","dweb:/ipfs/QmZ9ryHJQkmi99n5TLrS1aUhrJdgNNtfVoX6Sr64HdKUzr"],"license":null},"src/core/VaultImpl.sol":{"keccak256":"0xd0188794ab02bc9ca4b456655534d306f69b6e3735a74f71f63f9a507251877f","urls":["bzz-raw://9b2e1cd67edae2bf63d3c5212f355c4128c2bddddde4726d73ae9bcc8fbde80c","dweb:/ipfs/QmYZ4fm9G72nhK6tBfzMnTR6VQwwRfER3xAmu2dwYsBXZv"],"license":null},"src/interface/IFeeManager.sol":{"keccak256":"0xa350861e47d6fbf70d722208ad3ae3ac9797c1f2f15b488272379c891655c477","urls":["bzz-raw://22be3ef5693eef7e57579cf2d3df4e7d9d164d293a1199d2ec0e58413ea501a8","dweb:/ipfs/QmVPHMMtEZAbGrsH9xydL3pQBEwHBErYs1S26u5yDtvCxj"],"license":null},"src/interface/IRouter.sol":{"keccak256":"0x97a5b9d4e25009cd6a80cd49de13db537dc2567191094ae9a910dd6c95dc6052","urls":["bzz-raw://bd1e8dee4853139a5004bd2348854fd43e6d96aea8cec01959ba640ee7f4eff6","dweb:/ipfs/QmbSbkZsCm388SnAoGp2CGiNo8jEJCVugJuQbL16Jhy7Qr"],"license":null},"src/interface/IVault.sol":{"keccak256":"0x69388a3db9eaf4a69f01bc54be91e4b6978e390f5516bd02467f500586fbaf66","urls":["bzz-raw://9d1495203aacb7f608f3feb4a59b5d1b62099559066880839c0c3f4da3895a21","dweb:/ipfs/QmXjrJvS3rCWUz8bkswbhKDXkeAaJY9zV2fwwtL9KkgL5d"],"license":null},"src/interface/IVaultFactory.sol":{"keccak256":"0x0ade495999ead05e88736612617b2105d386c2ca61094ebaf95e2f7c8ccb3897","urls":["bzz-raw://3b8fde71fa61148ba18b751bceffa81c575a9fed9756569b1952be79b23883e4","dweb:/ipfs/QmQdYPW5PjV6KREgvEQLqKMK4CcCePJBZedux7ZD5QLTPc"],"license":null},"src/more/Dexorder.sol":{"keccak256":"0xd8c42ce1bed8a9ff297b3978ba4d4f1cc810e267f1ca8662a5a4a71280238448","urls":["bzz-raw://d3fc00ffae58d06db103f0db14c8528791b118b2582327f6ad57a45df6e34c67","dweb:/ipfs/QmVqnwbDBKP2vbADbb9fUMCXLw29RCWGpoyj5dLfAPKTzK"],"license":null},"src/more/FeeManagerLib.sol":{"keccak256":"0xd463ccd25e88e8e425461c43b5f7698e582d8c4cdf360ef8fa1f2ecd4ab56707","urls":["bzz-raw://a55e84a84ba8f885edb29d34083b9e3451253b3bc7e5b0517734cda6137a9885","dweb:/ipfs/QmWu4fRd4x4QFsWAmRu9DFqLxeiewzJhsvgiu7xfkE57Ck"],"license":null},"src/more/MockERC20.sol":{"keccak256":"0x80e6d0dc5793d6d7dba4872d7ea812b25f8ecc2ac010f89d58fe9054cb20c9ca","urls":["bzz-raw://d4ca08ef7ed2ccabfa9f2f777e8c840c8cd5d9a62f548419187340fc456c055a","dweb:/ipfs/QmURVf7jHKhjt2qfJ9R2fiDwdy3Ts3tGJgHUX267ebYcCp"],"license":null},"test/MockEnv.sol":{"keccak256":"0x8a222b8efd76e9bd6e6cec03190e4953b30b1b3ba70673f060203369d2b7f118","urls":["bzz-raw://a02f1e7acc02fd753e72317e8619f57f6055f4f6b3f46b4b78edf3de3edc48bf","dweb:/ipfs/QmdYAMS1tussRHrtVGGc8LaSvRwC9vLqsEwrmPrAp2SJpL"],"license":null},"test/MockUtil.sol":{"keccak256":"0xe6a01d037f2cc8c8eac609ee3a997b163bb0673a2006bae3a18ec7a8bfc35694","urls":["bzz-raw://40fd4313d4db9e60dd76b822e32689a951a5b217952a09cd1a3fb302abc9b53f","dweb:/ipfs/QmQ3M1Kupt8sTVTJdKGmAn743imvxtmdWog6DySPuUj9bi"],"license":null},"test/TestOrder.sol":{"keccak256":"0x3ef49bdf284638b2b504fe7e72ef60f1c8b868c90b5fd381fddaf5d3a41e47be","urls":["bzz-raw://a16788ddf3e908192472e7d160e0a12f7c4040e01ebc8afc5e573400c8b084d3","dweb:/ipfs/QmfMsgqp1KFRptMgoUH95zJCAmoH79gr9FeWZkRa3V2qkY"],"license":null}},"version":1},"id":94} |