1.8k txs
19.3k calls
constructor
constructor()
functions
allowance
viewfunction allowance(address owner, address spender) view returns (uint256)
balanceOf
viewfunction balanceOf(address account) view returns (uint256)
decimals
viewfunction decimals() view returns (uint8)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
MINTER_ROLE
viewfunction MINTER_ROLE() view returns (bytes32)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
paused
viewfunction paused() view returns (bool)
PAUSER_ROLE
viewfunction PAUSER_ROLE() view returns (bytes32)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address spender, uint256 amount) returns (bool)
burn
nonpayablefunction burn(uint256 amount)
burnFrom
nonpayablefunction burnFrom(address account, uint256 amount)
decreaseAllowance
nonpayablefunction decreaseAllowance(address spender, uint256 subtractedValue) returns (bool)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
increaseAllowance
nonpayablefunction increaseAllowance(address spender, uint256 addedValue) returns (bool)
mint
nonpayablefunction mint(address to, uint256 amount)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
transfer
nonpayablefunction transfer(address to, uint256 amount) returns (bool)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 amount) returns (bool)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed spender, uint256 value)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
Transfer
event Transfer(address indexed from, address indexed to, uint256 value)
Unpaused
event Unpaused(address account)
errors
No errors.
creation bytecode
0x60806040523480156200001157600080fd5b506040518060400160405280600481526020017f42544146000000000000000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f42544146000000000000000000000000000000000000000000000000000000008152508181816005908162000091919062000a47565b508060069081620000a3919062000a47565b5050506000600760006101000a81548160ff021916908315150217905550620000e56000801b620000d9620001b160201b60201c565b620001b960201b60201c565b620001267f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66200011a620001b160201b60201c565b620001b960201b60201c565b620001677f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6200015b620001b160201b60201c565b620001b960201b60201c565b5050620001896200017d620001b160201b60201c565b620001cf60201b60201c565b620001ab336aa56fa5b99019a5c80000006200029560201b620008ff1760201c565b62000d79565b600033905090565b620001cb82826200032e60201b60201c565b5050565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002d67f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6620002ca620001b160201b60201c565b6200037660201b60201c565b62000318576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200030f9062000bb5565b60405180910390fd5b6200032a8282620003e060201b60201c565b5050565b6200034582826200055960201b62000e2c1760201c565b6200037181600160008581526020019081526020016000206200064a60201b62000f0c1790919060201c565b505050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000452576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004499062000c27565b60405180910390fd5b62000466600083836200068260201b60201c565b80600460008282546200047a919062000c78565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620004d2919062000c78565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000539919062000cc4565b60405180910390a362000555600083836200069f60201b60201c565b5050565b6200056b82826200037660201b60201c565b6200064657600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550620005eb620001b160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b60006200067a836000018373ffffffffffffffffffffffffffffffffffffffff1660001b620006a460201b60201c565b905092915050565b6200069a8383836200071e60201b62000f3c1760201c565b505050565b505050565b6000620006b883836200078e60201b60201c565b6200071357826000018290806001815401808255809150506001900390600052602060002001600090919091909150558260000180549050836001016000848152602001908152602001600020819055506001905062000718565b600090505b92915050565b62000736838383620007b160201b62000f941760201c565b62000746620007b660201b60201c565b1562000789576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007809062000d57565b60405180910390fd5b505050565b600080836001016000848152602001908152602001600020541415905092915050565b505050565b6000600760009054906101000a900460ff16905090565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200084f57607f821691505b60208210810362000865576200086462000807565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620008cf7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000890565b620008db868362000890565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000928620009226200091c84620008f3565b620008fd565b620008f3565b9050919050565b6000819050919050565b620009448362000907565b6200095c62000953826200092f565b8484546200089d565b825550505050565b600090565b6200097362000964565b6200098081848462000939565b505050565b5b81811015620009a8576200099c60008262000969565b60018101905062000986565b5050565b601f821115620009f757620009c1816200086b565b620009cc8462000880565b81016020851015620009dc578190505b620009f4620009eb8562000880565b83018262000985565b50505b505050565b600082821c905092915050565b600062000a1c60001984600802620009fc565b1980831691505092915050565b600062000a37838362000a09565b9150826002028217905092915050565b62000a5282620007cd565b67ffffffffffffffff81111562000a6e5762000a6d620007d8565b5b62000a7a825462000836565b62000a87828285620009ac565b600060209050601f83116001811462000abf576000841562000aaa578287015190505b62000ab6858262000a29565b86555062000b26565b601f19841662000acf866200086b565b60005b8281101562000af95784890151825560018201915060208501945060208101905062000ad2565b8683101562000b19578489015162000b15601f89168262000a09565b8355505b6001600288020188555050505b505050505050565b600082825260208201905092915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b600062000b9d60368362000b2e565b915062000baa8262000b3f565b604082019050919050565b6000602082019050818103600083015262000bd08162000b8e565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b600062000c0f601f8362000b2e565b915062000c1c8262000bd7565b602082019050919050565b6000602082019050818103600083015262000c428162000c00565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600062000c8582620008f3565b915062000c9283620008f3565b925082820190508082111562000cad5762000cac62000c49565b5b92915050565b62000cbe81620008f3565b82525050565b600060208201905062000cdb600083018462000cb3565b92915050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b600062000d3f602a8362000b2e565b915062000d4c8262000ce1565b604082019050919050565b6000602082019050818103600083015262000d728162000d30565b9050919050565b6134408062000d896000396000f3fe608060405234801561001057600080fd5b50600436106101e55760003560e01c8063715018a61161010f578063a457c2d7116100a2578063d547741f11610071578063d547741f14610594578063dd62ed3e146105b0578063e63ab1e9146105e0578063f2fde38b146105fe576101e5565b8063a457c2d7146104e6578063a9059cbb14610516578063ca15c87314610546578063d539139314610576576101e5565b80639010d07c116100de5780639010d07c1461044a57806391d148541461047a57806395d89b41146104aa578063a217fddf146104c8576101e5565b8063715018a6146103fc57806379cc6790146104065780638456cb59146104225780638da5cb5b1461042c576101e5565b8063313ce5671161018757806340c10f191161015657806340c10f191461037657806342966c68146103925780635c975abb146103ae57806370a08231146103cc576101e5565b8063313ce5671461030257806336568abe14610320578063395093511461033c5780633f4ba83a1461036c576101e5565b806318160ddd116101c357806318160ddd1461026857806323b872dd14610286578063248a9ca3146102b65780632f2ff15d146102e6576101e5565b806301ffc9a7146101ea57806306fdde031461021a578063095ea7b314610238575b600080fd5b61020460048036038101906101ff919061221b565b61061a565b6040516102119190612263565b60405180910390f35b610222610694565b60405161022f919061230e565b60405180910390f35b610252600480360381019061024d91906123c4565b610726565b60405161025f9190612263565b60405180910390f35b610270610749565b60405161027d9190612413565b60405180910390f35b6102a0600480360381019061029b919061242e565b610753565b6040516102ad9190612263565b60405180910390f35b6102d060048036038101906102cb91906124b7565b610782565b6040516102dd91906124f3565b60405180910390f35b61030060048036038101906102fb919061250e565b6107a1565b005b61030a6107c2565b604051610317919061256a565b60405180910390f35b61033a6004803603810190610335919061250e565b6107cb565b005b610356600480360381019061035191906123c4565b61084e565b6040516103639190612263565b60405180910390f35b610374610885565b005b610390600480360381019061038b91906123c4565b6108ff565b005b6103ac60048036038101906103a79190612585565b61097d565b005b6103b6610991565b6040516103c39190612263565b60405180910390f35b6103e660048036038101906103e191906125b2565b6109a8565b6040516103f39190612413565b60405180910390f35b6104046109f1565b005b610420600480360381019061041b91906123c4565b610a05565b005b61042a610a25565b005b610434610a9f565b60405161044191906125ee565b60405180910390f35b610464600480360381019061045f9190612609565b610ac9565b60405161047191906125ee565b60405180910390f35b610494600480360381019061048f919061250e565b610af8565b6040516104a19190612263565b60405180910390f35b6104b2610b62565b6040516104bf919061230e565b60405180910390f35b6104d0610bf4565b6040516104dd91906124f3565b60405180910390f35b61050060048036038101906104fb91906123c4565b610bfb565b60405161050d9190612263565b60405180910390f35b610530600480360381019061052b91906123c4565b610c72565b60405161053d9190612263565b60405180910390f35b610560600480360381019061055b91906124b7565b610c95565b60405161056d9190612413565b60405180910390f35b61057e610cb9565b60405161058b91906124f3565b60405180910390f35b6105ae60048036038101906105a9919061250e565b610cdd565b005b6105ca60048036038101906105c59190612649565b610cfe565b6040516105d79190612413565b60405180910390f35b6105e8610d85565b6040516105f591906124f3565b60405180910390f35b610618600480360381019061061391906125b2565b610da9565b005b60007f5a05180f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061068d575061068c82610f99565b5b9050919050565b6060600580546106a3906126b8565b80601f01602080910402602001604051908101604052809291908181526020018280546106cf906126b8565b801561071c5780601f106106f15761010080835404028352916020019161071c565b820191906000526020600020905b8154815290600101906020018083116106ff57829003601f168201915b5050505050905090565b600080610731611013565b905061073e81858561101b565b600191505092915050565b6000600454905090565b60008061075e611013565b905061076b8582856111e4565b610776858585611270565b60019150509392505050565b6000806000838152602001908152602001600020600101549050919050565b6107aa82610782565b6107b3816114f2565b6107bd8383611506565b505050565b60006012905090565b6107d3611013565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610840576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108379061275b565b60405180910390fd5b61084a828261153a565b5050565b600080610859611013565b905061087a81858561086b8589610cfe565b61087591906127aa565b61101b565b600191505092915050565b6108b67f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a6108b1611013565b610af8565b6108f5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ec90612850565b60405180910390fd5b6108fd61156e565b565b6109307f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661092b611013565b610af8565b61096f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610966906128e2565b60405180910390fd5b61097982826115d1565b5050565b61098e610988611013565b82611731565b50565b6000600760009054906101000a900460ff16905090565b6000600260008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6109f9611909565b610a036000611987565b565b610a1782610a11611013565b836111e4565b610a218282611731565b5050565b610a567f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610a51611013565b610af8565b610a95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a8c90612974565b60405180910390fd5b610a9d611a4d565b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610af08260016000868152602001908152602001600020611ab090919063ffffffff16565b905092915050565b600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606060068054610b71906126b8565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9d906126b8565b8015610bea5780601f10610bbf57610100808354040283529160200191610bea565b820191906000526020600020905b815481529060010190602001808311610bcd57829003601f168201915b5050505050905090565b6000801b81565b600080610c06611013565b90506000610c148286610cfe565b905083811015610c59576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c5090612a06565b60405180910390fd5b610c66828686840361101b565b60019250505092915050565b600080610c7d611013565b9050610c8a818585611270565b600191505092915050565b6000610cb260016000848152602001908152602001600020611aca565b9050919050565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b610ce682610782565b610cef816114f2565b610cf9838361153a565b505050565b6000600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b610db1611909565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610e20576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e1790612a98565b60405180910390fd5b610e2981611987565b50565b610e368282610af8565b610f0857600160008084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550610ead611013565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6000610f34836000018373ffffffffffffffffffffffffffffffffffffffff1660001b611adf565b905092915050565b610f47838383610f94565b610f4f610991565b15610f8f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f8690612b2a565b60405180910390fd5b505050565b505050565b60007f7965db0b000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061100c575061100b82611b4f565b5b9050919050565b600033905090565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff160361108a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161108190612bbc565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036110f9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110f090612c4e565b60405180910390fd5b80600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925836040516111d79190612413565b60405180910390a3505050565b60006111f08484610cfe565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff811461126a578181101561125c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161125390612cba565b60405180910390fd5b611269848484840361101b565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036112df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d690612d4c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361134e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134590612dde565b60405180910390fd5b611359838383611bb9565b6000600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050818110156113e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113d790612e70565b60405180910390fd5b818103600260008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555081600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461147591906127aa565b925050819055508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516114d99190612413565b60405180910390a36114ec848484611bc9565b50505050565b611503816114fe611013565b611bce565b50565b6115108282610e2c565b6115358160016000858152602001908152602001600020610f0c90919063ffffffff16565b505050565b6115448282611c6b565b6115698160016000858152602001908152602001600020611d4c90919063ffffffff16565b505050565b611576611d7c565b6000600760006101000a81548160ff0219169083151502179055507f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa6115ba611013565b6040516115c791906125ee565b60405180910390a1565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611640576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163790612edc565b60405180910390fd5b61164c60008383611bb9565b806004600082825461165e91906127aa565b9250508190555080600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116b491906127aa565b925050819055508173ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117199190612413565b60405180910390a361172d60008383611bc9565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036117a0576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161179790612f6e565b60405180910390fd5b6117ac82600083611bb9565b6000600260008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613000565b60405180910390fd5b818103600260008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550816004600082825461188b9190613020565b92505081905550600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef846040516118f09190612413565b60405180910390a361190483600084611bc9565b505050565b611911611013565b73ffffffffffffffffffffffffffffffffffffffff1661192f610a9f565b73ffffffffffffffffffffffffffffffffffffffff1614611985576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161197c906130a0565b60405180910390fd5b565b6000600760019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611a55611dc5565b6001600760006101000a81548160ff0219169083151502179055507f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a258611a99611013565b604051611aa691906125ee565b60405180910390a1565b6000611abf8360000183611e0f565b60001c905092915050565b6000611ad882600001611e3a565b9050919050565b6000611aeb8383611e4b565b611b44578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050611b49565b600090505b92915050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b611bc4838383610f3c565b505050565b505050565b611bd88282610af8565b611c6757611bfd8173ffffffffffffffffffffffffffffffffffffffff166014611e6e565b611c0b8360001c6020611e6e565b604051602001611c1c929190613194565b6040516020818303038152906040526040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c5e919061230e565b60405180910390fd5b5050565b611c758282610af8565b15611d4857600080600084815260200190815260200160002060000160008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550611ced611013565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45b5050565b6000611d74836000018373ffffffffffffffffffffffffffffffffffffffff1660001b6120aa565b905092915050565b611d84610991565b611dc3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dba9061321a565b60405180910390fd5b565b611dcd610991565b15611e0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e0490613286565b60405180910390fd5b565b6000826000018281548110611e2757611e266132a6565b5b9060005260206000200154905092915050565b600081600001805490509050919050565b600080836001016000848152602001908152602001600020541415905092915050565b606060006002836002611e8191906132d5565b611e8b91906127aa565b67ffffffffffffffff811115611ea457611ea3613317565b5b6040519080825280601f01601f191660200182016040528015611ed65781602001600182028036833780820191505090505b5090507f300000000000000000000000000000000000000000000000000000000000000081600081518110611f0e57611f0d6132a6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f780000000000000000000000000000000000000000000000000000000000000081600181518110611f7257611f716132a6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060006001846002611fb291906132d5565b611fbc91906127aa565b90505b600181111561205c577f3031323334353637383961626364656600000000000000000000000000000000600f861660108110611ffe57611ffd6132a6565b5b1a60f81b828281518110612015576120146132a6565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600485901c94508061205590613346565b9050611fbf565b50600084146120a0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612097906133bb565b60405180910390fd5b8091505092915050565b600080836001016000848152602001908152602001600020549050600081146121b25760006001826120dc9190613020565b90506000600186600001805490506120f49190613020565b9050818114612163576000866000018281548110612115576121146132a6565b5b9060005260206000200154905080876000018481548110612139576121386132a6565b5b90600052602060002001819055508387600101600083815260200190815260200160002081905550505b85600001805480612177576121766133db565b5b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506121b8565b60009150505b92915050565b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6121f8816121c3565b811461220357600080fd5b50565b600081359050612215816121ef565b92915050565b600060208284031215612231576122306121be565b5b600061223f84828501612206565b91505092915050565b60008115159050919050565b61225d81612248565b82525050565b60006020820190506122786000830184612254565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156122b857808201518184015260208101905061229d565b60008484015250505050565b6000601f19601f8301169050919050565b60006122e08261227e565b6122ea8185612289565b93506122fa81856020860161229a565b612303816122c4565b840191505092915050565b6000602082019050818103600083015261232881846122d5565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061235b82612330565b9050919050565b61236b81612350565b811461237657600080fd5b50565b60008135905061238881612362565b92915050565b6000819050919050565b6123a18161238e565b81146123ac57600080fd5b50565b6000813590506123be81612398565b92915050565b600080604083850312156123db576123da6121be565b5b60006123e985828601612379565b92505060206123fa858286016123af565b9150509250929050565b61240d8161238e565b82525050565b60006020820190506124286000830184612404565b92915050565b600080600060608486031215612447576124466121be565b5b600061245586828701612379565b935050602061246686828701612379565b9250506040612477868287016123af565b9150509250925092565b6000819050919050565b61249481612481565b811461249f57600080fd5b50565b6000813590506124b18161248b565b92915050565b6000602082840312156124cd576124cc6121be565b5b60006124db848285016124a2565b91505092915050565b6124ed81612481565b82525050565b600060208201905061250860008301846124e4565b92915050565b60008060408385031215612525576125246121be565b5b6000612533858286016124a2565b925050602061254485828601612379565b9150509250929050565b600060ff82169050919050565b6125648161254e565b82525050565b600060208201905061257f600083018461255b565b92915050565b60006020828403121561259b5761259a6121be565b5b60006125a9848285016123af565b91505092915050565b6000602082840312156125c8576125c76121be565b5b60006125d684828501612379565b91505092915050565b6125e881612350565b82525050565b600060208201905061260360008301846125df565b92915050565b600080604083850312156126205761261f6121be565b5b600061262e858286016124a2565b925050602061263f858286016123af565b9150509250929050565b600080604083850312156126605761265f6121be565b5b600061266e85828601612379565b925050602061267f85828601612379565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806126d057607f821691505b6020821081036126e3576126e2612689565b5b50919050565b7f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560008201527f20726f6c657320666f722073656c660000000000000000000000000000000000602082015250565b6000612745602f83612289565b9150612750826126e9565b604082019050919050565b6000602082019050818103600083015261277481612738565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006127b58261238e565b91506127c08361238e565b92508282019050808211156127d8576127d761277b565b5b92915050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f20756e706175736500000000000000602082015250565b600061283a603983612289565b9150612845826127de565b604082019050919050565b600060208201905081810360008301526128698161282d565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f7665206d696e74657220726f6c6520746f206d696e7400000000000000000000602082015250565b60006128cc603683612289565b91506128d782612870565b604082019050919050565b600060208201905081810360008301526128fb816128bf565b9050919050565b7f45524332305072657365744d696e7465725061757365723a206d75737420686160008201527f76652070617573657220726f6c6520746f207061757365000000000000000000602082015250565b600061295e603783612289565b915061296982612902565b604082019050919050565b6000602082019050818103600083015261298d81612951565b9050919050565b7f45524332303a2064656372656173656420616c6c6f77616e63652062656c6f7760008201527f207a65726f000000000000000000000000000000000000000000000000000000602082015250565b60006129f0602583612289565b91506129fb82612994565b604082019050919050565b60006020820190508181036000830152612a1f816129e3565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612a82602683612289565b9150612a8d82612a26565b604082019050919050565b60006020820190508181036000830152612ab181612a75565b9050919050565b7f45524332305061757361626c653a20746f6b656e207472616e7366657220776860008201527f696c652070617573656400000000000000000000000000000000000000000000602082015250565b6000612b14602a83612289565b9150612b1f82612ab8565b604082019050919050565b60006020820190508181036000830152612b4381612b07565b9050919050565b7f45524332303a20617070726f76652066726f6d20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612ba6602483612289565b9150612bb182612b4a565b604082019050919050565b60006020820190508181036000830152612bd581612b99565b9050919050565b7f45524332303a20617070726f766520746f20746865207a65726f20616464726560008201527f7373000000000000000000000000000000000000000000000000000000000000602082015250565b6000612c38602283612289565b9150612c4382612bdc565b604082019050919050565b60006020820190508181036000830152612c6781612c2b565b9050919050565b7f45524332303a20696e73756666696369656e7420616c6c6f77616e6365000000600082015250565b6000612ca4601d83612289565b9150612caf82612c6e565b602082019050919050565b60006020820190508181036000830152612cd381612c97565b9050919050565b7f45524332303a207472616e736665722066726f6d20746865207a65726f20616460008201527f6472657373000000000000000000000000000000000000000000000000000000602082015250565b6000612d36602583612289565b9150612d4182612cda565b604082019050919050565b60006020820190508181036000830152612d6581612d29565b9050919050565b7f45524332303a207472616e7366657220746f20746865207a65726f206164647260008201527f6573730000000000000000000000000000000000000000000000000000000000602082015250565b6000612dc8602383612289565b9150612dd382612d6c565b604082019050919050565b60006020820190508181036000830152612df781612dbb565b9050919050565b7f45524332303a207472616e7366657220616d6f756e742065786365656473206260008201527f616c616e63650000000000000000000000000000000000000000000000000000602082015250565b6000612e5a602683612289565b9150612e6582612dfe565b604082019050919050565b60006020820190508181036000830152612e8981612e4d565b9050919050565b7f45524332303a206d696e7420746f20746865207a65726f206164647265737300600082015250565b6000612ec6601f83612289565b9150612ed182612e90565b602082019050919050565b60006020820190508181036000830152612ef581612eb9565b9050919050565b7f45524332303a206275726e2066726f6d20746865207a65726f2061646472657360008201527f7300000000000000000000000000000000000000000000000000000000000000602082015250565b6000612f58602183612289565b9150612f6382612efc565b604082019050919050565b60006020820190508181036000830152612f8781612f4b565b9050919050565b7f45524332303a206275726e20616d6f756e7420657863656564732062616c616e60008201527f6365000000000000000000000000000000000000000000000000000000000000602082015250565b6000612fea602283612289565b9150612ff582612f8e565b604082019050919050565b6000602082019050818103600083015261301981612fdd565b9050919050565b600061302b8261238e565b91506130368361238e565b925082820390508181111561304e5761304d61277b565b5b92915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b600061308a602083612289565b915061309582613054565b602082019050919050565b600060208201905081810360008301526130b98161307d565b9050919050565b600081905092915050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000600082015250565b60006131016017836130c0565b915061310c826130cb565b601782019050919050565b60006131228261227e565b61312c81856130c0565b935061313c81856020860161229a565b80840191505092915050565b7f206973206d697373696e6720726f6c6520000000000000000000000000000000600082015250565b600061317e6011836130c0565b915061318982613148565b601182019050919050565b600061319f826130f4565b91506131ab8285613117565b91506131b682613171565b91506131c28284613117565b91508190509392505050565b7f5061757361626c653a206e6f7420706175736564000000000000000000000000600082015250565b6000613204601483612289565b915061320f826131ce565b602082019050919050565b60006020820190508181036000830152613233816131f7565b9050919050565b7f5061757361626c653a2070617573656400000000000000000000000000000000600082015250565b6000613270601083612289565b915061327b8261323a565b602082019050919050565b6000602082019050818103600083015261329f81613263565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006132e08261238e565b91506132eb8361238e565b92508282026132f98161238e565b915082820484148315176133105761330f61277b565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60006133518261238e565b9150600082036133645761336361277b565b5b600182039050919050565b7f537472696e67733a20686578206c656e67746820696e73756666696369656e74600082015250565b60006133a5602083612289565b91506133b08261336f565b602082019050919050565b600060208201905081810360008301526133d481613398565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea26469706673582212204623e90fd7c940d1d87092f863df1074e18c04ab1c060d8681ede17ae5e5b7dc64736f6c63430008110033