@excubiae/contracts
Version:
1 lines • 205 kB
JSON
{"abi":[{"type":"function","name":"IS_TEST","inputs":[],"outputs":[{"name":"","type":"bool","internalType":"bool"}],"stateMutability":"view"},{"type":"function","name":"deployer","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"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":"notOwner","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"setUp","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"subject","inputs":[],"outputs":[{"name":"","type":"address","internalType":"address"}],"stateMutability":"view"},{"type":"function","name":"targetArtifactSelectors","inputs":[],"outputs":[{"name":"targetedArtifactSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzArtifactSelector[]","components":[{"name":"artifact","type":"string","internalType":"string"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetArtifacts","inputs":[],"outputs":[{"name":"targetedArtifacts_","type":"string[]","internalType":"string[]"}],"stateMutability":"view"},{"type":"function","name":"targetContracts","inputs":[],"outputs":[{"name":"targetedContracts_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"targetInterfaces","inputs":[],"outputs":[{"name":"targetedInterfaces_","type":"tuple[]","internalType":"struct StdInvariant.FuzzInterface[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"artifacts","type":"string[]","internalType":"string[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSelectors","inputs":[],"outputs":[{"name":"targetedSelectors_","type":"tuple[]","internalType":"struct StdInvariant.FuzzSelector[]","components":[{"name":"addr","type":"address","internalType":"address"},{"name":"selectors","type":"bytes4[]","internalType":"bytes4[]"}]}],"stateMutability":"view"},{"type":"function","name":"targetSenders","inputs":[],"outputs":[{"name":"targetedSenders_","type":"address[]","internalType":"address[]"}],"stateMutability":"view"},{"type":"function","name":"test_register_whenCallerNotTarget_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_register_whenCheckFails_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_register_whenTokenDoesNotExist_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_register_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_vote_whenAlreadyVoted_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_vote_whenInvalidOption_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_vote_whenNotRegistered_reverts","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_vote_whenValid_succeeds","inputs":[],"outputs":[],"stateMutability":"nonpayable"},{"type":"function","name":"test_voting_deployed","inputs":[],"outputs":[],"stateMutability":"view"},{"type":"event","name":"Registered","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"}],"anonymous":false},{"type":"event","name":"Voted","inputs":[{"name":"voter","type":"address","indexed":false,"internalType":"address"},{"name":"option","type":"uint8","indexed":false,"internalType":"uint8"}],"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":"0x60806040819052600c8054600160ff199182168117909255601f8054909116821790556001625e79b760e01b0319909152608452737109709ecfa91a80626ff3989d68f67f5b1dd12d63ffa1864960a4602060405180830381865afa15801561006a573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061008e91906101e9565b602580546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260026004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa1580156100ff573d5f5f3e3d5ffd5b505050506040513d601f19601f8201168201806040525081019061012391906101e9565b602680546001600160a01b0319166001600160a01b03929092169190911790556040516001625e79b760e01b0319815260036004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063ffa1864990602401602060405180830381865afa158015610194573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906101b891906101e9565b602780546001600160a01b0319166001600160a01b03929092169190911790553480156101e3575f5ffd5b50610216565b5f602082840312156101f9575f5ffd5b81516001600160a01b038116811461020f575f5ffd5b9392505050565b617179806102235f395ff3fe608060405234801561000f575f5ffd5b506004361061019a575f3560e01c80637a901d08116100e8578063b5508aa911610093578063d5f394881161006e578063d5f39488146102f3578063e20c9f7114610313578063ebf62e501461031b578063fa7626d414610323575f5ffd5b8063b5508aa9146102cb578063ba414fa6146102d3578063c92d1e53146102eb575f5ffd5b8063916a17c6116100c3578063916a17c6146102a6578063999a7d7a146102bb578063b0464fdc146102c3575f5ffd5b80637a901d08146102815780637f711e181461028957806385226c8114610291575f5ffd5b80633e5e3c231161014857806366d9a9a01161012357806366d9a9a01461025c5780636a5d41d1146102715780637710ffad14610279575f5ffd5b80633e5e3c23146102445780633f7286f41461024c5780635c1c3cad14610254575f5ffd5b80631ed7831c116101785780631ed7831c146101fa578063251c9d631461020f5780632ade38801461022f575f5ffd5b806307128a841461019e5780630a59a98c146101a85780630a9254e4146101f2575b5f5ffd5b6101a6610330565b005b6026546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b60405173ffffffffffffffffffffffffffffffffffffffff90911681526020015b60405180910390f35b6101a66107ba565b610202610eeb565b6040516101e991906137d8565b6027546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b610237610f58565b6040516101e9919061387c565b6102026110a1565b61020261110c565b6101a6611177565b610264611544565b6040516101e991906139ea565b6101a66116bd565b6101a6611ca4565b6101a6612071565b6101a66123bd565b610299612797565b6040516101e99190613a86565b6102ae612862565b6040516101e99190613afb565b6101a6612965565b6102ae612b17565b610299612c1a565b6102db612ce5565b60405190151581526020016101e9565b6101a6612db5565b6025546101c89073ffffffffffffffffffffffffffffffffffffffff1681565b610202613200565b6101a661326b565b601f546102db9060ff1681565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156103ac575f5ffd5b505af11580156103be573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b15801561042d575f5ffd5b505af115801561043f573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156104b4575f5ffd5b505af11580156104c6573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610531575f5ffd5b505af1158015610543573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156105c3575f5ffd5b505af11580156105d5573d5f5f3e3d5ffd5b505060408051600160248083019190915282518083039091018152604490910182526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7e2732890000000000000000000000000000000000000000000000000000000017905290517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d935063f28dceb3925061068f9190600401613b9d565b5f604051808303815f87803b1580156106a6575f5ffd5b505af11580156106b8573d5f5f3e3d5ffd5b5050602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081526001600482015273ffffffffffffffffffffffffffffffffffffffff909116935063f207564e9250015b5f604051808303815f87803b158015610725575f5ffd5b505af1158015610737573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156107a2575f5ffd5b505af11580156107b4573d5f5f3e3d5ffd5b50505050565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015610836575f5ffd5b505af1158015610848573d5f5f3e3d5ffd5b50505050604051610858906137a4565b604051809103905ff080158015610871573d5f5f3e3d5ffd5b50601f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506040516108be906137b1565b604051809103905ff0801580156108d7573d5f5f3e3d5ffd5b50602180547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff92909216919091179055604051610929906137be565b604051809103905ff080158015610942573d5f5f3e3d5ffd5b5060235f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166341af2f526040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156109e9575f5ffd5b505af11580156109fb573d5f5f3e3d5ffd5b5050602154601f546040517f4c96a38900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff6101009092048216600482015291169250634c96a38991506024015f604051808303815f87803b158015610a70575f5ffd5b505af1158015610a82573d5f5f3e3d5ffd5b505050505f7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610af2573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610b379190810190613d3c565b90505f815f81518110610b4c57610b4c613ee0565b60200260200101515f0151600181518110610b6957610b69613ee0565b60209081029190910181015181547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff821617909155604080517f41af2f520000000000000000000000000000000000000000000000000000000081529051919250737109709ecfa91a80626ff3989d68f67f5b1dd12d916341af2f52916004808201925f9290919082900301818387803b158015610c1b575f5ffd5b505af1158015610c2d573d5f5f3e3d5ffd5b50506023546020546040517f4c96a38900000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff918216600482015291169250634c96a38991506024015f604051808303815f87803b158015610c9d575f5ffd5b505af1158015610caf573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff1663191553a46040518163ffffffff1660e01b81526004015f604051808303815f875af1158015610d1e573d5f5f3e3d5ffd5b505050506040513d5f823e601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201604052610d639190810190613d3c565b91505f825f81518110610d7857610d78613ee0565b60200260200101515f0151600181518110610d9557610d95613ee0565b6020908102919091010151602280547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff831690811790915560405191925090610df3906137cb565b73ffffffffffffffffffffffffffffffffffffffff9091168152602001604051809103905ff080158015610e29573d5f5f3e3d5ffd5b5060245f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015610ed0575f5ffd5b505af1158015610ee2573d5f5f3e3d5ffd5b50505050505050565b60606016805480602002602001604051908101604052809291908181526020018280548015610f4e57602002820191905f5260205f20905b815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f23575b5050505050905090565b6060601e805480602002602001604051908101604052809291908181526020015f905b82821015611098575f848152602080822060408051808201825260028702909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939591948681019491929084015b82821015611081578382905f5260205f20018054610ff690613f0d565b80601f016020809104026020016040519081016040528092919081815260200182805461102290613f0d565b801561106d5780601f106110445761010080835404028352916020019161106d565b820191905f5260205f20905b81548152906001019060200180831161105057829003601f168201915b505050505081526020019060010190610fd9565b505050508152505081526020019060010190610f7b565b50505050905090565b60606018805480602002602001604051908101604052809291908181526020018280548015610f4e57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f23575050505050905090565b60606017805480602002602001604051908101604052809291908181526020018280548015610f4e57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f23575050505050905090565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156111f3575f5ffd5b505af1158015611205573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b158015611274575f5ffd5b505af1158015611286573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156112fb575f5ffd5b505af115801561130d573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611378575f5ffd5b505af115801561138a573d5f5f3e3d5ffd5b50506027546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b15801561140a575f5ffd5b505af115801561141c573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f471549450000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb393506114c29201613b9d565b5f604051808303815f87803b1580156114d9575f5ffd5b505af11580156114eb573d5f5f3e3d5ffd5b5050602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063f207564e92500161070e565b6060601b805480602002602001604051908101604052809291908181526020015f905b82821015611098578382905f5260205f2090600202016040518060400160405290815f8201805461159790613f0d565b80601f01602080910402602001604051908101604052809291908181526020018280546115c390613f0d565b801561160e5780601f106115e55761010080835404028352916020019161160e565b820191905f5260205f20905b8154815290600101906020018083116115f157829003601f168201915b50505050508152602001600182018054806020026020016040519081016040528092919081815260200182805480156116a557602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116116525790505b50505050508152505081526020019060010190611567565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611739575f5ffd5b505af115801561174b573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b1580156117ba575f5ffd5b505af11580156117cc573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611841575f5ffd5b505af1158015611853573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156118be575f5ffd5b505af11580156118d0573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015611950575f5ffd5b505af1158015611962573d5f5f3e3d5ffd5b5050602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063f207564e9250015f604051808303815f87803b1580156119cd575f5ffd5b505af11580156119df573d5f5f3e3d5ffd5b5050602480546026546040517fb2dd5c0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152611a8295509116925063b2dd5c0791015b602060405180830381865afa158015611a57573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611a7b9190613f5e565b60016136b0565b6040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063491cc7c2906084015f604051808303815f87803b158015611afa575f5ffd5b505af1158015611b0c573d5f5f3e3d5ffd5b50506026546040805173ffffffffffffffffffffffffffffffffffffffff90921682525f60208301527f14075e33dffdc00c1fcaf75d0f86d667170be57fb566b12b41b499e5fa53b125935001905060405180910390a1602480546040517fb3f98adc0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff9091169163b3f98adc91015f604051808303815f87803b158015611bca575f5ffd5b505af1158015611bdc573d5f5f3e3d5ffd5b5050602480546026546040517f09eef43e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152611c3d9550911692506309eef43e9101611a3c565b7f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156107a2575f5ffd5b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015611d20575f5ffd5b505af1158015611d32573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b158015611da1575f5ffd5b505af1158015611db3573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015611e28575f5ffd5b505af1158015611e3a573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015611ea5575f5ffd5b505af1158015611eb7573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015611f37575f5ffd5b505af1158015611f49573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167faba473390000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350611fef9201613b9d565b5f604051808303815f87803b158015612006575f5ffd5b505af1158015612018573d5f5f3e3d5ffd5b5050602480546040517fb3f98adc0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063b3f98adc92500161070e565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156120ed575f5ffd5b505af11580156120ff573d5f5f3e3d5ffd5b50506022546025546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529116925063776d1a0191506024015f604051808303815f87803b15801561216f575f5ffd5b505af1158015612181573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156121f6575f5ffd5b505af1158015612208573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612273575f5ffd5b505af1158015612285573d5f5f3e3d5ffd5b50506027546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015612305575f5ffd5b505af1158015612317573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7d24b6fc0000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb393506114c29201613b9d565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612439575f5ffd5b505af115801561244b573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b1580156124ba575f5ffd5b505af11580156124cc573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015612541575f5ffd5b505af1158015612553573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b1580156125be575f5ffd5b505af11580156125d0573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015612650575f5ffd5b505af1158015612662573d5f5f3e3d5ffd5b50506040517f491cc7c200000000000000000000000000000000000000000000000000000000815260016004820181905260248201819052604482018190526064820152737109709ecfa91a80626ff3989d68f67f5b1dd12d925063491cc7c291506084015f604051808303815f87803b1580156126de575f5ffd5b505af11580156126f0573d5f5f3e3d5ffd5b505060265460405173ffffffffffffffffffffffffffffffffffffffff90911681527f2d3734a8e47ac8316e500ac231c90a6e1848ca2285f40d07eaa52005e4b3a0e99250602001905060405180910390a1602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff9091169163f207564e910161070e565b6060601a805480602002602001604051908101604052809291908181526020015f905b82821015611098578382905f5260205f200180546127d790613f0d565b80601f016020809104026020016040519081016040528092919081815260200182805461280390613f0d565b801561284e5780601f106128255761010080835404028352916020019161284e565b820191905f5260205f20905b81548152906001019060200180831161283157829003601f168201915b5050505050815260200190600101906127ba565b6060601d805480602002602001604051908101604052809291908181526020015f905b82821015611098575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff16835260018101805483518187028101870190945280845293949193858301939283018282801561294d57602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190600401906020826003010492830192600103820291508084116128fa5790505b50505050508152505081526020019060010190612885565b602454604080517fdadbccee0000000000000000000000000000000000000000000000000000000081529051612a169273ffffffffffffffffffffffffffffffffffffffff169163dadbccee9160048083019260209291908290030181865afa1580156129d4573d5f5f3e3d5ffd5b505050506040513d601f19601f820116820180604052508101906129f89190613f7d565b60225473ffffffffffffffffffffffffffffffffffffffff16613736565b602480546026546040517f09eef43e00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152612ab69391909216916309eef43e91015b602060405180830381865afa158015612a8c573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612ab09190613f5e565b5f6136b0565b602480546026546040517fb2dd5c0700000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152612b1593919092169163b2dd5c079101612a71565b565b6060601c805480602002602001604051908101604052809291908181526020015f905b82821015611098575f84815260209081902060408051808201825260028602909201805473ffffffffffffffffffffffffffffffffffffffff168352600181018054835181870281018701909452808452939491938583019392830182828015612c0257602002820191905f5260205f20905f905b82829054906101000a900460e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191681526020019060040190602082600301049283019260010382029150808411612baf5790505b50505050508152505081526020019060010190612b3a565b60606019805480602002602001604051908101604052809291908181526020015f905b82821015611098578382905f5260205f20018054612c5a90613f0d565b80601f0160208091040260200160405190810160405280929190818152602001828054612c8690613f0d565b8015612cd15780601f10612ca857610100808354040283529160200191612cd1565b820191905f5260205f20905b815481529060010190602001808311612cb457829003601f168201915b505050505081526020019060010190612c3d565b6008545f9060ff1615612cfc575060085460ff1690565b6040517f667f9d70000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d600482018190527f6661696c6564000000000000000000000000000000000000000000000000000060248301525f9163667f9d7090604401602060405180830381865afa158015612d8a573d5f5f3e3d5ffd5b505050506040513d601f19601f82011682018060405250810190612dae9190613f98565b1415905090565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b158015612e31575f5ffd5b505af1158015612e43573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b158015612eb2575f5ffd5b505af1158015612ec4573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b158015612f39575f5ffd5b505af1158015612f4b573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b158015612fb6575f5ffd5b505af1158015612fc8573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b158015613048575f5ffd5b505af115801561305a573d5f5f3e3d5ffd5b5050602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063f207564e9250015f604051808303815f87803b1580156130c5575f5ffd5b505af11580156130d7573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f2a7195310000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb3935061317d9201613b9d565b5f604051808303815f87803b158015613194575f5ffd5b505af11580156131a6573d5f5f3e3d5ffd5b5050602480546040517fb3f98adc0000000000000000000000000000000000000000000000000000000081526003600482015273ffffffffffffffffffffffffffffffffffffffff909116935063b3f98adc92500161070e565b60606015805480602002602001604051908101604052809291908181526020018280548015610f4e57602002820191905f5260205f2090815473ffffffffffffffffffffffffffffffffffffffff168152600190910190602001808311610f23575050505050905090565b6025546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d906306447d56906024015f604051808303815f87803b1580156132e7575f5ffd5b505af11580156132f9573d5f5f3e3d5ffd5b5050602254602480546040517f776d1a0100000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff91821660048201529216935063776d1a019250015f604051808303815f87803b158015613368575f5ffd5b505af115801561337a573d5f5f3e3d5ffd5b5050601f546026546040517f6a62784200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9182166004820152610100909204169250636a62784291506024015f604051808303815f87803b1580156133ef575f5ffd5b505af1158015613401573d5f5f3e3d5ffd5b505050507f885cb69240a935d632d79c317109709ecfa91a80626ff3989d68f67f5b1dd12d5f1c73ffffffffffffffffffffffffffffffffffffffff166390c5013b6040518163ffffffff1660e01b81526004015f604051808303815f87803b15801561346c575f5ffd5b505af115801561347e573d5f5f3e3d5ffd5b50506026546040517f06447d5600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff9091166004820152737109709ecfa91a80626ff3989d68f67f5b1dd12d92506306447d5691506024015f604051808303815f87803b1580156134fe575f5ffd5b505af1158015613510573d5f5f3e3d5ffd5b5050602480546040517ff207564e0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063f207564e9250015f604051808303815f87803b15801561357b575f5ffd5b505af115801561358d573d5f5f3e3d5ffd5b5050602480546040517fb3f98adc0000000000000000000000000000000000000000000000000000000081525f600482015273ffffffffffffffffffffffffffffffffffffffff909116935063b3f98adc9250015f604051808303815f87803b1580156135f8575f5ffd5b505af115801561360a573d5f5f3e3d5ffd5b50506040805160048082526024820183526020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167f7c9a1cf90000000000000000000000000000000000000000000000000000000017905291517ff28dceb3000000000000000000000000000000000000000000000000000000008152737109709ecfa91a80626ff3989d68f67f5b1dd12d945063f28dceb39350611fef9201613b9d565b6040517ff7fe347700000000000000000000000000000000000000000000000000000000815282151560048201528115156024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063f7fe3477906044015b5f6040518083038186803b15801561371c575f5ffd5b505afa15801561372e573d5f5f3e3d5ffd5b505050505050565b6040517f515361f600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff808416600483015282166024820152737109709ecfa91a80626ff3989d68f67f5b1dd12d9063515361f690604401613706565b61175780613fb083390190565b6107bd8061570783390190565b610d5a80615ec483390190565b61052680616c1e83390190565b602080825282518282018190525f918401906040840190835b8181101561382557835173ffffffffffffffffffffffffffffffffffffffff168352602093840193909201916001016137f1565b509095945050505050565b5f81518084528060208401602086015e5f6020828601015260207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f83011685010191505092915050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613982577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805173ffffffffffffffffffffffffffffffffffffffff168652602090810151604082880181905281519088018190529101906060600582901b8801810191908801905f5b81811015613968577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa08a8503018352613952848651613830565b6020958601959094509290920191600101613918565b5091975050506020948501949290920191506001016138a2565b50929695505050505050565b5f8151808452602084019350602083015f5b828110156139e05781517fffffffff00000000000000000000000000000000000000000000000000000000168652602095860195909101906001016139a0565b5093949350505050565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613982577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc08786030184528151805160408752613a546040880182613830565b9050602082015191508681036020880152613a6f818361398e565b965050506020938401939190910190600101613a10565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613982577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452613ae6858351613830565b94506020938401939190910190600101613aac565b5f602082016020835280845180835260408501915060408160051b8601019250602086015f5b82811015613982577fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0878603018452815173ffffffffffffffffffffffffffffffffffffffff81511686526020810151905060406020870152613b87604087018261398e565b9550506020938401939190910190600101613b21565b602081525f613baf6020830184613830565b9392505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b6040516060810167ffffffffffffffff81118282101715613c0657613c06613bb6565b60405290565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe016810167ffffffffffffffff81118282101715613c5357613c53613bb6565b604052919050565b5f67ffffffffffffffff821115613c7457613c74613bb6565b5060051b60200190565b5f82601f830112613c8d575f5ffd5b815167ffffffffffffffff811115613ca757613ca7613bb6565b613cd860207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f84011601613c0c565b818152846020838601011115613cec575f5ffd5b8160208501602083015e5f918101602001919091529392505050565b73ffffffffffffffffffffffffffffffffffffffff81168114613d29575f5ffd5b50565b8051613d3781613d08565b919050565b5f60208284031215613d4c575f5ffd5b815167ffffffffffffffff811115613d62575f5ffd5b8201601f81018413613d72575f5ffd5b8051613d85613d8082613c5b565b613c0c565b8082825260208201915060208360051b850101925086831115613da6575f5ffd5b602084015b83811015613ed557805167ffffffffffffffff811115613dc9575f5ffd5b85016060818a037fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0011215613dfc575f5ffd5b613e04613be3565b602082015167ffffffffffffffff811115613e1d575f5ffd5b82016020810190603f018b13613e31575f5ffd5b8051613e3f613d8082613c5b565b8082825260208201915060208360051b85010192508d831115613e60575f5ffd5b6020840193505b82841015613e82578351825260209384019390910190613e67565b8452505050604082015167ffffffffffffffff811115613ea0575f5ffd5b613eaf8b602083860101613c7e565b602083015250613ec160608301613d2c565b604082015284525060209283019201613dab565b509695505050505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52603260045260245ffd5b600181811c90821680613f2157607f821691505b602082108103613f58577f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b50919050565b5f60208284031215613f6e575f5ffd5b81518015158114613baf575f5ffd5b5f60208284031215613f8d575f5ffd5b8151613baf81613d08565b5f60208284031215613fa8575f5ffd5b505191905056fe608060405234801561000f575f5ffd5b5060408051808201825260038082526213919560ea1b6020808401829052845180860190955291845290830152905f61004883826100f5565b50600161005582826100f5565b5050506101af565b634e487b7160e01b5f52604160045260245ffd5b600181811c9082168061008557607f821691505b6020821081036100a357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f8211156100f057805f5260205f20601f840160051c810160208510156100ce5750805b601f840160051c820191505b818110156100ed575f81556001016100da565b50505b505050565b81516001600160401b0381111561010e5761010e61005d565b6101228161011c8454610071565b846100a9565b6020601f821160018114610154575f831561013d5750848201515b5f19600385901b1c1916600184901b1784556100ed565b5f84815260208120601f198516915b828110156101835787850151825560209485019460019092019101610163565b50848210156101a057868401515f19600387901b60f8161c191681555b50505050600190811b01905550565b61159b806101bc5f395ff3fe608060405234801561000f575f5ffd5b50600436106100e5575f3560e01c80636a62784211610088578063a22cb46511610063578063a22cb465146101e8578063b88d4fde146101fb578063c87b56dd1461020e578063e985e9c514610221575f5ffd5b80636a627842146101ac57806370a08231146101bf57806395d89b41146101e0575f5ffd5b8063095ea7b3116100c3578063095ea7b31461015e57806323b872dd1461017357806342842e0e146101865780636352211e14610199575f5ffd5b806301ffc9a7146100e957806306fdde0314610111578063081812fc14610126575b5f5ffd5b6100fc6100f7366004611134565b610269565b60405190151581526020015b60405180910390f35b61011961034d565b604051610108919061119b565b6101396101343660046111ad565b6103dc565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610108565b61017161016c3660046111ec565b610410565b005b610171610181366004611214565b61041f565b610171610194366004611214565b610513565b6101396101a73660046111ad565b610532565b6101716101ba36600461124e565b61053c565b6101d26101cd36600461124e565b61055f565b604051908152602001610108565b6101196105d7565b6101716101f6366004611267565b6105e6565b6101716102093660046112cd565b6105f1565b61011961021c3660046111ad565b610609565b6100fc61022f3660046113e7565b73ffffffffffffffffffffffffffffffffffffffff9182165f90815260056020908152604080832093909416825291909152205460ff1690565b5f7fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806102fb57507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b8061034757507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316145b92915050565b60605f805461035b90611418565b80601f016020809104026020016040519081016040528092919081815260200182805461038790611418565b80156103d25780601f106103a9576101008083540402835291602001916103d2565b820191905f5260205f20905b8154815290600101906020018083116103b557829003601f168201915b5050505050905090565b5f6103e68261067a565b505f8281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16610347565b61041b8282336106d8565b5050565b73ffffffffffffffffffffffffffffffffffffffff8216610473576040517f64a0ae920000000000000000000000000000000000000000000000000000000081525f60048201526024015b60405180910390fd5b5f61047f8383336106e5565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461050d576040517f64283d7b00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8086166004830152602482018490528216604482015260640161046a565b50505050565b61052d83838360405180602001604052805f8152506105f1565b505050565b5f6103478261067a565b6105488160065461085c565b60068054905f61055783611469565b919050555050565b5f73ffffffffffffffffffffffffffffffffffffffff82166105af576040517f89c62b640000000000000000000000000000000000000000000000000000000081525f600482015260240161046a565b5073ffffffffffffffffffffffffffffffffffffffff165f9081526003602052604090205490565b60606001805461035b90611418565b61041b338383610875565b6105fc84848461041f565b61050d3385858585610971565b60606106148261067a565b505f61062a60408051602081019091525f815290565b90505f8151116106485760405180602001604052805f815250610673565b8061065284610b67565b6040516020016106639291906114dc565b6040516020818303038152906040525b9392505050565b5f8181526002602052604081205473ffffffffffffffffffffffffffffffffffffffff1680610347576040517f7e2732890000000000000000000000000000000000000000000000000000000081526004810184905260240161046a565b61052d8383836001610c23565b5f8281526002602052604081205473ffffffffffffffffffffffffffffffffffffffff9081169083161561071e5761071e818486610deb565b73ffffffffffffffffffffffffffffffffffffffff811615610791576107465f855f5f610c23565b73ffffffffffffffffffffffffffffffffffffffff81165f90815260036020526040902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190555b73ffffffffffffffffffffffffffffffffffffffff8516156107d95773ffffffffffffffffffffffffffffffffffffffff85165f908152600360205260409020805460010190555b5f8481526002602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff89811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b61041b828260405180602001604052805f815250610e9b565b73ffffffffffffffffffffffffffffffffffffffff82166108da576040517f5b08ba1800000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8316600482015260240161046a565b73ffffffffffffffffffffffffffffffffffffffff8381165f8181526005602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b73ffffffffffffffffffffffffffffffffffffffff83163b15610b60576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff84169063150b7a02906109e69088908890879087906004016114f0565b6020604051808303815f875af1925050508015610a3e575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252610a3b9181019061154a565b60015b610acb573d808015610a6b576040519150601f19603f3d011682016040523d82523d5f602084013e610a70565b606091505b5080515f03610ac3576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161046a565b805181602001fd5b7fffffffff0000000000000000000000000000000000000000000000000000000081167f150b7a020000000000000000000000000000000000000000000000000000000014610b5e576040517f64a0ae9200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8516600482015260240161046a565b505b5050505050565b60605f610b7383610eb2565b60010190505f8167ffffffffffffffff811115610b9257610b926112a0565b6040519080825280601f01601f191660200182016040528015610bbc576020820181803683370190505b5090508181016020015b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610bc657509392505050565b8080610c44575073ffffffffffffffffffffffffffffffffffffffff821615155b15610d97575f610c538461067a565b905073ffffffffffffffffffffffffffffffffffffffff831615801590610ca657508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015610ce4575073ffffffffffffffffffffffffffffffffffffffff8082165f9081526005602090815260408083209387168352929052205460ff16155b15610d33576040517fa9fbf51f00000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff8416600482015260240161046a565b8115610d9557838573ffffffffffffffff