[ { "inputs": [ { "internalType": "address", "name": "_royaltyWallet", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "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": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Paused", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "account", "type": "address" } ], "name": "Unpaused", "type": "event" }, { "inputs": [], "name": "BURNER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MINTER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "PAUSER_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "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": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "renounceRole", "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": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "nfts", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "safeMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "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": "address", "name": "_address", "type": "address" } ], "name": "setBurnerRole", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltyWallet", "type": "address" } ], "name": "setDefaultRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setMinterRole", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_address", "type": "address" } ], "name": "setPauserRole", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "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": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unpause", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200376e3803806200376e8339810160408190526200003491620002f3565b6040518060400160405280600b81526020016a43616e6e61466f782e696f60a81b815250604051806040016040528060058152602001640c2868c9eb60db1b8152508160029081620000879190620003ca565b506003620000968282620003ca565b5050600d805460ff1916905550620000b060003362000149565b620000dc7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a3362000149565b620001087f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000149565b620001347f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a8483362000149565b62000142816101f4620001ee565b5062000496565b6000828152600e602090815260408083206001600160a01b038516845290915290205460ff16620001ea576000828152600e602090815260408083206001600160a01b03851684529091529020805460ff19166001179055620001a93390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45b5050565b6127106001600160601b0382161115620002625760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c206578636565646044820152692073616c65507269636560b01b60648201526084015b60405180910390fd5b6001600160a01b038216620002ba5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640162000259565b604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b6000602082840312156200030657600080fd5b81516001600160a01b03811681146200031e57600080fd5b9392505050565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200035057607f821691505b6020821081036200037157634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620003c557600081815260208120601f850160051c81016020861015620003a05750805b601f850160051c820191505b81811015620003c157828155600101620003ac565b5050505b505050565b81516001600160401b03811115620003e657620003e662000325565b620003fe81620003f784546200033b565b8462000377565b602080601f8311600181146200043657600084156200041d5750858301515b600019600386901b1c1916600185901b178555620003c1565b600085815260208120601f198616915b82811015620004675788860151825594840194600190910190840162000446565b5085821015620004865787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6132c880620004a66000396000f3fe608060405234801561001057600080fd5b50600436106102415760003560e01c80635c975abb11610145578063b03b74aa116100bd578063d53913931161008c578063e63ab1e911610071578063e63ab1e914610546578063e985e9c51461056d578063fed62da5146105b657600080fd5b8063d53913931461050c578063d547741f1461053357600080fd5b8063b03b74aa146104c0578063b88d4fde146104d3578063c87b56dd146104e6578063cd279c7c146104f957600080fd5b806391d148541161011457806395d89b41116100f957806395d89b411461049d578063a217fddf146104a5578063a22cb465146104ad57600080fd5b806391d1485414610444578063945d12291461048a57600080fd5b80635c975abb1461040b5780636352211e1461041657806370a08231146104295780638456cb591461043c57600080fd5b8063282c51f3116101d857806336568abe116101a757806342842e0e1161018c57806342842e0e146103d257806342966c68146103e55780634f6ccce7146103f857600080fd5b806336568abe146103b75780633f4ba83a146103ca57600080fd5b8063282c51f31461032b5780632a55205a146103525780632f2ff15d146103915780632f745c59146103a457600080fd5b806318160ddd1161021457806318160ddd146102d05780631bc28a69146102e257806323b872dd146102f5578063248a9ca31461030857600080fd5b806301ffc9a71461024657806306fdde031461026e578063081812fc14610283578063095ea7b3146102bb575b600080fd5b610259610254366004612a7a565b6105c9565b60405190151581526020015b60405180910390f35b6102766105da565b6040516102659190612b05565b610296610291366004612b18565b61066c565b60405173ffffffffffffffffffffffffffffffffffffffff9091168152602001610265565b6102ce6102c9366004612b5a565b6106a0565b005b600b545b604051908152602001610265565b6102966102f0366004612b84565b6107fd565b6102ce610303366004612b9f565b61083d565b6102d4610316366004612b18565b6000908152600e602052604090206001015490565b6102d47f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a84881565b610365610360366004612bdb565b6108c4565b6040805173ffffffffffffffffffffffffffffffffffffffff9093168352602083019190915201610265565b6102ce61039f366004612bfd565b6109bb565b6102d46103b2366004612b5a565b6109e0565b6102ce6103c5366004612bfd565b610a95565b6102ce610b2e565b6102ce6103e0366004612b9f565b610b63565b6102ce6103f3366004612b18565b610b7e565b6102d4610406366004612b18565b610bb1565b600d5460ff16610259565b610296610424366004612b18565b610c55565b6102d4610437366004612b84565b610cc7565b6102ce610d7b565b610259610452366004612bfd565b6000918252600e6020908152604080842073ffffffffffffffffffffffffffffffffffffffff93909316845291905290205460ff1690565b610296610498366004612b84565b610dad565b610276610de3565b6102d4600081565b6102ce6104bb366004612c29565b610df2565b6102ce6104ce366004612b84565b610dfd565b6102ce6104e1366004612d28565b610e14565b6102766104f4366004612b18565b610ea2565b6102ce610507366004612da4565b610ead565b6102d47f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a681565b6102ce610541366004612bfd565b610f28565b6102d47f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a81565b61025961057b366004612e0f565b73ffffffffffffffffffffffffffffffffffffffff918216600090815260076020908152604080832093909416825291909152205460ff1690565b6102966105c4366004612b84565b610f4d565b60006105d482610f83565b92915050565b6060600280546105e990612e39565b80601f016020809104026020016040519081016040528092919081815260200182805461061590612e39565b80156106625780601f1061063757610100808354040283529160200191610662565b820191906000526020600020905b81548152906001019060200180831161064557829003601f168201915b5050505050905090565b600061067782610fd9565b5060009081526006602052604090205473ffffffffffffffffffffffffffffffffffffffff1690565b60006106ab82610c55565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036107535760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560448201527f720000000000000000000000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff8216148061077c575061077c813361057b565b6107ee5760405162461bcd60e51b815260206004820152603e60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000606482015260840161074a565b6107f8838361104a565b505050565b600080610809816110ea565b6108337f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a846110f4565b8291505b50919050565b61084733826111e8565b6108b95760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f766564000000000000000000000000000000000000606482015260840161074a565b6107f88383836112a8565b600082815260016020908152604080832081518083019092525473ffffffffffffffffffffffffffffffffffffffff8116808352740100000000000000000000000000000000000000009091046bffffffffffffffffffffffff1692820192909252829161097f57506040805180820190915260005473ffffffffffffffffffffffffffffffffffffffff811682527401000000000000000000000000000000000000000090046bffffffffffffffffffffffff1660208201525b6020810151600090612710906109a3906bffffffffffffffffffffffff1687612eb5565b6109ad9190612efb565b915196919550909350505050565b6000828152600e60205260409020600101546109d6816110ea565b6107f883836110f4565b60006109eb83610cc7565b8210610a5f5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201527f74206f6620626f756e6473000000000000000000000000000000000000000000606482015260840161074a565b5073ffffffffffffffffffffffffffffffffffffffff919091166000908152600960209081526040808320938352929052205490565b73ffffffffffffffffffffffffffffffffffffffff81163314610b205760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201527f20726f6c657320666f722073656c660000000000000000000000000000000000606482015260840161074a565b610b2a82826114e6565b5050565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610b58816110ea565b610b606115a1565b50565b6107f883838360405180602001604052806000815250610e14565b7f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848610ba8816110ea565b610b2a8261161e565b6000610bbc600b5490565b8210610c305760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201527f7574206f6620626f756e64730000000000000000000000000000000000000000606482015260840161074a565b600b8281548110610c4357610c43612f0f565b90600052602060002001549050919050565b60008181526004602052604081205473ffffffffffffffffffffffffffffffffffffffff16806105d45760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161074a565b600073ffffffffffffffffffffffffffffffffffffffff8216610d525760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f74206120766160448201527f6c6964206f776e65720000000000000000000000000000000000000000000000606482015260840161074a565b5073ffffffffffffffffffffffffffffffffffffffff1660009081526005602052604090205490565b7f65d7a28e3265b37a6474929f336521b332c1681b933f6cb9f3376673440d862a610da5816110ea565b610b60611627565b600080610db9816110ea565b6108337f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6846110f4565b6060600380546105e990612e39565b610b2a338383611682565b6000610e08816110ea565b610b2a826101f4611795565b610e1e33836111e8565b610e905760405162461bcd60e51b815260206004820152602e60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201527f72206e6f7220617070726f766564000000000000000000000000000000000000606482015260840161074a565b610e9c848484846118da565b50505050565b60606105d482611963565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610ed7816110ea565b825b8015610f21576000610eea600f5490565b9050610efa600f80546001019055565b610f048682611a6b565b610f0e8185611a85565b5080610f1981612f3e565b915050610ed9565b5050505050565b6000828152600e6020526040902060010154610f43816110ea565b6107f883836114e6565b600080610f59816110ea565b6108337f3c11d16cbaffd01df69ce1c404f6340ee057498f5f00246190ea54220576a848846110f4565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f7965db0b0000000000000000000000000000000000000000000000000000000014806105d457506105d482611b34565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16610b605760405162461bcd60e51b815260206004820152601860248201527f4552433732313a20696e76616c696420746f6b656e2049440000000000000000604482015260640161074a565b600081815260066020526040902080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff841690811790915581906110a482610c55565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b610b608133611b3f565b6000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b2a576000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff85168452909152902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016600117905561118a3390565b73ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000806111f483610c55565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611262575073ffffffffffffffffffffffffffffffffffffffff80821660009081526007602090815260408083209388168352929052205460ff165b806112a057508373ffffffffffffffffffffffffffffffffffffffff166112888461066c565b73ffffffffffffffffffffffffffffffffffffffff16145b949350505050565b8273ffffffffffffffffffffffffffffffffffffffff166112c882610c55565b73ffffffffffffffffffffffffffffffffffffffff16146113515760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201527f6f776e6572000000000000000000000000000000000000000000000000000000606482015260840161074a565b73ffffffffffffffffffffffffffffffffffffffff82166113d95760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f2061646460448201527f7265737300000000000000000000000000000000000000000000000000000000606482015260840161074a565b6113e4838383611bf7565b6113ef60008261104a565b73ffffffffffffffffffffffffffffffffffffffff83166000908152600560205260408120805460019290611425908490612f73565b909155505073ffffffffffffffffffffffffffffffffffffffff82166000908152600560205260408120805460019290611460908490612f86565b909155505060008181526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff86811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff1615610b2a576000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516808552925280832080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0016905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6115a9611c0a565b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b60405173ffffffffffffffffffffffffffffffffffffffff909116815260200160405180910390a1565b610b6081611c5e565b61162f611c78565b600d80547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115f43390565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036116fd5760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161074a565b73ffffffffffffffffffffffffffffffffffffffff83811660008181526007602090815260408083209487168084529482529182902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6127106bffffffffffffffffffffffff8216111561181b5760405162461bcd60e51b815260206004820152602a60248201527f455243323938313a20726f79616c7479206665652077696c6c2065786365656460448201527f2073616c65507269636500000000000000000000000000000000000000000000606482015260840161074a565b73ffffffffffffffffffffffffffffffffffffffff821661187e5760405162461bcd60e51b815260206004820152601960248201527f455243323938313a20696e76616c696420726563656976657200000000000000604482015260640161074a565b6040805180820190915273ffffffffffffffffffffffffffffffffffffffff9092168083526bffffffffffffffffffffffff90911660209092018290527401000000000000000000000000000000000000000090910217600055565b6118e58484846112a8565b6118f184848484611ccb565b610e9c5760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161074a565b606061196e82610fd9565b6000828152600860205260408120805461198790612e39565b80601f01602080910402602001604051908101604052809291908181526020018280546119b390612e39565b8015611a005780601f106119d557610100808354040283529160200191611a00565b820191906000526020600020905b8154815290600101906020018083116119e357829003601f168201915b505050505090506000611a1e60408051602081019091526000815290565b90508051600003611a30575092915050565b815115611a62578082604051602001611a4a929190612f99565b60405160208183030381529060405292505050919050565b6112a084611ea4565b610b2a828260405180602001604052806000815250611f18565b60008281526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16611b1c5760405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201527f6578697374656e7420746f6b656e000000000000000000000000000000000000606482015260840161074a565b60008281526008602052604090206107f88282613016565b60006105d482611fa1565b6000828152600e6020908152604080832073ffffffffffffffffffffffffffffffffffffffff8516845290915290205460ff16610b2a57611b978173ffffffffffffffffffffffffffffffffffffffff166014611ff7565b611ba2836020611ff7565b604051602001611bb3929190613130565b604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181529082905262461bcd60e51b825261074a91600401612b05565b611bff611c78565b6107f8838383612220565b600d5460ff16611c5c5760405162461bcd60e51b815260206004820152601460248201527f5061757361626c653a206e6f7420706175736564000000000000000000000000604482015260640161074a565b565b611c6781612326565b600090815260016020526040812055565b600d5460ff1615611c5c5760405162461bcd60e51b815260206004820152601060248201527f5061757361626c653a2070617573656400000000000000000000000000000000604482015260640161074a565b600073ffffffffffffffffffffffffffffffffffffffff84163b15611e99576040517f150b7a0200000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff85169063150b7a0290611d429033908990889088906004016131b1565b6020604051808303816000875af1925050508015611d9b575060408051601f3d9081017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0168201909252611d98918101906131fa565b60015b611e4e573d808015611dc9576040519150601f19603f3d011682016040523d82523d6000602084013e611dce565b606091505b508051600003611e465760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161074a565b805181602001fd5b7fffffffff00000000000000000000000000000000000000000000000000000000167f150b7a02000000000000000000000000000000000000000000000000000000001490506112a0565b506001949350505050565b6060611eaf82610fd9565b6000611ec660408051602081019091526000815290565b90506000815111611ee65760405180602001604052806000815250611f11565b80611ef084612366565b604051602001611f01929190612f99565b6040516020818303038152906040525b9392505050565b611f22838361249b565b611f2f6000848484611ccb565b6107f85760405162461bcd60e51b815260206004820152603260248201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560448201527f63656976657220696d706c656d656e7465720000000000000000000000000000606482015260840161074a565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f780e9d630000000000000000000000000000000000000000000000000000000014806105d457506105d482612635565b60606000612006836002612eb5565b612011906002612f86565b67ffffffffffffffff81111561202957612029612c65565b6040519080825280601f01601f191660200182016040528015612053576020820181803683370190505b5090507f30000000000000000000000000000000000000000000000000000000000000008160008151811061208a5761208a612f0f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053507f7800000000000000000000000000000000000000000000000000000000000000816001815181106120ed576120ed612f0f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a9053506000612129846002612eb5565b612134906001612f86565b90505b60018111156121d1577f303132333435363738396162636465660000000000000000000000000000000085600f166010811061217557612175612f0f565b1a60f81b82828151811061218b5761218b612f0f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a90535060049490941c936121ca81612f3e565b9050612137565b508315611f115760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161074a565b73ffffffffffffffffffffffffffffffffffffffff83166122885761228381600b80546000838152600c60205260408120829055600182018355919091527f0175b7a638427703f0dbe7bb9bbf987a2551717b34e79f33b5b1008d1fa01db90155565b6122c5565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146122c5576122c583826126d7565b73ffffffffffffffffffffffffffffffffffffffff82166122e9576107f88161278e565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16146107f8576107f8828261283d565b61232f8161288e565b6000818152600860205260409020805461234890612e39565b159050610b60576000818152600860205260408120610b60916129fe565b6060816000036123a957505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b81156123d357806123bd81613217565b91506123cc9050600a83612efb565b91506123ad565b60008167ffffffffffffffff8111156123ee576123ee612c65565b6040519080825280601f01601f191660200182016040528015612418576020820181803683370190505b5090505b84156112a05761242d600183612f73565b915061243a600a8661324f565b612445906030612f86565b60f81b81838151811061245a5761245a612f0f565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350612494600a86612efb565b945061241c565b73ffffffffffffffffffffffffffffffffffffffff82166124fe5760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161074a565b60008181526004602052604090205473ffffffffffffffffffffffffffffffffffffffff16156125705760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161074a565b61257c60008383611bf7565b73ffffffffffffffffffffffffffffffffffffffff821660009081526005602052604081208054600192906125b2908490612f86565b909155505060008181526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001673ffffffffffffffffffffffffffffffffffffffff861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd0000000000000000000000000000000000000000000000000000000014806126c857507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806105d457506105d482612967565b600060016126e484610cc7565b6126ee9190612f73565b6000838152600a602052604090205490915080821461274e5773ffffffffffffffffffffffffffffffffffffffff841660009081526009602090815260408083208584528252808320548484528184208190558352600a90915290208190555b506000918252600a6020908152604080842084905573ffffffffffffffffffffffffffffffffffffffff9094168352600981528383209183525290812055565b600b546000906127a090600190612f73565b6000838152600c6020526040812054600b80549394509092849081106127c8576127c8612f0f565b9060005260206000200154905080600b83815481106127e9576127e9612f0f565b6000918252602080832090910192909255828152600c9091526040808220849055858252812055600b80548061282157612821613263565b6001900381819060005260206000200160009055905550505050565b600061284883610cc7565b73ffffffffffffffffffffffffffffffffffffffff90931660009081526009602090815260408083208684528252808320859055938252600a9052919091209190915550565b600061289982610c55565b90506128a781600084611bf7565b6128b260008361104a565b73ffffffffffffffffffffffffffffffffffffffff811660009081526005602052604081208054600192906128e8908490612f73565b909155505060008281526004602052604080822080547fffffffffffffffffffffffff00000000000000000000000000000000000000001690555183919073ffffffffffffffffffffffffffffffffffffffff8416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f2a55205a0000000000000000000000000000000000000000000000000000000014806105d457507f01ffc9a7000000000000000000000000000000000000000000000000000000007fffffffff000000000000000000000000000000000000000000000000000000008316146105d4565b508054612a0a90612e39565b6000825580601f10612a1a575050565b601f016020900490600052602060002090810190610b6091905b80821115612a485760008155600101612a34565b5090565b7fffffffff0000000000000000000000000000000000000000000000000000000081168114610b6057600080fd5b600060208284031215612a8c57600080fd5b8135611f1181612a4c565b60005b83811015612ab2578181015183820152602001612a9a565b50506000910152565b60008151808452612ad3816020860160208601612a97565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169290920160200192915050565b602081526000611f116020830184612abb565b600060208284031215612b2a57600080fd5b5035919050565b803573ffffffffffffffffffffffffffffffffffffffff81168114612b5557600080fd5b919050565b60008060408385031215612b6d57600080fd5b612b7683612b31565b946020939093013593505050565b600060208284031215612b9657600080fd5b611f1182612b31565b600080600060608486031215612bb457600080fd5b612bbd84612b31565b9250612bcb60208501612b31565b9150604084013590509250925092565b60008060408385031215612bee57600080fd5b50508035926020909101359150565b60008060408385031215612c1057600080fd5b82359150612c2060208401612b31565b90509250929050565b60008060408385031215612c3c57600080fd5b612c4583612b31565b915060208301358015158114612c5a57600080fd5b809150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600067ffffffffffffffff80841115612caf57612caf612c65565b604051601f85017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908282118183101715612cf557612cf5612c65565b81604052809350858152868686011115612d0e57600080fd5b858560208301376000602087830101525050509392505050565b60008060008060808587031215612d3e57600080fd5b612d4785612b31565b9350612d5560208601612b31565b925060408501359150606085013567ffffffffffffffff811115612d7857600080fd5b8501601f81018713612d8957600080fd5b612d9887823560208401612c94565b91505092959194509250565b600080600060608486031215612db957600080fd5b612dc284612b31565b925060208401359150604084013567ffffffffffffffff811115612de557600080fd5b8401601f81018613612df657600080fd5b612e0586823560208401612c94565b9150509250925092565b60008060408385031215612e2257600080fd5b612e2b83612b31565b9150612c2060208401612b31565b600181811c90821680612e4d57607f821691505b602082108103610837577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b80820281158282048414176105d4576105d4612e86565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600082612f0a57612f0a612ecc565b500490565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600081612f4d57612f4d612e86565b507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0190565b818103818111156105d4576105d4612e86565b808201808211156105d4576105d4612e86565b60008351612fab818460208801612a97565b835190830190612fbf818360208801612a97565b01949350505050565b601f8211156107f857600081815260208120601f850160051c81016020861015612fef5750805b601f850160051c820191505b8181101561300e57828155600101612ffb565b505050505050565b815167ffffffffffffffff81111561303057613030612c65565b6130448161303e8454612e39565b84612fc8565b602080601f83116001811461309757600084156130615750858301515b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600386901b1c1916600185901b17855561300e565b6000858152602081207fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08616915b828110156130e4578886015182559484019460019091019084016130c5565b508582101561312057878501517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff600388901b60f8161c191681555b5050505050600190811b01905550565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613168816017850160208801612a97565b7f206973206d697373696e6720726f6c652000000000000000000000000000000060179184019182015283516131a5816028840160208801612a97565b01602801949350505050565b600073ffffffffffffffffffffffffffffffffffffffff8087168352808616602084015250836040830152608060608301526131f06080830184612abb565b9695505050505050565b60006020828403121561320c57600080fd5b8151611f1181612a4c565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff820361324857613248612e86565b5060010190565b60008261325e5761325e612ecc565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fdfea264697066735822122089e1fde4a6e8cd1762ba8c5f0c51ccc88bb292ca79e392474f9f7e8773b72ccc64736f6c634300081100330000000000000000000000009d2e3bdfb881ee5779b1949c25595880c905efce