[ { "inputs": [], "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": "newRoyaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newRoyaltyBps", "type": "uint256" } ], "name": "DefaultRoyalty", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": false, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerUpdated", "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": "uint256", "name": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "royaltyBps", "type": "uint256" } ], "name": "RoyaltyForToken", "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" }, { "inputs": [], "name": "DEFAULT_ADMIN_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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "burnBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "collectMistakeCurrency", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "contractType", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [], "name": "contractURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "contractVersion", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getDefaultRoyaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getInfo", "outputs": [ { "internalType": "string", "name": "", "type": "string" }, { "internalType": "string", "name": "", "type": "string" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getRoyaltyInfoForToken", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "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": [], "name": "initialDate", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_defaultAdmin", "type": "address" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_contractURI", "type": "string" }, { "internalType": "address[]", "name": "_trustedForwarders", "type": "address[]" }, { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "uint128", "name": "_royaltyBps", "type": "uint128" }, { "internalType": "string", "name": "baseURI_", "type": "string" }, { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": [ { "internalType": "address", "name": "forwarder", "type": "address" } ], "name": "isTrustedForwarder", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_tos", "type": "address[]" }, { "internalType": "string[]", "name": "_uris", "type": "string[]" } ], "name": "mintToBatch", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes[]", "name": "data", "type": "bytes[]" } ], "name": "multicall", "outputs": [ { "internalType": "bytes[]", "name": "results", "type": "bytes[]" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenIdToMint", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "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": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "froms", "type": "address[]" }, { "internalType": "address[]", "name": "tos", "type": "address[]" }, { "internalType": "uint256[]", "name": "tokenIds", "type": "uint256[]" } ], "name": "safeBatchTransferFrom", "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": "string", "name": "_baseUri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setContractURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "_royaltyBps", "type": "uint256" } ], "name": "setDefaultRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_maxSupply", "type": "uint256" } ], "name": "setMaxSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_recipient", "type": "address" }, { "internalType": "uint256", "name": "_bps", "type": "uint256" } ], "name": "setRoyaltyInfoForToken", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setUri", "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": [ { "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" } ]
60806040523480156200001157600080fd5b50600054610100900460ff166200002f5760005460ff161562000039565b62000039620000de565b620000a15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b600054610100900460ff16158015620000c4576000805461ffff19166101011790555b8015620000d7576000805461ff00191690555b506200010b565b6000620000f630620000fc60201b62001b561760201c565b15905090565b6001600160a01b03163b151590565b6140c7806200011b6000396000f3fe608060405234801561001057600080fd5b506004361061034b5760003560e01c806370a08231116101bd578063a9a7e8e9116100f9578063cb2ef6f7116100a2578063dd553eb11161007c578063dd553eb114610763578063e4623c1b14610776578063e8a3d48514610789578063e985e9c51461079157600080fd5b8063cb2ef6f714610720578063d547741f14610746578063d5abeb011461075957600080fd5b8063b88d4fde116100d3578063b88d4fde146106e7578063c87b56dd146106fa578063ca15c8731461070d57600080fd5b8063a9a7e8e914610692578063ac9650d8146106a5578063b24f2d39146106c557600080fd5b8063938e3d7b116101665780639bcf7a15116101405780639bcf7a1514610655578063a0a8e46014610668578063a217fddf14610677578063a22cb4651461067f57600080fd5b8063938e3d7b14610630578063945ade921461064357806395d89b411461064d57600080fd5b80638da5cb5b116101975780638da5cb5b146106025780639010d07c1461060a57806391d148541461061d57600080fd5b806370a08231146105c9578063782f08ae146105dc57806389b57835146105ef57600080fd5b806336568abe1161028c57806355f804b311610235578063600dd5ea1161020f578063600dd5ea146105885780636352211e1461059b5780636c0360eb146105ae5780636f8b44b0146105b657600080fd5b806355f804b314610532578063572b6c05146105455780635a9b0b891461057157600080fd5b806342966c681161026657806342966c68146104d75780634cc157df146104ea5780634f6ccce71461051f57600080fd5b806336568abe146104a75780633b1475a7146104ba57806342842e0e146104c457600080fd5b806313af4035116102f9578063248a9ca3116102d3578063248a9ca31461042c5780632a55205a1461044f5780632f2ff15d146104815780632f745c591461049457600080fd5b806313af4035146103f357806318160ddd1461040657806323b872dd1461041957600080fd5b806306fdde031161032a57806306fdde03146103a0578063081812fc146103b5578063095ea7b3146103e057600080fd5b806275a3171461035057806301ffc9a714610365578063033962821461038d575b600080fd5b61036361035e3660046133ee565b6107ce565b005b610378610373366004613452565b6108a5565b60405190151581526020015b60405180910390f35b61036361039b36600461351c565b6108d1565b6103a8610aa6565b6040516103849190613682565b6103c86103c3366004613695565b610b39565b6040516001600160a01b039091168152602001610384565b6103636103ee3660046136ae565b610bd0565b6103636104013660046136d8565b610cf8565b610193545b604051908152602001610384565b6103636104273660046136f3565b610dc1565b61040b61043a366004613695565b600090815260fb602052604090206001015490565b61046261045d36600461372f565b610df9565b604080516001600160a01b039093168352602083019190915201610384565b61036361048f366004613751565b610e36565b61040b6104a23660046136ae565b610e5e565b6103636104b5366004613751565b610ef5565b61040b6101c45481565b6103636104d23660046136f3565b610f83565b6103636104e5366004613695565b610f9e565b6104fd6104f8366004613695565b610fd1565b604080516001600160a01b03909316835261ffff909116602083015201610384565b61040b61052d366004613695565b611041565b61036361054036600461377d565b6110d6565b6103786105533660046136d8565b6001600160a01b031660009081526065602052604090205460ff1690565b6105796110f8565b604051610384939291906137b2565b6103636105963660046136ae565b611148565b6103c86105a9366004613695565b611217565b6103a861128f565b6103636105c4366004613695565b61131e565b61040b6105d73660046136d8565b611333565b6103636105ea3660046137e8565b6113bb565b6103636105fd3660046136f3565b6113ef565b6103c8611409565b6103c861061836600461372f565b611441565b61037861062b366004613751565b611461565b61036361063e366004613819565b61148c565b61040b6101cc5481565b6103a86114a7565b61036361066336600461388b565b6114b7565b60405160018152602001610384565b61040b600081565b61036361068d3660046138be565b611596565b6103636106a03660046138f5565b6115a8565b6106b86106b33660046139ca565b6116d9565b6040516103849190613a2d565b6101c5546101c6546001600160a01b03909116906001600160801b03166104fd565b6103636106f5366004613a8f565b6117ce565b6103a8610708366004613695565b611807565b61040b61071b366004613695565b611a12565b7f42617369634552433732314c696d6974656445646974696f6e0000000000000061040b565b610363610754366004613751565b611a2a565b61040b6101cd5481565b610363610771366004613b66565b611a52565b610363610784366004613bee565b611ac4565b6103a8611b48565b61037861079f366004613c23565b6001600160a01b0391821660009081526101646020908152604080832093909416825291909152205460ff1690565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6610800816107fb611b65565b611b6f565b6101c4546101cd5481106108535760405162461bcd60e51b8152602060048201526015602482015274457863656564204d6178696d756d20537570706c7960581b60448201526064015b60405180910390fd5b61085d8482611bd3565b8251156108865760008181526101c960209081526040909120845161088492860190613206565b505b60016101c4600082825461089a9190613c63565b909155505050505050565b60006108b082611d24565b806108cb57506001600160e01b0319821663152a902d60e11b145b92915050565b600054610100900460ff166108ec5760005460ff16156108f0565b303b155b6109535760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840161084a565b600054610100900460ff16158015610975576000805461ffff19166101011790555b61097d611d49565b61098686611d7a565b6109908989611db2565b6101c580546001600160a01b0319166001600160a01b0387161790556101c680546fffffffffffffffffffffffffffffffff19166001600160801b03861617905586516109e5906101c79060208a0190613206565b50426101cc5582516109ff906101cb906020860190613206565b506101cd8290556101c380546001600160a01b0319166001600160a01b038c16179055610a2d60008b611de3565b610a577f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a68b611de3565b610a6f60008051602061404b8339815191528b611de3565b610a8860008051602061404b8339815191526000611de3565b8015610a9a576000805461ff00191690555b50505050505050505050565b606061015f8054610ab690613c7b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290613c7b565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b5050505050905090565b600081815261016160205260408120546001600160a01b0316610bb35760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161084a565b50600090815261016360205260409020546001600160a01b031690565b6000610bdb82611217565b9050806001600160a01b0316836001600160a01b03161415610c495760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b606482015260840161084a565b806001600160a01b0316610c5b611b65565b6001600160a01b03161480610c775750610c778161079f611b65565b610ce95760405162461bcd60e51b815260206004820152603860248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760448201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000606482015260840161084a565b610cf38383611ded565b505050565b6000610d06816107fb611b65565b610d11600083611461565b610d5d5760405162461bcd60e51b815260206004820152601b60248201527f6e6577206f776e6572206e6f74206d6f64756c652061646d696e2e0000000000604482015260640161084a565b6101c380546001600160a01b038481166001600160a01b031983168117909355604080519190921680825260208201939093527f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7691015b60405180910390a1505050565b610dd2610dcc611b65565b82611e5c565b610dee5760405162461bcd60e51b815260040161084a90613cb6565b610cf3838383611f51565b600080600080610e0886610fd1565b90945084925061ffff169050612710610e218287613d07565b610e2b9190613d3c565b925050509250929050565b600082815260fb6020526040902060010154610e54816107fb611b65565b610cf383836120fb565b6000610e6983611333565b8210610ecb5760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b606482015260840161084a565b506001600160a01b0391909116600090815261019160209081526040808320938352929052205490565b610efd611b65565b6001600160a01b0316816001600160a01b031614610f755760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b606482015260840161084a565b610f7f828261211e565b5050565b610cf3838383604051806020016040528060008152506117ce565b610fa9610dcc611b65565b610fc55760405162461bcd60e51b815260040161084a90613d50565b610fce81612141565b50565b60008181526101ca60209081526040808320815180830190925280546001600160a01b0316808352600190910154928201929092528291156110195780516020820151611037565b6101c5546101c6546001600160a01b03909116906001600160801b03165b9250925050915091565b600061104d6101935490565b82106110b05760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b606482015260840161084a565b61019382815481106110c4576110c4613da0565b90600052602060002001549050919050565b60006110e4816107fb611b65565b8151610cf3906101cb906020850190613206565b6060806000611105610aa6565b6101cc5460408051808201909152601981527f42617369634552433732314c696d6974656445646974696f6e000000000000006020820152919591945092509050565b6000611156816107fb611b65565b61271082111561119d5760405162461bcd60e51b815260206004820152601260248201527165786365656420726f79616c74792062707360701b604482015260640161084a565b6101c580546001600160a01b0319166001600160a01b0385169081179091556101c680546fffffffffffffffffffffffffffffffff19166001600160801b03851617905560408051918252602082018490527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9101610db4565b600081815261016160205260408120546001600160a01b0316806108cb5760405162461bcd60e51b815260206004820152602960248201527f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460448201526832b73a103a37b5b2b760b91b606482015260840161084a565b6101cb805461129d90613c7b565b80601f01602080910402602001604051908101604052809291908181526020018280546112c990613c7b565b80156113165780601f106112eb57610100808354040283529160200191611316565b820191906000526020600020905b8154815290600101906020018083116112f957829003601f168201915b505050505081565b600061132c816107fb611b65565b506101cd55565b60006001600160a01b03821661139e5760405162461bcd60e51b815260206004820152602a60248201527f4552433732313a2062616c616e636520717565727920666f7220746865207a65604482015269726f206164647265737360b01b606482015260840161084a565b506001600160a01b03166000908152610162602052604090205490565b60006113c9816107fb611b65565b60008381526101c96020908152604090912083516113e992850190613206565b50505050565b60006113fd816107fb611b65565b6113e9843085856121ea565b6101c3546000906114249082906001600160a01b0316611461565b61142e5750600090565b6101c3546001600160a01b03165b905090565b600082815261012d6020526040812061145a9083612234565b9392505050565b600091825260fb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600061149a816107fb611b65565b6113e96101c7848461328a565b60606101608054610ab690613c7b565b60006114c5816107fb611b65565b61271082111561150c5760405162461bcd60e51b815260206004820152601260248201527165786365656420726f79616c74792062707360701b604482015260640161084a565b6040805180820182526001600160a01b03858116808352602080840187815260008a81526101ca8352869020945185546001600160a01b031916941693909317845591516001909301929092558251918252810184905285917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d910160405180910390a250505050565b610f7f6115a1611b65565b8383612240565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a66115d5816107fb611b65565b6101c45483516101cd546115e98284613c63565b1061162e5760405162461bcd60e51b8152602060048201526015602482015274457863656564204d6178696d756d20537570706c7960581b604482015260640161084a565b60005b818110156116ce5761165c86828151811061164e5761164e613da0565b602002602001015184611bd3565b600085828151811061167057611670613da0565b60200260200101515111156116c25784818151811061169157611691613da0565b60200260200101516101c9600085815260200190815260200160002090805190602001906116c0929190613206565b505b60019283019201611631565b50506101c455505050565b60608167ffffffffffffffff8111156116f4576116f461332f565b60405190808252806020026020018201604052801561172757816020015b60608152602001906001900390816117125790505b50905060005b828110156117c7576117973085858481811061174b5761174b613da0565b905060200281019061175d9190613db6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231092505050565b8282815181106117a9576117a9613da0565b602002602001018190525080806117bf90613e04565b91505061172d565b5092915050565b6117df6117d9611b65565b83611e5c565b6117fb5760405162461bcd60e51b815260040161084a90613cb6565b6113e984848484612404565b600081815261016160205260409020546060906001600160a01b03166118875760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b606482015260840161084a565b60008281526101c96020526040812080546118a190613c7b565b80601f01602080910402602001604051908101604052809291908181526020018280546118cd90613c7b565b801561191a5780601f106118ef5761010080835404028352916020019161191a565b820191906000526020600020905b8154815290600101906020018083116118fd57829003601f168201915b505050505090506000815111156119315792915050565b60006101cb805461194190613c7b565b80601f016020809104026020016040519081016040528092919081815260200182805461196d90613c7b565b80156119ba5780601f1061198f576101008083540402835291602001916119ba565b820191906000526020600020905b81548152906001019060200180831161199d57829003601f168201915b5050505050905060008151116119df5760405180602001604052806000815250611a0a565b806119e985612437565b6040516020016119fa929190613e1f565b6040516020818303038152906040525b949350505050565b600081815261012d602052604081206108cb90612535565b600082815260fb6020526040902060010154611a48816107fb611b65565b610cf3838361211e565b60005b83518110156113e957611ab4848281518110611a7357611a73613da0565b6020026020010151848381518110611a8d57611a8d613da0565b6020026020010151848481518110611aa757611aa7613da0565b6020026020010151610f83565b611abd81613e04565b9050611a55565b60005b8151811015610f7f57611afa611adb611b65565b838381518110611aed57611aed613da0565b6020026020010151611e5c565b611b165760405162461bcd60e51b815260040161084a90613d50565b611b38828281518110611b2b57611b2b613da0565b6020026020010151612141565b611b4181613e04565b9050611ac7565b6101c7805461129d90613c7b565b6001600160a01b03163b151590565b600061143c61253f565b611b798282611461565b610f7f57611b91816001600160a01b03166014612569565b611b9c836020612569565b604051602001611bad929190613e4e565b60408051601f198184030181529082905262461bcd60e51b825261084a91600401613682565b6001600160a01b038216611c295760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f2061646472657373604482015260640161084a565b600081815261016160205260409020546001600160a01b031615611c8f5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000604482015260640161084a565b611c9b60008383612705565b6001600160a01b038216600090815261016260205260408120805460019290611cc5908490613c63565b90915550506000818152610161602052604080822080546001600160a01b0319166001600160a01b03861690811790915590518392907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b60006001600160e01b0319821663780e9d6360e01b14806108cb57506108cb826127e5565b600054610100900460ff16611d705760405162461bcd60e51b815260040161084a90613ec3565b611d78612825565b565b600054610100900460ff16611da15760405162461bcd60e51b815260040161084a90613ec3565b611da9612852565b610fce81612879565b600054610100900460ff16611dd95760405162461bcd60e51b815260040161084a90613ec3565b610f7f8282612908565b610f7f82826120fb565b60008181526101636020526040902080546001600160a01b0319166001600160a01b0384169081179091558190611e2382611217565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081815261016160205260408120546001600160a01b0316611ed65760405162461bcd60e51b815260206004820152602c60248201527f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860448201526b34b9ba32b73a103a37b5b2b760a11b606482015260840161084a565b6000611ee183611217565b9050806001600160a01b0316846001600160a01b03161480611f1c5750836001600160a01b0316611f1184610b39565b6001600160a01b0316145b80611a0a57506001600160a01b038082166000908152610164602090815260408083209388168352929052205460ff16611a0a565b826001600160a01b0316611f6482611217565b6001600160a01b031614611fc85760405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b606482015260840161084a565b6001600160a01b03821661202a5760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b606482015260840161084a565b612035838383612705565b612040600082611ded565b6001600160a01b03831660009081526101626020526040812080546001929061206a908490613f0e565b90915550506001600160a01b038216600090815261016260205260408120805460019290612099908490613c63565b90915550506000818152610161602052604080822080546001600160a01b0319166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6121058282612958565b600082815261012d60205260409020610cf390826129df565b61212882826129f4565b600082815261012d60205260409020610cf39082612a79565b600061214c82611217565b905061215a81600084612705565b612165600083611ded565b6001600160a01b03811660009081526101626020526040812080546001929061218f908490613f0e565b90915550506000828152610161602052604080822080546001600160a01b0319169055518391906001600160a01b038416907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050565b806121f4576113e9565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee1415612228576122238282612a8e565b6113e9565b6113e984848484612b31565b600061145a8383612cab565b816001600160a01b0316836001600160a01b031614156122a25760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c657200000000000000604482015260640161084a565b6001600160a01b0383811660008181526101646020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606001600160a01b0383163b6123785760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b606482015260840161084a565b600080846001600160a01b0316846040516123939190613f25565b600060405180830381855af49150503d80600081146123ce576040519150601f19603f3d011682016040523d82523d6000602084013e6123d3565b606091505b50915091506123fb828260405180606001604052806027815260200161406b60279139612cd5565b95945050505050565b61240f848484611f51565b61241b84848484612d0e565b6113e95760405162461bcd60e51b815260040161084a90613f41565b60608161245b5750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612485578061246f81613e04565b915061247e9050600a83613d3c565b915061245f565b60008167ffffffffffffffff8111156124a0576124a061332f565b6040519080825280601f01601f1916602001820160405280156124ca576020820181803683370190505b5090505b8415611a0a576124df600183613f0e565b91506124ec600a86613f93565b6124f7906030613c63565b60f81b81838151811061250c5761250c613da0565b60200101906001600160f81b031916908160001a90535061252e600a86613d3c565b94506124ce565b60006108cb825490565b3360009081526065602052604081205460ff1615612564575060131936013560601c90565b503390565b60606000612578836002613d07565b612583906002613c63565b67ffffffffffffffff81111561259b5761259b61332f565b6040519080825280601f01601f1916602001820160405280156125c5576020820181803683370190505b509050600360fc1b816000815181106125e0576125e0613da0565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061260f5761260f613da0565b60200101906001600160f81b031916908160001a9053506000612633846002613d07565b61263e906001613c63565b90505b60018111156126b6576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061267257612672613da0565b1a60f81b82828151811061268857612688613da0565b60200101906001600160f81b031916908160001a90535060049490941c936126af81613fa7565b9050612641565b50831561145a5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e74604482015260640161084a565b612710838383612e13565b61272960008051602061404b8339815191526000611461565b15801561273e57506001600160a01b03831615155b801561275257506001600160a01b03821615155b15610cf35761276f60008051602061404b83398151915284611461565b8061278d575061278d60008051602061404b83398151915283611461565b610cf35760405162461bcd60e51b815260206004820152602360248201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526265727360e81b606482015260840161084a565b60006001600160e01b031982166380ac58cd60e01b148061281657506001600160e01b03198216635b5e139f60e01b145b806108cb57506108cb82612ecd565b600054610100900460ff1661284c5760405162461bcd60e51b815260040161084a90613ec3565b60018055565b600054610100900460ff16611d785760405162461bcd60e51b815260040161084a90613ec3565b600054610100900460ff166128a05760405162461bcd60e51b815260040161084a90613ec3565b60005b8151811015610f7f576001606560008484815181106128c4576128c4613da0565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061290081613e04565b9150506128a3565b600054610100900460ff1661292f5760405162461bcd60e51b815260040161084a90613ec3565b81516129439061015f906020850190613206565b508051610cf390610160906020840190613206565b6129628282611461565b610f7f57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff1916600117905561299b611b65565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600061145a836001600160a01b038416612ef2565b6129fe8282611461565b15610f7f57600082815260fb602090815260408083206001600160a01b03851684529091529020805460ff19169055612a35611b65565b6001600160a01b0316816001600160a01b0316837ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b60405160405180910390a45050565b600061145a836001600160a01b038416612f41565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114612adb576040519150601f19603f3d011682016040523d82523d6000602084013e612ae0565b606091505b5050905080610cf35760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c656400000000604482015260640161084a565b816001600160a01b0316836001600160a01b03161415612b50576113e9565b60006001600160a01b0384163014612be2576040516323b872dd60e01b81526001600160a01b0385811660048301528481166024830152604482018490528616906323b872dd906064016020604051808303816000875af1158015612bb9573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612bdd9190613fbe565b612c55565b60405163a9059cbb60e01b81526001600160a01b0384811660048301526024820184905286169063a9059cbb906044016020604051808303816000875af1158015612c31573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612c559190613fbe565b905080612ca45760405162461bcd60e51b815260206004820152601960248201527f63757272656e6379207472616e73666572206661696c65642e00000000000000604482015260640161084a565b5050505050565b6000826000018281548110612cc257612cc2613da0565b9060005260206000200154905092915050565b60608315612ce457508161145a565b825115612cf45782518084602001fd5b8160405162461bcd60e51b815260040161084a9190613682565b60006001600160a01b0384163b15612e0857836001600160a01b031663150b7a02612d37611b65565b8786866040518563ffffffff1660e01b8152600401612d599493929190613fdb565b6020604051808303816000875af1925050508015612d94575060408051601f3d908101601f19168201909252612d9191810190614017565b60015b612dee573d808015612dc2576040519150601f19603f3d011682016040523d82523d6000602084013e612dc7565b606091505b508051612de65760405162461bcd60e51b815260040161084a90613f41565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050611a0a565b506001949350505050565b6001600160a01b038316612e7057612e6b816101938054600083815261019460205260408120829055600182018355919091527ffc8af01f449989052b52093a58fc9f42d0b11f0c6dd5dca0463dab62346ccc680155565b612e93565b816001600160a01b0316836001600160a01b031614612e9357612e938382613034565b6001600160a01b038216612eaa57610cf3816130d6565b826001600160a01b0316826001600160a01b031614610cf357610cf3828261318b565b60006001600160e01b03198216635a05180f60e01b14806108cb57506108cb826131d1565b6000818152600183016020526040812054612f39575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556108cb565b5060006108cb565b6000818152600183016020526040812054801561302a576000612f65600183613f0e565b8554909150600090612f7990600190613f0e565b9050818114612fde576000866000018281548110612f9957612f99613da0565b9060005260206000200154905080876000018481548110612fbc57612fbc613da0565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612fef57612fef614034565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506108cb565b60009150506108cb565b6000600161304184611333565b61304b9190613f0e565b600083815261019260205260409020549091508082146130a1576001600160a01b038416600090815261019160209081526040808320858452825280832054848452818420819055835261019290915290208190555b506000918252610192602090815260408084208490556001600160a01b03909416835261019181528383209183525290812055565b610193546000906130e990600190613f0e565b60008381526101946020526040812054610193805493945090928490811061311357613113613da0565b9060005260206000200154905080610193838154811061313557613135613da0565b6000918252602080832090910192909255828152610194909152604080822084905585825281205561019380548061316f5761316f614034565b6001900381819060005260206000200160009055905550505050565b600061319683611333565b6001600160a01b0390931660009081526101916020908152604080832086845282528083208590559382526101929052919091209190915550565b60006001600160e01b03198216637965db0b60e01b14806108cb57506301ffc9a760e01b6001600160e01b03198316146108cb565b82805461321290613c7b565b90600052602060002090601f016020900481019282613234576000855561327a565b82601f1061324d57805160ff191683800117855561327a565b8280016001018555821561327a579182015b8281111561327a57825182559160200191906001019061325f565b506132869291506132fe565b5090565b82805461329690613c7b565b90600052602060002090601f0160209004810192826132b8576000855561327a565b82601f106132d15782800160ff1982351617855561327a565b8280016001018555821561327a579182015b8281111561327a5782358255916020019190600101906132e3565b5b8082111561328657600081556001016132ff565b80356001600160a01b038116811461332a57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f1916810167ffffffffffffffff8111828210171561336e5761336e61332f565b604052919050565b600067ffffffffffffffff8311156133905761339061332f565b6133a3601f8401601f1916602001613345565b90508281528383830111156133b757600080fd5b828260208301376000602084830101529392505050565b600082601f8301126133df57600080fd5b61145a83833560208501613376565b6000806040838503121561340157600080fd5b61340a83613313565b9150602083013567ffffffffffffffff81111561342657600080fd5b613432858286016133ce565b9150509250929050565b6001600160e01b031981168114610fce57600080fd5b60006020828403121561346457600080fd5b813561145a8161343c565b600067ffffffffffffffff8211156134895761348961332f565b5060051b60200190565b600082601f8301126134a457600080fd5b813560206134b96134b48361346f565b613345565b82815260059290921b840181019181810190868411156134d857600080fd5b8286015b848110156134fa576134ed81613313565b83529183019183016134dc565b509695505050505050565b80356001600160801b038116811461332a57600080fd5b60008060008060008060008060006101208a8c03121561353b57600080fd5b6135448a613313565b985060208a013567ffffffffffffffff8082111561356157600080fd5b61356d8d838e016133ce565b995060408c013591508082111561358357600080fd5b61358f8d838e016133ce565b985060608c01359150808211156135a557600080fd5b6135b18d838e016133ce565b975060808c01359150808211156135c757600080fd5b6135d38d838e01613493565b96506135e160a08d01613313565b95506135ef60c08d01613505565b945060e08c013591508082111561360557600080fd5b506136128c828d016133ce565b9250506101008a013590509295985092959850929598565b60005b8381101561364557818101518382015260200161362d565b838111156113e95750506000910152565b6000815180845261366e81602086016020860161362a565b601f01601f19169290920160200192915050565b60208152600061145a6020830184613656565b6000602082840312156136a757600080fd5b5035919050565b600080604083850312156136c157600080fd5b6136ca83613313565b946020939093013593505050565b6000602082840312156136ea57600080fd5b61145a82613313565b60008060006060848603121561370857600080fd5b61371184613313565b925061371f60208501613313565b9150604084013590509250925092565b6000806040838503121561374257600080fd5b50508035926020909101359150565b6000806040838503121561376457600080fd5b8235915061377460208401613313565b90509250929050565b60006020828403121561378f57600080fd5b813567ffffffffffffffff8111156137a657600080fd5b611a0a848285016133ce565b6060815260006137c56060830186613656565b82810360208401526137d78186613656565b915050826040830152949350505050565b600080604083850312156137fb57600080fd5b82359150602083013567ffffffffffffffff81111561342657600080fd5b6000806020838503121561382c57600080fd5b823567ffffffffffffffff8082111561384457600080fd5b818501915085601f83011261385857600080fd5b81358181111561386757600080fd5b86602082850101111561387957600080fd5b60209290920196919550909350505050565b6000806000606084860312156138a057600080fd5b8335925061371f60208501613313565b8015158114610fce57600080fd5b600080604083850312156138d157600080fd5b6138da83613313565b915060208301356138ea816138b0565b809150509250929050565b6000806040838503121561390857600080fd5b823567ffffffffffffffff8082111561392057600080fd5b61392c86838701613493565b935060209150818501358181111561394357600080fd5b8501601f8101871361395457600080fd5b80356139626134b48261346f565b81815260059190911b8201840190848101908983111561398157600080fd5b8584015b838110156139b95780358681111561399d5760008081fd5b6139ab8c89838901016133ce565b845250918601918601613985565b508096505050505050509250929050565b600080602083850312156139dd57600080fd5b823567ffffffffffffffff808211156139f557600080fd5b818501915085601f830112613a0957600080fd5b813581811115613a1857600080fd5b8660208260051b850101111561387957600080fd5b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613a8257603f19888603018452613a70858351613656565b94509285019290850190600101613a54565b5092979650505050505050565b60008060008060808587031215613aa557600080fd5b613aae85613313565b9350613abc60208601613313565b925060408501359150606085013567ffffffffffffffff811115613adf57600080fd5b8501601f81018713613af057600080fd5b613aff87823560208401613376565b91505092959194509250565b600082601f830112613b1c57600080fd5b81356020613b2c6134b48361346f565b82815260059290921b84018101918181019086841115613b4b57600080fd5b8286015b848110156134fa5780358352918301918301613b4f565b600080600060608486031215613b7b57600080fd5b833567ffffffffffffffff80821115613b9357600080fd5b613b9f87838801613493565b94506020860135915080821115613bb557600080fd5b613bc187838801613493565b93506040860135915080821115613bd757600080fd5b50613be486828701613b0b565b9150509250925092565b600060208284031215613c0057600080fd5b813567ffffffffffffffff811115613c1757600080fd5b611a0a84828501613b0b565b60008060408385031215613c3657600080fd5b613c3f83613313565b915061377460208401613313565b634e487b7160e01b600052601160045260246000fd5b60008219821115613c7657613c76613c4d565b500190565b600181811c90821680613c8f57607f821691505b60208210811415613cb057634e487b7160e01b600052602260045260246000fd5b50919050565b60208082526031908201527f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f6040820152701ddb995c881b9bdc88185c1c1c9bdd9959607a1b606082015260800190565b6000816000190483118215151615613d2157613d21613c4d565b500290565b634e487b7160e01b600052601260045260246000fd5b600082613d4b57613d4b613d26565b500490565b60208082526030908201527f4552433732314275726e61626c653a2063616c6c6572206973206e6f74206f7760408201526f1b995c881b9bdc88185c1c1c9bdd995960821b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b6000808335601e19843603018112613dcd57600080fd5b83018035915067ffffffffffffffff821115613de857600080fd5b602001915036819003821315613dfd57600080fd5b9250929050565b6000600019821415613e1857613e18613c4d565b5060010190565b60008351613e3181846020880161362a565b835190830190613e4581836020880161362a565b01949350505050565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613e8681601785016020880161362a565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613eb781602884016020880161362a565b01602801949350505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082821015613f2057613f20613c4d565b500390565b60008251613f3781846020870161362a565b9190910192915050565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b600082613fa257613fa2613d26565b500690565b600081613fb657613fb6613c4d565b506000190190565b600060208284031215613fd057600080fd5b815161145a816138b0565b60006001600160a01b0380871683528086166020840152508360408301526080606083015261400d6080830184613656565b9695505050505050565b60006020828403121561402957600080fd5b815161145a8161343c565b634e487b7160e01b600052603160045260246000fdfe8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220686c984f2e31d8180bf67c500ca3b6f5afbbccda9ffbc4c1e42bd90b7498778264736f6c634300080b0033