[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "address", "name": "owner", "type": "address" } ], "name": "OwnableInvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "OwnableUnauthorizedAccount", "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": [ { "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" }, { "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": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "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": [ { "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" } ]
608060405234801562000010575f80fd5b50336040518060400160405280600f81526020017f526f636b792074686520487972617800000000000000000000000000000000008152506040518060400160405280600581526020017f485952415800000000000000000000000000000000000000000000000000000081525081600390816200008f91906200074c565b508060049081620000a191906200074c565b5050505f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000117575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200010e919062000873565b60405180910390fd5b62000128816200016f60201b60201c565b5062000169336200013e6200023260201b60201c565b600a6200014c919062000a17565b633b9aca006200015d919062000a67565b6200023a60201b60201c565b62000b52565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f6012905090565b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002ad575f6040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002a4919062000873565b60405180910390fd5b620002c05f8383620002c460201b60201c565b5050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160362000318578060025f8282546200030b919062000ab1565b92505081905550620003e9565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015620003a4578381836040517fe450d38c0000000000000000000000000000000000000000000000000000000081526004016200039b9392919062000afc565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000432578060025f82825403925050819055506200047c565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620004db919062000b37565b60405180910390a3505050565b5f81519050919050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52604160045260245ffd5b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f60028204905060018216806200056457607f821691505b6020821081036200057a57620005796200051f565b5b50919050565b5f819050815f5260205f209050919050565b5f6020601f8301049050919050565b5f82821b905092915050565b5f60088302620005de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620005a1565b620005ea8683620005a1565b95508019841693508086168417925050509392505050565b5f819050919050565b5f819050919050565b5f620006346200062e620006288462000602565b6200060b565b62000602565b9050919050565b5f819050919050565b6200064f8362000614565b620006676200065e826200063b565b848454620005ad565b825550505050565b5f90565b6200067d6200066f565b6200068a81848462000644565b505050565b5b81811015620006b157620006a55f8262000673565b60018101905062000690565b5050565b601f8211156200070057620006ca8162000580565b620006d58462000592565b81016020851015620006e5578190505b620006fd620006f48562000592565b8301826200068f565b50505b505050565b5f82821c905092915050565b5f620007225f198460080262000705565b1980831691505092915050565b5f6200073c838362000711565b9150826002028217905092915050565b6200075782620004e8565b67ffffffffffffffff811115620007735762000772620004f2565b5b6200077f82546200054c565b6200078c828285620006b5565b5f60209050601f831160018114620007c2575f8415620007ad578287015190505b620007b985826200072f565b86555062000828565b601f198416620007d28662000580565b5f5b82811015620007fb57848901518255600182019150602085019450602081019050620007d4565b868310156200081b578489015162000817601f89168262000711565b8355505b6001600288020188555050505b505050505050565b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f6200085b8262000830565b9050919050565b6200086d816200084f565b82525050565b5f602082019050620008885f83018462000862565b92915050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f8160011c9050919050565b5f808291508390505b60018511156200091857808604811115620008f057620008ef6200088e565b5b6001851615620009005780820291505b80810290506200091085620008bb565b9450620008d0565b94509492505050565b5f8262000932576001905062000a04565b8162000941575f905062000a04565b81600181146200095a576002811462000965576200099b565b600191505062000a04565b60ff8411156200097a57620009796200088e565b5b8360020a9150848211156200099457620009936200088e565b5b5062000a04565b5060208310610133831016604e8410600b8410161715620009d55782820a905083811115620009cf57620009ce6200088e565b5b62000a04565b620009e48484846001620008c7565b92509050818404811115620009fe57620009fd6200088e565b5b81810290505b9392505050565b5f60ff82169050919050565b5f62000a238262000602565b915062000a308362000a0b565b925062000a5f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff848462000921565b905092915050565b5f62000a738262000602565b915062000a808362000602565b925082820262000a908162000602565b9150828204841483151762000aaa5762000aa96200088e565b5b5092915050565b5f62000abd8262000602565b915062000aca8362000602565b925082820190508082111562000ae55762000ae46200088e565b5b92915050565b62000af68162000602565b82525050565b5f60608201905062000b115f83018662000862565b62000b20602083018562000aeb565b62000b2f604083018462000aeb565b949350505050565b5f60208201905062000b4c5f83018462000aeb565b92915050565b61106a8062000b605f395ff3fe608060405234801561000f575f80fd5b50600436106100b2575f3560e01c8063715018a61161006f578063715018a6146101a05780638da5cb5b146101aa57806395d89b41146101c8578063a9059cbb146101e6578063dd62ed3e14610216578063f2fde38b14610246576100b2565b806306fdde03146100b6578063095ea7b3146100d457806318160ddd1461010457806323b872dd14610122578063313ce5671461015257806370a0823114610170575b5f80fd5b6100be610262565b6040516100cb9190610ce3565b60405180910390f35b6100ee60048036038101906100e99190610d94565b6102f2565b6040516100fb9190610dec565b60405180910390f35b61010c610314565b6040516101199190610e14565b60405180910390f35b61013c60048036038101906101379190610e2d565b61031d565b6040516101499190610dec565b60405180910390f35b61015a61034b565b6040516101679190610e98565b60405180910390f35b61018a60048036038101906101859190610eb1565b610353565b6040516101979190610e14565b60405180910390f35b6101a8610398565b005b6101b26103ab565b6040516101bf9190610eeb565b60405180910390f35b6101d06103d3565b6040516101dd9190610ce3565b60405180910390f35b61020060048036038101906101fb9190610d94565b610463565b60405161020d9190610dec565b60405180910390f35b610230600480360381019061022b9190610f04565b610485565b60405161023d9190610e14565b60405180910390f35b610260600480360381019061025b9190610eb1565b610507565b005b60606003805461027190610f6f565b80601f016020809104026020016040519081016040528092919081815260200182805461029d90610f6f565b80156102e85780601f106102bf576101008083540402835291602001916102e8565b820191905f5260205f20905b8154815290600101906020018083116102cb57829003601f168201915b5050505050905090565b5f806102fc61058b565b9050610309818585610592565b600191505092915050565b5f600254905090565b5f8061032761058b565b90506103348582856105a4565b61033f858585610637565b60019150509392505050565b5f6012905090565b5f805f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20549050919050565b6103a0610727565b6103a95f6107ae565b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546103e290610f6f565b80601f016020809104026020016040519081016040528092919081815260200182805461040e90610f6f565b80156104595780601f1061043057610100808354040283529160200191610459565b820191905f5260205f20905b81548152906001019060200180831161043c57829003601f168201915b5050505050905090565b5f8061046d61058b565b905061047a818585610637565b600191505092915050565b5f60015f8473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905092915050565b61050f610727565b5f73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361057f575f6040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016105769190610eeb565b60405180910390fd5b610588816107ae565b50565b5f33905090565b61059f8383836001610871565b505050565b5f6105af8484610485565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8110156106315781811015610622578281836040517ffb8f41b200000000000000000000000000000000000000000000000000000000815260040161061993929190610f9f565b60405180910390fd5b61063084848484035f610871565b5b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106a7575f6040517f96c6fd1e00000000000000000000000000000000000000000000000000000000815260040161069e9190610eeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610717575f6040517fec442f0500000000000000000000000000000000000000000000000000000000815260040161070e9190610eeb565b60405180910390fd5b610722838383610a40565b505050565b61072f61058b565b73ffffffffffffffffffffffffffffffffffffffff1661074d6103ab565b73ffffffffffffffffffffffffffffffffffffffff16146107ac5761077061058b565b6040517f118cdaa70000000000000000000000000000000000000000000000000000000081526004016107a39190610eeb565b60405180910390fd5b565b5f60055f9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508160055f6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b5f73ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16036108e1575f6040517fe602df050000000000000000000000000000000000000000000000000000000081526004016108d89190610eeb565b60405180910390fd5b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610951575f6040517f94280d620000000000000000000000000000000000000000000000000000000081526004016109489190610eeb565b60405180910390fd5b8160015f8673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f20819055508015610a3a578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92584604051610a319190610e14565b60405180910390a35b50505050565b5f73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610a90578060025f828254610a849190611001565b92505081905550610b5e565b5f805f8573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2054905081811015610b19578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401610b1093929190610f9f565b60405180910390fd5b8181035f808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f2081905550505b5f73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba5578060025f8282540392505081905550610bef565b805f808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020015f205f82825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051610c4c9190610e14565b60405180910390a3505050565b5f81519050919050565b5f82825260208201905092915050565b5f5b83811015610c90578082015181840152602081019050610c75565b5f8484015250505050565b5f601f19601f8301169050919050565b5f610cb582610c59565b610cbf8185610c63565b9350610ccf818560208601610c73565b610cd881610c9b565b840191505092915050565b5f6020820190508181035f830152610cfb8184610cab565b905092915050565b5f80fd5b5f73ffffffffffffffffffffffffffffffffffffffff82169050919050565b5f610d3082610d07565b9050919050565b610d4081610d26565b8114610d4a575f80fd5b50565b5f81359050610d5b81610d37565b92915050565b5f819050919050565b610d7381610d61565b8114610d7d575f80fd5b50565b5f81359050610d8e81610d6a565b92915050565b5f8060408385031215610daa57610da9610d03565b5b5f610db785828601610d4d565b9250506020610dc885828601610d80565b9150509250929050565b5f8115159050919050565b610de681610dd2565b82525050565b5f602082019050610dff5f830184610ddd565b92915050565b610e0e81610d61565b82525050565b5f602082019050610e275f830184610e05565b92915050565b5f805f60608486031215610e4457610e43610d03565b5b5f610e5186828701610d4d565b9350506020610e6286828701610d4d565b9250506040610e7386828701610d80565b9150509250925092565b5f60ff82169050919050565b610e9281610e7d565b82525050565b5f602082019050610eab5f830184610e89565b92915050565b5f60208284031215610ec657610ec5610d03565b5b5f610ed384828501610d4d565b91505092915050565b610ee581610d26565b82525050565b5f602082019050610efe5f830184610edc565b92915050565b5f8060408385031215610f1a57610f19610d03565b5b5f610f2785828601610d4d565b9250506020610f3885828601610d4d565b9150509250929050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52602260045260245ffd5b5f6002820490506001821680610f8657607f821691505b602082108103610f9957610f98610f42565b5b50919050565b5f606082019050610fb25f830186610edc565b610fbf6020830185610e05565b610fcc6040830184610e05565b949350505050565b7f4e487b71000000000000000000000000000000000000000000000000000000005f52601160045260245ffd5b5f61100b82610d61565b915061101683610d61565b925082820190508082111561102e5761102d610fd4565b5b9291505056fea2646970667358221220b734ff43a47b51c7b70d4e8be3c0020ccd83fbc5d3a0e02023a620c66796133764736f6c63430008140033