[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "uint8", "name": "decimals", "type": "uint8" }, { "internalType": "uint256", "name": "totalSupply", "type": "uint256" }, { "internalType": "string", "name": "description", "type": "string" }, { "internalType": "address", "name": "issuer", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "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": "account", "type": "address" } ], "name": "Freeze", "type": "event" }, { "anonymous": false, "inputs": [], "name": "NotFreezable", "type": "event" }, { "anonymous": false, "inputs": [], "name": "NotPausable", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" } ], "name": "OwnershipRenounced", "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": [], "name": "Pause", "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": true, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unfreeze", "type": "event" }, { "anonymous": false, "inputs": [], "name": "Unpause", "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": "amount", "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": "canFreeze", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "canPause", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "subtractedValue", "type": "uint256" } ], "name": "decreaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "description", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "freeze", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "frozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "addedValue", "type": "uint256" } ], "name": "increaseAllowance", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "notFreezable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "notPausable", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "pause", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "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": [ { "internalType": "address", "name": "account", "type": "address" } ], "name": "unfreeze", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "unfreezeAndTransfer", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526000600560156101000a81548160ff0219169083151502179055506001600560166101000a81548160ff0219169083151502179055506001600760006101000a81548160ff0219169083151502179055503480156200006257600080fd5b5060405162002e5838038062002e5883398181016040528101906200008891906200083d565b858581600390816200009b919062000b77565b508060049081620000ad919062000b77565b506012600560006101000a81548160ff021916908360ff160217905550505033600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506200011e826200018760201b60201c565b6200012f846200019c60201b60201c565b62000142816000620001ba60201b60201c565b62000155600080620001ba60201b60201c565b6200016781846200021660201b60201c565b6200017b60006001620001ba60201b60201c565b50505050505062000e5d565b806008908162000198919062000b77565b5050565b80600560006101000a81548160ff021916908360ff16021790555050565b8015600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000288576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200027f9062000cbf565b60405180910390fd5b6200029c60008383620003ba60201b60201c565b620002b381600254620003d560201b90919060201c565b6002819055506200030c816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054620003d560201b90919060201c565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef83604051620003ae919062000cf2565b60405180910390a35050565b8282620003ce82826200043860201b60201c565b5050505050565b6000808284620003e6919062000d3e565b9050838110156200042e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004259062000dc9565b60405180910390fd5b8091505092915050565b600560159054906101000a900460ff161580620004a25750600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b620004ac57600080fd5b81620004be816200055c60201b60201c565b1562000501576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004f89062000e3b565b60405180910390fd5b8162000513816200055c60201b60201c565b1562000556576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200054d9062000e3b565b60405180910390fd5b50505050565b6000600760009054906101000a900460ff168015620005c55750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200063582620005ea565b810181811067ffffffffffffffff82111715620006575762000656620005fb565b5b80604052505050565b60006200066c620005cc565b90506200067a82826200062a565b919050565b600067ffffffffffffffff8211156200069d576200069c620005fb565b5b620006a882620005ea565b9050602081019050919050565b60005b83811015620006d5578082015181840152602081019050620006b8565b60008484015250505050565b6000620006f8620006f2846200067f565b62000660565b905082815260208101848484011115620007175762000716620005e5565b5b62000724848285620006b5565b509392505050565b600082601f830112620007445762000743620005e0565b5b815162000756848260208601620006e1565b91505092915050565b600060ff82169050919050565b62000777816200075f565b81146200078357600080fd5b50565b60008151905062000797816200076c565b92915050565b6000819050919050565b620007b2816200079d565b8114620007be57600080fd5b50565b600081519050620007d281620007a7565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200080582620007d8565b9050919050565b6200081781620007f8565b81146200082357600080fd5b50565b60008151905062000837816200080c565b92915050565b60008060008060008060c087890312156200085d576200085c620005d6565b5b600087015167ffffffffffffffff8111156200087e576200087d620005db565b5b6200088c89828a016200072c565b965050602087015167ffffffffffffffff811115620008b057620008af620005db565b5b620008be89828a016200072c565b9550506040620008d189828a0162000786565b9450506060620008e489828a01620007c1565b935050608087015167ffffffffffffffff811115620009085762000907620005db565b5b6200091689828a016200072c565b92505060a06200092989828a0162000826565b9150509295509295509295565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200098957607f821691505b6020821081036200099f576200099e62000941565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000a097fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620009ca565b62000a158683620009ca565b95508019841693508086168417925050509392505050565b6000819050919050565b600062000a5862000a5262000a4c846200079d565b62000a2d565b6200079d565b9050919050565b6000819050919050565b62000a748362000a37565b62000a8c62000a838262000a5f565b848454620009d7565b825550505050565b600090565b62000aa362000a94565b62000ab081848462000a69565b505050565b5b8181101562000ad85762000acc60008262000a99565b60018101905062000ab6565b5050565b601f82111562000b275762000af181620009a5565b62000afc84620009ba565b8101602085101562000b0c578190505b62000b2462000b1b85620009ba565b83018262000ab5565b50505b505050565b600082821c905092915050565b600062000b4c6000198460080262000b2c565b1980831691505092915050565b600062000b67838362000b39565b9150826002028217905092915050565b62000b828262000936565b67ffffffffffffffff81111562000b9e5762000b9d620005fb565b5b62000baa825462000970565b62000bb782828562000adc565b600060209050601f83116001811462000bef576000841562000bda578287015190505b62000be6858262000b59565b86555062000c56565b601f19841662000bff86620009a5565b60005b8281101562000c295784890151825560018201915060208501945060208101905062000c02565b8683101562000c49578489015162000c45601f89168262000b39565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000ca7601f8362000c5e565b915062000cb48262000c6f565b602082019050919050565b6000602082019050818103600083015262000cda8162000c98565b9050919050565b62000cec816200079d565b82525050565b600060208201905062000d09600083018462000ce1565b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000d4b826200079d565b915062000d58836200079d565b925082820190508082111562000d735762000d7262000d0f565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b600062000db1601b8362000c5e565b915062000dbe8262000d79565b602082019050919050565b6000602082019050818103600083015262000de48162000da2565b9050919050565b7f6163636f756e742069732066726f7a656e000000000000000000000000000000600082015250565b600062000e2360118362000c5e565b915062000e308262000deb565b602082019050919050565b6000602082019050818103600083015262000e568162000e14565b9050919050565b611feb8062000e6d6000396000f3fe608060405234801561001057600080fd5b506004361061018e5760003560e01c806370a08231116100de57806395d89b4111610097578063d051665011610071578063d051665014610429578063dd62ed3e14610459578063f2fde38b14610489578063fbc6e84e146104a55761018e565b806395d89b41146103ab578063a457c2d7146103c9578063a9059cbb146103f95761018e565b806370a082311461030f578063715018a61461033f5780637284e416146103495780638456cb59146103675780638d1fdf2f146103715780638da5cb5b1461038d5761018e565b8063323be1c51161014b5780633f4ba83a116101255780633f4ba83a146102c157806345c8b1a6146102cb5780634be8b05e146102e75780635c975abb146102f15761018e565b8063323be1c514610257578063345585801461027557806339509351146102915761018e565b806306fdde0314610193578063095ea7b3146101b15780631104bc77146101e157806318160ddd146101eb57806323b872dd14610209578063313ce56714610239575b600080fd5b61019b6104c3565b6040516101a891906118d5565b60405180910390f35b6101cb60048036038101906101c69190611990565b610555565b6040516101d891906119eb565b60405180910390f35b6101e9610573565b005b6101f3610616565b6040516102009190611a15565b60405180910390f35b610223600480360381019061021e9190611a30565b610620565b60405161023091906119eb565b60405180910390f35b6102416106f9565b60405161024e9190611a9f565b60405180910390f35b61025f610710565b60405161026c91906119eb565b60405180910390f35b61028f600480360381019061028a9190611990565b610723565b005b6102ab60048036038101906102a69190611990565b6107d3565b6040516102b891906119eb565b60405180910390f35b6102c9610886565b005b6102e560048036038101906102e09190611aba565b610942565b005b6102ef6109ed565b005b6102f9610aab565b60405161030691906119eb565b60405180910390f35b61032960048036038101906103249190611aba565b610abe565b6040516103369190611a15565b60405180910390f35b610347610b06565b005b610351610c09565b60405161035e91906118d5565b60405180910390f35b61036f610c9b565b005b61038b60048036038101906103869190611aba565b610d57565b005b610395610e02565b6040516103a29190611af6565b60405180910390f35b6103b3610e28565b6040516103c091906118d5565b60405180910390f35b6103e360048036038101906103de9190611990565b610eba565b6040516103f091906119eb565b60405180910390f35b610413600480360381019061040e9190611990565b610f87565b60405161042091906119eb565b60405180910390f35b610443600480360381019061043e9190611aba565b610fa5565b60405161045091906119eb565b60405180910390f35b610473600480360381019061046e9190611b11565b610fb7565b6040516104809190611a15565b60405180910390f35b6104a3600480360381019061049e9190611aba565b61103e565b005b6104ad611191565b6040516104ba91906119eb565b60405180910390f35b6060600380546104d290611b80565b80601f01602080910402602001604051908101604052809291908181526020018280546104fe90611b80565b801561054b5780601f106105205761010080835404028352916020019161054b565b820191906000526020600020905b81548152906001019060200180831161052e57829003601f168201915b5050505050905090565b60006105696105626111a4565b84846111ac565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146105cd57600080fd5b6000600760006101000a81548160ff0219169083151502179055507fa41ce0eb55e300a1ce656ef6b0c94d7f1f13fab1042ff519cf6bfbf0ed280b1d60405160405180910390a1565b6000600254905090565b600061062d848484611375565b6106ee846106396111a4565b6106e985604051806060016040528060288152602001611f6960289139600160008b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600061069f6111a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115999092919063ffffffff16565b6111ac565b600190509392505050565b6000600560009054906101000a900460ff16905090565b600560169054906101000a900460ff1681565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461077d57600080fd5b61078682610942565b6107908282610f87565b6107cf576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107c690611bfd565b60405180910390fd5b5050565b600061087c6107e06111a4565b8461087785600160006107f16111a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115fd90919063ffffffff16565b6111ac565b6001905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146108e057600080fd5b600560159054906101000a900460ff166108f957600080fd5b6000600560156101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461099c57600080fd5b6109a781600061165b565b8073ffffffffffffffffffffffffffffffffffffffff167fca5069937e68fd197927055037f59d7c90bf75ac104e6e375539ef480c3ad6ee60405160405180910390a250565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610a4757600080fd5b6000600560156101000a81548160ff0219169083151502179055506000600560166101000a81548160ff0219169083151502179055507faff39f66825d4448497d384dee3f4a3adf00a622960add00806503ae4ccee01c60405160405180910390a1565b600560159054906101000a900460ff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610b6057600080fd5b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167ff8df31144d9c2f0f6b59d69b8b98abd5459d07f2742c4df920b25aae33c6482060405160405180910390a26000600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550565b606060088054610c1890611b80565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4490611b80565b8015610c915780601f10610c6657610100808354040283529160200191610c91565b820191906000526020600020905b815481529060010190602001808311610c7457829003601f168201915b5050505050905090565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610cf557600080fd5b600560169054906101000a900460ff16610d0e57600080fd5b6001600560156101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a1565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610db157600080fd5b610dbc81600161165b565b8073ffffffffffffffffffffffffffffffffffffffff167faf85b60d26151edd11443b704d424da6c43d0468f2235ebae3d1904dbc32304960405160405180910390a250565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b606060048054610e3790611b80565b80601f0160208091040260200160405190810160405280929190818152602001828054610e6390611b80565b8015610eb05780601f10610e8557610100808354040283529160200191610eb0565b820191906000526020600020905b815481529060010190602001808311610e9357829003601f168201915b5050505050905090565b6000610f7d610ec76111a4565b84610f7885604051806060016040528060258152602001611f916025913960016000610ef16111a4565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115999092919063ffffffff16565b6111ac565b6001905092915050565b6000610f9b610f946111a4565b8484611375565b6001905092915050565b6000610fb0826116b7565b9050919050565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff161461109857600080fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036110d157600080fd5b8073ffffffffffffffffffffffffffffffffffffffff16600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600560016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b600760009054906101000a900460ff1681565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361121b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121290611c8f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361128a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128190611d21565b60405180910390fd5b80600160008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516113689190611a15565b60405180910390a3505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036113e4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113db90611db3565b60405180910390fd5b6113ef838383611726565b61145a81604051806060016040528060268152602001611f43602691396000808773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115999092919063ffffffff16565b6000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506114ed816000808573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546115fd90919063ffffffff16565b6000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405161158c9190611a15565b60405180910390a3505050565b60008383111582906115e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d891906118d5565b60405180910390fd5b50600083856115f09190611e02565b9050809150509392505050565b600080828461160c9190611e36565b905083811015611651576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161164890611eb6565b60405180910390fd5b8091505092915050565b8015600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b6000600760009054906101000a900460ff16801561171f5750600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b9050919050565b82826117328282611739565b5050505050565b600560159054906101000a900460ff1615806117a25750600560019054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16145b6117ab57600080fd5b816117b5816116b7565b156117f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117ec90611f22565b60405180910390fd5b816117ff816116b7565b1561183f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183690611f22565b60405180910390fd5b50505050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561187f578082015181840152602081019050611864565b60008484015250505050565b6000601f19601f8301169050919050565b60006118a782611845565b6118b18185611850565b93506118c1818560208601611861565b6118ca8161188b565b840191505092915050565b600060208201905081810360008301526118ef818461189c565b905092915050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000611927826118fc565b9050919050565b6119378161191c565b811461194257600080fd5b50565b6000813590506119548161192e565b92915050565b6000819050919050565b61196d8161195a565b811461197857600080fd5b50565b60008135905061198a81611964565b92915050565b600080604083850312156119a7576119a66118f7565b5b60006119b585828601611945565b92505060206119c68582860161197b565b9150509250929050565b60008115159050919050565b6119e5816119d0565b82525050565b6000602082019050611a0060008301846119dc565b92915050565b611a0f8161195a565b82525050565b6000602082019050611a2a6000830184611a06565b92915050565b600080600060608486031215611a4957611a486118f7565b5b6000611a5786828701611945565b9350506020611a6886828701611945565b9250506040611a798682870161197b565b9150509250925092565b600060ff82169050919050565b611a9981611a83565b82525050565b6000602082019050611ab46000830184611a90565b92915050565b600060208284031215611ad057611acf6118f7565b5b6000611ade84828501611945565b91505092915050565b611af08161191c565b82525050565b6000602082019050611b0b6000830184611ae7565b92915050565b60008060408385031215611b2857611b276118f7565b5b6000611b3685828601611945565b9250506020611b4785828601611945565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611b9857607f821691505b602082108103611bab57611baa611b51565b5b50919050565b7f7472616e73666572000000000000000000000000000000000000000000000000600082015250565b6000611be7600883611850565b9150611bf282611bb1565b602082019050919050565b60006020820190508181036000830152611c1681611bda565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000611c79602483611850565b9150611c8482611c1d565b604082019050919050565b60006020820190508181036000830152611ca881611c6c565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000611d0b602283611850565b9150611d1682611caf565b604082019050919050565b60006020820190508181036000830152611d3a81611cfe565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000611d9d602583611850565b9150611da882611d41565b604082019050919050565b60006020820190508181036000830152611dcc81611d90565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e0d8261195a565b9150611e188361195a565b9250828203905081811115611e3057611e2f611dd3565b5b92915050565b6000611e418261195a565b9150611e4c8361195a565b9250828201905080821115611e6457611e63611dd3565b5b92915050565b7f536166654d6174683a206164646974696f6e206f766572666c6f770000000000600082015250565b6000611ea0601b83611850565b9150611eab82611e6a565b602082019050919050565b60006020820190508181036000830152611ecf81611e93565b9050919050565b7f6163636f756e742069732066726f7a656e000000000000000000000000000000600082015250565b6000611f0c601183611850565b9150611f1782611ed6565b602082019050919050565b60006020820190508181036000830152611f3b81611eff565b905091905056fe45524332303a207472616e7366657220616d6f756e7420657863656564732062616c616e636545524332303a207472616e7366657220616d6f756e74206578636565647320616c6c6f77616e636545524332303a2064656372656173656420616c6c6f77616e63652062656c6f77207a65726fa2646970667358221220b71fb8393814266f36e85d31b60f59b996e446f75f7a8a1196a67e46763aeed164736f6c6343000813003300000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000002540be4000000000000000000000000000000000000000000000000000000000000000140000000000000000000000000a319bf12a9b89699379411043a3099e74cf0000c000000000000000000000000000000000000000000000000000000000000000b4a756e6f20546f6b656e7300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000044a554e4f000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000054687474703a2f2f6c6f63616c686f73743a333030302f76312f6a756e6f2f646f776e6c6f61645f646f63756d656e743f646f635f69643d7075626c69632d59454a566e343439764c396f744e4d76395a735a5143000000000000000000000000