UNPKG

@settlemint/solidity-token-erc20-crowdsale

Version:
1 lines 214 kB
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"excludeArtifacts","inputs":[],"outputs":[{"name":"excludedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"excludeContracts","inputs":[],"outputs":[{"name":"excludedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"excludeSelectors","inputs":[],"outputs":[{"name":"excludedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"excludeSenders","inputs":[],"outputs":[{"name":"excludedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"failed","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"testAddAnotherVestingForDifferentReleaseTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testAddNewBeneficiaryToVestingVault","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testCanGrantVaultControllerRoleIfAdmin","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testCannotAddBeneficiaryIfNotVaultController","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testCannotGrantVaultControllerRoleIfNotAdmin","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testHasToken","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testIncreaseTokensForExistingBeneficiary","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testMultipleReleaseTimes","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testReleaseTokensBeforeReleaseTime","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testReleaseTokensWithLessThanOneToken","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testReleaseVestingTokensOfBeneficiary","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testReturnVestingOfBeneficiary","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"testSupportsERC165Interface","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"function","name":"testUserCannotReleaseTokensNotBelongingToHim","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"event","name":"VestingLockedIn","inputs":[{"name":"beneficiary","type":"address","indexed":true,"internalType":"address"},{"name":"releaseTime","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"tokenAmount","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_address","inputs":[{"name":"","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_array","inputs":[{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_bytes","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_bytes32","inputs":[{"name":"","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_int","inputs":[{"name":"","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_address","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256[]","indexed":false,"internalType":"uint256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256[]","indexed":false,"internalType":"int256[]"}],"anonymous":false},{"type":"event","name":"log_named_array","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"address[]","indexed":false,"internalType":"address[]"}],"anonymous":false},{"type":"event","name":"log_named_bytes","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false},{"type":"event","name":"log_named_bytes32","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"bytes32","indexed":false,"internalType":"bytes32"}],"anonymous":false},{"type":"event","name":"log_named_decimal_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_decimal_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"},{"name":"decimals","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_named_int","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"int256","indexed":false,"internalType":"int256"}],"anonymous":false},{"type":"event","name":"log_named_string","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_named_uint","inputs":[{"name":"key","type":"string","indexed":false,"internalType":"string"},{"name":"val","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"log_string","inputs":[{"name":"","type":"string","indexed":false,"internalType":"string"}],"anonymous":false},{"type":"event","name":"log_uint","inputs":[{"name":"","type":"uint256","indexed":false,"internalType":"uint256"}],"anonymous":false},{"type":"event","name":"logs","inputs":[{"name":"","type":"bytes","indexed":false,"internalType":"bytes"}],"anonymous":false}],"bytecode":{"object":"0x60808060405234602f57600160ff19600c541617600c55600160ff19601f541617601f55617ec390816100348239f35b5f80fdfe6080806040526004361015610012575f80fd5b5f905f3560e01c9081630a9254e414613920575080630b1c89c1146137a25780631b6def2b146134395780631ed7831c146133bb5780632ade3880146131c757806336b71a8314612c3f5780633e5e3c2314612bc15780633f7286f414612b435780635b2abd93146127755780635f992a3e146122dd57806366d9a9a0146121a057806385226c81146121165780638f46593014612059578063916a17c614611faf578063919a420914611c5d578063b0464fdc14611bb3578063b5508aa914611b29578063b998067f1461189a578063ba412e8b14611342578063ba414fa61461131d578063be0c609d14611272578063cfcd403614610d74578063e20c9f7114610ce6578063e8db9e98146107e2578063f3718628146106df578063fa7626d4146106bc5763ff69d05114610147575f80fd5b3461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391610687575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57610672575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f491cc7c200000000000000000000000000000000000000000000000000000000815281818061027560048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761065d575b506001600160a01b036023541660275490807f970b25b911957fbf97ef28d72fcbb6175e7b3b97729a26ef75ce09e4a72c0fac6040805185815260016020820152a26001600160a01b036020541691823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57610643575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761062b575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e576105fe575b506001600160a01b03602054166001600160a01b0360235416604051907ff4753b3800000000000000000000000000000000000000000000000000000000825260048201528281602481855afa9081156105f35783916105d1575b5082805b82518510156104a8576104a060019160406104978887614171565b5101519061400b565b94019361047c565b6104b28491614730565b60206001600160a01b03601f5460081c16916024604051809481937f70a0823100000000000000000000000000000000000000000000000000000000835260048301525afa801561058e578290610599575b61050e9150614730565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761057a5750f35b8161058491614034565b61058b5780f35b80fd5b6040513d84823e3d90fd5b506020813d6020116105c9575b816105b360209383614034565b810103126105c55761050e9051610504565b5f80fd5b3d91506105a6565b6105ed91503d8085833e6105e58183614034565b8101906140a5565b5f610478565b6040513d85823e3d90fd5b61061f9060203d602011610624575b6106178183614034565b810190614075565b61041d565b503d61060d565b8161063591614034565b61058b57805f6103ba565b50fd5b8161064d91614034565b61058b57805f61033e565b505050fd5b8161066791614034565b61058b57805f61029a565b8161067c91614034565b61058b57805f61020a565b9250506020823d6020116106b4575b816106a360209383614034565b810103126105c5578291515f6101a1565b3d9150610696565b503461058b578060031936011261058b57602060ff601f54166040519015158152f35b503461058b578060031936011261058b57737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517ff4844814000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576107cd575b506001600160a01b03602054166001600160a01b0360235416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e5761057a5750f35b816107d791614034565b61058b57805f61075a565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391610cb1575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57610c9c575b506001600160a01b0360225416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57610c87575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f491cc7c200000000000000000000000000000000000000000000000000000000815281818061098d60048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57610c72575b506001600160a01b036023541660275490807f970b25b911957fbf97ef28d72fcbb6175e7b3b97729a26ef75ce09e4a72c0fac6040805185815260016020820152a26001600160a01b036020541691823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57610c5d575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f491cc7c2000000000000000000000000000000000000000000000000000000008152818180610ac160048201906001606060808401938281528260208201528260408201520152565b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57610c48575b50506001600160a01b03602354169060275460018101809111610c1b578282937f970b25b911957fbf97ef28d72fcbb6175e7b3b97729a26ef75ce09e4a72c0fac6040805185815260016020820152a26001600160a01b036020541691823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57610c06575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761057a5750f35b81610c1091614034565b61058b57805f610b98565b6024827f4e487b710000000000000000000000000000000000000000000000000000000081526011600452fd5b81610c5291614034565b61058b57805f610ae6565b81610c6791614034565b61058b57805f610a56565b81610c7c91614034565b61058b57805f6109b2565b81610c9191614034565b61058b57805f610922565b81610ca691614034565b61058b57805f6108a6565b9250506020823d602011610cde575b81610ccd60209383614034565b810103126105c5578291515f61083d565b3d9150610cc0565b503461058b578060031936011261058b5760405180916020601554928381520191601582527f55f448fdea98c4d29eb340757ef0a66cd03dbb9538908a6a81d96026b71ec475915b818110610d5557610d5185610d4581870382614034565b60405191829182613e1d565b0390f35b82546001600160a01b0316845260209093019260019283019201610d2e565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f357839161123d575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57611228575b506001600160a01b03602054166001600160a01b0360255416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57611213575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576111fe575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e576111e1575b5060275460018101809111610c1b578190737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fe5d6bf020000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576111cc575b506001600160a01b0360235416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576111b7575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b576040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f56657374696e675661756c743a2043616e6e6f742072656c656173652030207460448201527f6f6b656e7300000000000000000000000000000000000000000000000000000060648201528190818180608481015b038183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576111a2575b506001600160a01b0360205416803b15610640578180916004604051809481937f86d1a69f0000000000000000000000000000000000000000000000000000000083525af1801561058e5761057a5750f35b816111ac91614034565b61058b57805f611150565b816111c191614034565b61058b57805f611084565b816111d691614034565b61058b57805f611008565b6111f99060203d602011610624576106178183614034565b610f88565b8161120891614034565b61058b57805f610f25565b8161121d91614034565b61058b57805f610ea9565b8161123291614034565b61058b57805f610e38565b9250506020823d60201161126a575b8161125960209383614034565b810103126105c5578291515f610dcf565b3d915061124c565b503461058b578060031936011261058b57602460206001600160a01b03815416604051928380927f01ffc9a70000000000000000000000000000000000000000000000000000000082527f01ffc9a70000000000000000000000000000000000000000000000000000000060048301525afa801561058e576112fb9183916112fe575b50614632565b80f35b611317915060203d602011610624576106178183614034565b5f6112f5565b503461058b578060031936011261058b576020611338614559565b6040519015158152f35b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391611865575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57611850575b506001600160a01b03602054166001600160a01b0360235416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e5761183b575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57611826575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e57611809575b5060275460018101809111610c1b578190737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fe5d6bf020000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576117f4575b506001600160a01b0360235416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576117df575b506001600160a01b0360205416803b15610640578180916004604051809481937f86d1a69f0000000000000000000000000000000000000000000000000000000083525af1801561058e576117ca575b50506001600160a01b03601f5460081c166001600160a01b0360235416604051907f70a082310000000000000000000000000000000000000000000000000000000082526004820152602081602481855afa80156105f3578390611796575b61170b9150614730565b60206001600160a01b038154166024604051809481937f70a0823100000000000000000000000000000000000000000000000000000000835260048301525afa801561058e578290611762575b6112fb91506147a7565b506020813d60201161178e575b8161177c60209383614034565b810103126105c5576112fb9051611758565b3d915061176f565b506020813d6020116117c2575b816117b060209383614034565b810103126105c55761170b9051611701565b3d91506117a3565b816117d491614034565b61058b57805f6116a2565b816117e991614034565b61058b57805f611652565b816117fe91614034565b61058b57805f6115d6565b6118219060203d602011610624576106178183614034565b611556565b8161183091614034565b61058b57805f6114f3565b8161184591614034565b61058b57805f611477565b8161185a91614034565b61058b57805f611406565b9250506020823d602011611892575b8161188160209383614034565b810103126105c5578291515f61139d565b3d9150611874565b503461058b578060031936011261058b5780600460206001600160a01b03815416604051928380927f704e2b2d0000000000000000000000000000000000000000000000000000000082525afa90811561058e578291611af4575b506001600160a01b0360235416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15611af057604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152828160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af19081156105f3578391611adb575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b15610640576040517ff4844814000000000000000000000000000000000000000000000000000000008152828160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af19081156105f3578391611ac6575b50506001600160a01b0360205416906001600160a01b0360215416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57610c06575050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761057a5750f35b81611ad091614034565b61064057815f6119e2565b81611ae591614034565b61064057815f611974565b5050fd5b9150506020813d602011611b21575b81611b1060209383614034565b810103126105c5578190515f6118f5565b3d9150611b03565b503461058b578060031936011261058b57601954611b468161408d565b91611b546040519384614034565b818352601981527f944998273e477b495144fb8794c914197f3ccb46be2900f4698fd0ef743c9695602084015b838310611b965760405180610d518782613ef7565b600160208192611ba5856141b2565b815201920192019190611b81565b503461058b578060031936011261058b57601c54611bd08161408d565b91611bde6040519384614034565b818352601c81527f0e4562a10381dec21b205ed72637e6b1b523bdd0e4d4d50af5cd23dd4500a211602084015b838310611c205760405180610d518782613f74565b60026020600192604051611c3381614018565b6001600160a01b038654168152611c4b8587016142b5565b83820152815201920192019190611c0b565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391611f7a575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57611f65575b506001600160a01b03602054166001600160a01b0360245416813b15611af05782916064839260405194859384927ff74bc9d6000000000000000000000000000000000000000000000000000000008452600484015263b9a665f96024840152600160448401525af1801561058e57611f50575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57611f3b575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e57611f1e575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b576040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f56657374696e675661756c743a2043616e6e6f742072656c656173652030207460448201527f6f6b656e73000000000000000000000000000000000000000000000000000000606482015281908181806084810161112b565b611f369060203d602011610624576106178183614034565b611e74565b81611f4591614034565b61058b57805f611e11565b81611f5a91614034565b61058b57805f611d95565b81611f6f91614034565b61058b57805f611d21565b9250506020823d602011611fa7575b81611f9660209383614034565b810103126105c5578291515f611cb8565b3d9150611f89565b503461058b578060031936011261058b57601d54611fcc8161408d565b91611fda6040519384614034565b818352601d81527f6d4407e7be21f808e6509aa9fa9143369579dd7d760fe20a2c09680fc146134f602084015b83831061201c5760405180610d518782613f74565b6002602060019260405161202f81614018565b6001600160a01b0386541681526120478587016142b5565b83820152815201920192019190612007565b503461058b578060031936011261058b57600460206001600160a01b03815416604051928380927ffc0c546a0000000000000000000000000000000000000000000000000000000082525afa801561058e5782906120ce575b6112fb91506001600160a01b0380601f5460081c1691166146ae565b506020813d60201161210e575b816120e860209383614034565b8101031261210a57516001600160a01b038116810361210a576112fb906120b2565b5080fd5b3d91506120db565b503461058b578060031936011261058b57601a546121338161408d565b916121416040519384614034565b818352601a81527f057c384a7d1c54f3a1b2e5e67b2617b8224fdfd1ea7234eea573a6ff665ff63e602084015b8383106121835760405180610d518782613ef7565b600160208192612192856141b2565b81520192019201919061216e565b503461058b578060031936011261058b57601b546121bd8161408d565b6121ca6040519182614034565b818152601b83526020810191837f3ad8aa4f87544323a9d1e5dd902f40c356527a7955687113db5f9a85ad579dc1845b8383106122a257868587604051928392602084019060208552518091526040840160408260051b8601019392905b82821061223757505050500390f35b91936020612292827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc06001959799849503018652885190836122828351604084526040840190613e5f565b9201519084818403910152613ea2565b9601920192018594939192612228565b600260206001926040516122b581614018565b6122be866141b2565b81526122cb8587016142b5565b838201528152019201920191906121fa565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391612740575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e5761272b575b506001600160a01b03602054166001600160a01b0360245416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57612716575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57612701575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e576126e4575b5060275460018101809111610c1b578190737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fe5d6bf020000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576126cf575b506001600160a01b0360245416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e576126ba575b506001600160a01b0360205416803b15610640578180916004604051809481937f86d1a69f0000000000000000000000000000000000000000000000000000000083525af1801561058e576126a5575b50506001600160a01b03601f5460081c166001600160a01b0360245416604051907f70a082310000000000000000000000000000000000000000000000000000000082526004820152602081602481855afa80156105f35783906117965761170b9150614730565b816126af91614034565b61058b57805f61263d565b816126c491614034565b61058b57805f6125ed565b816126d991614034565b61058b57805f612571565b6126fc9060203d602011610624576106178183614034565b6124f1565b8161270b91614034565b61058b57805f61248e565b8161272091614034565b61058b57805f612412565b8161273591614034565b61058b57805f6123a1565b9250506020823d60201161276d575b8161275c60209383614034565b810103126105c5578291515f612338565b3d915061274f565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391612b0e575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57612af9575b505060275460018101809111610c1b578190737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fe5d6bf020000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57612ae4575b506001600160a01b0360255416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907f06447d560000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57612acf575b5050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b576040517ff28dceb300000000000000000000000000000000000000000000000000000000815260206004820152602560248201527f56657374696e675661756c743a2043616e6e6f742072656c656173652030207460448201527f6f6b656e7300000000000000000000000000000000000000000000000000000060648201528190818160848183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57612aba575b506001600160a01b0360205416803b15610640578180916004604051809481937f86d1a69f0000000000000000000000000000000000000000000000000000000083525af1801561058e57610c06575050737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761057a5750f35b81612ac491614034565b61058b57805f6129fd565b81612ad991614034565b61058b57805f612936565b81612aee91614034565b61058b57805f6128ba565b81612b0391614034565b61058b57805f612839565b9250506020823d602011612b3b575b81612b2a60209383614034565b810103126105c5578291515f6127d0565b3d9150612b1d565b503461058b578060031936011261058b5760405180916020601754928381520191601782527fc624b66cc0138b8fabc209247f72d758e1cf3343756d543badbf24212bed8c15915b818110612ba257610d5185610d4581870382614034565b82546001600160a01b0316845260209093019260019283019201612b8b565b503461058b578060031936011261058b5760405180916020601854928381520191601882527fb13d2d76d1f4b7be834882e410b3e3a8afaf69f83600ae24db354391d2378d2e915b818110612c2057610d5185610d4581870382614034565b82546001600160a01b0316845260209093019260019283019201612c09565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f3578391613192575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e5761317d575b506001600160a01b03602054166001600160a01b0360235416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57613168575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e57613153575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e57613136575b50806001600160a01b03602054166001600160a01b0360235416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600560448401525af1801561058e57613121575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761310c575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600560248401525af1801561058e576130ef575b506001600160a01b03602054166001600160a01b036023541691604051927ff4753b3800000000000000000000000000000000000000000000000000000000845260048401528083602481855afa9283156130e25781936130c6575b5080805b84518310156130275761301f60019160406104978689614171565b920191613004565b8390613036602854809261481d565b60206001600160a01b03601f5460081c16926024604051809581937f70a0823100000000000000000000000000000000000000000000000000000000835260048301525afa80156105f3578390613092575b61050e925061481d565b506020823d6020116130be575b816130ac60209383614034565b810103126105c55761050e9151613088565b3d915061309f565b6130db9193503d8085833e6105e58183614034565b915f613000565b50604051903d90823e3d90fd5b6131079060203d602011610624576106178183614034565b612fa4565b8161311691614034565b61058b57805f612f41565b8161312b91614034565b61058b57805f612ec5565b61314e9060203d602011610624576106178183614034565b612e53565b8161315d91614034565b61058b57805f612df0565b8161317291614034565b61058b57805f612d74565b8161318791614034565b61058b57805f612d03565b9250506020823d6020116131bf575b816131ae60209383614034565b810103126105c5578291515f612c9a565b3d91506131a1565b503461058b578060031936011261058b57601e546131e48161408d565b6131f16040519182614034565b818152601e83526020810191837f50bb669a95c7b50b7e8a6f09454034b2b14cf2b85c730dca9a539ca82cb6e350845b8383106133325786858760405192839260208401906020855251809152604084019160408260051b8601019392815b83831061325d5786860387f35b9193957fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0908692949603018352855190602060408201926001600160a01b0381511683520151916040602083015282518091526060820190602060608260051b850101940192855b8281106132e957505050505060208060019297019301930190928695949293613250565b9091929394602080613325837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa087600196030189528951613e5f565b97019501939291016132c5565b60405161333e81614018565b6001600160a01b03835416815260018301805461335a8161408d565b916133686040519384614034565b8183528a526020808b20908b9084015b83821061339e575050505060019282602092836002950152815201920192019190613221565b6001602081926133ad866141b2565b815201930191019091613378565b503461058b578060031936011261058b5760405180916020601654928381520191601682527fd833147d7dc355ba459fc788f669e58cfaf9dc25ddcd0702e87d69c7b5124289915b81811061341a57610d5185610d4581870382614034565b82546001600160a01b0316845260209093019260019283019201613403565b503461058b578060031936011261058b57806001600160a01b03602054166040517f704e2b2d000000000000000000000000000000000000000000000000000000008152602081600481855afa9081156105f357839161376d575b506001600160a01b0360225416823b15610658576040517f2f2ff15d00000000000000000000000000000000000000000000000000000000815260048101929092526001600160a01b031660248201529082908290604490829084905af1801561058e57613758575b506001600160a01b03602054166001600160a01b0360235416602754823b1561065857606484928360405195869485937ff74bc9d600000000000000000000000000000000000000000000000000000000855260048501526024840152600160448401525af1801561058e57613743575b506001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561064057604051907fca669fa70000000000000000000000000000000000000000000000000000000082526004820152818160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761372e575b5060206001600160a01b03601f5460081c1660446001600160a01b0383541660405194859384927fa9059cbb0000000000000000000000000000000000000000000000000000000084526004840152600160248401525af1801561058e57613711575b506001600160a01b03602054166024826001600160a01b036023541692604051928380927ff4753b380000000000000000000000000000000000000000000000000000000082528660048301525afa9081156105f35783916136f7575b508051156136ca57906001600160a01b0360206112fb93015151166146ae565b6024837f4e487b710000000000000000000000000000000000000000000000000000000081526032600452fd5b61370b91503d8085833e6105e58183614034565b5f6136aa565b6137299060203d602011610624576106178183614034565b61364d565b8161373891614034565b61058b57805f6135ea565b8161374d91614034565b61058b57805f61356e565b8161376291614034565b61058b57805f6134fd565b9250506020823d60201161379a575b8161378960209383614034565b810103126105c5578291515f613494565b3d915061377c565b503461058b578060031936011261058b576001600160a01b036020541681604051917f704e2b2d000000000000000000000000000000000000000000000000000000008352602083600481845afa92831561058e5782936138e9575b506001600160a01b036022541690803b156138e5576040517f2f2ff15d000000000000000000000000000000000000000000000000000000008152600481018590526001600160a01b0392909216602483015282908290604490829084905af1801561058e576138d0575b5050602080546022546040517f91d1485400000000000000000000000000000000000000000000000000000000815260048101949094526001600160a01b03908116602485015283916044918391165afa801561058e576112fb9183916112fe5750614632565b816138da91614034565b61210a57815f613869565b8280fd5b915091506020813d602011613918575b8161390660209383614034565b810103126105c557829051915f6137fe565b3d91506138f9565b9050346105c5575f6003193601126105c557307fffffffffffffffffffffffff000000000000000000000000000000000000000060225416176022556110017fffffffffffffffffffffffff000000000000000000000000000000000000000060265416176026556110027fffffffffffffffffffffffff000000000000000000000000000000000000000060235416176023556110037fffffffffffffffffffffffff000000000000000000000000000000000000000060245416176024556110047fffffffffffffffffffffffff000000000000000000000000000000000000000060255416176025556304a286004201804211613df05760275560066028556111208082019082821067ffffffffffffffff831117613dc357610100918391614894833960808152600c60808201527f4578616d706c65546f6b656e000000000000000000000000000000000000000060a082015260c06020820152600260c08201527f455400000000000000000000000000000000000000000000000000000000000060e08201526b0c2a55c2f86be2d0d5000000604082015261100160608201520301905ff08015613db8577fffffffffffffffffffffff0000000000000000000000000000000000000000ff74ffffffffffffffffffffffffffffffffffffffff00601f549260081b1691161780601f556040519061100d9081830183811067ffffffffffffffff821117613dc3576001600160a01b0384926020946159b4853960081c1681520301905ff08015613db8576001600160a01b0316807fffffffffffffffffffffffff000000000000000000000000000000000000000060205416176020556001600160a01b03601f5460081c166001600160a01b036026541660275490604051936114cd928386019286841067ffffffffffffffff851117613dc35760c09587956169c1873961123485526020850152604084015260fa6060840152608083015260a08201520301905ff08015613db8576001600160a01b03167fffffffffffffffffffffffff000000000000000000000000000000000000000060215416176021556001600160a01b0360265416737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c557604051907f06447d5600000000000000000000000000000000000000000000000000000000825260048201525f8160248183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af18015613db857613da5575b508060206001600160a01b03601f5460081c1660446001600160a01b036026541660405194859384927fa9059cbb00000000000000000000000000000000000000000000000000000000845260048401526b0c2a55c2f86be2d0d500000060248401525af1801561058e57613d88575b50737109709ecfa91a80626ff3989d68f67f5b1dd12d3b1561058b57806040517f90c5013b000000000000000000000000000000000000000000000000000000008152818160048183737109709ecfa91a80626ff3989d68f67f5b1dd12d5af1801561058e5761057a5750f35b613da09060203d602011610624576106178183614034565b613d1b565b613db191505f90614034565b5f5f613cab565b6040513d5f823e3d90fd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b60206040818301928281528451809452019201905f5b818110613e405750505090565b82516001600160a01b0316845260209384019390920191600101613e33565b907fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f602080948051918291828752018686015e5f8582860101520116010190565b90602080835192838152019201905f5b818110613ebf5750505090565b82517fffffffff0000000000000000000000000000000000000000000000000000000016845260209384019390920191600101613eb2565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613f2957505050505090565b9091929394602080613f65837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187528951613e5f565b97019301930191939290613f1a565b602081016020825282518091526040820191602060408360051b8301019401925f915b838310613fa657505050505090565b9091929394602080613ffc837fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc086600196030187526040838b516001600160a01b03815116845201519181858201520190613ea2565b97019301930191939290613f97565b91908201809211613df057565b6040810190811067ffffffffffffffff821117613dc357604052565b90601f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0910116810190811067ffffffffffffffff821117613dc357604052565b908160209103126105c5575180151581036105c55790565b67ffffffffffffffff8111613dc35760051b60200190565b6020818303126105c55780519067ffffffffffffffff82116105c5570181601f820112156105c5578051906140d98261408d565b926140e76040519485614034565b828452602060608186019402830101918183116105c557602001925b828410614111575050505090565b6060848303126105c557604051906060820182811067ffffffffffffffff821117613dc3576040528451906001600160a01b03821682036105c5578260209260609452828701518382015260408701516040820152815201930192614103565b80518210156141855760209160051b010190565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b90604051915f8154908160011c92600183169283156142ab575b60208510841461427e57848752869390811561423e57506001146141fa575b506141f892500383614034565b565b90505f9291925260205f20905f915b8183106142225750509060206141f8928201015f6141eb565b6020919350806001915483858901015201910190918492614209565b602093506141f89592507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0091501682840152151560051b8201015f6141eb565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b93607f16936141cc565b90604051918281549182825260208201905f5260205f20925f905b8060078301106144cc576141f8945491818110614496575b818110614460575b81811061442a575b8181106143f4575b8181106143be575b818110614388575b818110614353575b10614326575b500383614034565b7fffffffff000000000000000000000000000000000000000000000000000000001681526020015f61431e565b9260206001917fffffffff0000000000000000000000000000000000000000000000000000000085831b168152019301614318565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560401b168152019301614310565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560601b168152019301614308565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560801b168152019301614300565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560a01b1681520193016142f8565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560c01b1681520193016142f0565b9260206001917fffffffff000000000000000000000000000000000000000000000000000000008560e01b1681520193016142e8565b9160089193506101006001917fffffffff000000000000000000000000000000000000000000000000000000008754818160e01b168352818160c01b166020840152818160a01b166040840152818160801b166060840152818160601b166080840152818160401b1660a0840152818160201b1660c08401521660e08201520194019201859293916142d0565b60085460ff1680156145685790565b506040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d60048201527f6661696c656400000000000000000000000000000000000000000000000000006024820152602081604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa908115613db8575f91614600575b50151590565b90506020813d60201161462a575b8161461b60209383614034565b810103126105c557515f6145fa565b3d915061460e565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c557604051907f0c9fd581000000000000000000000000000000000000000000000000000000008252151560048201525f81602481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613db8576146a45750565b5f6141f891614034565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c5576001600160a01b039081604051937f515361f60000000000000000000000000000000000000000000000000000000085521660048401521660248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613db8576146a45750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c557604051907f98296c540000000000000000000000000000000000000000000000000000000082526004820152600160248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613db8576146a45750565b737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c557604051907f98296c5400000000000000000000000000000000000000000000000000000000825260048201525f60248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613db8576146a45750565b90737109709ecfa91a80626ff3989d68f67f5b1dd12d3b156105c557604051917f98296c54000000000000000000000000000000000000000000000000000000008352600483015260248201525f81604481737109709ecfa91a80626ff3989d68f67f5b1dd12d5afa8015613db8576146a4575056fe6080604052346103bb5761112080380380610019816103bf565b9283398101906080818303126103bb5780516001600160401b0381116103bb57826100459183016103e4565b602082015190926001600160401b0382116103bb576100659183016103e4565b604082015160609092015190916001600160a01b038216918290036103bb5783516001600160401b0381116102cc57600354600181811c911680156103b1575b60208210146102ae57601f811161034e575b50602094601f82116001146102eb579481929394955f926102e0575b50508160011b915f199060031b1c1916176003555b82516001600160401b0381116102cc57600454600181811c911680156102c2575b60208210146102ae57601f811161024b575b506020601f82116001146101e857819293945f926101dd575b50508160011b915f199060031b1c1916176004555b61015233610435565b5081156101ca57600254908082018092116101b65760207fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef915f9360025584845283825260408420818154019055604051908152a3604051610c4190816104bf8239f35b634e487b7160e01b5f52601160045260245ffd5b63ec442f0560e01b5f525f60045260245ffd5b015190505f80610134565b601f1982169060045f52805f20915f5b8181106102335750958360019596971061021b575b505050811b01600455610149565b01515f1960f88460031b161c191690555f808061020d565b9192602060018192868b0151815501940192016101f8565b60045f527f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b601f830160051c810191602084106102a4575b601f0160051c01905b818110610299575061011b565b5f815560010161028c565b9091508190610283565b634e487b7160e01b5f52602260045260245ffd5b90607f1690610109565b634e487b7160e01b5f52604160045260245ffd5b015190505f806100d3565b601f1982169560035f52805f20915f5b8881106103365750836001959697981061031e575b505050811b016003556100e8565b01515f1960f88460031b161c191690555f8080610310565b919260206001819286850151815501940192016102fb565b60035f527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f830160051c810191602084106103a7575b601f0160051c01905b81811061039c57506100b7565b5f815560010161038f565b9091508190610386565b90607f16906100a5565b5f80fd5b6040519190601f01601f191682016001600160401b038111838210176102cc57604052565b81601f820112156103bb578051906001600160401b0382116102cc57610413601f8301601f19166020016103bf565b92828452602083830101116103bb57815f9260208093018386015e8301015290565b6001600160a01b0381165f9081525f5160206111005f395f51905f52602052604090205460ff166104b9576001600160a01b03165f8181525f5160206111005f395f51905f5260205260408120805460ff191660011790553391907f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d8180a4600190565b505f9056fe6080806040526004361015610012575f80fd5b5f3560e01c90816301ffc9a7146107d65750806306fdde03146106fc578063095ea7b31461066d57806318160ddd1461065057806323b872dd146104da578063248a9ca3146104a75780632f2ff15d14610469578063313ce5671461044e57806336568abe146103e457806370a08231146103a057806391d148541461034957806395d89b41146101ce578063a217fddf146101b4578063a9059cbb14610183578063d547741f1461013e5763dd62ed3e146100cc575f80fd5b3461013a57604060031936011261013a576100e561089e565b73ffffffffffffffffffffffffffffffffffffffff6101026108c1565b91165f52600160205273ffffffffffffffffffffffffffffffffffffffff60405f2091165f52602052602060405f2054604051908152f35b5f80fd5b3461013a57604060031936011261013a5761018160043561015d6108c1565b9061017c610177825f526005602052600160405f20015490565b610a06565b610b41565b005b3461013a57604060031936011261013a576101a961019f61089e565b60243590336108e4565b602060405160018152f35b3461013a575f60031936011261013a5760206040515f8152f35b3461013a575f60031936011261013a576040515f600454908160011c6001831692831561033f575b6020821084146103125781855284939081156102d05750600114610274575b5003601f01601f191681019067ffffffffffffffff8211818310176102475761024382918260405282610874565b0390f35b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b60045f90815291507f8a35acfbc15ff81a39ae7d344fd709f28e8600b4aa8c65c6b64bfe7fe36bd19b5b8183106102b45750508101602001601f19610215565b602091935080600191548385880101520191019091839261029e565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff00166020858101919091529115156005