[ { "inputs": [ { "internalType": "string", "name": "baseUri", "type": "string" }, { "internalType": "address", "name": "mnkzAddress", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ItemMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "ItemsMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint8", "name": "supply", "type": "uint8" }, { "indexed": false, "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "PosterConfigUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "indexed": false, "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "TransferBatch", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "id", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "TransferSingle", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "value", "type": "string" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "URI", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SPECIAL_MINTER", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SUPPORT_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint8", "name": "supply", "type": "uint8" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "saleOpen", "type": "bool" } ], "name": "addPosterConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "accounts", "type": "address[]" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" } ], "name": "balanceOfBatch", "outputs": [ { "internalType": "uint256[]", "name": "", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "typeId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "buyPoster", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "exists", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "extension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "typeId", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mintPoster", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "typeIds", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" } ], "name": "mintPosters", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "mnkz", "outputs": [ { "internalType": "contract MNKZ", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "numberOfTokens", "type": "uint256" }, { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "reserveTokens", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royaltyPayout", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeBatchTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "amount", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint8", "name": "supply", "type": "uint8" }, { "internalType": "uint256", "name": "price", "type": "uint256" }, { "internalType": "bool", "name": "saleOpen", "type": "bool" } ], "name": "setPosterConfig", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "setPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_payoutAddress", "type": "address" } ], "name": "setRoyaltyPayoutAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "bool", "name": "saleStatus", "type": "bool" } ], "name": "setSaleStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint8", "name": "supply", "type": "uint8" } ], "name": "setSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint96", "name": "_royalties", "type": "uint96" } ], "name": "setTokenRoyalties", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "tokenRoyalties", "outputs": [ { "internalType": "uint96", "name": "", "type": "uint96" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "tokenToConfig", "outputs": [ { "internalType": "uint8", "name": "supply", "type": "uint8" }, { "internalType": "bool", "name": "saleOpen", "type": "bool" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "price", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "typeId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60c0604052600e60808190526d2d3ab733b632902837b9ba32b93d60911b60a090815262000031916009919062000387565b50604080518082019091526007808252662827a9aa22a92d60c91b60209092019182526200006291600a9162000387565b506040805160208101918290526000908190526200008391600c9162000387565b507fb090fc5d0c06804dfbf06efb59ce1f291f13162a0000000000000000000001f4600d55348015620000b557600080fd5b506040516200383038038062003830833981016040819052620000d8916200044a565b81620000e481620001b9565b506001600755600880546001600160a01b0319166001600160a01b03831617905581516200011a90600b90602085019062000387565b5062000128600033620001d2565b620001547fd8acb51ff3d48f690a25887aaf234c4ae5a66ab9839243cd8e2b639cade0663b33620001d2565b620001807f10cbbd5357ab6aa4859c53a9d5f62b9f1a428b1f9e359ea48e8c8f8d953f997d33620001d2565b600d54620001b1906001600160a01b036c01000000000000000000000000820416906001600160601b0316620001de565b50506200058e565b8051620001ce90600290602084019062000387565b5050565b620001ce8282620002e3565b6127106001600160601b0382161115620002525760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002aa5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000249565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600555565b60008281526004602090815260408083206001600160a01b038516845290915290205460ff16620001ce5760008281526004602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620003433390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b82805462000395906200053b565b90600052602060002090601f016020900481019282620003b9576000855562000404565b82601f10620003d457805160ff191683800117855562000404565b8280016001018555821562000404579182015b8281111562000404578251825591602001919060010190620003e7565b506200041292915062000416565b5090565b5b8082111562000412576000815560010162000417565b80516001600160a01b03811681146200044557600080fd5b919050565b600080604083850312156200045e57600080fd5b82516001600160401b03808211156200047657600080fd5b818501915085601f8301126200048b57600080fd5b815181811115620004a057620004a062000578565b604051601f8201601f19908116603f01168101908382118183101715620004cb57620004cb62000578565b81604052828152602093508884848701011115620004e857600080fd5b600091505b828210156200050c5784820184015181830185015290830190620004ed565b828211156200051e5760008484830101525b9550620005309150508582016200042d565b925050509250929050565b600181811c908216806200055057607f821691505b602082108114156200057257634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b613292806200059e6000396000f3fe608060405234801561001057600080fd5b50600436106102265760003560e01c80638c31d3dd11610130578063bd85b039116100b8578063dd796c101161007c578063dd796c1014610580578063e985e9c5146105a7578063f229e951146105e3578063f242432a146105f6578063f7d975771461060957600080fd5b8063bd85b039146104c8578063caa8c25f146104e8578063d547741f146104fb578063d64001bb1461050e578063dd161ae61461052157600080fd5b8063a217fddf116100ff578063a217fddf14610474578063a22cb4651461047c578063a54209d81461048f578063ae2aa6b9146104a2578063b54c5c31146104b557600080fd5b80638c31d3dd1461041f57806391d148541461043257806394b059ab1461044557806395d89b411461046c57600080fd5b80632eb2c2d6116101b357806345aeefde1161018257806345aeefde146103855780634e1273f4146103985780634f558e79146103b85780636b3b9292146103da5780638b584eeb1461040557600080fd5b80632eb2c2d6146103395780632f2ff15d1461034c57806336568abe1461035f5780633cbf66a51461037257600080fd5b80631ebdcaae116101fa5780631ebdcaae1461029c578063248a9ca3146102b15780632a55205a146102d45780632d5537b0146103065780632dff84231461030e57600080fd5b8062fdd58e1461022b57806301ffc9a71461025157806306fdde03146102745780630e89341c14610289575b600080fd5b61023e6102393660046128b6565b61061c565b6040519081526020015b60405180910390f35b61026461025f366004612a20565b6106b2565b6040519015158152602001610248565b61027c6106c3565b6040516102489190612e29565b61027c6102973660046129e4565b610751565b6102af6102aa366004612b21565b610888565b005b61023e6102bf3660046129e4565b60009081526004602052604090206001015490565b6102e76102e2366004612a96565b6108f4565b604080516001600160a01b039093168352602083019190915201610248565b61027c6109a2565b600d54610321906001600160601b031681565b6040516001600160601b039091168152602001610248565b6102af6103473660046126fc565b6109af565b6102af61035a3660046129fd565b6109fb565b6102af61036d3660046129fd565b610a25565b6102af610380366004612adb565b610a9f565b6102af6103933660046126ae565b610b53565b6103ab6103a6366004612913565b610bb6565b6040516102489190612de8565b6102646103c63660046129e4565b600090815260036020526040902054151590565b6008546103ed906001600160a01b031681565b6040516001600160a01b039091168152602001610248565b600d546103ed90600160601b90046001600160a01b031681565b6102af61042d36600461280b565b610ce0565b6102646104403660046129fd565b610d1f565b61023e7fd8acb51ff3d48f690a25887aaf234c4ae5a66ab9839243cd8e2b639cade0663b81565b61027c610d4a565b61023e600081565b6102af61048a36600461288c565b610d57565b6102af61049d3660046128e0565b610d62565b6102af6104b0366004612ab8565b610d9d565b6102af6104c3366004612a73565b610df9565b61023e6104d63660046129e4565b60009081526003602052604090205490565b6102af6104f6366004612adb565b610e5a565b6102af6105093660046129fd565b610ebd565b6102af61051c366004612a96565b610ee2565b61055c61052f3660046129e4565b600e6020526000908152604090208054600182015460029092015460ff8083169361010090930416919084565b6040805160ff90951685529215156020850152918301526060820152608001610248565b61023e7f10cbbd5357ab6aa4859c53a9d5f62b9f1a428b1f9e359ea48e8c8f8d953f997d81565b6102646105b53660046126c9565b6001600160a01b03918216600090815260016020908152604080832093909416825291909152205460ff1690565b6102af6105f13660046128e0565b61124c565b6102af6106043660046127a6565b6112ee565b6102af610617366004612a96565b611333565b60006001600160a01b03831661068c5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000908152602081815260408083206001600160a01b03949094168352929052205490565b60006106bd82611382565b92915050565b600980546106d0906130e1565b80601f01602080910402602001604051908101604052809291908181526020018280546106fc906130e1565b80156107495780601f1061071e57610100808354040283529160200191610749565b820191906000526020600020905b81548152906001019060200180831161072c57829003601f168201915b505050505081565b6000818152600e602052604090206001015460609082906107aa5760405162461bcd60e51b815260206004820152601360248201527216940e88151e5c19481a5cc81a5b9d985b1a59606a1b6044820152606401610683565b6000600b80546107b9906130e1565b90501161085057600b80546107cd906130e1565b80601f01602080910402602001604051908101604052809291908181526020018280546107f9906130e1565b80156108465780601f1061081b57610100808354040283529160200191610846565b820191906000526020600020905b81548152906001019060200180831161082957829003601f168201915b505050505061087f565b600b61085b846113a7565b600c60405160200161086f93929190612c81565b6040516020818303038152906040525b91505b50919050565b7fd8acb51ff3d48f690a25887aaf234c4ae5a66ab9839243cd8e2b639cade0663b6108b28161143c565b600d80546bffffffffffffffffffffffff19166001600160601b038416908117918290556108f091600160601b90046001600160a01b031690611449565b5050565b60008281526006602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b03169282019290925282916109695750604080518082019091526005546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610988906001600160601b03168761307f565b610992919061305d565b91519350909150505b9250929050565b600c80546106d0906130e1565b6001600160a01b0385163314806109cb57506109cb85336105b5565b6109e75760405162461bcd60e51b815260040161068390612ebb565b6109f48585858585611546565b5050505050565b600082815260046020526040902060010154610a168161143c565b610a2083836116e8565b505050565b6001600160a01b0381163314610a955760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610683565b6108f0828261176e565b6000610aaa8161143c565b6040805160808101825260ff86811680835285151560208085019182528486018b815260608087018b815260008e8152600e855289902097518854955115156101000261ffff1990961697169690961793909317865551600186015592516002909401939093558351898152918201529182018590527f0cdfb0db7f46365d4cf1bbf63acfe863a4cb3879d1b709f9f61161ed4fc207e791015b60405180910390a15050505050565b7fd8acb51ff3d48f690a25887aaf234c4ae5a66ab9839243cd8e2b639cade0663b610b7d8161143c565b600d80546001600160601b03908116600160601b6001600160a01b038681168202838117958690556108f0959290920416921617611449565b60608151835114610c1b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610683565b6000835167ffffffffffffffff811115610c3757610c3761318a565b604051908082528060200260200182016040528015610c60578160200160208202803683370190505b50905060005b8451811015610cd857610cab858281518110610c8457610c84613174565b6020026020010151858381518110610c9e57610c9e613174565b602002602001015161061c565b828281518110610cbd57610cbd613174565b6020908102919091010152610cd181613143565b9050610c66565b509392505050565b7f10cbbd5357ab6aa4859c53a9d5f62b9f1a428b1f9e359ea48e8c8f8d953f997d610d0a8161143c565b610d1786868686866117d5565b505050505050565b60009182526004602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600a80546106d0906130e1565b6108f0338383611886565b7f10cbbd5357ab6aa4859c53a9d5f62b9f1a428b1f9e359ea48e8c8f8d953f997d610d8c8161143c565b610d97848484611967565b50505050565b6000610da88161143c565b6000838152600e6020526040902060010154610dd65760405162461bcd60e51b815260040161068390612e84565b506000918252600e6020526040909120805460ff191660ff909216919091179055565b6000610e048161143c565b6000838152600e6020526040902060010154610e325760405162461bcd60e51b815260040161068390612e84565b506000918252600e602052604090912080549115156101000261ff0019909216919091179055565b6000610e658161143c565b6000858152600e602052604090205460ff1615610aaa5760405162461bcd60e51b815260206004820152601660248201527516940e8810dbdb999a59c8185b1c9958591e481cd95d60521b6044820152606401610683565b600082815260046020526040902060010154610ed88161143c565b610a20838361176e565b6000828152600e60205260409020548290610100900460ff16610f475760405162461bcd60e51b815260206004820152601b60248201527f5a503a20506f737465722073616c65206973206e6f74206f70656e00000000006044820152606401610683565b323314610fa15760405162461bcd60e51b815260206004820152602260248201527f5a503a205468652063616c6c657220697320616e6f7468657220636f6e74726160448201526118dd60f21b6064820152608401610683565b610fa9611a18565b6000838152600e60209081526040918290208251608081018452815460ff808216835261010090910416151592810183905260018201549381019390935260020154606083015261103c5760405162461bcd60e51b815260206004820152601b60248201527f5a503a20506f737465722073616c65206973206e6f74206f70656e00000000006044820152606401610683565b805160ff16836110588660009081526003602052604090205490565b6110629190613045565b11156110ba5760405162461bcd60e51b815260206004820152602160248201527f5a503a20507572636861736520776f756c642065786365656420616c6c6f77656044820152601960fa1b6064820152608401610683565b8281606001516110ca919061307f565b6008546040516370a0823160e01b81523360048201526001600160a01b03909116906370a082319060240160206040518083038186803b15801561110d57600080fd5b505afa158015611121573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111459190612a5a565b101561119d5760405162461bcd60e51b815260206004820152602160248201527f5a503a204e6f7420656e6f75676820746f6b656e7320746f20707572636861736044820152606560f81b6064820152608401610683565b60085460608201516001600160a01b0390911690639dc29fac903390670de0b6b3a7640000906111ce90889061307f565b6111d8919061305d565b6040516001600160e01b031960e085901b1681526001600160a01b0390921660048301526024820152604401600060405180830381600087803b15801561121e57600080fd5b505af1158015611232573d6000803e3d6000fd5b50505050611241338585611967565b50610a206001600755565b60006112578161143c565b60008311801561129757506000828152600e602052604090205460ff1661128a8360009081526003602052604090205490565b6112949085613045565b11155b6112e35760405162461bcd60e51b815260206004820152601760248201527f4e6f7420656e6f7567682072657365727665206c6566740000000000000000006044820152606401610683565b610d97848385611967565b6001600160a01b03851633148061130a575061130a85336105b5565b6113265760405162461bcd60e51b815260040161068390612ebb565b6109f48585858585611a72565b600061133e8161143c565b6000838152600e602052604090206001015461136c5760405162461bcd60e51b815260040161068390612e84565b506000918252600e602052604090912060020155565b60006001600160e01b0319821663152a902d60e11b14806106bd57506106bd82611baa565b606060006113b483611bcf565b600101905060008167ffffffffffffffff8111156113d4576113d461318a565b6040519080825280601f01601f1916602001820160405280156113fe576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461143757610cd8565b611408565b6114468133611ca7565b50565b6127106001600160601b03821611156114b75760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b6064820152608401610683565b6001600160a01b03821661150d5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c6964207265636569766572000000000000006044820152606401610683565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600555565b81518351146115675760405162461bcd60e51b815260040161068390612f98565b6001600160a01b03841661158d5760405162461bcd60e51b815260040161068390612f09565b3361159c818787878787611d00565b60005b84518110156116825760008582815181106115bc576115bc613174565b6020026020010151905060008583815181106115da576115da613174565b602090810291909101810151600084815280835260408082206001600160a01b038e16835290935291909120549091508181101561162a5760405162461bcd60e51b815260040161068390612f4e565b6000838152602081815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611667908490613045565b925050819055505050508061167b90613143565b905061159f565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb87876040516116d2929190612dfb565b60405180910390a4610d17818787878787611e82565b6116f28282610d1f565b6108f05760008281526004602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561172a3390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6117788282610d1f565b156108f05760008281526004602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6118518585858080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092018290525060408051602081019091529081529250611fed915050565b7f3ddf5e41de8507fd8b434c8861b3d06dc558b49f4ae80bd5d963b45cb8317d6c84848484604051610b449493929190612dc1565b816001600160a01b0316836001600160a01b031614156118fa5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610683565b6001600160a01b03838116600081815260016020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6000828152600e602052604090206001015482906119bd5760405162461bcd60e51b815260206004820152601360248201527216940e88151e5c19481a5cc81a5b9d985b1a59606a1b6044820152606401610683565b6119d884848460405180602001604052806000815250612147565b827f6c02ee8d366aef744d3486878e55e27cd08e1ea436ef29336fb61a76b0af08ee83604051611a0a91815260200190565b60405180910390a250505050565b60026007541415611a6b5760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610683565b6002600755565b6001600160a01b038416611a985760405162461bcd60e51b815260040161068390612f09565b336000611aa485612227565b90506000611ab185612227565b9050611ac1838989858589611d00565b6000868152602081815260408083206001600160a01b038c16845290915290205485811015611b025760405162461bcd60e51b815260040161068390612f4e565b6000878152602081815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290611b3f908490613045565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611b9f848a8a8a8a8a612272565b505050505050505050565b60006001600160e01b03198216637965db0b60e01b14806106bd57506106bd8261233c565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611c0e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611c3a576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611c5857662386f26fc10000830492506010015b6305f5e1008310611c70576305f5e100830492506008015b6127108310611c8457612710830492506004015b60648310611c96576064830492506002015b600a83106106bd5760010192915050565b611cb18282610d1f565b6108f057611cbe8161238c565b611cc983602061239e565b604051602001611cda929190612cb4565b60408051601f198184030181529082905262461bcd60e51b825261068391600401612e29565b6001600160a01b038516611d875760005b8351811015611d8557828181518110611d2c57611d2c613174565b602002602001015160036000868481518110611d4a57611d4a613174565b602002602001015181526020019081526020016000206000828254611d6f9190613045565b90915550611d7e905081613143565b9050611d11565b505b6001600160a01b038416610d175760005b8351811015611e79576000848281518110611db557611db5613174565b602002602001015190506000848381518110611dd357611dd3613174565b6020026020010151905060006003600084815260200190815260200160002054905081811015611e565760405162461bcd60e51b815260206004820152602860248201527f455243313135353a206275726e20616d6f756e74206578636565647320746f74604482015267616c537570706c7960c01b6064820152608401610683565b60009283526003602052604090922091039055611e7281613143565b9050611d98565b50505050505050565b6001600160a01b0384163b15610d175760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190611ec69089908990889088908890600401612d29565b602060405180830381600087803b158015611ee057600080fd5b505af1925050508015611f10575060408051601f3d908101601f19168201909252611f0d91810190612a3d565b60015b611fbd57611f1c6131a0565b806308c379a01415611f565750611f316131bc565b80611f3c5750611f58565b8060405162461bcd60e51b81526004016106839190612e29565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610683565b6001600160e01b0319811663bc197c8160e01b14611e795760405162461bcd60e51b815260040161068390612e3c565b6001600160a01b0384166120135760405162461bcd60e51b815260040161068390612fe0565b81518351146120345760405162461bcd60e51b815260040161068390612f98565b3361204481600087878787611d00565b60005b84518110156120df5783818151811061206257612062613174565b602002602001015160008087848151811061207f5761207f613174565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546120c79190613045565b909155508190506120d781613143565b915050612047565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612130929190612dfb565b60405180910390a46109f481600087878787611e82565b6001600160a01b03841661216d5760405162461bcd60e51b815260040161068390612fe0565b33600061217985612227565b9050600061218685612227565b905061219783600089858589611d00565b6000868152602081815260408083206001600160a01b038b168452909152812080548792906121c7908490613045565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4611e7983600089898989612272565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061226157612261613174565b602090810291909101015292915050565b6001600160a01b0384163b15610d175760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906122b69089908990889088908890600401612d87565b602060405180830381600087803b1580156122d057600080fd5b505af1925050508015612300575060408051601f3d908101601f191682019092526122fd91810190612a3d565b60015b61230c57611f1c6131a0565b6001600160e01b0319811663f23a6e6160e01b14611e795760405162461bcd60e51b815260040161068390612e3c565b60006001600160e01b03198216636cdb3d1360e11b148061236d57506001600160e01b031982166303a24d0760e21b145b806106bd57506301ffc9a760e01b6001600160e01b03198316146106bd565b60606106bd6001600160a01b03831660145b606060006123ad83600261307f565b6123b8906002613045565b67ffffffffffffffff8111156123d0576123d061318a565b6040519080825280601f01601f1916602001820160405280156123fa576020820181803683370190505b509050600360fc1b8160008151811061241557612415613174565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061244457612444613174565b60200101906001600160f81b031916908160001a905350600061246884600261307f565b612473906001613045565b90505b60018111156124eb576f181899199a1a9b1b9c1cb0b131b232b360811b85600f16601081106124a7576124a7613174565b1a60f81b8282815181106124bd576124bd613174565b60200101906001600160f81b031916908160001a90535060049490941c936124e4816130ca565b9050612476565b50831561253a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610683565b9392505050565b80356001600160a01b038116811461255857600080fd5b919050565b60008083601f84011261256f57600080fd5b50813567ffffffffffffffff81111561258757600080fd5b6020830191508360208260051b850101111561099b57600080fd5b600082601f8301126125b357600080fd5b813560206125c082613021565b6040516125cd8282613116565b8381528281019150858301600585901b870184018810156125ed57600080fd5b60005b8581101561260c578135845292840192908401906001016125f0565b5090979650505050505050565b8035801515811461255857600080fd5b600082601f83011261263a57600080fd5b813567ffffffffffffffff8111156126545761265461318a565b60405161266b601f8301601f191660200182613116565b81815284602083860101111561268057600080fd5b816020850160208301376000918101602001919091529392505050565b803560ff8116811461255857600080fd5b6000602082840312156126c057600080fd5b61253a82612541565b600080604083850312156126dc57600080fd5b6126e583612541565b91506126f360208401612541565b90509250929050565b600080600080600060a0868803121561271457600080fd5b61271d86612541565b945061272b60208701612541565b9350604086013567ffffffffffffffff8082111561274857600080fd5b61275489838a016125a2565b9450606088013591508082111561276a57600080fd5b61277689838a016125a2565b9350608088013591508082111561278c57600080fd5b5061279988828901612629565b9150509295509295909350565b600080600080600060a086880312156127be57600080fd5b6127c786612541565b94506127d560208701612541565b93506040860135925060608601359150608086013567ffffffffffffffff8111156127ff57600080fd5b61279988828901612629565b60008060008060006060868803121561282357600080fd5b61282c86612541565b9450602086013567ffffffffffffffff8082111561284957600080fd5b61285589838a0161255d565b9096509450604088013591508082111561286e57600080fd5b5061287b8882890161255d565b969995985093965092949392505050565b6000806040838503121561289f57600080fd5b6128a883612541565b91506126f360208401612619565b600080604083850312156128c957600080fd5b6128d283612541565b946020939093013593505050565b6000806000606084860312156128f557600080fd5b6128fe84612541565b95602085013595506040909401359392505050565b6000806040838503121561292657600080fd5b823567ffffffffffffffff8082111561293e57600080fd5b818501915085601f83011261295257600080fd5b8135602061295f82613021565b60405161296c8282613116565b8381528281019150858301600585901b870184018b101561298c57600080fd5b600096505b848710156129b6576129a281612541565b835260019690960195918301918301612991565b50965050860135925050808211156129cd57600080fd5b506129da858286016125a2565b9150509250929050565b6000602082840312156129f657600080fd5b5035919050565b60008060408385031215612a1057600080fd5b823591506126f360208401612541565b600060208284031215612a3257600080fd5b813561253a81613246565b600060208284031215612a4f57600080fd5b815161253a81613246565b600060208284031215612a6c57600080fd5b5051919050565b60008060408385031215612a8657600080fd5b823591506126f360208401612619565b60008060408385031215612aa957600080fd5b50508035926020909101359150565b60008060408385031215612acb57600080fd5b823591506126f36020840161269d565b60008060008060808587031215612af157600080fd5b84359350612b016020860161269d565b925060408501359150612b1660608601612619565b905092959194509250565b600060208284031215612b3357600080fd5b81356001600160601b038116811461253a57600080fd5b81835260006001600160fb1b03831115612b6357600080fd5b8260051b8083602087013760009401602001938452509192915050565b600081518084526020808501945080840160005b83811015612bb057815187529582019590820190600101612b94565b509495945050505050565b60008151808452612bd381602086016020860161309e565b601f01601f19169290920160200192915050565b8054600090600181811c9080831680612c0157607f831692505b6020808410821415612c2357634e487b7160e01b600052602260045260246000fd5b818015612c375760018114612c4857612c75565b60ff19861689528489019650612c75565b60008881526020902060005b86811015612c6d5781548b820152908501908301612c54565b505084890196505b50505050505092915050565b6000612c8d8286612be7565b8451612c9d81836020890161309e565b612ca981830186612be7565b979650505050505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351612cec81601785016020880161309e565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351612d1d81602884016020880161309e565b01602801949350505050565b6001600160a01b0386811682528516602082015260a060408201819052600090612d5590830186612b80565b8281036060840152612d678186612b80565b90508281036080840152612d7b8185612bbb565b98975050505050505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090612ca990830184612bbb565b604081526000612dd5604083018688612b4a565b8281036020840152612ca9818587612b4a565b60208152600061253a6020830184612b80565b604081526000612e0e6040830185612b80565b8281036020840152612e208185612b80565b95945050505050565b60208152600061253a6020830184612bbb565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526019908201527f5a503a20506f7374657220646f6573206e6f7420657869737400000000000000604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b600067ffffffffffffffff82111561303b5761303b61318a565b5060051b60200190565b600082198211156130585761305861315e565b500190565b60008261307a57634e487b7160e01b600052601260045260246000fd5b500490565b60008160001904831182151516156130995761309961315e565b500290565b60005b838110156130b95781810151838201526020016130a1565b83811115610d975750506000910152565b6000816130d9576130d961315e565b506000190190565b600181811c908216806130f557607f821691505b6020821081141561088257634e487b7160e01b600052602260045260246000fd5b601f8201601f1916810167ffffffffffffffff8111828210171561313c5761313c61318a565b6040525050565b60006000198214156131575761315761315e565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052604160045260246000fd5b600060033d11156131b95760046000803e5060005160e01c5b90565b600060443d10156131ca5790565b6040516003193d81016004833e81513d67ffffffffffffffff81602484011181841117156131fa57505050505090565b82850191508151818111156132125750505050505090565b843d870101602082850101111561322c5750505050505090565b61323b60208286010187613116565b509095945050505050565b6001600160e01b03198116811461144657600080fdfea26469706673582212203b0c71ec3db6fe4bb555a1d65ef76e611e5caefbc38b40a967457fc47145ca9d64736f6c634300080700330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000efdd9a1b91f164ea5ca973efce0096fe3f97645a000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f6d6f6e6b65657a2d6170692e6865726f6b756170702e636f6d2f6170692f706f737465727a2f000000000000000000000000000000000000