[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "CurrencyTransferLibFailedNativeTransfer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "NFTMetadataFrozen", "type": "error" }, { "inputs": [], "name": "NFTMetadataInvalidUrl", "type": "error" }, { "inputs": [], "name": "NFTMetadataUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "PlatformFeeExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "RoyaltyExceededMaxFeeBps", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidQuantity", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidRecipient", "type": "error" }, { "inputs": [], "name": "SignatureMintInvalidSigner", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "startTime", "type": "uint256" }, { "internalType": "uint256", "name": "endTime", "type": "uint256" }, { "internalType": "uint256", "name": "actualTime", "type": "uint256" } ], "name": "SignatureMintInvalidTime", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "totalPrice", "type": "uint256" }, { "internalType": "uint256", "name": "fee", "type": "uint256" } ], "name": "TokenInvalidFeeExceedTotalPrice", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "TokenInvalidMsgValue", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "TokenInvalidNewOwner", "type": "error" }, { "inputs": [], "name": "TokenInvalidTokenId", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateAlreadyMigrated", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidProof", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "TokenMigrateInvalidTokenId", "type": "error" }, { "inputs": [], "name": "TokenMigrateUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "TokenNotApprovedOrOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" } ], "name": "TokenTransferRestricted", "type": "error" }, { "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": false, "internalType": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "newRoyaltyRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "newRoyaltyBps", "type": "uint256" } ], "name": "DefaultRoyalty", "type": "event" }, { "anonymous": false, "inputs": [], "name": "EIP712DomainChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "address", "name": "platformFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "flatFee", "type": "uint256" } ], "name": "FlatPlatformFeeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint8", "name": "version", "type": "uint8" } ], "name": "Initialized", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MetadataFrozen", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "MetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "prevOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnerUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "platformFeeRecipient", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "platformFeeBps", "type": "uint256" } ], "name": "PlatformFeeInfoUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "enum IPlatformFee.PlatformFeeType", "name": "feeType", "type": "uint8" } ], "name": "PlatformFeeTypeUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleRecipientUpdated", "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": true, "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": "mintedTo", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenIdMinted", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "uri", "type": "string" }, { "indexed": false, "internalType": "uint256", "name": "quantityMinted", "type": "uint256" } ], "name": "TokensMinted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "signer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "mintedTo", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenIdMinted", "type": "uint256" }, { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "indexed": false, "internalType": "struct ITokenERC1155.MintRequest", "name": "mintRequest", "type": "tuple" } ], "name": "TokensMintedWithSignature", "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": [ { "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": "address", "name": "account", "type": "address" }, { "internalType": "uint256", "name": "id", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "uint256[]", "name": "ids", "type": "uint256[]" }, { "internalType": "uint256[]", "name": "values", "type": "uint256[]" } ], "name": "burnBatch", "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": [], "name": "eip712Domain", "outputs": [ { "internalType": "bytes1", "name": "fields", "type": "bytes1" }, { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "version", "type": "string" }, { "internalType": "uint256", "name": "chainId", "type": "uint256" }, { "internalType": "address", "name": "verifyingContract", "type": "address" }, { "internalType": "bytes32", "name": "salt", "type": "bytes32" }, { "internalType": "uint256[]", "name": "extensions", "type": "uint256[]" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "freezeMetadata", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getDefaultRoyaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getFlatPlatformFeeInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPlatformFeeInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint16", "name": "", "type": "uint16" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getPlatformFeeType", "outputs": [ { "internalType": "enum IPlatformFee.PlatformFeeType", "name": "", "type": "uint8" } ], "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": [ { "internalType": "address", "name": "_defaultAdmin", "type": "address" }, { "internalType": "address", "name": "__originalContract", "type": "address" }, { "internalType": "bytes32", "name": "__ownershipMerkleRoot", "type": "bytes32" }, { "internalType": "string", "name": "_contractURI", "type": "string" } ], "name": "initialize", "outputs": [], "stateMutability": "nonpayable", "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": "_tokenOwner", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_proofMaxQuantity", "type": "uint256" }, { "internalType": "bytes32[]", "name": "_proof", "type": "bytes32[]" } ], "name": "migrate", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" }, { "internalType": "uint256", "name": "_amount", "type": "uint256" } ], "name": "mintTo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "internalType": "struct ITokenERC1155.MintRequest", "name": "_req", "type": "tuple" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "mintWithSignature", "outputs": [], "stateMutability": "payable", "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": [], "name": "platformFeeRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "primarySaleRecipient", "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": "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": "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": "address", "name": "_platformFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_flatFee", "type": "uint256" } ], "name": "setFlatPlatformFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "_merkleRoot", "type": "bytes32" } ], "name": "setMerkleRoot", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_newOwner", "type": "address" } ], "name": "setOwner", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_platformFeeRecipient", "type": "address" }, { "internalType": "uint256", "name": "_platformFeeBps", "type": "uint256" } ], "name": "setPlatformFeeInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "enum IPlatformFee.PlatformFeeType", "name": "_feeType", "type": "uint8" } ], "name": "setPlatformFeeType", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_saleRecipient", "type": "address" } ], "name": "setPrimarySaleRecipient", "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": "setTokenURI", "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": "", "type": "uint256" } ], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "uriFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "components": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "address", "name": "royaltyRecipient", "type": "address" }, { "internalType": "uint256", "name": "royaltyBps", "type": "uint256" }, { "internalType": "address", "name": "primarySaleRecipient", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "uint256", "name": "quantity", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "uint128", "name": "validityStartTimestamp", "type": "uint128" }, { "internalType": "uint128", "name": "validityEndTimestamp", "type": "uint128" }, { "internalType": "bytes32", "name": "uid", "type": "bytes32" } ], "internalType": "struct ITokenERC1155.MintRequest", "name": "_req", "type": "tuple" }, { "internalType": "bytes", "name": "_signature", "type": "bytes" } ], "name": "verify", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" }, { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b806200004f5750303b1580156200004f575060005460ff166001145b620000b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000db576000805461ff0019166101001790555b801562000122576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50615c7280620001336000396000f3fe6080604052600436106102695760003560e01c806391d148541161014b57806391d148541461060f57806392928e041461062f578063938e3d7b1461064f57806395d89b411461066f57806398a6e993146106845780639bcf7a1514610697578063a0a8e460146106b7578063a217fddf146106d3578063a22cb465146106e8578063ac9650d814610708578063b03f452814610735578063b17cd86f14610755578063b24f2d3914610794578063b6f10c79146107c3578063bd85b039146107e3578063ca15c87314610811578063cb2ef6f714610831578063d111515d14610854578063d45573f614610869578063d547741f1461089f578063e57553da146108bf578063e8a3d485146108e5578063e985e9c5146108fa578063eb13554f1461091a578063f242432a1461093b578063f28083c31461095b578063f5298aca1461097c57600080fd5b8062fdd58e1461026e57806301ffc9a7146102a157806306fdde03146102d1578063079fe40e146102f35780630e89341c1461032157806313af403514610341578063162094c4146103635780631e7ac48814610383578063248a9ca3146103a3578063274e4a1d146103c35780632a55205a146103de5780632eb2c2d61461040c5780632f2ff15d1461042c57806336568abe1461044c5780633b1475a71461046c5780634021938a146104835780634cc157df146104a35780634e1273f4146104e5578063600dd5ea146105125780636b20c454146105325780636f4f2837146105525780637cb64759146105725780637e54523c1461059257806384b0196e146105b25780638da5cb5b146105da5780639010d07c146105ef575b600080fd5b34801561027a57600080fd5b5061028e6102893660046145b9565b61099c565b6040519081526020015b60405180910390f35b3480156102ad57600080fd5b506102c16102bc3660046145fb565b610a38565b6040519015158152602001610298565b3480156102dd57600080fd5b506102e6610a7e565b6040516102989190614668565b3480156102ff57600080fd5b5061016a54610314906001600160a01b031681565b6040516102989190614688565b34801561032d57600080fd5b506102e661033c36600461469c565b610b0d565b34801561034d57600080fd5b5061036161035c3660046146b5565b610c50565b005b34801561036f57600080fd5b5061036161037e366004614797565b610cd9565b34801561038f57600080fd5b5061036161039e3660046145b9565b610d34565b3480156103af57600080fd5b5061028e6103be36600461469c565b610de1565b3480156103cf57600080fd5b50610161546102c19060ff1681565b3480156103ea57600080fd5b506103fe6103f93660046147dd565b610df6565b6040516102989291906147ff565b34801561041857600080fd5b506103616104273660046148b1565b610e33565b34801561043857600080fd5b5061036161044736600461495e565b610e7f565b34801561045857600080fd5b5061036161046736600461495e565b610ea0565b34801561047857600080fd5b5061028e6101695481565b34801561048f57600080fd5b5061036161049e3660046149d2565b610f1a565b3480156104af57600080fd5b506104c36104be36600461469c565b6110f1565b604080516001600160a01b03909316835261ffff909116602083015201610298565b3480156104f157600080fd5b50610505610500366004614a3b565b61120d565b6040516102989190614b39565b34801561051e57600080fd5b5061036161052d3660046145b9565b61132e565b34801561053e57600080fd5b5061036161054d366004614b4c565b6113cd565b34801561055e57600080fd5b5061036161056d3660046146b5565b611418565b34801561057e57600080fd5b5061036161058d36600461469c565b61146f565b34801561059e57600080fd5b506103616105ad3660046145b9565b6114a1565b3480156105be57600080fd5b506105c761150d565b6040516102989796959493929190614bc1565b3480156105e657600080fd5b506103146115ab565b3480156105fb57600080fd5b5061031461060a3660046147dd565b6115e3565b34801561061b57600080fd5b506102c161062a36600461495e565b611602565b34801561063b57600080fd5b5061036161064a366004614c31565b61162d565b34801561065b57600080fd5b5061036161066a366004614cdd565b611cb6565b34801561067b57600080fd5b506102e6611cd5565b610361610692366004614d1e565b611ce3565b3480156106a357600080fd5b506103616106b2366004614d8f565b611e69565b3480156106c357600080fd5b5060405160018152602001610298565b3480156106df57600080fd5b5061028e600081565b3480156106f457600080fd5b50610361610703366004614dd5565b611f24565b34801561071457600080fd5b50610728610723366004614e03565b611f2f565b6040516102989190614e38565b34801561074157600080fd5b50610361610750366004614e9c565b612018565b34801561076157600080fd5b50610775610770366004614d1e565b61208f565b6040805192151583526001600160a01b03909116602083015201610298565b3480156107a057600080fd5b5061016c5461016d546001600160a01b03909116906001600160801b03166104c3565b3480156107cf57600080fd5b506103616107de366004614f0c565b6120e6565b3480156107ef57600080fd5b5061028e6107fe36600461469c565b6101726020526000908152604090205481565b34801561081d57600080fd5b5061028e61082c36600461469c565b612150565b34801561083d57600080fd5b506c546f6b656e455243313135354d60981b61028e565b34801561086057600080fd5b50610361612167565b34801561087557600080fd5b5061016b5461016d546001600160a01b0390911690600160801b90046001600160801b03166104c3565b3480156108ab57600080fd5b506103616108ba36600461495e565b6121c5565b3480156108cb57600080fd5b506103fe61016b5461016e546001600160a01b0390911691565b3480156108f157600080fd5b506102e66121e1565b34801561090657600080fd5b506102c1610915366004614f29565b6121ef565b34801561092657600080fd5b5061016b54610314906001600160a01b031681565b34801561094757600080fd5b50610361610956366004614f57565b61221e565b34801561096757600080fd5b5061016f5460ff166040516102989190614fd5565b34801561098857600080fd5b50610361610997366004614ffd565b612263565b60006001600160a01b038316610a0c5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815261012f602090815260408083206001600160a01b03861684529091529020545b92915050565b6000610a43826122ae565b80610a5e57506001600160e01b03198216636cdb3d1360e11b145b80610a3257506001600160e01b0319821663152a902d60e11b1492915050565b6101668054610a8c90615032565b80601f0160208091040260200160405190810160405280929190818152602001828054610ab890615032565b8015610b055780601f10610ada57610100808354040283529160200191610b05565b820191906000526020600020905b815481529060010190602001808311610ae857829003601f168201915b505050505081565b60606101745482108015610b3a57506000828152610162602052604090208054610b3690615032565b1590505b15610bb157610164546040516303a24d0760e21b8152600481018490526001600160a01b0390911690630e89341c90602401600060405180830381865afa158015610b89573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052610a32919081019061506c565b6000828152610162602052604090208054610bcb90615032565b80601f0160208091040260200160405190810160405280929190818152602001828054610bf790615032565b8015610c445780601f10610c1957610100808354040283529160200191610c44565b820191906000526020600020905b815481529060010190602001808311610c2757829003601f168201915b50505050509050919050565b6000610c5b816122ee565b610c66600083611602565b610c8557816040516331925ddb60e01b8152600401610a039190614688565b61016880546001600160a01b038481166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a3505050565b610ce16122f8565b610cfe576040516318c4c13760e21b815260040160405180910390fd5b6101615460ff1615610d26576040516393dafeb760e01b815260048101839052602401610a03565b610d308282612312565b5050565b6000610d3f816122ee565b612710821115610d685761271082604051631c1a1fe960e11b8152600401610a039291906150e3565b61016d80546001600160801b03166001600160401b038416600160801b0217905561016b80546001600160a01b0319166001600160a01b0385169081179091556040518381527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a2505050565b600090815260cb602052604090206001015490565b600080600080610e05866110f1565b90945084925061ffff169050612710610e1e8287615107565b610e28919061511e565b925050509250929050565b6001600160a01b038516331480610e4f5750610e4f85336121ef565b610e6b5760405162461bcd60e51b8152600401610a0390615140565b610e78858585858561237e565b5050505050565b610e8882610de1565b610e91816122ee565b610e9b8383612526565b505050565b6001600160a01b0381163314610f105760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b6064820152608401610a03565b610d308282612548565b61016460009054906101000a90046001600160a01b03166001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015610f6e573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610f92919061518e565b8410610fb457604051634e369fbd60e11b815260048101859052602401610a03565b604080516001600160601b0319606088901b16602080830191909152603480830188905283518084039091018152605490920183528151918101919091206000818152610165909252919020548411611024578585604051632167f45b60e01b8152600401610a039291906147ff565b61102c61256a565b156110af57600061108884846110426101635490565b60408051602081018c90526001600160601b031960608e901b1691810191909152605481018a90526074016040516020818303038152906040528051906020012061258a565b509050806110ad578686604051630b860e6360e11b8152600401610a039291906147ff565b505b600081815261016560205260408120546110c990866151a7565b60008381526101656020526040902086905590506110e8878783612618565b50505050505050565b600081815261017360209081526040808320815180830190925280546001600160a01b0316825260010154918101919091526101745482919084108015611140575080516001600160a01b0316155b801561114e57506020810151155b156111ca5761016454604051634cc157df60e01b8152600481018690526001600160a01b0390911690634cc157df906024016040805180830381865afa15801561119c573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111c091906151ba565b9250925050915091565b80516001600160a01b0316156111e657805160208201516111c0565b61016c5461016d546001600160a01b03909116906001600160801b03169250925050915091565b606081518351146112725760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610a03565b600083516001600160401b0381111561128d5761128d6146d2565b6040519080825280602002602001820160405280156112b6578160200160208202803683370190505b50905060005b8451811015611326576113018582815181106112da576112da6151f0565b60200260200101518583815181106112f4576112f46151f0565b602002602001015161099c565b828281518110611313576113136151f0565b60209081029190910101526001016112bc565b509392505050565b6000611339816122ee565b6127108211156113625761271082604051630a4930ad60e31b8152600401610a039291906150e3565b61016c80546001600160a01b0319166001600160a01b03851690811790915561016d80546001600160801b0319166001600160801b0385161790556040518381527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb90602001610dd4565b6001600160a01b03831633148015906113ed57506113eb83336121ef565b155b1561140d5733604051635e34d7cb60e11b8152600401610a039190614688565b610e9b838383612633565b6000611423816122ee565b61016a80546001600160a01b0319166001600160a01b0384169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a25050565b6114776127ca565b611494576040516327e8d25560e01b815260040160405180910390fd5b61149e8161016355565b50565b60006114ac816122ee565b61016e82905561016b80546001600160a01b0319166001600160a01b0385161790556040517ff8086cee80709bd44c82f89dbca54115ebd05e840a88ab81df9cf5be9754eb639061150090859085906147ff565b60405180910390a1505050565b6000606080600080600060606001546000801b14801561152d5750600254155b6115715760405162461bcd60e51b81526020600482015260156024820152741152540dcc4c8e88155b9a5b9a5d1a585b1a5e9959605a1b6044820152606401610a03565b6115796127e4565b611581612876565b60408051600080825260208201909252600f60f81b9b939a50919850469750309650945092509050565b610168546000906115c69082906001600160a01b0316611602565b6115d05750600090565b610168546001600160a01b03165b905090565b600082815260fd602052604081206115fb9083612885565b9392505050565b600091825260cb602090815260408084206001600160a01b0393909316845291905290205460ff1690565b600054610100900460ff161580801561164d5750600054600160ff909116105b8061166e575061165c30612891565b15801561166e575060005460ff166001145b6116d15760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610a03565b6000805460ff1916600117905580156116f4576000805461ff0019166101001790555b6116fc6128a0565b6117436040518060400160405280600c81526020016b546f6b656e4552433131353560a01b815250604051806040016040528060018152602001603160f81b8152506128d1565b61175b60405180602001604052806000815250612902565b836001600160a01b03166306fdde036040518163ffffffff1660e01b8152600401600060405180830381865afa158015611799573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526117c1919081019061506c565b610166906117cf9082615263565b50836001600160a01b03166395d89b416040518163ffffffff1660e01b8152600401600060405180830381865afa15801561180e573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f19168201604052611836919081019061506c565b610167906118449082615263565b5061184f8361016355565b61016480546001600160a01b0319166001600160a01b0386161790556101706118788382615263565b50836001600160a01b031663b24f2d396040518163ffffffff1660e01b81526004016040805180830381865afa1580156118b6573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118da91906151ba565b61016d80546001600160801b03191661ffff90921691909117905561016c80546001600160a01b039283166001600160a01b031990911617905560408051636a2ab9fb60e11b815281519287169263d45573f6926004808401939192918290030181865afa158015611950573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061197491906151ba565b61016d80546001600160801b031661ffff92909216600160801b0291909117905561016b80546001600160a01b0319166001600160a01b03928316179055604080516303cff20760e11b815290519186169163079fe40e916004808201926020929091908290030181865afa1580156119f1573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a15919061531c565b61016a60006101000a8154816001600160a01b0302191690836001600160a01b03160217905550836001600160a01b0316633b1475a76040518163ffffffff1660e01b8152600401602060405180830381865afa158015611a7a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611a9e919061518e565b61016981905550836001600160a01b031663f28083c36040518163ffffffff1660e01b8152600401602060405180830381865afa925050508015611aff575060408051601f3d908101601f19168201909252611afc91810190615339565b60015b15611baa576001816001811115611b1857611b18614fbf565b03611b8457846001600160a01b031663e57553da6040518163ffffffff1660e01b81526004016040805180830381865afa158015611b5a573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611b7e9190615356565b61016e55505b61016f805482919060ff191660018381811115611ba357611ba3614fbf565b0217905550505b610169546101745561016880546001600160a01b0319166001600160a01b038716179055611bd9600086612932565b611bf1600080516020615c1d83398151915286612932565b611c09600080516020615bb683398151915286612932565b611c21600080516020615bb68339815191528061293c565b611c3a600080516020615b768339815191526000612932565b611c52600080516020615bd683398151915286612932565b611c6a600080516020615bd68339815191528061293c565b8015610e78576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15050505050565b6000611cc1816122ee565b610170611ccf838583615384565b50505050565b6101678054610a8c90615032565b611ceb61298f565b6000611cf88484846129e8565b90506000611d0960208601866146b5565b90506000600019866080013503611d3b57506101698054906001906000611d30838561543d565b90915550611d699050565b61016954866080013510611d62576040516344cc8bb960e11b815260040160405180910390fd5b5060808501355b6000611d7b60408801602089016146b5565b6001600160a01b031614611deb576040518060400160405280876020016020810190611da791906146b5565b6001600160a01b0390811682526040898101356020938401526000858152610173845220835181546001600160a01b03191692169190911781559101516001909101555b611e0782611dfc60a0890189615450565b848a60c00135612b3b565b611e1086612c17565b80826001600160a01b0316846001600160a01b03167f0b35afaf155daeef41cc46df86f058df2855c57d30ab134647a6b587e7cc8c3989604051611e54919061551b565b60405180910390a4505050610e9b6001603555565b6000611e74816122ee565b612710821115611e9d5761271082604051630a4930ad60e31b8152600401610a039291906150e3565b6040805180820182526001600160a01b03858116808352602080840187815260008a81526101738352869020945185546001600160a01b031916941693909317845591516001909301929092559151848152909186917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d910160405180910390a350505050565b610d30338383612dfa565b6060816001600160401b03811115611f4957611f496146d2565b604051908082528060200260200182016040528015611f7c57816020015b6060815260200190600190039081611f675790505b50905060005b8281101561201157611fec30858584818110611fa057611fa06151f0565b9050602002810190611fb29190615450565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612edb92505050565b828281518110611ffe57611ffe6151f0565b6020908102919091010152600101611f82565b5092915050565b600080516020615c1d833981519152612030816122ee565b6000600019860361205c57506101698054906001906000612051838561543d565b909155506120829050565b61016954861061207f576040516344cc8bb960e11b815260040160405180910390fd5b50845b6110e88786868487612b3b565b600080600061209f868686612f00565b6101608701356000908152610171602052604090205490915060ff161580156120db57506120db600080516020615c1d83398151915282611602565b969095509350505050565b60006120f1816122ee565b61016f805483919060ff19166001838181111561211057612110614fbf565b02179055507fd246da9440709ce0dd3f4fd669abc85ada012ab9774b8ecdcc5059ba1486b9c1826040516121449190614fd5565b60405180910390a15050565b600081815260fd60205260408120610a3290612f64565b61216f6122f8565b61218c576040516318c4c13760e21b815260040160405180910390fd5b610161805460ff191660011790556040517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d716490600090a1565b6121ce82610de1565b6121d7816122ee565b610e9b8383612548565b6101708054610a8c90615032565b6001600160a01b0391821660009081526101306020908152604080832093909416825291909152205460ff1690565b6001600160a01b03851633148061223a575061223a85336121ef565b6122565760405162461bcd60e51b8152600401610a0390615140565b610e788585858585612f6e565b6001600160a01b0383163314801590612283575061228183336121ef565b155b156122a35733604051635e34d7cb60e11b8152600401610a039190614688565b610e9b8383836130a6565b60006001600160e01b03198216636cdb3d1360e11b14806122df57506001600160e01b031982166303a24d0760e21b145b80610a325750610a32826131b5565b61149e81336131da565b60006115de600080516020615bb683398151915233611602565b80516000036123345760405163a094836b60e01b815260040160405180910390fd5b60008281526101626020526040902061234d8282615263565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001612144565b815183511461239f5760405162461bcd60e51b8152600401610a0390615636565b6001600160a01b0384166123c55760405162461bcd60e51b8152600401610a039061567e565b336123d4818787878787613233565b60005b84518110156124b85760008582815181106123f4576123f46151f0565b602002602001015190506000858381518110612412576124126151f0565b602090810291909101810151600084815261012f835260408082206001600160a01b038e1683529093529190912054909150818110156124645760405162461bcd60e51b8152600401610a03906156c3565b600083815261012f602090815260408083206001600160a01b038e8116855292528083208585039055908b168252812080548492906124a490849061543d565b9091555050600190930192506123d7915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb878760405161250892919061570d565b60405180910390a461251e8187878787876133e1565b505050505050565b6125308282613543565b600082815260fd60205260409020610e9b90826135c9565b61255282826135de565b600082815260fd60205260409020610e9b9082613645565b6000612584600080516020615bd683398151915233611602565b15905090565b6000808281805b87811015612606576125a4600283615107565b915060008989838181106125ba576125ba6151f0565b9050602002013590508084116125df57600084815260208290526040902093506125fd565b600081815260208590526040902093506125fa60018461543d565b92505b50600101612591565b50908514925090505b94509492505050565b610e9b8383836040518060200160405280600081525061365a565b6001600160a01b0383166126595760405162461bcd60e51b8152600401610a039061573b565b805182511461267a5760405162461bcd60e51b8152600401610a0390615636565b600033905061269d81856000868660405180602001604052806000815250613233565b60005b835181101561275d5760008482815181106126bd576126bd6151f0565b6020026020010151905060008483815181106126db576126db6151f0565b602090810291909101810151600084815261012f835260408082206001600160a01b038c16835290935291909120549091508181101561272d5760405162461bcd60e51b8152600401610a039061577e565b600092835261012f602090815260408085206001600160a01b038b168652909152909220910390556001016126a0565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb86866040516127ae92919061570d565b60405180910390a4604080516020810190915260009052611ccf565b60006115de600080516020615bd683398151915233611602565b6060600380546127f390615032565b80601f016020809104026020016040519081016040528092919081815260200182805461281f90615032565b801561286c5780601f106128415761010080835404028352916020019161286c565b820191906000526020600020905b81548152906001019060200180831161284f57829003601f168201915b5050505050905090565b6060600480546127f390615032565b60006115fb8383613773565b6001600160a01b03163b151590565b600054610100900460ff166128c75760405162461bcd60e51b8152600401610a03906157c2565b6128cf61379d565b565b600054610100900460ff166128f85760405162461bcd60e51b8152600401610a03906157c2565b610d3082826137c4565b600054610100900460ff166129295760405162461bcd60e51b8152600401610a03906157c2565b61149e81613813565b610d308282612526565b600061294783610de1565b600084815260cb6020526040808220600101859055519192508391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6002603554036129e15760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c006044820152606401610a03565b6002603555565b60008060006129f886868661208f565b9150915081612a1a576040516313caa65360e01b815260040160405180910390fd5b42612a2d6101408801610120890161580d565b6001600160801b03161180612a5b5750612a4f6101608701610140880161580d565b6001600160801b031642115b15612ab657612a726101408701610120880161580d565b612a846101608801610140890161580d565b604051634da1c72f60e11b81526001600160801b03928316600482015291166024820152426044820152606401610a03565b6000612ac560208801886146b5565b6001600160a01b031603612aec576040516347587b6b60e11b815260040160405180910390fd5b8560c00135600003612b1157604051630f66273360e21b815260040160405180910390fd5b610160860135600090815261017160205260409020805460ff191660011790559150509392505050565b6000828152610162602052604090208054612b5590615032565b9050600003612b9e57612b9e8285858080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061231292505050565b612bb98583836040518060200160405280600081525061365a565b81856001600160a01b03167f04133ee4cb027e1c5fce5e3481289278a93bd16a65a3b65b428a6d239e706bfb610162600086815260200190815260200160002084604051612c08929190615828565b60405180910390a35050505050565b8060e00135600003612c4757341561149e5760003460405163063d229160e01b8152600401610a039291906150e3565b6000612c5b60c083013560e0840135615107565b90506000600161016f5460ff166001811115612c7957612c79614fbf565b14612caf5761016d5461271090612ca090600160801b90046001600160801b031684615107565b612caa919061511e565b612cb4565b61016e545b905081811115612cdb57818160405163cc87a0e160e01b8152600401610a039291906150e3565b73eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee612d02610120850161010086016146b5565b6001600160a01b031603612d3957813414612d3457813460405163063d229160e01b8152600401610a039291906150e3565b612d5d565b3415612d5d5760003460405163063d229160e01b8152600401610a039291906150e3565b600080612d7060808601606087016146b5565b6001600160a01b031614612d9357612d8e60808501606086016146b5565b612da1565b61016a546001600160a01b03165b9050612dcd612db8610120860161010087016146b5565b61016b5433906001600160a01b031685613843565b611ccf612de2610120860161010087016146b5565b3383612dee86886151a7565b613843565b6001603555565b816001600160a01b0316836001600160a01b031603612e6d5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610a03565b6001600160a01b0383811660008181526101306020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b60606115fb8383604051806060016040528060278152602001615bf660279139613889565b6000612f5c83838080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612f569250612f4a9150889050613901565b80519060200120613a8d565b90613aba565b949350505050565b6000610a32825490565b6001600160a01b038416612f945760405162461bcd60e51b8152600401610a039061567e565b336000612fa085613ad6565b90506000612fad85613ad6565b9050612fbd838989858589613233565b600086815261012f602090815260408083206001600160a01b038c168452909152902054858110156130015760405162461bcd60e51b8152600401610a03906156c3565b600087815261012f602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061304190849061543d565b92505081905550876001600160a01b0316896001600160a01b0316856001600160a01b0316600080516020615b968339815191528a8a6040516130859291906150e3565b60405180910390a461309b848a8a8a8a8a613b21565b505050505050505050565b6001600160a01b0383166130cc5760405162461bcd60e51b8152600401610a039061573b565b3360006130d884613ad6565b905060006130e584613ad6565b905061310583876000858560405180602001604052806000815250613233565b600085815261012f602090815260408083206001600160a01b038a168452909152902054848110156131495760405162461bcd60e51b8152600401610a039061577e565b600086815261012f602090815260408083206001600160a01b03808c1680865291909352818420898603905590519091871690600080516020615b9683398151915290613199908b908b906150e3565b60405180910390a46040805160208101909152600090526110e8565b60006001600160e01b03198216635a05180f60e01b1480610a325750610a3282613be3565b6131e48282611602565b610d30576131f181613c18565b6131fc836020613c2a565b60405160200161320d9291906158bf565b60408051601f198184030181529082905262461bcd60e51b8252610a0391600401614668565b61324c600080516020615b768339815191526000611602565b15801561326157506001600160a01b03851615155b801561327557506001600160a01b03841615155b156132e557613292600080516020615b7683398151915286611602565b1580156132b457506132b2600080516020615b7683398151915285611602565b155b156132e5576040516358443ecd60e01b81526001600160a01b03808716600483015285166024820152604401610a03565b6001600160a01b0385166133645760005b835181101561336257828181518110613311576133116151f0565b60200260200101516101726000868481518110613330576133306151f0565b602002602001015181526020019081526020016000206000828254613355919061543d565b90915550506001016132f6565b505b6001600160a01b03841661251e5760005b83518110156110e857828181518110613390576133906151f0565b602002602001015161017260008684815181106133af576133af6151f0565b6020026020010151815260200190815260200160002060008282546133d491906151a7565b9091555050600101613375565b6133f3846001600160a01b0316612891565b1561251e5760405163bc197c8160e01b81526001600160a01b0385169063bc197c819061342c908990899088908890889060040161592e565b6020604051808303816000875af1925050508015613467575060408051601f3d908101601f191682019092526134649181019061598c565b60015b613513576134736159a9565b806308c379a0036134ac57506134876159c5565b8061349257506134ae565b8060405162461bcd60e51b8152600401610a039190614668565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610a03565b6001600160e01b0319811663bc197c8160e01b146110e85760405162461bcd60e51b8152600401610a0390615a4e565b61354d8282611602565b610d3057600082815260cb602090815260408083206001600160a01b03851684529091529020805460ff191660011790556135853390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b60006115fb836001600160a01b038416613dc5565b6135e88282611602565b15610d3057600082815260cb602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b60006115fb836001600160a01b038416613e14565b6001600160a01b0384166136ba5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610a03565b3360006136c685613ad6565b905060006136d385613ad6565b90506136e483600089858589613233565b600086815261012f602090815260408083206001600160a01b038b1684529091528120805487929061371790849061543d565b92505081905550866001600160a01b031660006001600160a01b0316846001600160a01b0316600080516020615b96833981519152898960405161375c9291906150e3565b60405180910390a46110e883600089898989613b21565b600082600001828154811061378a5761378a6151f0565b9060005260206000200154905092915050565b600054610100900460ff16612df35760405162461bcd60e51b8152600401610a03906157c2565b600054610100900460ff166137eb5760405162461bcd60e51b8152600401610a03906157c2565b60036137f78382615263565b5060046138048282615263565b50506000600181905560025550565b600054610100900460ff1661383a5760405162461bcd60e51b8152600401610a03906157c2565b61149e81613f07565b8015611ccf5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161387d576138788282613f14565b611ccf565b611ccf84848484613f8c565b6060600080856001600160a01b0316856040516138a69190615a96565b600060405180830381855af49150503d80600081146138e1576040519150601f19603f3d011682016040523d82523d6000602084013e6138e6565b606091505b50915091506138f786838387613fdf565b9695505050505050565b60607fc7a95ef88f83fa833ccfce325157b7111633b181b6a27181b86415d8d501134d61393160208401846146b5565b61394160408501602086016146b5565b604085013561395660808701606088016146b5565b608087013561396860a0890189615450565b604051613976929190615ab2565b6040805191829003822060208301989098526001600160a01b03968716908201529385166060850152608084019290925290921660a082015260c081019190915260e08101919091526101000160408051601f1981840301815291905260c083013560e08401356139ef610120860161010087016146b5565b613a016101408701610120880161580d565b613a136101608801610140890161580d565b6040805160208101969096528501939093526001600160a01b0390911660608401526001600160801b0390811660808401521660a082015261016084013560c082015260e00160408051601f1981840301815290829052613a779291602001615ac2565b6040516020818303038152906040529050919050565b6000610a32613a9a614056565b8360405161190160f01b8152600281019290925260228201526042902090565b6000806000613ac98585614060565b91509150611326816140a5565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110613b1057613b106151f0565b602090810291909101015292915050565b613b33846001600160a01b0316612891565b1561251e5760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e6190613b6c9089908990889088908890600401615af1565b6020604051808303816000875af1925050508015613ba7575060408051601f3d908101601f19168201909252613ba49181019061598c565b60015b613bb3576134736159a9565b6001600160e01b0319811663f23a6e6160e01b146110e85760405162461bcd60e51b8152600401610a0390615a4e565b60006001600160e01b03198216637965db0b60e01b1480610a3257506301ffc9a760e01b6001600160e01b0319831614610a32565b6060610a326001600160a01b03831660145b60606000613c39836002615107565b613c4490600261543d565b6001600160401b03811115613c5b57613c5b6146d2565b6040519080825280601f01601f191660200182016040528015613c85576020820181803683370190505b509050600360fc1b81600081518110613ca057613ca06151f0565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613ccf57613ccf6151f0565b60200101906001600160f81b031916908160001a9053506000613cf3846002615107565b613cfe90600161543d565b90505b6001811115613d76576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613d3257613d326151f0565b1a60f81b828281518110613d4857613d486151f0565b60200101906001600160f81b031916908160001a90535060049490941c93613d6f81615b2b565b9050613d01565b5083156115fb5760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610a03565b6000818152600183016020526040812054613e0c57508154600181810184556000848152602080822090930184905584548482528286019093526040902091909155610a32565b506000610a32565b60008181526001830160205260408120548015613efd576000613e386001836151a7565b8554909150600090613e4c906001906151a7565b9050818114613eb1576000866000018281548110613e6c57613e6c6151f0565b9060005260206000200154905080876000018481548110613e8f57613e8f6151f0565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080613ec257613ec2615b42565b600190038181906000526020600020016000905590558560010160008681526020019081526020016000206000905560019350505050610a32565b6000915050610a32565b610131610d308282615263565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613f61576040519150601f19603f3d011682016040523d82523d6000602084013e613f66565b606091505b5050905080610e9b578282604051635fdc4ec160e11b8152600401610a039291906147ff565b816001600160a01b0316836001600160a01b03160315611ccf57306001600160a01b03841603613fca576138786001600160a01b03851683836141ea565b611ccf6001600160a01b038516848484614240565b6060831561404c57825160000361404557613ff985612891565b6140455760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610a03565b5081612f5c565b612f5c8383614278565b60006115de614288565b60008082516041036140965760208301516040840151606085015160001a61408a878285856142fc565b9450945050505061409e565b506000905060025b9250929050565b60008160048111156140b9576140b9614fbf565b036140c15750565b60018160048111156140d5576140d5614fbf565b0361411d5760405162461bcd60e51b815260206004820152601860248201527745434453413a20696e76616c6964207369676e617475726560401b6044820152606401610a03565b600281600481111561413157614131614fbf565b0361417e5760405162461bcd60e51b815260206004820152601f60248201527f45434453413a20696e76616c6964207369676e6174757265206c656e677468006044820152606401610a03565b600381600481111561419257614192614fbf565b0361149e5760405162461bcd60e51b815260206004820152602260248201527f45434453413a20696e76616c6964207369676e6174757265202773272076616c604482015261756560f01b6064820152608401610a03565b610e9b8363a9059cbb60e01b84846040516024016142099291906147ff565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526143b3565b6040516001600160a01b0380851660248301528316604482015260648101829052611ccf9085906323b872dd60e01b90608401614209565b8151156134925781518083602001fd5b60007f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f6142b3614485565b6142bb6144de565b60408051602081019490945283019190915260608201524660808201523060a082015260c00160405160208183030381529060405280519060200120905090565b6000806fa2a8918ca85bafe22016d0b997e4df60600160ff1b03831115614329575060009050600361260f565b6040805160008082526020820180845289905260ff881692820192909252606081018690526080810185905260019060a0016020604051602081039080840390855afa15801561437d573d6000803e3d6000fd5b5050604051601f1901519150506001600160a01b0381166143a65760006001925092505061260f565b9660009650945050505050565b6000614408826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661450f9092919063ffffffff16565b805190915015610e9b57808060200190518101906144269190615b58565b610e9b5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610a03565b6000806144906127e4565b8051909150156144a7578051602090910120919050565b60015480156144b65792915050565b7fc5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a4709250505090565b6000806144e9612876565b805190915015614500578051602090910120919050565b60025480156144b65792915050565b6060612f5c848460008585600080866001600160a01b031685876040516145369190615a96565b60006040518083038185875af1925050503d8060008114614573576040519150601f19603f3d011682016040523d82523d6000602084013e614578565b606091505b509150915061458987838387613fdf565b979650505050505050565b6001600160a01b038116811461149e57600080fd5b80356145b481614594565b919050565b600080604083850312156145cc57600080fd5b82356145d781614594565b946020939093013593505050565b6001600160e01b03198116811461149e57600080fd5b60006020828403121561460d57600080fd5b81356115fb816145e5565b60005b8381101561463357818101518382015260200161461b565b50506000910152565b60008151808452614654816020860160208601614618565b601f01601f19169290920160200192915050565b6020815260006115fb602083018461463c565b6001600160a01b03169052565b6001600160a01b0391909116815260200190565b6000602082840312156146ae57600080fd5b5035919050565b6000602082840312156146c757600080fd5b81356115fb81614594565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b038111828210171561470d5761470d6146d2565b6040525050565b60006001600160401b0382111561472d5761472d6146d2565b50601f01601f191660200190565b600082601f83011261474c57600080fd5b813561475781614714565b60405161476482826146e8565b82815285602084870101111561477957600080fd5b82602086016020830137600092810160200192909252509392505050565b600080604083850312156147aa57600080fd5b8235915060208301356001600160401b038111156147c757600080fd5b6147d38582860161473b565b9150509250929050565b600080604083850312156147f057600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b60006001600160401b03821115614831576148316146d2565b5060051b60200190565b600082601f83011261484c57600080fd5b8135602061485982614818565b60405161486682826146e8565b80915083815260208101915060208460051b87010193508684111561488a57600080fd5b602086015b848110156148a6578035835291830191830161488f565b509695505050505050565b600080600080600060a086880312156148c957600080fd5b85356148d481614594565b945060208601356148e481614594565b935060408601356001600160401b038082111561490057600080fd5b61490c89838a0161483b565b9450606088013591508082111561492257600080fd5b61492e89838a0161483b565b9350608088013591508082111561494457600080fd5b506149518882890161473b565b9150509295509295909350565b6000806040838503121561497157600080fd5b82359150602083013561498381614594565b809150509250929050565b60008083601f8401126149a057600080fd5b5081356001600160401b038111156149b757600080fd5b6020830191508360208260051b850101111561409e57600080fd5b6000806000806000608086880312156149ea57600080fd5b85356149f581614594565b9450602086013593506040860135925060608601356001600160401b03811115614a1e57600080fd5b614a2a8882890161498e565b969995985093965092949392505050565b60008060408385031215614a4e57600080fd5b82356001600160401b0380821115614a6557600080fd5b818501915085601f830112614a7957600080fd5b81356020614a8682614818565b604051614a9382826146e8565b83815260059390931b8501820192828101915089841115614ab357600080fd5b948201945b83861015614ada578535614acb81614594565b82529482019490820190614ab8565b96505086013592505080821115614af057600080fd5b506147d38582860161483b565b60008151808452602080850194506020840160005b83811015614b2e57815187529582019590820190600101614b12565b509495945050505050565b6020815260006115fb6020830184614afd565b600080600060608486031215614b6157600080fd5b8335614b6c81614594565b925060208401356001600160401b0380821115614b8857600080fd5b614b948783880161483b565b93506040860135915080821115614baa57600080fd5b50614bb78682870161483b565b9150509250925092565b60ff60f81b8816815260e060208201526000614be060e083018961463c565b8281036040840152614bf2818961463c565b606084018890526001600160a01b038716608085015260a0840186905283810360c08501529050614c238185614afd565b9a9950505050505050505050565b60008060008060808587031215614c4757600080fd5b8435614c5281614594565b93506020850135614c6281614594565b92506040850135915060608501356001600160401b03811115614c8457600080fd5b614c908782880161473b565b91505092959194509250565b60008083601f840112614cae57600080fd5b5081356001600160401b03811115614cc557600080fd5b60208301915083602082850101111561409e57600080fd5b60008060208385031215614cf057600080fd5b82356001600160401b03811115614d0657600080fd5b614d1285828601614c9c565b90969095509350505050565b600080600060408486031215614d3357600080fd5b83356001600160401b0380821115614d4a57600080fd5b908501906101808288031215614d5f57600080fd5b90935060208501359080821115614d7557600080fd5b50614d8286828701614c9c565b9497909650939450505050565b600080600060608486031215614da457600080fd5b833592506020840135614db681614594565b929592945050506040919091013590565b801515811461149e57600080fd5b60008060408385031215614de857600080fd5b8235614df381614594565b9150602083013561498381614dc7565b60008060208385031215614e1657600080fd5b82356001600160401b03811115614e2c57600080fd5b614d128582860161498e565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614e8f57603f19888603018452614e7d85835161463c565b94509285019290850190600101614e61565b5092979650505050505050565b600080600080600060808688031215614eb457600080fd5b8535614ebf81614594565b94506020860135935060408601356001600160401b03811115614ee157600080fd5b614eed88828901614c9c565b96999598509660600135949350505050565b6002811061149e57600080fd5b600060208284031215614f1e57600080fd5b81356115fb81614eff565b60008060408385031215614f3c57600080fd5b8235614f4781614594565b9150602083013561498381614594565b600080600080600060a08688031215614f6f57600080fd5b8535614f7a81614594565b94506020860135614f8a81614594565b9350604086013592506060860135915060808601356001600160401b03811115614fb357600080fd5b6149518882890161473b565b634e487b7160e01b600052602160045260246000fd5b6020810160028310614ff757634e487b7160e01b600052602160045260246000fd5b91905290565b60008060006060848603121561501257600080fd5b833561501d81614594565b95602085013595506040909401359392505050565b600181811c9082168061504657607f821691505b60208210810361506657634e487b7160e01b600052602260045260246000fd5b50919050565b60006020828403121561507e57600080fd5b81516001600160401b0381111561509457600080fd5b8201601f810184136150a557600080fd5b80516150b081614714565b6040516150bd82826146e8565b8281528660208486010111156150d257600080fd5b6138f7836020830160208701614618565b918252602082015260400190565b634e487b7160e01b600052601160045260246000fd5b8082028115828204841417610a3257610a326150f1565b60008261513b57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b6000602082840312156151a057600080fd5b5051919050565b81810381811115610a3257610a326150f1565b600080604083850312156151cd57600080fd5b82516151d881614594565b602084015190925061ffff8116811461498357600080fd5b634e487b7160e01b600052603260045260246000fd5b601f821115610e9b576000816000526020600020601f850160051c8101602086101561522f5750805b601f850160051c820191505b8181101561251e5782815560010161523b565b600019600383901b1c191660019190911b1790565b81516001600160401b0381111561527c5761527c6146d2565b6152908161528a8454615032565b84615206565b602080601f8311600181146152bf57600084156152ad5750858301515b6152b7858261524e565b86555061251e565b600085815260208120601f198616915b828110156152ee578886015182559484019460019091019084016152cf565b508582101561530c5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60006020828403121561532e57600080fd5b81516115fb81614594565b60006020828403121561534b57600080fd5b81516115fb81614eff565b6000806040838503121561536957600080fd5b825161537481614594565b6020939093015192949293505050565b6001600160401b0383111561539b5761539b6146d2565b6153af836153a98354615032565b83615206565b6000601f8411600181146153dd57600085156153cb5750838201355b6153d5868261524e565b845550610e78565b600083815260209020601f19861690835b8281101561540e57868501358255602094850194600190920191016153ee565b508682101561542b5760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b80820180821115610a3257610a326150f1565b6000808335601e1984360301811261546757600080fd5b8301803591506001600160401b0382111561548157600080fd5b60200191503681900382131561409e57600080fd5b6000808335601e198436030181126154ad57600080fd5b83016020810192503590506001600160401b038111156154cc57600080fd5b80360382131561409e57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b80356001600160801b03811681146145b457600080fd5b602081526155346020820161552f846145a9565b61467b565b6000615542602084016145a9565b61554f604084018261467b565b5060408301356060830152615566606084016145a9565b615573608084018261467b565b50608083013560a083015261558b60a0840184615496565b6101808060c08601526155a36101a0860183856154db565b925060c086013560e0860152610100915060e0860135828601526155c88287016145a9565b91506101206155d98187018461467b565b6155e4818801615504565b9250506101406155fe818701846001600160801b03169052565b615609818801615504565b925050610160615623818701846001600160801b03169052565b9590950135939094019290925250919050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006157206040830185614afd565b82810360208401526157328185614afd565b95945050505050565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60006020828403121561581f57600080fd5b6115fb82615504565b60408152600080845461583a81615032565b806040860152606060018084166000811461585c5760018114615878576158aa565b60ff1985166060890152606084151560051b89010195506158aa565b8960005260208060002060005b868110156158a05781548b8201870152908401908201615885565b8a01606001975050505b50505050506020929092019290925292915050565b76020b1b1b2b9b9a1b7b73a3937b61d1030b1b1b7bab73a1604d1b8152600083516158f1816017850160208801614618565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351615922816028840160208801614618565b01602801949350505050565b6001600160a01b0386811682528516602082015260a06040820181905260009061595a90830186614afd565b828103606084015261596c8186614afd565b90508281036080840152615980818561463c565b98975050505050505050565b60006020828403121561599e57600080fd5b81516115fb816145e5565b600060033d11156159c25760046000803e5060005160e01c5b90565b600060443d10156159d35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615a0257505050505090565b8285019150815181811115615a1a5750505050505090565b843d8701016020828501011115615a345750505050505090565b615a43602082860101876146e8565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60008251615aa8818460208701614618565b9190910192915050565b8183823760009101908152919050565b60008351615ad4818460208801614618565b835190830190615ae8818360208801614618565b01949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906145899083018461463c565b600081615b3a57615b3a6150f1565b506000190190565b634e487b7160e01b600052603160045260246000fd5b600060208284031215615b6a57600080fd5b81516115fb81614dc756fe8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6cc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f626bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f809d7b1cf62e8376e2ef102e20d4e487b829ff44d58ddb1f416ee01cf2ed26829e416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c65649f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a26469706673582212207731de14f3b08d59fc23913f15dd4bbe26771adf6e226b29edf5ae4a3f2ea00764736f6c63430008170033