Loading
[ { "inputs": [ { "internalType": "address", "name": "_vageneTokenContractAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AntiBot", "type": "error" }, { "inputs": [], "name": "ECDSAInvalidSignature", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "length", "type": "uint256" } ], "name": "ECDSAInvalidSignatureLength", "type": "error" }, { "inputs": [ { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "ECDSAInvalidSignatureS", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "allowance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientAllowance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "balance", "type": "uint256" }, { "internalType": "uint256", "name": "needed", "type": "uint256" } ], "name": "ERC20InsufficientBalance", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC20InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC20InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC20InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" } ], "name": "ERC20InvalidSpender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "deadline", "type": "uint256" } ], "name": "ERC2612ExpiredSignature", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "signer", "type": "address" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC2612InvalidSigner", "type": "error" }, { "inputs": [], "name": "ExceedsMaximumHolding", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "currentNonce", "type": "uint256" } ], "name": "InvalidAccountNonce", "type": "error" }, { "inputs": [], "name": "InvalidShortString", "type": "error" }, { "inputs": [], "name": "MissingLiquidityPool", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "string", "name": "str", "type": "string" } ], "name": "StringTooLong", "type": "error" }, { "inputs": [], "name": "TradingNotStarted", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "sender", "type": "address" } ], "name": "transf", "type": "event" }, { "inputs": [], "name": "DOMAIN_SEPARATOR", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "liquidityPool", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxHoldingAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "nonces", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" }, { "internalType": "uint256", "name": "deadline", "type": "uint256" }, { "internalType": "uint8", "name": "v", "type": "uint8" }, { "internalType": "bytes32", "name": "r", "type": "bytes32" }, { "internalType": "bytes32", "name": "s", "type": "bytes32" } ], "name": "permit", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_liquidityPool", "type": "address" } ], "name": "setLiquidityPool", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tradingStartsAt", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "transferFrom", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "vageneTokenContract", "outputs": [ { "internalType": "contract IERC20", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
6101606040523480156200001257600080fd5b5060405162003b8f38038062003b8f833981810160405281019062000038919062000c82565b336040518060400160405280600681526020017f5572616e75730000000000000000000000000000000000000000000000000000815250806040518060400160405280600181526020017f31000000000000000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5572616e757300000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f5552414e55530000000000000000000000000000000000000000000000000000815250816003908162000123919062000f2e565b50806004908162000135919062000f2e565b5050506200014e6005836200030660201b90919060201c565b61012081815250506200016c6006826200030660201b90919060201c565b6101408181525050818051906020012060e08181525050808051906020012061010081815250504660a08181525050620001ab6200035e60201b60201c565b608081815250503073ffffffffffffffffffffffffffffffffffffffff1660c08173ffffffffffffffffffffffffffffffffffffffff1681525050505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036200025e5760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000255919062001026565b60405180910390fd5b6200026f81620003bb60201b60201c565b5060006be133fb69ad7ee8a91728000090506200029333826200048160201b60201c565b606481620002a29190620010a1565b600b81905550600042620002b79190620010d9565b600c8190555081600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550505062001540565b60006020835110156200032c5762000324836200050e60201b60201c565b905062000358565b826200033e836200057b60201b60201c565b60000190816200034f919062000f2e565b5060ff60001b90505b92915050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f60e051610100514630604051602001620003a095949392919062001140565b60405160208183030381529060405280519060200120905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620004f65760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620004ed919062001026565b60405180910390fd5b6200050a600083836200058560201b60201c565b5050565b600080829050601f815111156200055e57826040517f305a27a90000000000000000000000000000000000000000000000000000000081526004016200055591906200122c565b60405180910390fd5b8051816200056c9062001282565b60001c1760001b915050919050565b6000819050919050565b620005988383836200097660201b60201c565b600c544210156200061957620005b362000ba660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161462000618576040517facf75be800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16036200073c576200068062000ba660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620006f45750620006c562000ba660201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b62000736576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200072d9062001368565b60405180910390fd5b62000971565b61a8c0600c54426200074f91906200138a565b10156200080e57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200080d57600081620007c08462000bd060201b60201c565b620007cc9190620010d9565b9050600b548111156200080b576040517ff29d2a0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b5b610384600c54426200082191906200138a565b10156200097057600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146200096f576a05b521bfdfb93470800000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b8152600401620008e7919062001026565b602060405180830381865afa15801562000905573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906200092b9190620013f6565b116200096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200096590620014c4565b60405180910390fd5b5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603620009cc578060026000828254620009bf9190620010d9565b9250508190555062000aa2565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490508181101562000a5b578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040162000a5293929190620014e6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000aed578060026000828254039250508190555062000b3a565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000b99919062001523565b60405180910390a3505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000c4a8262000c1d565b9050919050565b62000c5c8162000c3d565b811462000c6857600080fd5b50565b60008151905062000c7c8162000c51565b92915050565b60006020828403121562000c9b5762000c9a62000c18565b5b600062000cab8482850162000c6b565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000d3657607f821691505b60208210810362000d4c5762000d4b62000cee565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000db67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000d77565b62000dc2868362000d77565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000e0f62000e0962000e038462000dda565b62000de4565b62000dda565b9050919050565b6000819050919050565b62000e2b8362000dee565b62000e4362000e3a8262000e16565b84845462000d84565b825550505050565b600090565b62000e5a62000e4b565b62000e6781848462000e20565b505050565b5b8181101562000e8f5762000e8360008262000e50565b60018101905062000e6d565b5050565b601f82111562000ede5762000ea88162000d52565b62000eb38462000d67565b8101602085101562000ec3578190505b62000edb62000ed28562000d67565b83018262000e6c565b50505b505050565b600082821c905092915050565b600062000f036000198460080262000ee3565b1980831691505092915050565b600062000f1e838362000ef0565b9150826002028217905092915050565b62000f398262000cb4565b67ffffffffffffffff81111562000f555762000f5462000cbf565b5b62000f61825462000d1d565b62000f6e82828562000e93565b600060209050601f83116001811462000fa6576000841562000f91578287015190505b62000f9d858262000f10565b8655506200100d565b601f19841662000fb68662000d52565b60005b8281101562000fe05784890151825560018201915060208501945060208101905062000fb9565b8683101562001000578489015162000ffc601f89168262000ef0565b8355505b6001600288020188555050505b505050505050565b620010208162000c3d565b82525050565b60006020820190506200103d600083018462001015565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620010ae8262000dda565b9150620010bb8362000dda565b925082620010ce57620010cd62001043565b5b828204905092915050565b6000620010e68262000dda565b9150620010f38362000dda565b92508282019050808211156200110e576200110d62001072565b5b92915050565b6000819050919050565b620011298162001114565b82525050565b6200113a8162000dda565b82525050565b600060a0820190506200115760008301886200111e565b6200116660208301876200111e565b6200117560408301866200111e565b6200118460608301856200112f565b62001193608083018462001015565b9695505050505050565b600082825260208201905092915050565b60005b83811015620011ce578082015181840152602081019050620011b1565b60008484015250505050565b6000601f19601f8301169050919050565b6000620011f88262000cb4565b6200120481856200119d565b935062001216818560208601620011ae565b6200122181620011da565b840191505092915050565b60006020820190508181036000830152620012488184620011eb565b905092915050565b600081519050919050565b6000819050602082019050919050565b600062001279825162001114565b80915050919050565b60006200128f8262001250565b826200129b846200125b565b9050620012a8816200126b565b92506020821015620012eb57620012e67fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8360200360080262000d77565b831692505b5050919050565b7f50617469656e6365202d2054726164696e67204e6f742053746172746564205960008201527f6574210000000000000000000000000000000000000000000000000000000000602082015250565b6000620013506023836200119d565b91506200135d82620012f2565b604082019050919050565b60006020820190508181036000830152620013838162001341565b9050919050565b6000620013978262000dda565b9150620013a48362000dda565b9250828203905081811115620013bf57620013be62001072565b5b92915050565b620013d08162000dda565b8114620013dc57600080fd5b50565b600081519050620013f081620013c5565b92915050565b6000602082840312156200140f576200140e62000c18565b5b60006200141f84828501620013df565b91505092915050565b7f596f75206d757374206861766520362e394d202456414720696e20796f75722060008201527f77616c6c657420746f20707572636861736520245552414e555320696e20746860208201527f6520666972737420686f75722e00000000000000000000000000000000000000604082015250565b6000620014ac604d836200119d565b9150620014b98262001428565b606082019050919050565b60006020820190508181036000830152620014df816200149d565b9050919050565b6000606082019050620014fd600083018662001015565b6200150c60208301856200112f565b6200151b60408301846200112f565b949350505050565b60006020820190506200153a60008301846200112f565b92915050565b60805160a05160c05160e0516101005161012051610140516125f46200159b6000396000610e3301526000610df8015260006114d1015260006114b001526000610c2d01526000610c8301526000610cac01526125f46000f3fe608060405234801561001057600080fd5b50600436106101375760003560e01c8063715018a6116100b857806395d89b411161007c57806395d89b4114610336578063a9059cbb14610354578063d505accf14610384578063dd62ed3e146103a0578063f2fde38b146103d0578063fe4c4af4146103ec57610137565b8063715018a61461029c5780637ecebe00146102a657806384b0196e146102d657806389f9a1d3146102fa5780638da5cb5b1461031857610137565b806323b872dd116100ff57806323b872dd146101e2578063313ce567146102125780633644e51514610230578063665a11ca1461024e57806370a082311461026c57610137565b8063018770201461013c57806306fdde0314610158578063095ea7b31461017657806315eebf0b146101a657806318160ddd146101c4575b600080fd5b61015660048036038101906101519190611bb6565b61040a565b005b610160610456565b60405161016d9190611c73565b60405180910390f35b610190600480360381019061018b9190611ccb565b6104e8565b60405161019d9190611d26565b60405180910390f35b6101ae61050b565b6040516101bb9190611da0565b60405180910390f35b6101cc610531565b6040516101d99190611dca565b60405180910390f35b6101fc60048036038101906101f79190611de5565b61053b565b6040516102099190611d26565b60405180910390f35b61021a61056a565b6040516102279190611e54565b60405180910390f35b610238610573565b6040516102459190611e88565b60405180910390f35b610256610582565b6040516102639190611eb2565b60405180910390f35b61028660048036038101906102819190611bb6565b6105a8565b6040516102939190611dca565b60405180910390f35b6102a46105f0565b005b6102c060048036038101906102bb9190611bb6565b610604565b6040516102cd9190611dca565b60405180910390f35b6102de610616565b6040516102f19796959493929190611fc6565b60405180910390f35b6103026106c0565b60405161030f9190611dca565b60405180910390f35b6103206106c6565b60405161032d9190611eb2565b60405180910390f35b61033e6106f0565b60405161034b9190611c73565b60405180910390f35b61036e60048036038101906103699190611ccb565b610782565b60405161037b9190611d26565b60405180910390f35b61039e600480360381019061039991906120a2565b6107a5565b005b6103ba60048036038101906103b59190612144565b6108ed565b6040516103c79190611dca565b60405180910390f35b6103ea60048036038101906103e59190611bb6565b610974565b005b6103f46109fa565b6040516104019190611dca565b60405180910390f35b610412610a00565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060038054610465906121b3565b80601f0160208091040260200160405190810160405280929190818152602001828054610491906121b3565b80156104de5780601f106104b3576101008083540402835291602001916104de565b820191906000526020600020905b8154815290600101906020018083116104c157829003601f168201915b5050505050905090565b6000806104f3610a87565b9050610500818585610a8f565b600191505092915050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600254905090565b600080610546610a87565b9050610553858285610aa1565b61055e858585610b35565b60019150509392505050565b60006012905090565b600061057d610c29565b905090565b600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6105f8610a00565b6106026000610ce0565b565b600061060f82610da6565b9050919050565b60006060806000806000606061062a610def565b610632610e2a565b46306000801b600067ffffffffffffffff811115610653576106526121e4565b5b6040519080825280602002602001820160405280156106815781602001602082028036833780820191505090505b507f0f00000000000000000000000000000000000000000000000000000000000000959493929190965096509650965096509650965090919293949596565b600b5481565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546106ff906121b3565b80601f016020809104026020016040519081016040528092919081815260200182805461072b906121b3565b80156107785780601f1061074d57610100808354040283529160200191610778565b820191906000526020600020905b81548152906001019060200180831161075b57829003601f168201915b5050505050905090565b60008061078d610a87565b905061079a818585610b35565b600191505092915050565b834211156107ea57836040517f627913020000000000000000000000000000000000000000000000000000000081526004016107e19190611dca565b60405180910390fd5b60007f6e71edae12b1b97f4d1f60370fef10105fa2faae0126114a169c64845d6126c98888886108198c610e65565b8960405160200161082f96959493929190612213565b604051602081830303815290604052805190602001209050600061085282610ebc565b9050600061086282878787610ed6565b90508973ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146108d657808a6040517f4b800e460000000000000000000000000000000000000000000000000000000081526004016108cd929190612274565b60405180910390fd5b6108e18a8a8a610a8f565b50505050505050505050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b61097c610a00565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036109ee5760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016109e59190611eb2565b60405180910390fd5b6109f781610ce0565b50565b600c5481565b610a08610a87565b73ffffffffffffffffffffffffffffffffffffffff16610a266106c6565b73ffffffffffffffffffffffffffffffffffffffff1614610a8557610a49610a87565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610a7c9190611eb2565b60405180910390fd5b565b600033905090565b610a9c8383836001610f06565b505050565b6000610aad84846108ed565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610b2f5781811015610b1f578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610b169392919061229d565b60405180910390fd5b610b2e84848484036000610f06565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ba75760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610b9e9190611eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610c195760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610c109190611eb2565b60405180910390fd5b610c248383836110dd565b505050565b60007f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff16148015610ca557507f000000000000000000000000000000000000000000000000000000000000000046145b15610cd2577f00000000000000000000000000000000000000000000000000000000000000009050610cdd565b610cda61148b565b90505b90565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6060610e2560057f000000000000000000000000000000000000000000000000000000000000000061152190919063ffffffff16565b905090565b6060610e6060067f000000000000000000000000000000000000000000000000000000000000000061152190919063ffffffff16565b905090565b6000600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815480929190600101919050559050919050565b6000610ecf610ec9610c29565b836115d1565b9050919050565b600080600080610ee888888888611612565b925092509250610ef88282611706565b829350505050949350505050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f785760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f6f9190611eb2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610fea5760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610fe19190611eb2565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156110d7578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110ce9190611dca565b60405180910390a35b50505050565b6110e883838361186a565b600c5442101561115f576110fa6106c6565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461115e576040517facf75be800000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff16600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff160361126c576111bd6106c6565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16148061122857506111f96106c6565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b611267576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125e90612346565b60405180910390fd5b611486565b61a8c0600c544261127d9190612395565b101561132f57600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161461132e576000816112e4846105a8565b6112ee91906123c9565b9050600b5481111561132c576040517ff29d2a0e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505b5b610384600c54426113409190612395565b101561148557600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611484576a05b521bfdfb93470800000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231846040518263ffffffff1660e01b81526004016114029190611eb2565b602060405180830381865afa15801561141f573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906114439190612412565b11611483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161147a906124d7565b60405180910390fd5b5b5b5b505050565b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f7f00000000000000000000000000000000000000000000000000000000000000007f000000000000000000000000000000000000000000000000000000000000000046306040516020016115069594939291906124f7565b60405160208183030381529060405280519060200120905090565b606060ff60001b831461153e5761153783611a8f565b90506115cb565b81805461154a906121b3565b80601f0160208091040260200160405190810160405280929190818152602001828054611576906121b3565b80156115c35780601f10611598576101008083540402835291602001916115c3565b820191906000526020600020905b8154815290600101906020018083116115a657829003601f168201915b505050505090505b92915050565b60006040517f190100000000000000000000000000000000000000000000000000000000000081528360028201528260228201526042812091505092915050565b60008060007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08460001c11156116525760006003859250925092506116fc565b600060018888888860405160008152602001604052604051611677949392919061254a565b6020604051602081039080840390855afa158015611699573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036116ed57600060016000801b935093509350506116fc565b8060008060001b935093509350505b9450945094915050565b6000600381111561171a5761171961258f565b5b82600381111561172d5761172c61258f565b5b031561186657600160038111156117475761174661258f565b5b82600381111561175a5761175961258f565b5b03611791576040517ff645eedf00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600260038111156117a5576117a461258f565b5b8260038111156117b8576117b761258f565b5b036117fd578060001c6040517ffce698f70000000000000000000000000000000000000000000000000000000081526004016117f49190611dca565b60405180910390fd5b6003808111156118105761180f61258f565b5b8260038111156118235761182261258f565b5b0361186557806040517fd78bce0c00000000000000000000000000000000000000000000000000000000815260040161185c9190611e88565b60405180910390fd5b5b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036118bc5780600260008282546118b091906123c9565b9250508190555061198f565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611948578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161193f9392919061229d565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036119d85780600260008282540392505081905550611a25565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051611a829190611dca565b60405180910390a3505050565b60606000611a9c83611b03565b90506000602067ffffffffffffffff811115611abb57611aba6121e4565b5b6040519080825280601f01601f191660200182016040528015611aed5781602001600182028036833780820191505090505b5090508181528360208201528092505050919050565b60008060ff8360001c169050601f811115611b4a576040517fb3512b0c00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80915050919050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611b8382611b58565b9050919050565b611b9381611b78565b8114611b9e57600080fd5b50565b600081359050611bb081611b8a565b92915050565b600060208284031215611bcc57611bcb611b53565b5b6000611bda84828501611ba1565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015611c1d578082015181840152602081019050611c02565b60008484015250505050565b6000601f19601f8301169050919050565b6000611c4582611be3565b611c4f8185611bee565b9350611c5f818560208601611bff565b611c6881611c29565b840191505092915050565b60006020820190508181036000830152611c8d8184611c3a565b905092915050565b6000819050919050565b611ca881611c95565b8114611cb357600080fd5b50565b600081359050611cc581611c9f565b92915050565b60008060408385031215611ce257611ce1611b53565b5b6000611cf085828601611ba1565b9250506020611d0185828601611cb6565b9150509250929050565b60008115159050919050565b611d2081611d0b565b82525050565b6000602082019050611d3b6000830184611d17565b92915050565b6000819050919050565b6000611d66611d61611d5c84611b58565b611d41565b611b58565b9050919050565b6000611d7882611d4b565b9050919050565b6000611d8a82611d6d565b9050919050565b611d9a81611d7f565b82525050565b6000602082019050611db56000830184611d91565b92915050565b611dc481611c95565b82525050565b6000602082019050611ddf6000830184611dbb565b92915050565b600080600060608486031215611dfe57611dfd611b53565b5b6000611e0c86828701611ba1565b9350506020611e1d86828701611ba1565b9250506040611e2e86828701611cb6565b9150509250925092565b600060ff82169050919050565b611e4e81611e38565b82525050565b6000602082019050611e696000830184611e45565b92915050565b6000819050919050565b611e8281611e6f565b82525050565b6000602082019050611e9d6000830184611e79565b92915050565b611eac81611b78565b82525050565b6000602082019050611ec76000830184611ea3565b92915050565b60007fff0000000000000000000000000000000000000000000000000000000000000082169050919050565b611f0281611ecd565b82525050565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b611f3d81611c95565b82525050565b6000611f4f8383611f34565b60208301905092915050565b6000602082019050919050565b6000611f7382611f08565b611f7d8185611f13565b9350611f8883611f24565b8060005b83811015611fb9578151611fa08882611f43565b9750611fab83611f5b565b925050600181019050611f8c565b5085935050505092915050565b600060e082019050611fdb600083018a611ef9565b8181036020830152611fed8189611c3a565b905081810360408301526120018188611c3a565b90506120106060830187611dbb565b61201d6080830186611ea3565b61202a60a0830185611e79565b81810360c083015261203c8184611f68565b905098975050505050505050565b61205381611e38565b811461205e57600080fd5b50565b6000813590506120708161204a565b92915050565b61207f81611e6f565b811461208a57600080fd5b50565b60008135905061209c81612076565b92915050565b600080600080600080600060e0888a0312156120c1576120c0611b53565b5b60006120cf8a828b01611ba1565b97505060206120e08a828b01611ba1565b96505060406120f18a828b01611cb6565b95505060606121028a828b01611cb6565b94505060806121138a828b01612061565b93505060a06121248a828b0161208d565b92505060c06121358a828b0161208d565b91505092959891949750929550565b6000806040838503121561215b5761215a611b53565b5b600061216985828601611ba1565b925050602061217a85828601611ba1565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806121cb57607f821691505b6020821081036121de576121dd612184565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060c0820190506122286000830189611e79565b6122356020830188611ea3565b6122426040830187611ea3565b61224f6060830186611dbb565b61225c6080830185611dbb565b61226960a0830184611dbb565b979650505050505050565b60006040820190506122896000830185611ea3565b6122966020830184611ea3565b9392505050565b60006060820190506122b26000830186611ea3565b6122bf6020830185611dbb565b6122cc6040830184611dbb565b949350505050565b7f50617469656e6365202d2054726164696e67204e6f742053746172746564205960008201527f6574210000000000000000000000000000000000000000000000000000000000602082015250565b6000612330602383611bee565b915061233b826122d4565b604082019050919050565b6000602082019050818103600083015261235f81612323565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006123a082611c95565b91506123ab83611c95565b92508282039050818111156123c3576123c2612366565b5b92915050565b60006123d482611c95565b91506123df83611c95565b92508282019050808211156123f7576123f6612366565b5b92915050565b60008151905061240c81611c9f565b92915050565b60006020828403121561242857612427611b53565b5b6000612436848285016123fd565b91505092915050565b7f596f75206d757374206861766520362e394d202456414720696e20796f75722060008201527f77616c6c657420746f20707572636861736520245552414e555320696e20746860208201527f6520666972737420686f75722e00000000000000000000000000000000000000604082015250565b60006124c1604d83611bee565b91506124cc8261243f565b606082019050919050565b600060208201905081810360008301526124f0816124b4565b9050919050565b600060a08201905061250c6000830188611e79565b6125196020830187611e79565b6125266040830186611e79565b6125336060830185611dbb565b6125406080830184611ea3565b9695505050505050565b600060808201905061255f6000830187611e79565b61256c6020830186611e45565b6125796040830185611e79565b6125866060830184611e79565b95945050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fdfea2646970667358221220334059049f05c7228f235f1c3d3c2d78095ffc92ca1f0a8c01dcb3ae4151dc2164736f6c63430008140033000000000000000000000000570c091ba99668d873f99e0f8a49d8291d7a107f