[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "BatchMintInvalidBatchId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "BatchMintInvalidTokenId", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "batchId", "type": "uint256" } ], "name": "BatchMintMetadataFrozen", "type": "error" }, { "inputs": [], "name": "ContractMetadataUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "CurrencyTransferLibFailedNativeTransfer", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedLimit", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimExceedMaxSupply", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expectedCurrency", "type": "address" }, { "internalType": "uint256", "name": "expectedPricePerToken", "type": "uint256" }, { "internalType": "address", "name": "actualCurrency", "type": "address" }, { "internalType": "uint256", "name": "actualExpectedPricePerToken", "type": "uint256" } ], "name": "DropClaimInvalidTokenPrice", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "expected", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "DropClaimNotStarted", "type": "error" }, { "inputs": [], "name": "DropExceedMaxSupply", "type": "error" }, { "inputs": [], "name": "DropNoActiveCondition", "type": "error" }, { "inputs": [], "name": "DropUnauthorized", "type": "error" }, { "inputs": [], "name": "LazyMintInvalidAmount", "type": "error" }, { "inputs": [], "name": "LazyMintUnauthorized", "type": "error" }, { "inputs": [], "name": "OwnableUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "role", "type": "bytes32" } ], "name": "PermissionsAlreadyGranted", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "expected", "type": "address" }, { "internalType": "address", "name": "actual", "type": "address" } ], "name": "PermissionsInvalidPermission", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "PermissionsUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "PlatformFeeExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PlatformFeeInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PlatformFeeUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "PrimarySaleInvalidRecipient", "type": "error" }, { "inputs": [], "name": "PrimarySaleUnauthorized", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "max", "type": "uint256" }, { "internalType": "uint256", "name": "actual", "type": "uint256" } ], "name": "RoyaltyExceededMaxFeeBps", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "recipient", "type": "address" } ], "name": "RoyaltyInvalidRecipient", "type": "error" }, { "inputs": [], "name": "RoyaltyUnauthorized", "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": "uint256", "name": "tokenId", "type": "uint256" }, { "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": "tokenId", "type": "uint256" }, { "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": "tokenId", "type": "uint256" }, { "indexed": false, "internalType": "address", "name": "saleRecipient", "type": "address" } ], "name": "SaleRecipientForTokenUpdated", "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": "tokenId", "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": "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": "uint256", "name": "", "type": "uint256" } ], "name": "batchFrozen", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "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": [ { "internalType": "address", "name": "_receiver", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "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 IDrop1155.AllowlistProof", "name": "_allowlistProof", "type": "tuple" }, { "internalType": "bytes", "name": "_data", "type": "bytes" } ], "name": "claim", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "uint256", "name": "_index", "type": "uint256" } ], "name": "freezeBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "getActiveClaimConditionId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "_tokenId", "type": "uint256" }, { "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": "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": "_tokenId", "type": "uint256" }, { "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": "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": "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": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "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": "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": "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": "uint256", "name": "", "type": "uint256" } ], "name": "saleRecipient", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "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": "_tokenId", "type": "uint256" }, { "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": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "address", "name": "_saleRecipient", "type": "address" } ], "name": "setSaleRecipientForToken", "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": "_index", "type": "uint256" }, { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "updateBatchBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" } ], "name": "uri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_conditionId", "type": "uint256" }, { "internalType": "address", "name": "_claimer", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "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 IDrop1155.AllowlistProof", "name": "_allowlistProof", "type": "tuple" } ], "name": "verifyClaim", "outputs": [ { "internalType": "bool", "name": "isOverride", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b806200004f5750303b1580156200004f575060005460ff166001145b620000b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000db576000805461ff0019166101001790555b801562000122576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50615b2980620001336000396000f3fe6080604052600436106102c15760003560e01c80638da5cb5b116101775780638da5cb5b146107205780639010d07c1461073e57806391d148541461075e578063938e3d7b1461077e57806395d89b411461079e5780639bcf7a15146107b3578063a07ced9e146107d3578063a0a8e460146107f3578063a217fddf1461080f578063a22cb46514610824578063a32fa5b314610844578063ac9650d814610864578063b24f2d3914610891578063b6f10c79146108bc578063bd85b039146108dc578063c7337d6b14610909578063ca15c8731461093f578063cb2ef6f71461095f578063d37c353b14610980578063d45573f6146109a0578063d45b28d7146109b5578063d547741f146109e2578063de903ddd14610a02578063e159163414610a22578063e57553da14610a42578063e8a3d48514610a66578063e9703d2514610a7b578063e985e9c514610abd578063ea1def9c14610b06578063f242432a14610b26578063f28083c314610b4657600080fd5b8062fdd58e146102c657806301ffc9a7146102f957806306fdde0314610329578063079fe40e1461034b5780630e89341c1461036d57806313af40351461038d578063183718d1146103af5780631e7ac488146103cf5780632419f51b146103ef578063248a9ca31461040f57806324aaffaa1461043c57806329c49b9b146104695780632a55205a146104895780632eb2c2d6146104b75780632f2ff15d146104d757806336568abe146104f75780633b1475a7146105175780634cc157df1461052c5780634e1273f41461056e578063572b6c051461059b57806357bc3d78146105bb5780635811ddab146105ce5780635ab063e81461061b578063600dd5ea1461063b57806363b45e2d1461065b5780636b20c454146106705780636f4f2837146106905780637e54523c146106b057806383040532146106d057806387198cf214610700575b600080fd5b3480156102d257600080fd5b506102e66102e136600461456e565b610b6d565b6040519081526020015b60405180910390f35b34801561030557600080fd5b506103196103143660046145b0565b610c08565b60405190151581526020016102f0565b34801561033557600080fd5b5061033e610c30565b6040516102f0919061461d565b34801561035757600080fd5b50610360610cbe565b6040516102f09190614630565b34801561037957600080fd5b5061033e610388366004614644565b610ccd565b34801561039957600080fd5b506103ad6103a836600461465d565b610d0e565b005b3480156103bb57600080fd5b506103ad6103ca3660046146d3565b610d3f565b3480156103db57600080fd5b506103ad6103ea36600461456e565b61105b565b3480156103fb57600080fd5b506102e661040a366004614644565b61108e565b34801561041b57600080fd5b506102e661042a366004614644565b6000908152600d602052604090205490565b34801561044857600080fd5b506102e6610457366004614644565b60de6020526000908152604090205481565b34801561047557600080fd5b506103ad610484366004614731565b6110e0565b34801561049557600080fd5b506104a96104a4366004614761565b611152565b6040516102f0929190614783565b3480156104c357600080fd5b506103ad6104d23660046148ea565b61118f565b3480156104e357600080fd5b506103ad6104f2366004614731565b6111ed565b34801561050357600080fd5b506103ad610512366004614731565b611258565b34801561052357600080fd5b50600b546102e6565b34801561053857600080fd5b5061054c610547366004614644565b61129c565b604080516001600160a01b03909316835261ffff9091166020830152016102f0565b34801561057a57600080fd5b5061058e610589366004614a0b565b611307565b6040516102f09190614aaa565b3480156105a757600080fd5b506103196105b636600461465d565b611428565b6103ad6105c9366004614acf565b611446565b3480156105da57600080fd5b506102e66105e9366004614b74565b6000928352600f60209081526040808520938552600390930181528284206001600160a01b0390921684525290205490565b34801561062757600080fd5b506102e6610636366004614644565b611580565b34801561064757600080fd5b506103ad61065636600461456e565b611614565b34801561066757600080fd5b506008546102e6565b34801561067c57600080fd5b506103ad61068b366004614bad565b611643565b34801561069c57600080fd5b506103ad6106ab36600461465d565b6116e0565b3480156106bc57600080fd5b506103ad6106cb36600461456e565b61170e565b3480156106dc57600080fd5b506103196106eb366004614644565b600a6020526000908152604090205460ff1681565b34801561070c57600080fd5b506103ad61071b366004614761565b61173d565b34801561072c57600080fd5b506007546001600160a01b0316610360565b34801561074a57600080fd5b50610360610759366004614761565b611799565b34801561076a57600080fd5b50610319610779366004614731565b611887565b34801561078a57600080fd5b506103ad610799366004614c22565b6118b2565b3480156107aa57600080fd5b5061033e6118e0565b3480156107bf57600080fd5b506103ad6107ce366004614c56565b6118ed565b3480156107df57600080fd5b506103ad6107ee366004614644565b61191d565b3480156107ff57600080fd5b50604051600481526020016102f0565b34801561081b57600080fd5b506102e6600081565b34801561083057600080fd5b506103ad61083f366004614c8e565b611940565b34801561085057600080fd5b5061031961085f366004614731565b611952565b34801561087057600080fd5b5061088461087f366004614cbc565b6119a8565b6040516102f09190614cfd565b34801561089d57600080fd5b506004546001600160a01b03811690600160a01b900461ffff1661054c565b3480156108c857600080fd5b506103ad6108d7366004614d61565b611b1b565b3480156108e857600080fd5b506102e66108f7366004614644565b60dd6020526000908152604090205481565b34801561091557600080fd5b50610360610924366004614644565b60df602052600090815260409020546001600160a01b031681565b34801561094b57600080fd5b506102e661095a366004614644565b611b49565b34801561096b57600080fd5b506a44726f704552433131353560a81b6102e6565b34801561098c57600080fd5b506102e661099b366004614dc3565b611bd2565b3480156109ac57600080fd5b5061054c611cc9565b3480156109c157600080fd5b506109d56109d0366004614761565b611ce6565b6040516102f09190614e3c565b3480156109ee57600080fd5b506103ad6109fd366004614731565b611e4d565b348015610a0e57600080fd5b506103ad610a1d366004614ea9565b611e66565b348015610a2e57600080fd5b506103ad610a3d366004614f0b565b611ec0565b348015610a4e57600080fd5b506104a96002546003546001600160a01b0390911691565b348015610a7257600080fd5b5061033e612109565b348015610a8757600080fd5b50610aaf610a96366004614644565b600f602052600090815260409020805460019091015482565b6040516102f092919061501d565b348015610ac957600080fd5b50610319610ad836600461502b565b6001600160a01b03918216600090815260a76020908152604080832093909416825291909152205460ff1690565b348015610b1257600080fd5b50610319610b21366004615059565b612116565b348015610b3257600080fd5b506103ad610b413660046150d2565b6124c0565b348015610b5257600080fd5b50600254600160b01b900460ff166040516102f09190615150565b60006001600160a01b038316610bdd5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815260a6602090815260408083206001600160a01b03861684529091529020545b92915050565b6000610c1382612517565b80610c025750506001600160e01b03191663152a902d60e11b1490565b60d88054610c3d90615178565b80601f0160208091040260200160405190810160405280929190818152602001828054610c6990615178565b8015610cb65780601f10610c8b57610100808354040283529160200191610cb6565b820191906000526020600020905b815481529060010190602001808311610c9957829003601f168201915b505050505081565b6006546001600160a01b031690565b60606000610cda83612567565b905080610ce6846126e5565b604051602001610cf79291906151ac565b604051602081830303815290604052915050919050565b610d16612777565b610d33576040516316ccb9cb60e11b815260040160405180910390fd5b610d3c8161278a565b50565b610d47612777565b610d64576040516356c4ef5160e01b815260040160405180910390fd5b6000848152600f6020526040902080546001820154818415610d8d57610d8a82846151f1565b90505b600184018690558084556000805b87811015610f1757801580610dd35750888882818110610dbd57610dbd615204565b9050602002810190610dcf919061521a565b3582105b610e045760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610bd4565b60006002870181610e1584876151f1565b8152602001908152602001600020600201549050898983818110610e3b57610e3b615204565b9050602002810190610e4d919061521a565b60200135811115610e715760405163032b539f60e11b815260040160405180910390fd5b898983818110610e8357610e83615204565b9050602002810190610e95919061521a565b600288016000610ea585886151f1565b81526020019081526020016000208181610ebf9190615396565b50819050600288016000610ed385886151f1565b8152602081019190915260400160002060020155898983818110610ef957610ef9615204565b9050602002810190610f0b919061521a565b35925050600101610d9b565b508515610f8e57835b82811015610f88576000818152600280880160205260408220828155600181018390559081018290556003810182905560048101829055600581018290556006810180546001600160a01b031916905590610f7e60078301826144fb565b5050600101610f20565b50611014565b8683111561101457865b8381101561101257600286016000610fb083866151f1565b81526020810191909152604001600090812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b03191690559061100860078301826144fb565b5050600101610f98565b505b887f066f72a648b18490c0bc4ab07d508cdb5d6589fa188c63cfba1e0547f3a6556a89898960405161104893929190615482565b60405180910390a2505050505050505050565b611063612777565b611080576040516387d20a6d60e01b815260040160405180910390fd5b61108a82826127dc565b5050565b600061109960085490565b82106110bb57604051630793127760e11b815260048101839052602401610bd4565b600882815481106110ce576110ce615204565b90600052602060002001549050919050565b60006110ec813361289a565b600083815260df60205260409081902080546001600160a01b0319166001600160a01b0385161790555183907f359479172ba65a6639b0df237f704e030498cb7135d5e89b56f598bd1d84b01690611145908590614630565b60405180910390a2505050565b6000806000806111618661129c565b90945084925061ffff16905061271061117a828761556a565b6111849190615581565b925050509250929050565b6111976128e1565b6001600160a01b0316856001600160a01b031614806111bd57506111bd85610ad86128e1565b6111d95760405162461bcd60e51b8152600401610bd4906155a3565b6111e685858585856128eb565b5050505050565b6000828152600d6020526040902054611206903361289a565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff161561124e578082604051636a4e0b3560e11b8152600401610bd4929190614783565b61108a8282612a9c565b336001600160a01b03821614611292576040516320b4e31160e11b81523360048201526001600160a01b0382166024820152604401610bd4565b61108a8282612ab0565b6000818152600560209081526040808320815180830190925280546001600160a01b0316808352600190910154928201929092528291156112e357805160208201516112fd565b6004546001600160a01b03811690600160a01b900461ffff165b9250925050915091565b6060815183511461136c5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610bd4565b600083516001600160401b038111156113875761138761479c565b6040519080825280602002602001820160405280156113b0578160200160208202803683370190505b50905060005b8451811015611420576113fb8582815181106113d4576113d4615204565b60200260200101518583815181106113ee576113ee615204565b6020026020010151610b6d565b82828151811061140d5761140d615204565b60209081029190910101526001016113b6565b509392505050565b6001600160a01b031660009081526042602052604090205460ff1690565b61145586888787878787612b07565b600061146087611580565b90506114788161146e612b95565b8989898989612116565b506000878152600f60209081526040808320848452600290810190925282200180548892906114a89084906151f1565b90915550506000878152600f60209081526040808320848452600301909152812087916114d3612b95565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461150291906151f1565b909155506115169050876000888888612b9f565b611521888888612ce2565b876001600160a01b0316611533612b95565b6001600160a01b0316827ffa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e8a8a60405161156e92919061501d565b60405180910390a45050505050505050565b6000818152600f602052604081206001810154815483916115a0916151f1565b90505b81548111156115fa576002820160006115bd6001846155f1565b81526020019081526020016000206000015442106115e8576115e06001826155f1565b949350505050565b806115f281615604565b9150506115a3565b506040516303d03c7360e61b815260040160405180910390fd5b61161c612777565b61163957604051636fae358160e11b815260040160405180910390fd5b61108a8282612cfd565b61164b6128e1565b6001600160a01b0316836001600160a01b03161480611671575061167183610ad86128e1565b6116d05760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610bd4565b6116db838383612d81565b505050565b6116e8612777565b61170557604051631c98210f60e21b815260040160405180910390fd5b610d3c81612f97565b611716612777565b611733576040516387d20a6d60e01b815260040160405180910390fd5b61108a828261300a565b6000611749813361289a565b600083815260de602052604090819020839055517fc58cd6132bb46df23d468939c03dd023b74b509aaa6b04c39d5a6461c65963bd9061178c908590859061501d565b60405180910390a1505050565b6000828152600e602052604081205481805b8281101561187e576000868152600e602090815260408083208484526001019091529020546001600160a01b03161561182757848203611815576000868152600e602090815260408083209383526001909301905220546001600160a01b03169250610c02915050565b6118206001836151f1565b915061186c565b611832866000611887565b801561185957506000868152600e6020908152604080832083805260020190915290205481145b1561186c576118696001836151f1565b91505b6118776001826151f1565b90506117ab565b50505092915050565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6118ba612777565b6118d757604051639f7f092560e01b815260040160405180910390fd5b610d3c81613068565b60d98054610c3d90615178565b6118f5612777565b61191257604051636fae358160e11b815260040160405180910390fd5b6116db838383613138565b60dc5461192a813361289a565b60006119358361108e565b90506116db816131e7565b61108a61194b6128e1565b83836132e8565b6000828152600c6020908152604080832083805290915281205460ff1661199f57506000828152600c602090815260408083206001600160a01b038516845290915290205460ff16610c02565b50600192915050565b6060816001600160401b038111156119c2576119c261479c565b6040519080825280602002602001820160405280156119f557816020015b60608152602001906001900390816119e05790505b5090506000611a026128e1565b9050336001600160a01b038216141560005b8481101561187e578115611a9357611a7130878784818110611a3857611a38615204565b9050602002810190611a4a919061523a565b86604051602001611a5d9392919061561b565b6040516020818303038152906040526133c0565b848281518110611a8357611a83615204565b6020026020010181905250611b13565b611af530878784818110611aa957611aa9615204565b9050602002810190611abb919061523a565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506133c092505050565b848281518110611b0757611b07615204565b60200260200101819052505b600101611a14565b611b23612777565b611b40576040516387d20a6d60e01b815260040160405180910390fd5b610d3c816133ec565b6000818152600e6020526040812054815b81811015611bad576000848152600e602090815260408083208484526001019091529020546001600160a01b031615611b9b57611b986001846151f1565b92505b611ba66001826151f1565b9050611b5a565b50611bb9836000611887565b15611bcc57611bc96001836151f1565b91505b50919050565b6000611bdc613450565b611bf95760405163f409ec7360e01b815260040160405180910390fd5b85600003611c1a57604051638fd36a9b60e01b815260040160405180910390fd5b6000600b549050611c62818888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061346092505050565b600b919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d6001611c988a846151f1565b611ca291906155f1565b88888888604051611cb795949392919061563c565b60405180910390a25095945050505050565b6002546001600160a01b03811691600160a01b90910461ffff1690565b611d3a60405180610100016040528060008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b03168152602001606081525090565b6000838152600f6020908152604080832085845260029081018352928190208151610100810183528154815260018201549381019390935292830154908201526003820154606082015260048201546080820152600582015460a082015260068201546001600160a01b031660c082015260078201805491929160e084019190611dc390615178565b80601f0160208091040260200160405190810160405280929190818152602001828054611def90615178565b8015611e3c5780601f10611e1157610100808354040283529160200191611e3c565b820191906000526020600020905b815481529060010190602001808311611e1f57829003601f168201915b505050505081525050905092915050565b6000828152600d6020526040902054611292903361289a565b60dc54611e73813361289a565b6000611e7e8561108e565b90506111e68185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134c492505050565b600054610100900460ff1615808015611ee05750600054600160ff909116105b80611f015750611eef30613549565b158015611f01575060005460ff166001145b611f645760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bd4565b6000805460ff191660011790558015611f87576000805461ff0019166101001790555b7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f80611ff38a613558565b61200b60405180602001604052806000815250613590565b6120148b613068565b61201d8e61278a565b61202860008f612a9c565b612032828f612a9c565b61203c838f612a9c565b612047836000612a9c565b612051818f612a9c565b61205b81826135c0565b61206e85876001600160801b03166127dc565b61208188886001600160801b0316612cfd565b61208a89612f97565b60da83905560db82905560dc81905560d86120a58e82615675565b5060d96120b28d82615675565b5050505080156120fc576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b60018054610c3d90615178565b6000858152600f602090815260408083208a8452600290810183528184208251610100810184528154815260018201549481019490945290810154918301919091526003810154606083015260048101546080830152600581015460a083015260068101546001600160a01b031660c08301526007810180548493929160e08401916121a190615178565b80601f01602080910402602001604051908101604052809291908181526020018280546121cd90615178565b801561221a5780601f106121ef5761010080835404028352916020019161221a565b820191906000526020600020905b8154815290600101906020018083116121fd57829003601f168201915b50505091909252505050606081015160a082015160c083015160808401519394509192909190156122c8576122c4612252878061572e565b86608001518e8a602001358b604001358c6060016020810190612275919061465d565b6040516001600160601b0319606095861b811660208301526034820194909452605481019290925290921b16607482015260880160405160208183030381529060405280519060200120613608565b5094505b841561234f5785602001356000036122e057826122e6565b85602001355b92506000198660400135036122fb5781612301565b85604001355b915060001986604001351415801561233257506000612326608088016060890161465d565b6001600160a01b031614155b61233c578061234c565b61234c608087016060880161465d565b90505b6000600f60008c815260200190815260200160002060030160008e815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020549050816001600160a01b0316896001600160a01b03161415806123bf5750828814155b156123fe5760405163f13474e960e01b81526001600160a01b03808b166004830152602482018a90528316604482015260648101849052608401610bd4565b891580612413575083612411828c6151f1565b115b1561243e5783612423828c6151f1565b604051639e7762db60e01b8152600401610bd492919061501d565b84602001518a866040015161245391906151f1565b11156124895784602001518a866040015161246e91906151f1565b60405163fe381cc960e01b8152600401610bd492919061501d565b84514210156124b05784516040516322b1048f60e11b8152610bd49190429060040161501d565b5050505050979650505050505050565b6124c86128e1565b6001600160a01b0316856001600160a01b031614806124ee57506124ee85610ad86128e1565b61250a5760405162461bcd60e51b8152600401610bd4906155a3565b6111e68585858585613693565b60006001600160e01b03198216636cdb3d1360e11b148061254857506001600160e01b031982166303a24d0760e21b145b80610c0257506301ffc9a760e01b6001600160e01b0319831614610c02565b6060600061257460085490565b9050600060088054806020026020016040519081016040528092919081815260200182805480156125c457602002820191906000526020600020905b8154815260200190600101908083116125b0575b5050505050905060005b828110156126c8578181815181106125e8576125e8615204565b60200260200101518510156126b6576009600083838151811061260d5761260d615204565b60200260200101518152602001908152602001600020805461262e90615178565b80601f016020809104026020016040519081016040528092919081815260200182805461265a90615178565b80156126a75780601f1061267c576101008083540402835291602001916126a7565b820191906000526020600020905b81548152906001019060200180831161268a57829003601f168201915b50505050509350505050919050565b6126c16001826151f1565b90506125ce565b506040516309797f6960e21b815260048101859052602401610bd4565b606060006126f2836137e6565b60010190506000816001600160401b038111156127115761271161479c565b6040519080825280601f01601f19166020018201604052801561273b576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461274557509392505050565b6000612785816107796128e1565b905090565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b6127108111156128055761271081604051631c1a1fe960e11b8152600401610bd492919061501d565b6001600160a01b03821661282e57816040516334c5763b60e21b8152600401610bd49190614630565b600280546001600160b01b031916600160a01b61ffff8416026001600160a01b031916176001600160a01b0384169081179091556040518281527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a25050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff1661108a57808260405163043c588360e11b8152600401610bd4929190614783565b60006127856138bc565b815183511461290c5760405162461bcd60e51b8152600401610bd490615777565b6001600160a01b0384166129325760405162461bcd60e51b8152600401610bd4906157bf565b600061293c6128e1565b905061294c8187878787876138e1565b60005b8451811015612a2e57600085828151811061296c5761296c615204565b60200260200101519050600085838151811061298a5761298a615204565b602090810291909101810151600084815260a6835260408082206001600160a01b038e1683529093529190912054909150818110156129db5760405162461bcd60e51b8152600401610bd490615804565b600083815260a6602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612a1a9084906151f1565b90915550506001909301925061294f915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612a7e92919061584e565b60405180910390a4612a94818787878787613a8c565b505050505050565b612aa68282613bee565b61108a8282613c49565b612aba8282613cb6565b6000828152600e602090815260408083206001600160a01b03851680855260028201808552838620805487526001909301855292852080546001600160a01b031916905584529152555050565b600087815260de60205260409020541580612b465750600087815260de602090815260408083205460dd90925290912054612b439087906151f1565b11155b612b8c5760405162461bcd60e51b8152602060048201526017602482015276657863656564206d617820746f74616c20737570706c7960481b6044820152606401610bd4565b50505050505050565b60006127856128e1565b80600003612bca573415612bc55760405162461bcd60e51b8152600401610bd49061587c565b6111e6565b600080612bd5611cc9565b909250905060006001600160a01b03871615612bf15786612c33565b600088815260df60205260409020546001600160a01b031615612c2b57600088815260df60205260409020546001600160a01b0316612c33565b612c33610cbe565b90506000612c41858861556a565b90506000612710612c5661ffff86168461556a565b612c609190615581565b9050600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03891601612c925750348214612c96565b5034155b80612cb35760405162461bcd60e51b8152600401610bd49061587c565b612cc688612cbf6128e1565b8885613d18565b6120fc88612cd26128e1565b86612cdd86886155f1565b613d18565b6116db83838360405180602001604052806000815250613d5e565b612710811115612d265761271081604051630a4930ad60e31b8152600401610bd492919061501d565b600480546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9060200161288e565b6001600160a01b038316612de35760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610bd4565b8051825114612e045760405162461bcd60e51b8152600401610bd490615777565b6000612e0e6128e1565b9050612e2e818560008686604051806020016040528060008152506138e1565b60005b8351811015612f28576000848281518110612e4e57612e4e615204565b602002602001015190506000848381518110612e6c57612e6c615204565b602090810291909101810151600084815260a6835260408082206001600160a01b038c168352909352919091205490915081811015612ef95760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610bd4565b600092835260a6602090815260408085206001600160a01b038b16865290915290922091039055600101612e31565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051612f7992919061584e565b60405180910390a46040805160208101909152600090525b50505050565b6001600160a01b038116612fc05780604051630f7cac3760e21b8152600401610bd49190614630565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b6003819055600280546001600160a01b0319166001600160a01b0384161790556040517ff8086cee80709bd44c82f89dbca54115ebd05e840a88ab81df9cf5be9754eb639061305c9084908490614783565b60405180910390a15050565b60006001805461307790615178565b80601f01602080910402602001604051908101604052809291908181526020018280546130a390615178565b80156130f05780601f106130c5576101008083540402835291602001916130f0565b820191906000526020600020905b8154815290600101906020018083116130d357829003601f168201915b5050505050905081600190816131069190615675565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a16818360405161305c929190615898565b6127108111156131615761271081604051630a4930ad60e31b8152600401610bd492919061501d565b6040805180820182526001600160a01b038481168083526020808401868152600089815260058352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d91015b60405180910390a3505050565b6000818152600960205260408120805461320090615178565b80601f016020809104026020016040519081016040528092919081815260200182805461322c90615178565b80156132795780601f1061324e57610100808354040283529160200191613279565b820191906000526020600020905b81548152906001019060200180831161325c57829003601f168201915b5050505050905080516000036132a557604051630793127760e11b815260048101839052602401610bd4565b6000828152600a6020526040808220805460ff19166001179055517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d71649190a15050565b816001600160a01b0316836001600160a01b03160361335b5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610bd4565b6001600160a01b03838116600081815260a76020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016131da565b60606133e58383604051806060016040528060278152602001615acd60279139613e93565b9392505050565b6002805482919060ff60b01b1916600160b01b8360018111156134115761341161513a565b02179055507fd246da9440709ce0dd3f4fd669abc85ada012ab9774b8ecdcc5059ba1486b9c1816040516134459190615150565b60405180910390a150565b600061278560db546107796128e1565b60008061346d84866151f1565b60088054600181019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30181905560008181526009602052604090209092508291506134bb8482615675565b50935093915050565b6000828152600a602052604090205460ff16156134f757604051635d079ac960e11b815260048101839052602401610bd4565b600082815260096020526040902061350f8282615675565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61353a83613f0b565b8360405161305c92919061501d565b6001600160a01b03163b151590565b600054610100900460ff1661357f5760405162461bcd60e51b8152600401610bd4906158bd565b613587613ffd565b610d3c81614026565b600054610100900460ff166135b75760405162461bcd60e51b8152600401610bd4906158bd565b610d3c816140ab565b6000828152600d6020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000808281805b878110156136845761362260028361556a565b9150600089898381811061363857613638615204565b90506020020135905080841161365d576000848152602082905260409020935061367b565b600081815260208590526040902093506136786001846151f1565b92505b5060010161360f565b50941496939550929350505050565b6001600160a01b0384166136b95760405162461bcd60e51b8152600401610bd4906157bf565b60006136c36128e1565b905060006136d0856140b7565b905060006136dd856140b7565b90506136ed8389898585896138e1565b600086815260a6602090815260408083206001600160a01b038c168452909152902054858110156137305760405162461bcd60e51b8152600401610bd490615804565b600087815260a6602090815260408083206001600160a01b038d8116855292528083208985039055908a1682528120805488929061376f9084906151f1565b92505081905550876001600160a01b0316896001600160a01b0316856001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628a8a6040516137c592919061501d565b60405180910390a46137db848a8a8a8a8a614102565b505050505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b83106138255772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b831061384f576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061386d57662386f26fc10000830492506010015b6305f5e1008310613885576305f5e100830492506008015b612710831061389957612710830492506004015b606483106138ab576064830492506002015b600a8310610c025760010192915050565b60006138c733611428565b156138d9575060131936013560601c90565b503390565b90565b6138ee60da546000611887565b15801561390357506001600160a01b03851615155b801561391757506001600160a01b03841615155b156139925761392860da5486611887565b8061393a575061393a60da5485611887565b6139925760405162461bcd60e51b8152602060048201526024808201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526332b9399760e11b6064820152608401610bd4565b6001600160a01b038516613a105760005b8351811015613a0e578281815181106139be576139be615204565b602002602001015160dd60008684815181106139dc576139dc615204565b602002602001015181526020019081526020016000206000828254613a0191906151f1565b90915550506001016139a3565b505b6001600160a01b038416612a945760005b8351811015612b8c57828181518110613a3c57613a3c615204565b602002602001015160dd6000868481518110613a5a57613a5a615204565b602002602001015181526020019081526020016000206000828254613a7f91906155f1565b9091555050600101613a21565b613a9e846001600160a01b0316613549565b15612a945760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613ad79089908990889088908890600401615908565b6020604051808303816000875af1925050508015613b12575060408051601f3d908101601f19168201909252613b0f9181019061595a565b60015b613bbe57613b1e615977565b806308c379a003613b575750613b32615992565b80613b3d5750613b59565b8060405162461bcd60e51b8152600401610bd4919061461d565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610bd4565b6001600160e01b0319811663bc197c8160e01b14612b8c5760405162461bcd60e51b8152600401610bd490615a1b565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000828152600e6020526040812080549160019190613c6883856151f1565b90915550506000928352600e6020908152604080852083865260018101835281862080546001600160a01b039096166001600160a01b03199096168617905593855260029093019052912055565b613cc0828261289a565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b8015612f915773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03851601613d5257613d4d82826141c4565b612f91565b612f918484848461423c565b6001600160a01b038416613dbe5760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610bd4565b6000613dc86128e1565b90506000613dd5856140b7565b90506000613de2856140b7565b9050613df3836000898585896138e1565b600086815260a6602090815260408083206001600160a01b038b16845290915281208054879290613e259084906151f1565b92505081905550866001600160a01b031660006001600160a01b0316846001600160a01b03167fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f628989604051613e7c92919061501d565b60405180910390a4612b8c83600089898989614102565b6060600080856001600160a01b031685604051613eb09190615a63565b600060405180830381855af49150503d8060008114613eeb576040519150601f19603f3d011682016040523d82523d6000602084013e613ef0565b606091505b5091509150613f018683838761428f565b9695505050505050565b600080613f1760085490565b905060006008805480602002602001604051908101604052809291908181526020018280548015613f6757602002820191906000526020600020905b815481526020019060010190808311613f53575b5050505050905060005b82811015613fe057818181518110613f8b57613f8b615204565b60200260200101518503613fd8578015613fcd5781613fab6001836155f1565b81518110613fbb57613fbb615204565b60200260200101519350505050919050565b506000949350505050565b600101613f71565b50604051630793127760e11b815260048101859052602401610bd4565b600054610100900460ff166140245760405162461bcd60e51b8152600401610bd4906158bd565b565b600054610100900460ff1661404d5760405162461bcd60e51b8152600401610bd4906158bd565b60005b815181101561108a5760016042600084848151811061407157614071615204565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff1916911515919091179055600101614050565b60a861108a8282615675565b604080516001808252818301909252606091600091906020808301908036833701905050905082816000815181106140f1576140f1615204565b602090810291909101015292915050565b614114846001600160a01b0316613549565b15612a945760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e619061414d9089908990889088908890600401615a75565b6020604051808303816000875af1925050508015614188575060408051601f3d908101601f191682019092526141859181019061595a565b60015b61419457613b1e615977565b6001600160e01b0319811663f23a6e6160e01b14612b8c5760405162461bcd60e51b8152600401610bd490615a1b565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114614211576040519150601f19603f3d011682016040523d82523d6000602084013e614216565b606091505b50509050806116db578282604051635fdc4ec160e11b8152600401610bd4929190614783565b816001600160a01b0316836001600160a01b03160315612f9157306001600160a01b0384160361427a57613d4d6001600160a01b0385168383614306565b612f916001600160a01b03851684848461435c565b606083156142fc5782516000036142f5576142a985613549565b6142f55760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bd4565b50816115e0565b6115e08383614394565b6116db8363a9059cbb60e01b8484604051602401614325929190614783565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526143a4565b6040516001600160a01b0380851660248301528316604482015260648101829052612f919085906323b872dd60e01b90608401614325565b815115613b3d5781518083602001fd5b60006143f9826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b03166144769092919063ffffffff16565b8051909150156116db57808060200190518101906144179190615aaf565b6116db5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bd4565b60606115e0848460008585600080866001600160a01b0316858760405161449d9190615a63565b60006040518083038185875af1925050503d80600081146144da576040519150601f19603f3d011682016040523d82523d6000602084013e6144df565b606091505b50915091506144f08783838761428f565b979650505050505050565b50805461450790615178565b6000825580601f10614517575050565b601f016020900490600052602060002090810190610d3c91905b808211156145455760008155600101614531565b5090565b6001600160a01b0381168114610d3c57600080fd5b803561456981614549565b919050565b6000806040838503121561458157600080fd5b823561458c81614549565b946020939093013593505050565b6001600160e01b031981168114610d3c57600080fd5b6000602082840312156145c257600080fd5b81356133e58161459a565b60005b838110156145e85781810151838201526020016145d0565b50506000910152565b600081518084526146098160208601602086016145cd565b601f01601f19169290920160200192915050565b6020815260006133e560208301846145f1565b6001600160a01b0391909116815260200190565b60006020828403121561465657600080fd5b5035919050565b60006020828403121561466f57600080fd5b81356133e581614549565b60008083601f84011261468c57600080fd5b5081356001600160401b038111156146a357600080fd5b6020830191508360208260051b85010111156146be57600080fd5b9250929050565b8015158114610d3c57600080fd5b600080600080606085870312156146e957600080fd5b8435935060208501356001600160401b0381111561470657600080fd5b6147128782880161467a565b9094509250506040850135614726816146c5565b939692955090935050565b6000806040838503121561474457600080fd5b82359150602083013561475681614549565b809150509250929050565b6000806040838503121561477457600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b03811182821017156147d7576147d761479c565b6040525050565b60006001600160401b038211156147f7576147f761479c565b5060051b60200190565b600082601f83011261481257600080fd5b8135602061481f826147de565b60405161482c82826147b2565b80915083815260208101915060208460051b87010193508684111561485057600080fd5b602086015b8481101561486c5780358352918301918301614855565b509695505050505050565b600082601f83011261488857600080fd5b81356001600160401b038111156148a1576148a161479c565b6040516148b8601f8301601f1916602001826147b2565b8181528460208386010111156148cd57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a0868803121561490257600080fd5b853561490d81614549565b9450602086013561491d81614549565b935060408601356001600160401b038082111561493957600080fd5b61494589838a01614801565b9450606088013591508082111561495b57600080fd5b61496789838a01614801565b9350608088013591508082111561497d57600080fd5b5061498a88828901614877565b9150509295509295909350565b600082601f8301126149a857600080fd5b813560206149b5826147de565b6040516149c282826147b2565b80915083815260208101915060208460051b8701019350868411156149e657600080fd5b602086015b8481101561486c5780356149fe81614549565b83529183019183016149eb565b60008060408385031215614a1e57600080fd5b82356001600160401b0380821115614a3557600080fd5b614a4186838701614997565b93506020850135915080821115614a5757600080fd5b50614a6485828601614801565b9150509250929050565b60008151808452602080850194506020840160005b83811015614a9f57815187529582019590820190600101614a83565b509495945050505050565b6020815260006133e56020830184614a6e565b600060808284031215611bcc57600080fd5b600080600080600080600060e0888a031215614aea57600080fd5b8735614af581614549565b965060208801359550604088013594506060880135614b1381614549565b93506080880135925060a08801356001600160401b0380821115614b3657600080fd5b614b428b838c01614abd565b935060c08a0135915080821115614b5857600080fd5b50614b658a828b01614877565b91505092959891949750929550565b600080600060608486031215614b8957600080fd5b83359250602084013591506040840135614ba281614549565b809150509250925092565b600080600060608486031215614bc257600080fd5b8335614bcd81614549565b925060208401356001600160401b0380821115614be957600080fd5b614bf587838801614801565b93506040860135915080821115614c0b57600080fd5b50614c1886828701614801565b9150509250925092565b600060208284031215614c3457600080fd5b81356001600160401b03811115614c4a57600080fd5b6115e084828501614877565b600080600060608486031215614c6b57600080fd5b833592506020840135614c7d81614549565b929592945050506040919091013590565b60008060408385031215614ca157600080fd5b8235614cac81614549565b91506020830135614756816146c5565b60008060208385031215614ccf57600080fd5b82356001600160401b03811115614ce557600080fd5b614cf18582860161467a565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b82811015614d5457603f19888603018452614d428583516145f1565b94509285019290850190600101614d26565b5092979650505050505050565b600060208284031215614d7357600080fd5b8135600281106133e557600080fd5b60008083601f840112614d9457600080fd5b5081356001600160401b03811115614dab57600080fd5b6020830191508360208285010111156146be57600080fd5b600080600080600060608688031215614ddb57600080fd5b8535945060208601356001600160401b0380821115614df957600080fd5b614e0589838a01614d82565b90965094506040880135915080821115614e1e57600080fd5b50614e2b88828901614d82565b969995985093965092949392505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260018060a01b0360c08301511660e0820152600060e08301516101008081850152506115e06101208401826145f1565b600080600060408486031215614ebe57600080fd5b8335925060208401356001600160401b03811115614edb57600080fd5b614ee786828701614d82565b9497909650939450505050565b80356001600160801b038116811461456957600080fd5b6000806000806000806000806000806101408b8d031215614f2b57600080fd5b614f348b61455e565b995060208b01356001600160401b0380821115614f5057600080fd5b614f5c8e838f01614877565b9a5060408d0135915080821115614f7257600080fd5b614f7e8e838f01614877565b995060608d0135915080821115614f9457600080fd5b614fa08e838f01614877565b985060808d0135915080821115614fb657600080fd5b50614fc38d828e01614997565b965050614fd260a08c0161455e565b9450614fe060c08c0161455e565b9350614fee60e08c01614ef4565b9250614ffd6101008c01614ef4565b915061500c6101208c0161455e565b90509295989b9194979a5092959850565b918252602082015260400190565b6000806040838503121561503e57600080fd5b823561504981614549565b9150602083013561475681614549565b600080600080600080600060e0888a03121561507457600080fd5b87359650602088013561508681614549565b9550604088013594506060880135935060808801356150a481614549565b925060a0880135915060c08801356001600160401b038111156150c657600080fd5b614b658a828b01614abd565b600080600080600060a086880312156150ea57600080fd5b85356150f581614549565b9450602086013561510581614549565b9350604086013592506060860135915060808601356001600160401b0381111561512e57600080fd5b61498a88828901614877565b634e487b7160e01b600052602160045260246000fd5b602081016002831061517257634e487b7160e01b600052602160045260246000fd5b91905290565b600181811c9082168061518c57607f821691505b602082108103611bcc57634e487b7160e01b600052602260045260246000fd5b600083516151be8184602088016145cd565b8351908301906151d28183602088016145cd565b01949350505050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0257610c026151db565b634e487b7160e01b600052603260045260246000fd5b6000823560fe1983360301811261523057600080fd5b9190910192915050565b6000808335601e1984360301811261525157600080fd5b8301803591506001600160401b0382111561526b57600080fd5b6020019150368190038213156146be57600080fd5b601f8211156116db576000816000526020600020601f850160051c810160208610156152a95750805b601f850160051c820191505b81811015612a94578281556001016152b5565b600019600383901b1c191660019190911b1790565b6001600160401b038311156152f4576152f461479c565b615308836153028354615178565b83615280565b6000601f84116001811461533657600085156153245750838201355b61532e86826152c8565b8455506111e6565b600083815260209020601f19861690835b828110156153675786850135825560209485019460019092019101615347565b50868210156153845760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a082013560058201556006810160c08301356153de81614549565b81546001600160a01b0319166001600160a01b039190911617905561540660e083018361523a565b612f918183600786016152dd565b6000808335601e1984360301811261542b57600080fd5b83016020810192503590506001600160401b0381111561544a57600080fd5b8036038213156146be57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408082528181018490526000906060808401600587901b850182018885805b8a81101561555457888403605f190185528235368d900360fe190181126154c7578283fd5b8c018035855260208082013581870152888201358987015287820135888701526080808301359087015260a080830135908701526101009060c08084013561550e81614549565b6001600160a01b03169088015260e061552984820185615414565b945083828a015261553d848a018683615459565b9983019998505050949094019350506001016154a2565b505050861515602087015293506115e092505050565b8082028115828204841417610c0257610c026151db565b60008261559e57634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b81810381811115610c0257610c026151db565b600081615613576156136151db565b506000190190565b8284823760609190911b6001600160601b0319169101908152601401919050565b858152606060208201526000615656606083018688615459565b8281036040840152615669818587615459565b98975050505050505050565b81516001600160401b0381111561568e5761568e61479c565b6156a28161569c8454615178565b84615280565b602080601f8311600181146156d157600084156156bf5750858301515b6156c985826152c8565b865550612a94565b600085815260208120601f198616915b82811015615700578886015182559484019460019091019084016156e1565b508582101561571e5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808335601e1984360301811261574557600080fd5b8301803591506001600160401b0382111561575f57600080fd5b6020019150600581901b36038213156146be57600080fd5b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b6040815260006158616040830185614a6e565b82810360208401526158738185614a6e565b95945050505050565b60208082526002908201526110ab60f11b604082015260600190565b6040815260006158ab60408301856145f1565b828103602084015261587381856145f1565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a06040820181905260009061593490830186614a6e565b82810360608401526159468186614a6e565b9050828103608084015261566981856145f1565b60006020828403121561596c57600080fd5b81516133e58161459a565b600060033d11156138de5760046000803e5060005160e01c90565b600060443d10156159a05790565b6040516003193d81016004833e81513d6001600160401b0381602484011181841117156159cf57505050505090565b82850191508151818111156159e75750505050505090565b843d8701016020828501011115615a015750505050505090565b615a10602082860101876147b2565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b600082516152308184602087016145cd565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906144f0908301846145f1565b600060208284031215615ac157600080fd5b81516133e5816146c556fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220b5e49fa6a9b62ff93692991f73f17e19ee18bd759de1108d46c2a0c9d3060f2364736f6c63430008170033