[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApprovalToCurrentOwner", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "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": "uint256", "name": "_fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "_toTokenId", "type": "uint256" } ], "name": "BatchMetadataUpdate", "type": "event" }, { "anonymous": false, "inputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "indexed": false, "internalType": "struct IClaimCondition.ClaimCondition[]", "name": "claimConditions", "type": "tuple[]" }, { "indexed": false, "internalType": "bool", "name": "resetEligibility", "type": "bool" } ], "name": "ClaimConditionsUpdated", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": false, "internalType": "string", "name": "prevURI", "type": "string" }, { "indexed": false, "internalType": "string", "name": "newURI", "type": "string" } ], "name": "ContractURIUpdated", "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": [ { "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": [ { "indexed": false, "internalType": "uint256", "name": "maxTotalSupply", "type": "uint256" } ], "name": "MaxTotalSupplyUpdated", "type": "event" }, { "anonymous": false, "inputs": [], "name": "MetadataFrozen", "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": "uint256", "name": "index", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "revealedURI", "type": "string" } ], "name": "TokenURIRevealed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "claimConditionIndex", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "claimer", "type": "address" }, { "indexed": true, "internalType": "address", "name": "receiver", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "quantityClaimed", "type": "uint256" } ], "name": "TokensClaimed", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "uint256", "name": "startTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "endTokenId", "type": "uint256" }, { "indexed": false, "internalType": "string", "name": "baseURI", "type": "string" }, { "indexed": false, "internalType": "bytes", "name": "encryptedBaseURI", "type": "bytes" } ], "name": "TokensLazyMinted", "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "batchFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "burn", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDrop.AllowlistProof", "name": "_allowlistProof", "type": "tuple" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "claimCondition", "outputs": [ { "internalType": "uint256", "name": "currentStartId", "type": "uint256" }, { "internalType": "uint256", "name": "count", "type": "uint256" } ], "stateMutability": "view", "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": "bytes", "name": "data", "type": "bytes" }, { "internalType": "bytes", "name": "key", "type": "bytes" } ], "name": "encryptDecrypt", "outputs": [ { "internalType": "bytes", "name": "result", "type": "bytes" } ], "stateMutability": "pure", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "encryptedData", "outputs": [ { "internalType": "bytes", "name": "", "type": "bytes" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "freezeBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "getActiveClaimConditionId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "getBaseURICount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" } ], "name": "getBatchIdAtIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" } ], "name": "getClaimConditionById", "outputs": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct IClaimCondition.ClaimCondition", "name": "condition", "type": "tuple" } ], "stateMutability": "view", "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": "uint256", "name": "_batchId", "type": "uint256" }, { "internalType": "bytes", "name": "_key", "type": "bytes" } ], "name": "getRevealURI", "outputs": [ { "internalType": "string", "name": "revealedURI", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "getRoleMember", "outputs": [ { "internalType": "address", "name": "member", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleMemberCount", "outputs": [ { "internalType": "uint256", "name": "count", "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": "uint256", "name": "_conditionId", "type": "uint256" }, { "internalType": "address", "name": "_claimer", "type": "address" } ], "name": "getSupplyClaimedByWallet", "outputs": [ { "internalType": "uint256", "name": "supplyClaimedByWallet", "type": "uint256" } ], "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRoleWithSwitch", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": "_saleRecipient", "type": "address" }, { "internalType": "address", "name": "_royaltyRecipient", "type": "address" }, { "internalType": "uint128", "name": "_royaltyBps", "type": "uint128" }, { "internalType": "uint128", "name": "_platformFeeBps", "type": "uint128" }, { "internalType": "address", "name": "_platformFeeRecipient", "type": "address" } ], "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": "uint256", "name": "_batchId", "type": "uint256" } ], "name": "isEncryptedBatch", "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": [ { "internalType": "uint256", "name": "_amount", "type": "uint256" }, { "internalType": "string", "name": "_baseURIForTokens", "type": "string" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "lazyMint", "outputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "maxTotalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "nextTokenIdToClaim", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": [], "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": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "bytes", "name": "_key", "type": "bytes" } ], "name": "reveal", "outputs": [ { "internalType": "string", "name": "revealedURI", "type": "string" } ], "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": "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": [ { "components": [ { "internalType": "uint256", "name": "startTimestamp", "type": "uint256" }, { "internalType": "uint256", "name": "maxClaimableSupply", "type": "uint256" }, { "internalType": "uint256", "name": "supplyClaimed", "type": "uint256" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "bytes32", "name": "merkleRoot", "type": "bytes32" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" }, { "internalType": "string", "name": "metadata", "type": "string" } ], "internalType": "struct IClaimCondition.ClaimCondition[]", "name": "_conditions", "type": "tuple[]" }, { "internalType": "bool", "name": "_resetClaimEligibility", "type": "bool" } ], "name": "setClaimConditions", "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": "uint256", "name": "_maxTotalSupply", "type": "uint256" } ], "name": "setMaxTotalSupply", "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": "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": "_tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_index", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" }, { "internalType": "address", "name": "_claimer", "type": "address" }, { "internalType": "uint256", "name": "_quantity", "type": "uint256" }, { "internalType": "address", "name": "_currency", "type": "address" }, { "internalType": "uint256", "name": "_pricePerToken", "type": "uint256" }, { "components": [ { "internalType": "bytes32[]", "name": "proof", "type": "bytes32[]" }, { "internalType": "uint256", "name": "quantityLimitPerWallet", "type": "uint256" }, { "internalType": "uint256", "name": "pricePerToken", "type": "uint256" }, { "internalType": "address", "name": "currency", "type": "address" } ], "internalType": "struct IDrop.AllowlistProof", "name": "_allowlistProof", "type": "tuple" } ], "name": "verifyClaim", "outputs": [ { "internalType": "bool", "name": "isOverride", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b8062000063575062000050306200013d60201b6200286b1760201c565b15801562000063575060005460ff166001145b620000cb5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000ef576000805461ff0019166101001790555b801562000136576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b506200014c565b6001600160a01b03163b151590565b615dc6806200015c6000396000f3fe60806040526004361061033a5760003560e01c80639010d07c116101b3578063b6f10c79116100f3578063b6f10c79146109fe578063b88d4fde14610a1e578063c68907de14610a3e578063c87b56dd14610a53578063ca15c87314610a73578063cb2ef6f714610a93578063ce80564214610ab3578063d37c353b14610ad3578063d45573f614610af3578063d547741f14610b08578063d637ed5914610b28578063de903ddd14610b58578063e159163414610b78578063e57553da14610b98578063e715032214610bbc578063e8a3d48514610bdc578063e985e9c514610bf1578063f28083c314610c3a57600080fd5b80639010d07c146107d457806391d14854146107f4578063938e3d7b1461081457806395d89b41146108345780639bcf7a15146108495780639fc4d68f14610869578063a05112fc14610889578063a07ced9e146108a9578063a0a8e460146108c9578063a217fddf146108e5578063a22cb465146108fa578063a2309ff81461091a578063a32fa5b31461092f578063ac9650d81461094f578063acd083f81461097c578063ad1eefc514610991578063b24f2d39146109d357600080fd5b80633f3e4c111161027e5780633f3e4c111461058f57806342842e0e146105af57806342966c68146105cf578063492e224b146105ef5780634cc157df1461060f578063572b6c0514610651578063600dd5ea146106715780636352211e1461069157806363b45e2d146106b15780636f4f2837146106c65780636f8934f4146106e657806370a082311461071357806374bc7db7146107335780637e54523c14610753578063830405321461077357806384bb1e42146107a35780638da5cb5b146107b657600080fd5b806301ffc9a71461033f57806306fdde0314610374578063079fe40e14610396578063081812fc146103c3578063095ea7b3146103e357806313af40351461040557806318160ddd146104255780631e7ac4881461044857806323a2902b1461046857806323b872dd146104885780632419f51b146104a8578063248a9ca3146104c85780632a55205a146104f55780632ab4d052146105235780632f2ff15d1461053a57806336568abe1461055a5780633b1475a71461057a575b600080fd5b34801561034b57600080fd5b5061035f61035a366004614b44565b610c61565b60405190151581526020015b60405180910390f35b34801561038057600080fd5b50610389610c8d565b60405161036b9190614bb9565b3480156103a257600080fd5b506103ab610d1f565b6040516001600160a01b03909116815260200161036b565b3480156103cf57600080fd5b506103ab6103de366004614bcc565b610d2e565b3480156103ef57600080fd5b506104036103fe366004614c0a565b610d72565b005b34801561041157600080fd5b50610403610420366004614c36565b610e0b565b34801561043157600080fd5b5060dd5460dc54035b60405190815260200161036b565b34801561045457600080fd5b50610403610463366004614c0a565b610e44565b34801561047457600080fd5b5061035f610483366004614c65565b610e76565b34801561049457600080fd5b506104036104a3366004614ce2565b611237565b3480156104b457600080fd5b5061043a6104c3366004614bcc565b611242565b3480156104d457600080fd5b5061043a6104e3366004614bcc565b6000908152600e602052604090205490565b34801561050157600080fd5b50610515610510366004614d23565b6112b0565b60405161036b929190614d45565b34801561052f57600080fd5b5061043a6101115481565b34801561054657600080fd5b50610403610555366004614d5e565b6112ed565b34801561056657600080fd5b50610403610575366004614d5e565b611383565b34801561058657600080fd5b50600c5461043a565b34801561059b57600080fd5b506104036105aa366004614bcc565b6113e2565b3480156105bb57600080fd5b506104036105ca366004614ce2565b61142c565b3480156105db57600080fd5b506104036105ea366004614bcc565b611447565b3480156105fb57600080fd5b5061035f61060a366004614bcc565b611452565b34801561061b57600080fd5b5061062f61062a366004614bcc565b611478565b604080516001600160a01b03909316835261ffff90911660208301520161036b565b34801561065d57600080fd5b5061035f61066c366004614c36565b6114e3565b34801561067d57600080fd5b5061040361068c366004614c0a565b611501565b34801561069d57600080fd5b506103ab6106ac366004614bcc565b61152f565b3480156106bd57600080fd5b5060095461043a565b3480156106d257600080fd5b506104036106e1366004614c36565b611541565b3480156106f257600080fd5b50610706610701366004614bcc565b61156e565b60405161036b9190614d8e565b34801561071f57600080fd5b5061043a61072e366004614c36565b6116cb565b34801561073f57600080fd5b5061040361074e366004614e54565b611719565b34801561075f57600080fd5b5061040361076e366004614c0a565b611a5d565b34801561077f57600080fd5b5061035f61078e366004614bcc565b600b6020526000908152604090205460ff1681565b6104036107b1366004614f6d565b611a8b565b3480156107c257600080fd5b506007546001600160a01b03166103ab565b3480156107e057600080fd5b506103ab6107ef366004614d23565b611bb1565b34801561080057600080fd5b5061035f61080f366004614d5e565b611ca0565b34801561082057600080fd5b5061040361082f366004614ffa565b611ccb565b34801561084057600080fd5b50610389611cf8565b34801561085557600080fd5b5061040361086436600461502e565b611d07565b34801561087557600080fd5b50610389610884366004615096565b611d36565b34801561089557600080fd5b506103896108a4366004614bcc565b611eb7565b3480156108b557600080fd5b506104036108c4366004614bcc565b611f51565b3480156108d557600080fd5b506040516004815260200161036b565b3480156108f157600080fd5b5061043a600081565b34801561090657600080fd5b506104036109153660046150e1565b611f9e565b34801561092657600080fd5b5061043a612071565b34801561093b57600080fd5b5061035f61094a366004614d5e565b612081565b34801561095b57600080fd5b5061096f61096a36600461510f565b6120d7565b60405161036b9190615150565b34801561098857600080fd5b5060dc5461043a565b34801561099d57600080fd5b5061043a6109ac366004614d5e565b60009182526013602090815260408084206001600160a01b03909316845291905290205490565b3480156109df57600080fd5b506004546001600160a01b03811690600160a01b900461ffff1661062f565b348015610a0a57600080fd5b50610403610a193660046151b2565b6121cb565b348015610a2a57600080fd5b50610403610a393660046151d3565b6121f8565b348015610a4a57600080fd5b5061043a612249565b348015610a5f57600080fd5b50610389610a6e366004614bcc565b6122ec565b348015610a7f57600080fd5b5061043a610a8e366004614bcc565b61235b565b348015610a9f57600080fd5b506944726f7045524337323160b01b61043a565b348015610abf57600080fd5b50610389610ace366004615096565b6123e4565b348015610adf57600080fd5b5061043a610aee36600461523e565b612472565b348015610aff57600080fd5b5061062f61250a565b348015610b1457600080fd5b50610403610b23366004614d5e565b612527565b348015610b3457600080fd5b50601054601154610b43919082565b6040805192835260208301919091520161036b565b348015610b6457600080fd5b50610403610b73366004615096565b612540565b348015610b8457600080fd5b50610403610b9336600461534b565b6125cb565b348015610ba457600080fd5b506105156002546003546001600160a01b0390911691565b348015610bc857600080fd5b50610389610bd736600461545d565b6127e9565b348015610be857600080fd5b5061038961285e565b348015610bfd57600080fd5b5061035f610c0c3660046154b8565b6001600160a01b03918216600090815260e36020908152604080832093909416825291909152205460ff1690565b348015610c4657600080fd5b50600254600160b01b900460ff1660405161036b91906154fc565b6000610c6c8261287a565b80610c87575063152a902d60e11b6001600160e01b03198316145b92915050565b606060de8054610c9c90615524565b80601f0160208091040260200160405190810160405280929190818152602001828054610cc890615524565b8015610d155780601f10610cea57610100808354040283529160200191610d15565b820191906000526020600020905b815481529060010190602001808311610cf857829003601f168201915b5050505050905090565b6006546001600160a01b031690565b6000610d39826128ca565b610d56576040516333d1c03960e21b815260040160405180910390fd5b50600090815260e260205260409020546001600160a01b031690565b6000610d7d8261152f565b9050806001600160a01b0316836001600160a01b03161415610db25760405163250fdee360e21b815260040160405180910390fd5b806001600160a01b0316610dc46128f6565b6001600160a01b031614610dfb57610dde81610c0c6128f6565b610dfb576040516367d9dca160e11b815260040160405180910390fd5b610e06838383612900565b505050565b610e1361295c565b610e385760405162461bcd60e51b8152600401610e2f90615559565b60405180910390fd5b610e418161296a565b50565b610e4c61295c565b610e685760405162461bcd60e51b8152600401610e2f90615559565b610e7282826129bc565b5050565b6000868152601260209081526040808320815161010081018352815481526001820154938101939093526002810154918301919091526003810154606083015260048101546080830152600581015460a083015260068101546001600160a01b031660c08301526007810180548493929160e0840191610ef590615524565b80601f0160208091040260200160405190810160405280929190818152602001828054610f2190615524565b8015610f6e5780601f10610f4357610100808354040283529160200191610f6e565b820191906000526020600020905b815481529060010190602001808311610f5157829003601f168201915b50505091909252505050606081015160a082015160c0830151608084015193945091929091901561104e5761104a610fa68780615581565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505060808088015191508d9060208b01359060408c013590610ffb908d0160608e01614c36565b6040516001600160601b0319606095861b811660208301526034820194909452605481019290925290921b16607482015260880160405160208183030381529060405280519060200120612a4a565b5094505b84156110d35760208601356110635782611069565b85602001355b92506000198660400135141561107f5781611085565b85604001355b91506000198660400135141580156110b6575060006110aa6080880160608901614c36565b6001600160a01b031614155b6110c057806110d0565b6110d06080870160608801614c36565b90505b60008b81526013602090815260408083206001600160a01b03808f1685529252909120549089811690831614158061110b5750828814155b1561114b5760405162461bcd60e51b815260206004820152601060248201526f2150726963654f7243757272656e637960801b6044820152606401610e2f565b89158061116057508361115e828c6155e0565b115b156111965760405162461bcd60e51b8152600401610e2f906020808252600490820152632151747960e01b604082015260600190565b84602001518a86604001516111ab91906155e0565b11156111e65760405162461bcd60e51b815260206004820152600a602482015269214d6178537570706c7960b01b6044820152606401610e2f565b84514210156112285760405162461bcd60e51b815260206004820152600e60248201526d18d85b9d0818db185a5b481e595d60921b6044820152606401610e2f565b50505050509695505050505050565b610e06838383612b18565b600061124d60095490565b821061128b5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610e2f565b6009828154811061129e5761129e6155f8565b90600052602060002001549050919050565b6000806000806112bf86611478565b90945084925061ffff1690506127106112d8828761560e565b6112e29190615643565b925050509250929050565b6000828152600e60205260409020546113069033612d1f565b6000828152600d602090815260408083206001600160a01b038516845290915290205460ff16156113795760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c79206772616e7420746f206e6f6e20686f6c646572730000006044820152606401610e2f565b610e728282612d9f565b336001600160a01b038216146113d85760405162461bcd60e51b815260206004820152601a60248201527921b0b71037b7363c903932b737bab731b2903337b91039b2b63360311b6044820152606401610e2f565b610e728282612db3565b60006113ee8133612d1f565b6101118290556040518281527ff2672935fc79f5237559e2e2999dbe743bf65430894ac2b37666890e7c69e1af906020015b60405180910390a15050565b610e06838383604051806020016040528060008152506121f8565b610e41816001612e0a565b6000818152600860205260408120805482919061146e90615524565b9050119050919050565b6000818152600560209081526040808320815180830190925280546001600160a01b0316808352600190910154928201929092528291156114bf57805160208201516114d9565b6004546001600160a01b03811690600160a01b900461ffff165b9250925050915091565b6001600160a01b031660009081526046602052604090205460ff1690565b61150961295c565b6115255760405162461bcd60e51b8152600401610e2f90615559565b610e728282612fea565b600061153a82613067565b5192915050565b61154961295c565b6115655760405162461bcd60e51b8152600401610e2f90615559565b610e4181613181565b6115c260405180610100016040528060008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b03168152602001606081525090565b600082815260126020908152604091829020825161010081018452815481526001820154928101929092526002810154928201929092526003820154606082015260048201546080820152600582015460a082015260068201546001600160a01b031660c082015260078201805491929160e08401919061164290615524565b80601f016020809104026020016040519081016040528092919081815260200182805461166e90615524565b80156116bb5780601f10611690576101008083540402835291602001916116bb565b820191906000526020600020905b81548152906001019060200180831161169e57829003601f168201915b5050505050815250509050919050565b60006001600160a01b0382166116f4576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b0316600090815260e160205260409020546001600160401b031690565b61172161295c565b61173d5760405162461bcd60e51b8152600401610e2f90615559565b6010546011548183156117575761175482846155e0565b90505b601185905560108190556000805b8681101561190a5780158061179d5750878782818110611787576117876155f8565b90506020028101906117999190615657565b3582105b6117ce5760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610e2f565b60006012816117dd84876155e0565b8152602001908152602001600020600201549050888883818110611803576118036155f8565b90506020028101906118159190615657565b6020013581111561185d5760405162461bcd60e51b81526020600482015260126024820152711b585e081cdd5c1c1b1e4818db185a5b595960721b6044820152606401610e2f565b88888381811061186f5761186f6155f8565b90506020028101906118819190615657565b6012600061188f85886155e0565b815260200190815260200160002081816118a991906157c2565b50819050601260006118bb85886155e0565b81526020810191909152604001600020600201558888838181106118e1576118e16155f8565b90506020028101906118f39190615657565b35925081905061190281615840565b915050611765565b50841561198a57835b8281101561198457600081815260126020526040812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b03191690559061196f6007830182614a5b565b5050808061197c90615840565b915050611913565b50611a19565b85831115611a1957855b83811015611a1757601260006119aa83866155e0565b81526020810191909152604001600090812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b031916905590611a026007830182614a5b565b50508080611a0f90615840565b915050611994565b505b7fbf4016fceeaaa4ac5cf4be865b559ff85825ab4ca7aa7b661d16e2f544c03098878787604051611a4c939291906158c9565b60405180910390a150505050505050565b611a6561295c565b611a815760405162461bcd60e51b8152600401610e2f90615559565b610e7282826131cb565b611a9986868686868661321d565b6000611aa3612249565b9050611aba81611ab16132c4565b88888888610e76565b5060008181526012602052604081206002018054889290611adc9084906155e0565b909155505060008181526013602052604081208791611af96132c4565b6001600160a01b03166001600160a01b031681526020019081526020016000206000828254611b2891906155e0565b90915550611b3b905060008787876132ce565b6000611b4788886133e0565b9050876001600160a01b0316611b5b6132c4565b6001600160a01b0316837ffa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e848b604051611b9f929190918252602082015260400190565b60405180910390a45050505050505050565b6000828152600f602052604081205481805b82811015611c97576000868152600f602090815260408083208484526001019091529020546001600160a01b031615611c405784821415611c2e576000868152600f602090815260408083209383526001909301905220546001600160a01b03169250610c87915050565b611c396001836155e0565b9150611c85565b611c4b866000611ca0565b8015611c7257506000868152600f6020908152604080832083805260020190915290205481145b15611c8557611c826001836155e0565b91505b611c906001826155e0565b9050611bc3565b50505092915050565b6000918252600d602090815260408084206001600160a01b0393909316845291905290205460ff1690565b611cd361295c565b611cef5760405162461bcd60e51b8152600401610e2f90615559565b610e41816133ed565b606060df8054610c9c90615524565b611d0f61295c565b611d2b5760405162461bcd60e51b8152600401610e2f90615559565b610e068383836134c3565b600083815260086020526040812080546060929190611d5490615524565b80601f0160208091040260200160405190810160405280929190818152602001828054611d8090615524565b8015611dcd5780601f10611da257610100808354040283529160200191611dcd565b820191906000526020600020905b815481529060010190602001808311611db057829003601f168201915b50505050509050805160001415611e1a5760405162461bcd60e51b8152602060048201526011602482015270139bdd1a1a5b99c81d1bc81c995d99585b607a1b6044820152606401610e2f565b60008082806020019051810190611e3191906159b1565b91509150611e408287876127e9565b93508084878746604051602001611e5a9493929190615a31565b6040516020818303038152906040528051906020012014611ead5760405162461bcd60e51b815260206004820152600d60248201526c496e636f7272656374206b657960981b6044820152606401610e2f565b5050509392505050565b60086020526000908152604090208054611ed090615524565b80601f0160208091040260200160405190810160405280929190818152602001828054611efc90615524565b8015611f495780601f10611f1e57610100808354040283529160200191611f49565b820191906000526020600020905b815481529060010190602001808311611f2c57829003601f168201915b505050505081565b61011054611f5f8133612d1f565b611f6b61060a83611242565b15611f885760405162461bcd60e51b8152600401610e2f90615a5a565b6000611f9383611242565b9050610e068161356a565b611fa66128f6565b6001600160a01b0316826001600160a01b03161415611fd85760405163b06307db60e01b815260040160405180910390fd5b8060e36000611fe56128f6565b6001600160a01b03908116825260208083019390935260409182016000908120918716808252919093529120805460ff1916921515929092179091556120296128f6565b6001600160a01b03167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051612065911515815260200190565b60405180910390a35050565b600061207c60dc5490565b905090565b6000828152600d6020908152604080832083805290915281205460ff166120ce57506000828152600d602090815260408083206001600160a01b038516845290915290205460ff16610c87565b50600192915050565b6060816001600160401b038111156120f1576120f1614eaa565b60405190808252806020026020018201604052801561212457816020015b606081526020019060019003908161210f5790505b50905060005b828110156121c45761219430858584818110612148576121486155f8565b905060200281019061215a9190615677565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061368792505050565b8282815181106121a6576121a66155f8565b602002602001018190525080806121bc90615840565b91505061212a565b5092915050565b6121d361295c565b6121ef5760405162461bcd60e51b8152600401610e2f90615559565b610e4181613779565b612203848484612b18565b612215836001600160a01b031661286b565b1561224357612226848484846137dd565b612243576040516368d2bf6b60e11b815260040160405180910390fd5b50505050565b601154601054600091829161225e91906155e0565b90505b6010548111156122b5576012600061227a600184615a83565b81526020019081526020016000206000015442106122a35761229d600182615a83565b91505090565b806122ad81615a9a565b915050612261565b5060405162461bcd60e51b815260206004820152600b60248201526a10a1a7a72224aa24a7a71760a91b6044820152606401610e2f565b606060006122f9836138cc565b5090506000612307846139d1565b905061231282611452565b1561234057806040516020016123289190615ab1565b60405160208183030381529060405292505050919050565b8061234a85613b32565b604051602001612328929190615ad6565b6000818152600f6020526040812054815b818110156123bf576000848152600f602090815260408083208484526001019091529020546001600160a01b0316156123ad576123aa6001846155e0565b92505b6123b86001826155e0565b905061236c565b506123cb836000611ca0565b156123de576123db6001836155e0565b91505b50919050565b6060610110546123f48133612d1f565b60006123ff86611242565b905061240c818686611d36565b92506124278160405180602001604052806000815250613c2f565b6124318184613c4e565b857f6df1d8db2a036436ffe0b2d1833f2c5f1e624818dfce2578c0faa4b83ef9998d846040516124619190614bb9565b60405180910390a250509392505050565b600081156124f35760008061248984860186615b05565b91509150815160001415801561249e57508015155b156124f0576124f088600c546124b491906155e0565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c2f92505050565b50505b6125008686868686613cfa565b9695505050505050565b6002546001600160a01b03811691600160a01b90910461ffff1690565b6000828152600e60205260409020546113d89033612d1f565b6101105461254e8133612d1f565b61255a61060a85611242565b156125775760405162461bcd60e51b8152600401610e2f90615a5a565b600061258285611242565b90506125c48185858080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250613c4e92505050565b5050505050565b600054610100900460ff16158080156125eb5750600054600160ff909116105b8061260c57506125fa3061286b565b15801561260c575060005460ff166001145b61266f5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610e2f565b6000805460ff191660011790558015612692576000805461ff0019166101001790555b7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806126fe8a613e04565b6127088d8d613e3c565b6127118b6133ed565b61271a8e61296a565b61272560008f612d9f565b61272f828f612d9f565b612739838f612d9f565b612744836000612d9f565b61274e818f612d9f565b6127588182613e6d565b61276b85876001600160801b03166129bc565b61277e88886001600160801b0316612fea565b61278789613181565b61010e9290925561010f556101105580156127dc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b8251604080518083016020019091528181529060005b8181101561285557600085858360405160200161281e93929190615b49565b60408051601f1981840301815291905280516020918201208884018201511885840182015261284e9150826155e0565b90506127ff565b50509392505050565b60018054611ed090615524565b6001600160a01b03163b151590565b60006001600160e01b031982166380ac58cd60e01b14806128ab57506001600160e01b03198216635b5e139f60e01b145b80610c8757506301ffc9a760e01b6001600160e01b0319831614610c87565b600060dc5482108015610c87575050600090815260e06020526040902054600160e01b900460ff161590565b600061207c613eb5565b600082815260e2602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b600061207c8161080f6128f6565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b6127108111156129de5760405162461bcd60e51b8152600401610e2f90615b5b565b600280546001600160b01b031916600160a01b61ffff8416026001600160a01b031916176001600160a01b0384169081179091556040518281527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a25050565b6000808281805b8751811015612b0c57612a6560028361560e565b91506000888281518110612a7b57612a7b6155f8565b60200260200101519050808411612abd576040805160208101869052908101829052606001604051602081830303815290604052805190602001209350612af9565b6040805160208101839052908101859052606001604051602081830303815290604052805190602001209350600183612af691906155e0565b92505b5080612b0481615840565b915050612a51565b50941495939450505050565b6000612b2382613067565b9050836001600160a01b031681600001516001600160a01b031614612b5a5760405162a1148160e81b815260040160405180910390fd5b6000846001600160a01b0316612b6e6128f6565b6001600160a01b03161480612b8a5750612b8a85610c0c6128f6565b80612bb55750612b986128f6565b6001600160a01b0316612baa84610d2e565b6001600160a01b0316145b905080612bd557604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038416612bfc57604051633a954ecd60e21b815260040160405180910390fd5b612c098585856001613ed7565b612c1560008487612900565b6001600160a01b03858116600090815260e16020908152604080832080546001600160401b03198082166001600160401b039283166000190183161790925589861680865283862080549384169383166001908101841694909417905589865260e090945282852080546001600160e01b031916909417600160a01b42909216919091021783558701808452922080549193909116612ce85760dc548214612ce857805460208601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038a16171781555b50505082846001600160a01b0316866001600160a01b0316600080516020615d7183398151915260405160405180910390a46125c4565b6000828152600d602090815260408083206001600160a01b038516845290915290205460ff16610e7257612d5d816001600160a01b03166014613f75565b612d68836020613f75565b604051602001612d79929190615b84565b60408051601f198184030181529082905262461bcd60e51b8252610e2f91600401614bb9565b612da98282614117565b610e728282614172565b612dbd82826141df565b6000828152600f602090815260408083206001600160a01b03851680855260028201808552838620805487526001909301855292852080546001600160a01b031916905584529152555050565b6000612e1583613067565b80519091508215612e9d576000816001600160a01b0316612e346128f6565b6001600160a01b03161480612e505750612e5082610c0c6128f6565b80612e7b5750612e5e6128f6565b6001600160a01b0316612e7086610d2e565b6001600160a01b0316145b905080612e9b57604051632ce44b5f60e11b815260040160405180910390fd5b505b612eab816000866001613ed7565b612eb760008583612900565b6001600160a01b03808216600081815260e1602090815260408083208054600160801b6000196001600160401b038084169190910181166001600160401b03198416811783900482166001908101831690930267ffffffffffffffff67ffffffffffffffff60801b0119909416179290921783558b865260e0909452828520805460ff60e01b1942909316600160a01b026001600160e01b03199091169097179690961716600160e01b178555918901808452922080549194909116612fb15760dc548214612fb157805460208701516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038716171781555b5050604051869250600091506001600160a01b03841690600080516020615d71833981519152908390a4505060dd805460010190555050565b61271081111561300c5760405162461bcd60e51b8152600401610e2f90615b5b565b600480546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb90602001612a3e565b60408051606081018252600080825260208201819052918101919091528160dc5481101561316857600081815260e06020908152604091829020825160608101845290546001600160a01b0381168252600160a01b81046001600160401b031692820192909252600160e01b90910460ff161515918101829052906131665780516001600160a01b0316156130fd579392505050565b5060001901600081815260e06020908152604091829020825160608101845290546001600160a01b038116808352600160a01b82046001600160401b031693830193909352600160e01b900460ff1615159281019290925215613161579392505050565b6130fd565b505b604051636f96cda160e11b815260040160405180910390fd5b600680546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b6003819055600280546001600160a01b0319166001600160a01b0384161790556040517ff8086cee80709bd44c82f89dbca54115ebd05e840a88ab81df9cf5be9754eb63906114209084908490614d45565b600c548560dc5461322e91906155e0565b11156132665760405162461bcd60e51b815260206004820152600760248201526621546f6b656e7360c81b6044820152606401610e2f565b6101115415806132865750610111548560dc5461328391906155e0565b11155b6132bc5760405162461bcd60e51b815260206004820152600760248201526621537570706c7960c81b6044820152606401610e2f565b505050505050565b600061207c6128f6565b806132f65734156132f15760405162461bcd60e51b8152600401610e2f90615bf1565b612243565b60008061330161250a565b909250905060006001600160a01b0387161561331d5786613325565b613325610d1f565b90506000613333858861560e565b9050600061271061334861ffff86168461560e565b6133529190615643565b905060006001600160a01b03881673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156133845750348214613388565b5034155b806133a55760405162461bcd60e51b8152600401610e2f90615bf1565b6133b8886133b16128f6565b8885614241565b6133d4886133c46128f6565b866133cf8688615a83565b614241565b50505050505050505050565b60dc54610c878383614286565b6000600180546133fc90615524565b80601f016020809104026020016040519081016040528092919081815260200182805461342890615524565b80156134755780601f1061344a57610100808354040283529160200191613475565b820191906000526020600020905b81548152906001019060200180831161345857829003601f168201915b5050855193945061349193600193506020870192509050614a95565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a168183604051611420929190615c0d565b6127108111156134e55760405162461bcd60e51b8152600401610e2f90615b5b565b6040805180820182526001600160a01b038481168083526020808401868152600089815260058352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d910160405180910390a3505050565b6000818152600a60205260408120805461358390615524565b80601f01602080910402602001604051908101604052809291908181526020018280546135af90615524565b80156135fc5780601f106135d1576101008083540402835291602001916135fc565b820191906000526020600020905b8154815290600101906020018083116135df57829003601f168201915b5050505050905060008151116136445760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840c4c2e8c6d609b1b6044820152606401610e2f565b6000828152600b6020526040808220805460ff19166001179055517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d71649190a15050565b60606136928361286b565b6136ed5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610e2f565b600080846001600160a01b0316846040516137089190615c32565b600060405180830381855af49150503d8060008114613743576040519150601f19603f3d011682016040523d82523d6000602084013e613748565b606091505b50915091506137708282604051806060016040528060278152602001615d4a602791396142a0565b95945050505050565b6002805482919060ff60b01b1916600160b01b83600181111561379e5761379e6154e6565b02179055507fd246da9440709ce0dd3f4fd669abc85ada012ab9774b8ecdcc5059ba1486b9c1816040516137d291906154fc565b60405180910390a150565b6000836001600160a01b031663150b7a026137f66128f6565b8786866040518563ffffffff1660e01b81526004016138189493929190615c44565b6020604051808303816000875af1925050508015613853575060408051601f3d908101601f1916820190925261385091810190615c77565b60015b6138ae573d808015613881576040519150601f19603f3d011682016040523d82523d6000602084013e613886565b606091505b5080516138a6576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60008060006138da60095490565b90506000600980548060200260200160405190810160405280929190818152602001828054801561392a57602002820191906000526020600020905b815481526020019060010190808311613916575b5050505050905060005b828110156139965781818151811061394e5761394e6155f8565b602002602001015186101561398457809350818181518110613972576139726155f8565b60200260200101519450505050915091565b61398f6001826155e0565b9050613934565b5060405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606401610e2f565b606060006139de60095490565b905060006009805480602002602001604051908101604052809291908181526020018280548015613a2e57602002820191906000526020600020905b815481526020019060010190808311613a1a575b5050505050905060005b8281101561399657818181518110613a5257613a526155f8565b6020026020010151851015613b2057600a6000838381518110613a7757613a776155f8565b602002602001015181526020019081526020016000208054613a9890615524565b80601f0160208091040260200160405190810160405280929190818152602001828054613ac490615524565b8015613b115780601f10613ae657610100808354040283529160200191613b11565b820191906000526020600020905b815481529060010190602001808311613af457829003601f168201915b50505050509350505050919050565b613b2b6001826155e0565b9050613a38565b606081613b565750506040805180820190915260018152600360fc1b602082015290565b8160005b8115613b805780613b6a81615840565b9150613b799050600a83615643565b9150613b5a565b6000816001600160401b03811115613b9a57613b9a614eaa565b6040519080825280601f01601f191660200182016040528015613bc4576020820181803683370190505b5090505b84156138c457613bd9600183615a83565b9150613be6600a86615c94565b613bf19060306155e0565b60f81b818381518110613c0657613c066155f8565b60200101906001600160f81b031916908160001a905350613c28600a86615643565b9450613bc8565b60008281526008602090815260409091208251610e0692840190614a95565b6000828152600b602052604090205460ff1615613c9c5760405162461bcd60e51b815260206004820152600c60248201526b2130ba31b410333937bd32b760a11b6044820152606401610e2f565b6000828152600a602090815260409091208251613cbb92840190614a95565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c613ce6836142d9565b604080519182526020820185905201611420565b6000613d046143f4565b613d205760405162461bcd60e51b8152600401610e2f90615559565b85613d555760405162461bcd60e51b81526020600482015260056024820152640c08185b5d60da1b6044820152606401610e2f565b6000600c549050613d9d818888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061440592505050565b600c919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d6001613dd38a846155e0565b613ddd9190615a83565b88888888604051613df2959493929190615ca8565b60405180910390a25095945050505050565b600054610100900460ff16613e2b5760405162461bcd60e51b8152600401610e2f90615ce1565b613e33614472565b610e418161449b565b600054610100900460ff16613e635760405162461bcd60e51b8152600401610e2f90615ce1565b610e72828261452a565b6000828152600e6020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000613ec0336114e3565b15613ed2575060131936013560601c90565b503390565b613ee561010e546000611ca0565b158015613efa57506001600160a01b03841615155b8015613f0e57506001600160a01b03831615155b1561224357613f2061010e5485611ca0565b158015613f375750613f3561010e5484611ca0565b155b156122435760405162461bcd60e51b815260206004820152600e60248201526d215472616e736665722d526f6c6560901b6044820152606401610e2f565b60606000613f8483600261560e565b613f8f9060026155e0565b6001600160401b03811115613fa657613fa6614eaa565b6040519080825280601f01601f191660200182016040528015613fd0576020820181803683370190505b509050600360fc1b81600081518110613feb57613feb6155f8565b60200101906001600160f81b031916908160001a905350600f60fb1b8160018151811061401a5761401a6155f8565b60200101906001600160f81b031916908160001a905350600061403e84600261560e565b6140499060016155e0565b90505b60018111156140c1576f181899199a1a9b1b9c1cb0b131b232b360811b85600f166010811061407d5761407d6155f8565b1a60f81b828281518110614093576140936155f8565b60200101906001600160f81b031916908160001a90535060049490941c936140ba81615a9a565b905061404c565b5083156141105760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610e2f565b9392505050565b6000828152600d602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000828152600f602052604081208054916001919061419183856155e0565b90915550506000928352600f6020908152604080852083865260018101835281862080546001600160a01b039096166001600160a01b03199096168617905593855260029093019052912055565b6141e98282612d1f565b6000828152600d602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8061424b57612243565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561427a576132f18282614582565b61224384848484614624565b610e7282826040518060200160405280600081525061467d565b606083156142af575081614110565b8251156142bf5782518084602001fd5b8160405162461bcd60e51b8152600401610e2f9190614bb9565b6000806142e560095490565b90506000600980548060200260200160405190810160405280929190818152602001828054801561433557602002820191906000526020600020905b815481526020019060010190808311614321575b5050505050905060005b828110156143b957818181518110614359576143596155f8565b60200260200101518514156143a757801561439c578161437a600183615a83565b8151811061438a5761438a6155f8565b60200260200101519350505050919050565b506000949350505050565b806143b181615840565b91505061433f565b5060405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a590818985d18da1259608a1b6044820152606401610e2f565b600061207c61010f5461080f6128f6565b60008061441284866155e0565b60098054600181019091557f6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7af018190556000818152600a602090815260409091208551929450849350614469929091860190614a95565b50935093915050565b600054610100900460ff166144995760405162461bcd60e51b8152600401610e2f90615ce1565b565b600054610100900460ff166144c25760405162461bcd60e51b8152600401610e2f90615ce1565b60005b8151811015610e72576001604660008484815181106144e6576144e66155f8565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff19169115159190911790558061452281615840565b9150506144c5565b600054610100900460ff166145515760405162461bcd60e51b8152600401610e2f90615ce1565b81516145649060de906020850190614a95565b5080516145789060df906020840190614a95565b50600060dc555050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d80600081146145cf576040519150601f19603f3d011682016040523d82523d6000602084013e6145d4565b606091505b5050905080610e065760405162461bcd60e51b815260206004820152601c60248201527b1b985d1a5d99481d1bdad95b881d1c985b9cd9995c8819985a5b195960221b6044820152606401610e2f565b816001600160a01b0316836001600160a01b0316141561464357612243565b6001600160a01b038316301415614668576132f16001600160a01b0385168383614822565b6122436001600160a01b038516848484614878565b60dc546001600160a01b0384166146a657604051622e076360e81b815260040160405180910390fd5b826146c45760405163b562e8dd60e01b815260040160405180910390fd5b6146d16000858386613ed7565b6001600160a01b038416600081815260e16020908152604080832080546001600160801b031981166001600160401b038083168b018116918217600160401b6001600160401b031990941690921783900481168b0181169092021790915585845260e090925290912080546001600160e01b0319168317600160a01b429093169290920291909117905581908185019061476a9061286b565b156147e0575b60405182906001600160a01b03881690600090600080516020615d71833981519152908290a46147a960008784806001019550876137dd565b6147c6576040516368d2bf6b60e11b815260040160405180910390fd5b808210614770578260dc54146147db57600080fd5b614813565b5b6040516001830192906001600160a01b03881690600090600080516020615d71833981519152908290a48082106147e1575b5060dc55612243600085838684565b610e068363a9059cbb60e01b8484604051602401614841929190614d45565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526148b0565b6040516001600160a01b03808516602483015283166044820152606481018290526122439085906323b872dd60e01b90608401614841565b6000614905826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166149829092919063ffffffff16565b805190915015610e0657808060200190518101906149239190615d2c565b610e065760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610e2f565b60606138c48484600085856149968561286b565b6149e25760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610e2f565b600080866001600160a01b031685876040516149fe9190615c32565b60006040518083038185875af1925050503d8060008114614a3b576040519150601f19603f3d011682016040523d82523d6000602084013e614a40565b606091505b5091509150614a508282866142a0565b979650505050505050565b508054614a6790615524565b6000825580601f10614a77575050565b601f016020900490600052602060002090810190610e419190614b19565b828054614aa190615524565b90600052602060002090601f016020900481019282614ac35760008555614b09565b82601f10614adc57805160ff1916838001178555614b09565b82800160010185558215614b09579182015b82811115614b09578251825591602001919060010190614aee565b50614b15929150614b19565b5090565b5b80821115614b155760008155600101614b1a565b6001600160e01b031981168114610e4157600080fd5b600060208284031215614b5657600080fd5b813561411081614b2e565b60005b83811015614b7c578181015183820152602001614b64565b838111156122435750506000910152565b60008151808452614ba5816020860160208601614b61565b601f01601f19169290920160200192915050565b6020815260006141106020830184614b8d565b600060208284031215614bde57600080fd5b5035919050565b6001600160a01b0381168114610e4157600080fd5b8035614c0581614be5565b919050565b60008060408385031215614c1d57600080fd5b8235614c2881614be5565b946020939093013593505050565b600060208284031215614c4857600080fd5b813561411081614be5565b6000608082840312156123de57600080fd5b60008060008060008060c08789031215614c7e57600080fd5b863595506020870135614c9081614be5565b9450604087013593506060870135614ca781614be5565b92506080870135915060a08701356001600160401b03811115614cc957600080fd5b614cd589828a01614c53565b9150509295509295509295565b600080600060608486031215614cf757600080fd5b8335614d0281614be5565b92506020840135614d1281614be5565b929592945050506040919091013590565b60008060408385031215614d3657600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b60008060408385031215614d7157600080fd5b823591506020830135614d8381614be5565b809150509250929050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260018060a01b0360c08301511660e0820152600060e08301516101008081850152506138c4610120840182614b8d565b60008083601f840112614e0d57600080fd5b5081356001600160401b03811115614e2457600080fd5b6020830191508360208260051b8501011115614e3f57600080fd5b9250929050565b8015158114610e4157600080fd5b600080600060408486031215614e6957600080fd5b83356001600160401b03811115614e7f57600080fd5b614e8b86828701614dfb565b9094509250506020840135614e9f81614e46565b809150509250925092565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715614ee857614ee8614eaa565b604052919050565b60006001600160401b03821115614f0957614f09614eaa565b50601f01601f191660200190565b600082601f830112614f2857600080fd5b8135614f3b614f3682614ef0565b614ec0565b818152846020838601011115614f5057600080fd5b816020850160208301376000918101602001919091529392505050565b60008060008060008060c08789031215614f8657600080fd5b8635614f9181614be5565b9550602087013594506040870135614fa881614be5565b93506060870135925060808701356001600160401b0380821115614fcb57600080fd5b614fd78a838b01614c53565b935060a0890135915080821115614fed57600080fd5b50614cd589828a01614f17565b60006020828403121561500c57600080fd5b81356001600160401b0381111561502257600080fd5b6138c484828501614f17565b60008060006060848603121561504357600080fd5b833592506020840135614d1281614be5565b60008083601f84011261506757600080fd5b5081356001600160401b0381111561507e57600080fd5b602083019150836020828501011115614e3f57600080fd5b6000806000604084860312156150ab57600080fd5b8335925060208401356001600160401b038111156150c857600080fd5b6150d486828701615055565b9497909650939450505050565b600080604083850312156150f457600080fd5b82356150ff81614be5565b91506020830135614d8381614e46565b6000806020838503121561512257600080fd5b82356001600160401b0381111561513857600080fd5b61514485828601614dfb565b90969095509350505050565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b828110156151a557603f19888603018452615193858351614b8d565b94509285019290850190600101615177565b5092979650505050505050565b6000602082840312156151c457600080fd5b81356002811061411057600080fd5b600080600080608085870312156151e957600080fd5b84356151f481614be5565b9350602085013561520481614be5565b92506040850135915060608501356001600160401b0381111561522657600080fd5b61523287828801614f17565b91505092959194509250565b60008060008060006060868803121561525657600080fd5b8535945060208601356001600160401b038082111561527457600080fd5b61528089838a01615055565b9096509450604088013591508082111561529957600080fd5b506152a688828901615055565b969995985093965092949392505050565b600082601f8301126152c857600080fd5b813560206001600160401b038211156152e3576152e3614eaa565b8160051b6152f2828201614ec0565b928352848101820192828101908785111561530c57600080fd5b83870192505b84831015614a5057823561532581614be5565b82529183019190830190615312565b80356001600160801b0381168114614c0557600080fd5b6000806000806000806000806000806101408b8d03121561536b57600080fd5b6153748b614bfa565b995060208b01356001600160401b038082111561539057600080fd5b61539c8e838f01614f17565b9a5060408d01359150808211156153b257600080fd5b6153be8e838f01614f17565b995060608d01359150808211156153d457600080fd5b6153e08e838f01614f17565b985060808d01359150808211156153f657600080fd5b506154038d828e016152b7565b96505061541260a08c01614bfa565b945061542060c08c01614bfa565b935061542e60e08c01615334565b925061543d6101008c01615334565b915061544c6101208c01614bfa565b90509295989b9194979a5092959850565b60008060006040848603121561547257600080fd5b83356001600160401b038082111561548957600080fd5b61549587838801614f17565b945060208601359150808211156154ab57600080fd5b506150d486828701615055565b600080604083850312156154cb57600080fd5b82356154d681614be5565b91506020830135614d8381614be5565b634e487b7160e01b600052602160045260246000fd5b602081016002831061551e57634e487b7160e01b600052602160045260246000fd5b91905290565b600181811c9082168061553857607f821691505b602082108114156123de57634e487b7160e01b600052602260045260246000fd5b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b6000808335601e1984360301811261559857600080fd5b8301803591506001600160401b038211156155b257600080fd5b6020019150600581901b3603821315614e3f57600080fd5b634e487b7160e01b600052601160045260246000fd5b600082198211156155f3576155f36155ca565b500190565b634e487b7160e01b600052603260045260246000fd5b6000816000190483118215151615615628576156286155ca565b500290565b634e487b7160e01b600052601260045260246000fd5b6000826156525761565261562d565b500490565b6000823560fe1983360301811261566d57600080fd5b9190910192915050565b6000808335601e1984360301811261568e57600080fd5b8301803591506001600160401b038211156156a857600080fd5b602001915036819003821315614e3f57600080fd5b601f821115610e0657600081815260208120601f850160051c810160208610156156e45750805b601f850160051c820191505b818110156132bc578281556001016156f0565b6001600160401b0383111561571a5761571a614eaa565b61572e836157288354615524565b836156bd565b6000601f841160018114615762576000851561574a5750838201355b600019600387901b1c1916600186901b1783556125c4565b600083815260209020601f19861690835b828110156157935786850135825560209485019460019092019101615773565b50868210156157b05760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a082013560058201556006810160c083013561580a81614be5565b81546001600160a01b0319166001600160a01b039190911617905561583260e0830183615677565b612243818360078601615703565b6000600019821415615854576158546155ca565b5060010190565b6000808335601e1984360301811261587257600080fd5b83016020810192503590506001600160401b0381111561589157600080fd5b803603831315614e3f57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408082528181018490526000906060808401600587901b850182018885805b8a81101561599b57888403605f190185528235368d900360fe1901811261590e578283fd5b8c018035855260208082013581870152888201358987015287820135888701526080808301359087015260a080830135908701526101009060c08084013561595581614be5565b6001600160a01b03169088015260e06159708482018561585b565b945083828a0152615984848a0186836158a0565b9983019998505050949094019350506001016158e9565b505050861515602087015293506138c492505050565b600080604083850312156159c457600080fd5b82516001600160401b038111156159da57600080fd5b8301601f810185136159eb57600080fd5b80516159f9614f3682614ef0565b818152866020838501011115615a0e57600080fd5b615a1f826020830160208601614b61565b60209590950151949694955050505050565b60008551615a43818460208a01614b61565b820184868237909301918252506020019392505050565b6020808252600f908201526e08adcc6e4f2e0e8cac840c4c2e8c6d608b1b604082015260600190565b600082821015615a9557615a956155ca565b500390565b600081615aa957615aa96155ca565b506000190190565b60008251615ac3818460208701614b61565b600360fc1b920191825250600101919050565b60008351615ae8818460208801614b61565b835190830190615afc818360208801614b61565b01949350505050565b60008060408385031215615b1857600080fd5b82356001600160401b03811115615b2e57600080fd5b615b3a85828601614f17565b95602094909401359450505050565b82848237909101908152602001919050565b6020808252600f908201526e45786365656473206d61782062707360881b604082015260600190565b7402832b936b4b9b9b4b7b7399d1030b1b1b7bab73a1605d1b815260008351615bb4816015850160208801614b61565b7001034b99036b4b9b9b4b733903937b6329607d1b6015918401918201528351615be5816026840160208801614b61565b01602601949350505050565b60208082526002908201526110ab60f11b604082015260600190565b604081526000615c206040830185614b8d565b82810360208401526137708185614b8d565b6000825161566d818460208701614b61565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061250090830184614b8d565b600060208284031215615c8957600080fd5b815161411081614b2e565b600082615ca357615ca361562d565b500690565b858152606060208201526000615cc26060830186886158a0565b8281036040840152615cd58185876158a0565b98975050505050505050565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600060208284031215615d3e57600080fd5b815161411081614e4656fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa264697066735822122019af3ec328d365bc6c5a5feda92a6590ab1d2cd9d7082600c3c5c2f4490eb96c64736f6c634300080c0033