Overview ERC1155
Total Supply:
0

Holders:
46
Profile Summary
Blockchain:
Zora (7777777)

Contract Source Code Verified (Partial Match)
Contract Name:
DropERC1155

Compiler Version
v0.8.23+commit.f704f362

Optimization Enabled:
Yes with 20 runs

Created At:
Thu, 23 Nov 2023 08:12:41 GMT
IERC165.sol
contracts
eip
interface
IERC165.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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"
  }
]


Contract Creation Code
60806040523480156200001157600080fd5b50600054610100900460ff1615808015620000335750600054600160ff909116105b806200004f5750303b1580156200004f575060005460ff166001145b620000b75760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b606482015260840160405180910390fd5b6000805460ff191660011790558015620000db576000805461ff0019166101001790555b801562000122576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b50615f8b80620001336000396000f3fe6080604052600436106102c15760003560e01c80638da5cb5b116101775780638da5cb5b146107205780639010d07c1461073e57806391d148541461075e578063938e3d7b1461077e57806395d89b411461079e5780639bcf7a15146107b3578063a07ced9e146107d3578063a0a8e460146107f3578063a217fddf1461080f578063a22cb46514610824578063a32fa5b314610844578063ac9650d814610864578063b24f2d3914610891578063b6f10c79146108bc578063bd85b039146108dc578063c7337d6b14610909578063ca15c8731461093f578063cb2ef6f71461095f578063d37c353b14610980578063d45573f6146109a0578063d45b28d7146109b5578063d547741f146109e2578063de903ddd14610a02578063e159163414610a22578063e57553da14610a42578063e8a3d48514610a66578063e9703d2514610a7b578063e985e9c514610ac4578063ea1def9c14610b0d578063f242432a14610b2d578063f28083c314610b4d57600080fd5b8062fdd58e146102c657806301ffc9a7146102f957806306fdde0314610329578063079fe40e1461034b5780630e89341c1461036d57806313af40351461038d578063183718d1146103af5780631e7ac488146103cf5780632419f51b146103ef578063248a9ca31461040f57806324aaffaa1461043c57806329c49b9b146104695780632a55205a146104895780632eb2c2d6146104b75780632f2ff15d146104d757806336568abe146104f75780633b1475a7146105175780634cc157df1461052c5780634e1273f41461056e578063572b6c051461059b57806357bc3d78146105bb5780635811ddab146105ce5780635ab063e81461061b578063600dd5ea1461063b57806363b45e2d1461065b5780636b20c454146106705780636f4f2837146106905780637e54523c146106b057806383040532146106d057806387198cf214610700575b600080fd5b3480156102d257600080fd5b506102e66102e1366004614916565b610b74565b6040519081526020015b60405180910390f35b34801561030557600080fd5b50610319610314366004614958565b610c0f565b60405190151581526020016102f0565b34801561033557600080fd5b5061033e610c37565b6040516102f091906149c5565b34801561035757600080fd5b50610360610cc5565b6040516102f091906149d8565b34801561037957600080fd5b5061033e6103883660046149ec565b610cd4565b34801561039957600080fd5b506103ad6103a8366004614a05565b610d15565b005b3480156103bb57600080fd5b506103ad6103ca366004614a7b565b610d45565b3480156103db57600080fd5b506103ad6103ea366004614916565b611084565b3480156103fb57600080fd5b506102e661040a3660046149ec565b6110b6565b34801561041b57600080fd5b506102e661042a3660046149ec565b6000908152600d602052604090205490565b34801561044857600080fd5b506102e66104573660046149ec565b60de6020526000908152604090205481565b34801561047557600080fd5b506103ad610484366004614ad9565b611124565b34801561049557600080fd5b506104a96104a4366004614b09565b611196565b6040516102f0929190614b2b565b3480156104c357600080fd5b506103ad6104d2366004614c92565b6111d3565b3480156104e357600080fd5b506103ad6104f2366004614ad9565b611231565b34801561050357600080fd5b506103ad610512366004614ad9565b6112c7565b34801561052357600080fd5b50600b546102e6565b34801561053857600080fd5b5061054c6105473660046149ec565b611326565b604080516001600160a01b03909316835261ffff9091166020830152016102f0565b34801561057a57600080fd5b5061058e610589366004614db3565b611391565b6040516102f09190614e52565b3480156105a757600080fd5b506103196105b6366004614a05565b6114b2565b6103ad6105c9366004614e77565b6114d0565b3480156105da57600080fd5b506102e66105e9366004614f1c565b6000928352600f60209081526040808520938552600390930181528284206001600160a01b0390921684525290205490565b34801561062757600080fd5b506102e66106363660046149ec565b611613565b34801561064757600080fd5b506103ad610656366004614916565b6116c4565b34801561066757600080fd5b506008546102e6565b34801561067c57600080fd5b506103ad61068b366004614f55565b6116f2565b34801561069c57600080fd5b506103ad6106ab366004614a05565b61178f565b3480156106bc57600080fd5b506103ad6106cb366004614916565b6117bc565b3480156106dc57600080fd5b506103196106eb3660046149ec565b600a6020526000908152604090205460ff1681565b34801561070c57600080fd5b506103ad61071b366004614b09565b6117ea565b34801561072c57600080fd5b506007546001600160a01b0316610360565b34801561074a57600080fd5b50610360610759366004614b09565b611846565b34801561076a57600080fd5b50610319610779366004614ad9565b611934565b34801561078a57600080fd5b506103ad610799366004614fca565b61195f565b3480156107aa57600080fd5b5061033e61198c565b3480156107bf57600080fd5b506103ad6107ce366004614ffe565b611999565b3480156107df57600080fd5b506103ad6107ee3660046149ec565b6119c8565b3480156107ff57600080fd5b50604051600481526020016102f0565b34801561081b57600080fd5b506102e6600081565b34801561083057600080fd5b506103ad61083f366004615036565b6119eb565b34801561085057600080fd5b5061031961085f366004614ad9565b6119fd565b34801561087057600080fd5b5061088461087f366004615064565b611a53565b6040516102f091906150a5565b34801561089d57600080fd5b506004546001600160a01b03811690600160a01b900461ffff1661054c565b3480156108c857600080fd5b506103ad6108d7366004615109565b611b3c565b3480156108e857600080fd5b506102e66108f73660046149ec565b60dd6020526000908152604090205481565b34801561091557600080fd5b506103606109243660046149ec565b60df602052600090815260409020546001600160a01b031681565b34801561094b57600080fd5b506102e661095a3660046149ec565b611b69565b34801561096b57600080fd5b506a44726f704552433131353560a81b6102e6565b34801561098c57600080fd5b506102e661099b36600461516b565b611bf2565b3480156109ac57600080fd5b5061054c611cff565b3480156109c157600080fd5b506109d56109d0366004614b09565b611d1c565b6040516102f091906151e4565b3480156109ee57600080fd5b506103ad6109fd366004614ad9565b611e83565b348015610a0e57600080fd5b506103ad610a1d366004615251565b611e9c565b348015610a2e57600080fd5b506103ad610a3d3660046152b3565b611ef6565b348015610a4e57600080fd5b506104a96002546003546001600160a01b0390911691565b348015610a7257600080fd5b5061033e61213f565b348015610a8757600080fd5b50610aaf610a963660046149ec565b600f602052600090815260409020805460019091015482565b604080519283526020830191909152016102f0565b348015610ad057600080fd5b50610319610adf3660046153c5565b6001600160a01b03918216600090815260a76020908152604080832093909416825291909152205460ff1690565b348015610b1957600080fd5b50610319610b283660046153f3565b61214c565b348015610b3957600080fd5b506103ad610b4836600461546c565b612554565b348015610b5957600080fd5b50600254600160b01b900460ff166040516102f091906154ea565b60006001600160a01b038316610be45760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b50600081815260a6602090815260408083206001600160a01b03861684529091529020545b92915050565b6000610c1a826125ab565b80610c095750506001600160e01b03191663152a902d60e11b1490565b60d88054610c4490615512565b80601f0160208091040260200160405190810160405280929190818152602001828054610c7090615512565b8015610cbd5780601f10610c9257610100808354040283529160200191610cbd565b820191906000526020600020905b815481529060010190602001808311610ca057829003601f168201915b505050505081565b6006546001600160a01b031690565b60606000610ce1836125fb565b905080610ced84612797565b604051602001610cfe929190615546565b604051602081830303815290604052915050919050565b610d1d612829565b610d395760405162461bcd60e51b8152600401610bdb90615575565b610d428161283c565b50565b610d4d612829565b610d695760405162461bcd60e51b8152600401610bdb90615575565b6000848152600f6020526040902080546001820154818415610d9257610d8f82846155b3565b90505b600184018690558084556000805b87811015610f4057801580610dd85750888882818110610dc257610dc26155c6565b9050602002810190610dd491906155dc565b3582105b610e095760405162461bcd60e51b815260206004820152600260248201526114d560f21b6044820152606401610bdb565b60006002870181610e1a84876155b3565b8152602001908152602001600020600201549050898983818110610e4057610e406155c6565b9050602002810190610e5291906155dc565b60200135811115610e9a5760405162461bcd60e51b81526020600482015260126024820152711b585e081cdd5c1c1b1e4818db185a5b595960721b6044820152606401610bdb565b898983818110610eac57610eac6155c6565b9050602002810190610ebe91906155dc565b600288016000610ece85886155b3565b81526020019081526020016000208181610ee89190615758565b50819050600288016000610efc85886155b3565b8152602081019190915260400160002060020155898983818110610f2257610f226155c6565b9050602002810190610f3491906155dc565b35925050600101610da0565b508515610fb757835b82811015610fb1576000818152600280880160205260408220828155600181018390559081018290556003810182905560048101829055600581018290556006810180546001600160a01b031916905590610fa760078301826148a3565b5050600101610f49565b5061103d565b8683111561103d57865b8381101561103b57600286016000610fd983866155b3565b81526020810191909152604001600090812081815560018101829055600281018290556003810182905560048101829055600581018290556006810180546001600160a01b03191690559061103160078301826148a3565b5050600101610fc1565b505b887f066f72a648b18490c0bc4ab07d508cdb5d6589fa188c63cfba1e0547f3a6556a89898960405161107193929190615844565b60405180910390a2505050505050505050565b61108c612829565b6110a85760405162461bcd60e51b8152600401610bdb90615575565b6110b2828261288e565b5050565b60006110c160085490565b82106110ff5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610bdb565b60088281548110611112576111126155c6565b90600052602060002001549050919050565b60006111308133612942565b600083815260df60205260409081902080546001600160a01b0319166001600160a01b0385161790555183907f359479172ba65a6639b0df237f704e030498cb7135d5e89b56f598bd1d84b016906111899085906149d8565b60405180910390a2505050565b6000806000806111a586611326565b90945084925061ffff1690506127106111be828761592c565b6111c89190615943565b925050509250929050565b6111db6129c2565b6001600160a01b0316856001600160a01b03161480611201575061120185610adf6129c2565b61121d5760405162461bcd60e51b8152600401610bdb90615965565b61122a85858585856129cc565b5050505050565b6000828152600d602052604090205461124a9033612942565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff16156112bd5760405162461bcd60e51b815260206004820152601d60248201527f43616e206f6e6c79206772616e7420746f206e6f6e20686f6c646572730000006044820152606401610bdb565b6110b28282612b7d565b336001600160a01b0382161461131c5760405162461bcd60e51b815260206004820152601a60248201527921b0b71037b7363c903932b737bab731b2903337b91039b2b63360311b6044820152606401610bdb565b6110b28282612b91565b6000818152600560209081526040808320815180830190925280546001600160a01b03168083526001909101549282019290925282911561136d5780516020820151611387565b6004546001600160a01b03811690600160a01b900461ffff165b9250925050915091565b606081518351146113f65760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b6064820152608401610bdb565b600083516001600160401b0381111561141157611411614b44565b60405190808252806020026020018201604052801561143a578160200160208202803683370190505b50905060005b84518110156114aa5761148585828151811061145e5761145e6155c6565b6020026020010151858381518110611478576114786155c6565b6020026020010151610b74565b828281518110611497576114976155c6565b6020908102919091010152600101611440565b509392505050565b6001600160a01b031660009081526042602052604090205460ff1690565b6114df86888787878787612be8565b60006114ea87611613565b9050611502816114f8612c76565b898989898961214c565b506000878152600f60209081526040808320848452600290810190925282200180548892906115329084906155b3565b90915550506000878152600f602090815260408083208484526003019091528120879161155d612c76565b6001600160a01b03166001600160a01b03168152602001908152602001600020600082825461158c91906155b3565b909155506115a09050876000888888612c80565b6115ab888888612dc3565b876001600160a01b03166115bd612c76565b6001600160a01b0316827ffa76a4010d9533e3e964f2930a65fb6042a12fa6ff5b08281837a10b0be7321e8a8a604051611601929190918252602082015260400190565b60405180910390a45050505050505050565b6000818152600f60205260408120600181015481548391611633916155b3565b90505b815481111561168d576002820160006116506001846159b3565b815260200190815260200160002060000154421061167b576116736001826159b3565b949350505050565b80611685816159c6565b915050611636565b5060405162461bcd60e51b815260206004820152600b60248201526a10a1a7a72224aa24a7a71760a91b6044820152606401610bdb565b6116cc612829565b6116e85760405162461bcd60e51b8152600401610bdb90615575565b6110b28282612dde565b6116fa6129c2565b6001600160a01b0316836001600160a01b03161480611720575061172083610adf6129c2565b61177f5760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2063616c6c6572206973206e6f74206f776e6572206e6f726044820152691030b8383937bb32b21760b11b6064820152608401610bdb565b61178a838383612e5b565b505050565b611797612829565b6117b35760405162461bcd60e51b8152600401610bdb90615575565b610d4281613071565b6117c4612829565b6117e05760405162461bcd60e51b8152600401610bdb90615575565b6110b282826130e1565b60006117f68133612942565b600083815260de602090815260409182902084905581518581529081018490527fc58cd6132bb46df23d468939c03dd023b74b509aaa6b04c39d5a6461c65963bd910160405180910390a1505050565b6000828152600e602052604081205481805b8281101561192b576000868152600e602090815260408083208484526001019091529020546001600160a01b0316156118d4578482036118c2576000868152600e602090815260408083209383526001909301905220546001600160a01b03169250610c09915050565b6118cd6001836155b3565b9150611919565b6118df866000611934565b801561190657506000868152600e6020908152604080832083805260020190915290205481145b15611919576119166001836155b3565b91505b6119246001826155b3565b9050611858565b50505092915050565b6000918252600c602090815260408084206001600160a01b0393909316845291905290205460ff1690565b611967612829565b6119835760405162461bcd60e51b8152600401610bdb90615575565b610d428161313f565b60d98054610c4490615512565b6119a1612829565b6119bd5760405162461bcd60e51b8152600401610bdb90615575565b61178a83838361320f565b60dc546119d58133612942565b60006119e0836110b6565b905061178a816132b7565b6110b26119f66129c2565b83836133d4565b6000828152600c6020908152604080832083805290915281205460ff16611a4a57506000828152600c602090815260408083206001600160a01b038516845290915290205460ff16610c09565b50600192915050565b6060816001600160401b03811115611a6d57611a6d614b44565b604051908082528060200260200182016040528015611aa057816020015b6060815260200190600190039081611a8b5790505b50905060005b82811015611b3557611b1030858584818110611ac457611ac46155c6565b9050602002810190611ad691906155fc565b8080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506134ac92505050565b828281518110611b2257611b226155c6565b6020908102919091010152600101611aa6565b5092915050565b611b44612829565b611b605760405162461bcd60e51b8152600401610bdb90615575565b610d42816134d8565b6000818152600e6020526040812054815b81811015611bcd576000848152600e602090815260408083208484526001019091529020546001600160a01b031615611bbb57611bb86001846155b3565b92505b611bc66001826155b3565b9050611b7a565b50611bd9836000611934565b15611bec57611be96001836155b3565b91505b50919050565b6000611bfc61353c565b611c185760405162461bcd60e51b8152600401610bdb90615575565b85600003611c505760405162461bcd60e51b81526020600482015260056024820152640c08185b5d60da1b6044820152606401610bdb565b6000600b549050611c98818888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061354c92505050565b600b919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d6001611cce8a846155b3565b611cd891906159b3565b88888888604051611ced9594939291906159dd565b60405180910390a25095945050505050565b6002546001600160a01b03811691600160a01b90910461ffff1690565b611d7060405180610100016040528060008152602001600081526020016000815260200160008152602001600080191681526020016000815260200160006001600160a01b03168152602001606081525090565b6000838152600f6020908152604080832085845260029081018352928190208151610100810183528154815260018201549381019390935292830154908201526003820154606082015260048201546080820152600582015460a082015260068201546001600160a01b031660c082015260078201805491929160e084019190611df990615512565b80601f0160208091040260200160405190810160405280929190818152602001828054611e2590615512565b8015611e725780601f10611e4757610100808354040283529160200191611e72565b820191906000526020600020905b815481529060010190602001808311611e5557829003601f168201915b505050505081525050905092915050565b6000828152600d602052604090205461131c9033612942565b60dc54611ea98133612942565b6000611eb4856110b6565b905061122a8185858080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152506135b092505050565b600054610100900460ff1615808015611f165750600054600160ff909116105b80611f375750611f2530613655565b158015611f37575060005460ff166001145b611f9a5760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610bdb565b6000805460ff191660011790558015611fbd576000805461ff0019166101001790555b7f8502233096d909befbda0999bb8ea2f3a6be3c138b9fbf003752a4c8bce86f6c7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a67f6bd6b5318a46e5fff572d5e4258a20774aab40cc35ac7680654b9081fcc82f806120298a613664565b6120416040518060200160405280600081525061369c565b61204a8b61313f565b6120538e61283c565b61205e60008f612b7d565b612068828f612b7d565b612072838f612b7d565b61207d836000612b7d565b612087818f612b7d565b61209181826136cc565b6120a485876001600160801b031661288e565b6120b788886001600160801b0316612dde565b6120c089613071565b60da83905560db82905560dc81905560d86120db8e82615a16565b5060d96120e88d82615a16565b505050508015612132576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b5050505050505050505050565b60018054610c4490615512565b6000858152600f602090815260408083208a8452600290810183528184208251610100810184528154815260018201549481019490945290810154918301919091526003810154606083015260048101546080830152600581015460a083015260068101546001600160a01b031660c08301526007810180548493929160e08401916121d790615512565b80601f016020809104026020016040519081016040528092919081815260200182805461220390615512565b80156122505780601f1061222557610100808354040283529160200191612250565b820191906000526020600020905b81548152906001019060200180831161223357829003601f168201915b50505091909252505050606081015160a082015160c083015160808401519394509192909190156123305761232c6122888780615acf565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505060808088015191508e9060208b01359060408c0135906122dd908d0160608e01614a05565b6040516001600160601b0319606095861b811660208301526034820194909452605481019290925290921b16607482015260880160405160208183030381529060405280519060200120613714565b5094505b84156123b7578560200135600003612348578261234e565b85602001355b92506000198660400135036123635781612369565b85604001355b915060001986604001351415801561239a5750600061238e6080880160608901614a05565b6001600160a01b031614155b6123a457806123b4565b6123b46080870160608801614a05565b90505b6000600f60008c815260200190815260200160002060030160008e815260200190815260200160002060008d6001600160a01b03166001600160a01b03168152602001908152602001600020549050816001600160a01b0316896001600160a01b03161415806124275750828814155b156124675760405162461bcd60e51b815260206004820152601060248201526f2150726963654f7243757272656e637960801b6044820152606401610bdb565b89158061247c57508361247a828c6155b3565b115b156124b25760405162461bcd60e51b8152600401610bdb906020808252600490820152632151747960e01b604082015260600190565b84602001518a86604001516124c791906155b3565b11156125025760405162461bcd60e51b815260206004820152600a602482015269214d6178537570706c7960b01b6044820152606401610bdb565b84514210156125445760405162461bcd60e51b815260206004820152600e60248201526d18d85b9d0818db185a5b481e595d60921b6044820152606401610bdb565b5050505050979650505050505050565b61255c6129c2565b6001600160a01b0316856001600160a01b03161480612582575061258285610adf6129c2565b61259e5760405162461bcd60e51b8152600401610bdb90615965565b61122a85858585856137d8565b60006001600160e01b03198216636cdb3d1360e11b14806125dc57506001600160e01b031982166303a24d0760e21b145b80610c0957506301ffc9a760e01b6001600160e01b0319831614610c09565b6060600061260860085490565b90506000600880548060200260200160405190810160405280929190818152602001828054801561265857602002820191906000526020600020905b815481526020019060010190808311612644575b5050505050905060005b8281101561275c5781818151811061267c5761267c6155c6565b602002602001015185101561274a57600960008383815181106126a1576126a16155c6565b6020026020010151815260200190815260200160002080546126c290615512565b80601f01602080910402602001604051908101604052809291908181526020018280546126ee90615512565b801561273b5780601f106127105761010080835404028352916020019161273b565b820191906000526020600020905b81548152906001019060200180831161271e57829003601f168201915b50505050509350505050919050565b6127556001826155b3565b9050612662565b5060405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606401610bdb565b606060006127a48361391f565b60010190506000816001600160401b038111156127c3576127c3614b44565b6040519080825280601f01601f1916602001820160405280156127ed576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846127f757509392505050565b6000612837816107796129c2565b905090565b600780546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b6127108111156128b05760405162461bcd60e51b8152600401610bdb90615b18565b6001600160a01b0382166128d65760405162461bcd60e51b8152600401610bdb90615b41565b600280546001600160b01b031916600160a01b61ffff8416026001600160a01b031916176001600160a01b0384169081179091556040518281527fe2497bd806ec41a6e0dd992c29a72efc0ef8fec9092d1978fd4a1e00b2f18304906020015b60405180910390a25050565b6000828152600c602090815260408083206001600160a01b038516845290915290205460ff166110b257612980816001600160a01b031660146139f5565b61298b8360206139f5565b60405160200161299c929190615b6c565b60408051601f198184030181529082905262461bcd60e51b8252610bdb916004016149c5565b6000612837613b90565b81518351146129ed5760405162461bcd60e51b8152600401610bdb90615bd9565b6001600160a01b038416612a135760405162461bcd60e51b8152600401610bdb90615c21565b6000612a1d6129c2565b9050612a2d818787878787613bb5565b60005b8451811015612b0f576000858281518110612a4d57612a4d6155c6565b602002602001015190506000858381518110612a6b57612a6b6155c6565b602090810291909101810151600084815260a6835260408082206001600160a01b038e168352909352919091205490915081811015612abc5760405162461bcd60e51b8152600401610bdb90615c66565b600083815260a6602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290612afb9084906155b3565b909155505060019093019250612a30915050565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612b5f929190615cb0565b60405180910390a4612b75818787878787613d60565b505050505050565b612b878282613ec2565b6110b28282613f1d565b612b9b8282613f8a565b6000828152600e602090815260408083206001600160a01b03851680855260028201808552838620805487526001909301855292852080546001600160a01b031916905584529152555050565b600087815260de60205260409020541580612c275750600087815260de602090815260408083205460dd90925290912054612c249087906155b3565b11155b612c6d5760405162461bcd60e51b8152602060048201526017602482015276657863656564206d617820746f74616c20737570706c7960481b6044820152606401610bdb565b50505050505050565b60006128376129c2565b80600003612cab573415612ca65760405162461bcd60e51b8152600401610bdb90615cde565b61122a565b600080612cb6611cff565b909250905060006001600160a01b03871615612cd25786612d14565b600088815260df60205260409020546001600160a01b031615612d0c57600088815260df60205260409020546001600160a01b0316612d14565b612d14610cc5565b90506000612d22858861592c565b90506000612710612d3761ffff86168461592c565b612d419190615943565b9050600073eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b03891601612d735750348214612d77565b5034155b80612d945760405162461bcd60e51b8152600401610bdb90615cde565b612da788612da06129c2565b8885613fec565b61213288612db36129c2565b86612dbe86886159b3565b613fec565b61178a83838360405180602001604052806000815250614032565b612710811115612e005760405162461bcd60e51b8152600401610bdb90615b18565b600480546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb90602001612936565b6001600160a01b038316612ebd5760405162461bcd60e51b815260206004820152602360248201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260448201526265737360e81b6064820152608401610bdb565b8051825114612ede5760405162461bcd60e51b8152600401610bdb90615bd9565b6000612ee86129c2565b9050612f0881856000868660405180602001604052806000815250613bb5565b60005b8351811015613002576000848281518110612f2857612f286155c6565b602002602001015190506000848381518110612f4657612f466155c6565b602090810291909101810151600084815260a6835260408082206001600160a01b038c168352909352919091205490915081811015612fd35760405162461bcd60e51b8152602060048201526024808201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604482015263616e636560e01b6064820152608401610bdb565b600092835260a6602090815260408085206001600160a01b038b16865290915290922091039055600101612f0b565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051613053929190615cb0565b60405180910390a46040805160208101909152600090525b50505050565b6001600160a01b0381166130975760405162461bcd60e51b8152600401610bdb90615b41565b600680546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b6003819055600280546001600160a01b0319166001600160a01b0384161790556040517ff8086cee80709bd44c82f89dbca54115ebd05e840a88ab81df9cf5be9754eb63906131339084908490614b2b565b60405180910390a15050565b60006001805461314e90615512565b80601f016020809104026020016040519081016040528092919081815260200182805461317a90615512565b80156131c75780601f1061319c576101008083540402835291602001916131c7565b820191906000526020600020905b8154815290600101906020018083116131aa57829003601f168201915b5050505050905081600190816131dd9190615a16565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a168183604051613133929190615cfa565b6127108111156132315760405162461bcd60e51b8152600401610bdb90615b18565b6040805180820182526001600160a01b038481168083526020808401868152600089815260058352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d91015b60405180910390a3505050565b600081815260096020526040812080546132d090615512565b80601f01602080910402602001604051908101604052809291908181526020018280546132fc90615512565b80156133495780601f1061331e57610100808354040283529160200191613349565b820191906000526020600020905b81548152906001019060200180831161332c57829003601f168201915b5050505050905060008151116133915760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840c4c2e8c6d609b1b6044820152606401610bdb565b6000828152600a6020526040808220805460ff19166001179055517feef043febddf4e1d1cf1f72ff1407b84e036e805aa0934418cb82095da8d71649190a15050565b816001600160a01b0316836001600160a01b0316036134475760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b6064820152608401610bdb565b6001600160a01b03838116600081815260a76020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3191016132aa565b60606134d18383604051806060016040528060278152602001615f2f60279139614159565b9392505050565b6002805482919060ff60b01b1916600160b01b8360018111156134fd576134fd6154d4565b02179055507fd246da9440709ce0dd3f4fd669abc85ada012ab9774b8ecdcc5059ba1486b9c18160405161353191906154ea565b60405180910390a150565b600061283760db546107796129c2565b60008061355984866155b3565b60088054600181019091557ff3f7a9fe364faab93b216da50a3214154f22a0a2b415b23a84c8169e8b636ee30181905560008181526009602052604090209092508291506135a78482615a16565b50935093915050565b6000828152600a602052604090205460ff16156135fe5760405162461bcd60e51b815260206004820152600c60248201526b2130ba31b410333937bd32b760a11b6044820152606401610bdb565b60008281526009602052604090206136168282615a16565b507f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c61364183614237565b604080519182526020820185905201613133565b6001600160a01b03163b151590565b600054610100900460ff1661368b5760405162461bcd60e51b8152600401610bdb90615d1f565b613693614347565b610d4281614370565b600054610100900460ff166136c35760405162461bcd60e51b8152600401610bdb90615d1f565b610d42816143f5565b6000828152600d6020526040808220805490849055905190918391839186917fbd79b86ffe0ab8e8776151514217cd7cacd52c909f66475c3af44e129f0b00ff9190a4505050565b6000808281805b87518110156137cc5761372f60028361592c565b91506000888281518110613745576137456155c6565b602002602001015190508084116137875760408051602081018690529081018290526060016040516020818303038152906040528051906020012093506137c3565b60408051602081018390529081018590526060016040516020818303038152906040528051906020012093506001836137c091906155b3565b92505b5060010161371b565b50941495939450505050565b6001600160a01b0384166137fe5760405162461bcd60e51b8152600401610bdb90615c21565b60006138086129c2565b9050600061381585614401565b9050600061382285614401565b9050613832838989858589613bb5565b600086815260a6602090815260408083206001600160a01b038c168452909152902054858110156138755760405162461bcd60e51b8152600401610bdb90615c66565b600087815260a6602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906138b49084906155b3565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4613914848a8a8a8a8a61444c565b505050505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061395e5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310613988576904ee2d6d415b85acef8160201b830492506020015b662386f26fc1000083106139a657662386f26fc10000830492506010015b6305f5e10083106139be576305f5e100830492506008015b61271083106139d257612710830492506004015b606483106139e4576064830492506002015b600a8310610c095760010192915050565b60606000613a0483600261592c565b613a0f9060026155b3565b6001600160401b03811115613a2657613a26614b44565b6040519080825280601f01601f191660200182016040528015613a50576020820181803683370190505b509050600360fc1b81600081518110613a6b57613a6b6155c6565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110613a9a57613a9a6155c6565b60200101906001600160f81b031916908160001a9053506000613abe84600261592c565b613ac99060016155b3565b90505b6001811115613b41576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110613afd57613afd6155c6565b1a60f81b828281518110613b1357613b136155c6565b60200101906001600160f81b031916908160001a90535060049490941c93613b3a816159c6565b9050613acc565b5083156134d15760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e746044820152606401610bdb565b6000613b9b336114b2565b15613bad575060131936013560601c90565b503390565b90565b613bc260da546000611934565b158015613bd757506001600160a01b03851615155b8015613beb57506001600160a01b03841615155b15613c6657613bfc60da5486611934565b80613c0e5750613c0e60da5485611934565b613c665760405162461bcd60e51b8152602060048201526024808201527f7265737472696374656420746f205452414e534645525f524f4c4520686f6c6460448201526332b9399760e11b6064820152608401610bdb565b6001600160a01b038516613ce45760005b8351811015613ce257828181518110613c9257613c926155c6565b602002602001015160dd6000868481518110613cb057613cb06155c6565b602002602001015181526020019081526020016000206000828254613cd591906155b3565b9091555050600101613c77565b505b6001600160a01b038416612b755760005b8351811015612c6d57828181518110613d1057613d106155c6565b602002602001015160dd6000868481518110613d2e57613d2e6155c6565b602002602001015181526020019081526020016000206000828254613d5391906159b3565b9091555050600101613cf5565b613d72846001600160a01b0316613655565b15612b755760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613dab9089908990889088908890600401615d6a565b6020604051808303816000875af1925050508015613de6575060408051601f3d908101601f19168201909252613de391810190615dbc565b60015b613e9257613df2615dd9565b806308c379a003613e2b5750613e06615df4565b80613e115750613e2d565b8060405162461bcd60e51b8152600401610bdb91906149c5565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b6064820152608401610bdb565b6001600160e01b0319811663bc197c8160e01b14612c6d5760405162461bcd60e51b8152600401610bdb90615e7d565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916600117905551339285917f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d9190a45050565b6000828152600e6020526040812080549160019190613f3c83856155b3565b90915550506000928352600e6020908152604080852083865260018101835281862080546001600160a01b039096166001600160a01b03199096168617905593855260029093019052912055565b613f948282612942565b6000828152600c602090815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b801561306b5773eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeed196001600160a01b0385160161402657614021828261450e565b61306b565b61306b848484846145b0565b6001600160a01b0384166140925760405162461bcd60e51b815260206004820152602160248201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736044820152607360f81b6064820152608401610bdb565b600061409c6129c2565b905060006140a985614401565b905060006140b685614401565b90506140c783600089858589613bb5565b600086815260a6602090815260408083206001600160a01b038b168452909152812080548792906140f99084906155b3565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612c6d8360008989898961444c565b606061416484613655565b8015614176575061417433613655565b155b6141c25760405162461bcd60e51b815260206004820152601e60248201527f416464726573733a20696e76616c69642064656c65676174652063616c6c00006044820152606401610bdb565b600080856001600160a01b0316856040516141dd9190615ec5565b600060405180830381855af49150503d8060008114614218576040519150601f19603f3d011682016040523d82523d6000602084013e61421d565b606091505b509150915061422d828286614603565b9695505050505050565b60008061424360085490565b90506000600880548060200260200160405190810160405280929190818152602001828054801561429357602002820191906000526020600020905b81548152602001906001019080831161427f575b5050505050905060005b8281101561430c578181815181106142b7576142b76155c6565b602002602001015185036143045780156142f957816142d76001836159b3565b815181106142e7576142e76155c6565b60200260200101519350505050919050565b506000949350505050565b60010161429d565b5060405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a590818985d18da1259608a1b6044820152606401610bdb565b600054610100900460ff1661436e5760405162461bcd60e51b8152600401610bdb90615d1f565b565b600054610100900460ff166143975760405162461bcd60e51b8152600401610bdb90615d1f565b60005b81518110156110b2576001604260008484815181106143bb576143bb6155c6565b6020908102919091018101516001600160a01b03168252810191909152604001600020805460ff191691151591909117905560010161439a565b60a86110b28282615a16565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061443b5761443b6155c6565b602090810291909101015292915050565b61445e846001600160a01b0316613655565b15612b755760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906144979089908990889088908890600401615ed7565b6020604051808303816000875af19250505080156144d2575060408051601f3d908101601f191682019092526144cf91810190615dbc565b60015b6144de57613df2615dd9565b6001600160e01b0319811663f23a6e6160e01b14612c6d5760405162461bcd60e51b8152600401610bdb90615e7d565b6000826001600160a01b03168260405160006040518083038185875af1925050503d806000811461455b576040519150601f19603f3d011682016040523d82523d6000602084013e614560565b606091505b505090508061178a5760405162461bcd60e51b815260206004820152601c60248201527b1b985d1a5d99481d1bdad95b881d1c985b9cd9995c8819985a5b195960221b6044820152606401610bdb565b816001600160a01b0316836001600160a01b0316031561306b57306001600160a01b038416036145ee576140216001600160a01b038516838361463c565b61306b6001600160a01b038516848484614692565b606083156146125750816134d1565b8251156146225782518084602001fd5b8160405162461bcd60e51b8152600401610bdb91906149c5565b61178a8363a9059cbb60e01b848460405160240161465b929190614b2b565b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b0319909316929092179091526146ca565b6040516001600160a01b038085166024830152831660448201526064810182905261306b9085906323b872dd60e01b9060840161465b565b600061471f826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661479c9092919063ffffffff16565b80519091501561178a578080602001905181019061473d9190615f11565b61178a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610bdb565b6060611673848460008585600080866001600160a01b031685876040516147c39190615ec5565b60006040518083038185875af1925050503d8060008114614800576040519150601f19603f3d011682016040523d82523d6000602084013e614805565b606091505b509150915061481687838387614821565b979650505050505050565b6060831561488e5782516000036148875761483b85613655565b6148875760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610bdb565b5081611673565b6116738383815115613e115781518083602001fd5b5080546148af90615512565b6000825580601f106148bf575050565b601f016020900490600052602060002090810190610d4291905b808211156148ed57600081556001016148d9565b5090565b6001600160a01b0381168114610d4257600080fd5b8035614911816148f1565b919050565b6000806040838503121561492957600080fd5b8235614934816148f1565b946020939093013593505050565b6001600160e01b031981168114610d4257600080fd5b60006020828403121561496a57600080fd5b81356134d181614942565b60005b83811015614990578181015183820152602001614978565b50506000910152565b600081518084526149b1816020860160208601614975565b601f01601f19169290920160200192915050565b6020815260006134d16020830184614999565b6001600160a01b0391909116815260200190565b6000602082840312156149fe57600080fd5b5035919050565b600060208284031215614a1757600080fd5b81356134d1816148f1565b60008083601f840112614a3457600080fd5b5081356001600160401b03811115614a4b57600080fd5b6020830191508360208260051b8501011115614a6657600080fd5b9250929050565b8015158114610d4257600080fd5b60008060008060608587031215614a9157600080fd5b8435935060208501356001600160401b03811115614aae57600080fd5b614aba87828801614a22565b9094509250506040850135614ace81614a6d565b939692955090935050565b60008060408385031215614aec57600080fd5b823591506020830135614afe816148f1565b809150509250929050565b60008060408385031215614b1c57600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715614b7f57614b7f614b44565b6040525050565b60006001600160401b03821115614b9f57614b9f614b44565b5060051b60200190565b600082601f830112614bba57600080fd5b81356020614bc782614b86565b604051614bd48282614b5a565b80915083815260208101915060208460051b870101935086841115614bf857600080fd5b602086015b84811015614c145780358352918301918301614bfd565b509695505050505050565b600082601f830112614c3057600080fd5b81356001600160401b03811115614c4957614c49614b44565b604051614c60601f8301601f191660200182614b5a565b818152846020838601011115614c7557600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215614caa57600080fd5b8535614cb5816148f1565b94506020860135614cc5816148f1565b935060408601356001600160401b0380821115614ce157600080fd5b614ced89838a01614ba9565b94506060880135915080821115614d0357600080fd5b614d0f89838a01614ba9565b93506080880135915080821115614d2557600080fd5b50614d3288828901614c1f565b9150509295509295909350565b600082601f830112614d5057600080fd5b81356020614d5d82614b86565b604051614d6a8282614b5a565b80915083815260208101915060208460051b870101935086841115614d8e57600080fd5b602086015b84811015614c14578035614da6816148f1565b8352918301918301614d93565b60008060408385031215614dc657600080fd5b82356001600160401b0380821115614ddd57600080fd5b614de986838701614d3f565b93506020850135915080821115614dff57600080fd5b50614e0c85828601614ba9565b9150509250929050565b60008151808452602080850194506020840160005b83811015614e4757815187529582019590820190600101614e2b565b509495945050505050565b6020815260006134d16020830184614e16565b600060808284031215611bec57600080fd5b600080600080600080600060e0888a031215614e9257600080fd5b8735614e9d816148f1565b965060208801359550604088013594506060880135614ebb816148f1565b93506080880135925060a08801356001600160401b0380821115614ede57600080fd5b614eea8b838c01614e65565b935060c08a0135915080821115614f0057600080fd5b50614f0d8a828b01614c1f565b91505092959891949750929550565b600080600060608486031215614f3157600080fd5b83359250602084013591506040840135614f4a816148f1565b809150509250925092565b600080600060608486031215614f6a57600080fd5b8335614f75816148f1565b925060208401356001600160401b0380821115614f9157600080fd5b614f9d87838801614ba9565b93506040860135915080821115614fb357600080fd5b50614fc086828701614ba9565b9150509250925092565b600060208284031215614fdc57600080fd5b81356001600160401b03811115614ff257600080fd5b61167384828501614c1f565b60008060006060848603121561501357600080fd5b833592506020840135615025816148f1565b929592945050506040919091013590565b6000806040838503121561504957600080fd5b8235615054816148f1565b91506020830135614afe81614a6d565b6000806020838503121561507757600080fd5b82356001600160401b0381111561508d57600080fd5b61509985828601614a22565b90969095509350505050565b600060208083016020845280855180835260408601915060408160051b87010192506020870160005b828110156150fc57603f198886030184526150ea858351614999565b945092850192908501906001016150ce565b5092979650505050505050565b60006020828403121561511b57600080fd5b8135600281106134d157600080fd5b60008083601f84011261513c57600080fd5b5081356001600160401b0381111561515357600080fd5b602083019150836020828501011115614a6657600080fd5b60008060008060006060868803121561518357600080fd5b8535945060208601356001600160401b03808211156151a157600080fd5b6151ad89838a0161512a565b909650945060408801359150808211156151c657600080fd5b506151d38882890161512a565b969995985093965092949392505050565b6020815281516020820152602082015160408201526040820151606082015260608201516080820152608082015160a082015260a082015160c082015260018060a01b0360c08301511660e0820152600060e0830151610100808185015250611673610120840182614999565b60008060006040848603121561526657600080fd5b8335925060208401356001600160401b0381111561528357600080fd5b61528f8682870161512a565b9497909650939450505050565b80356001600160801b038116811461491157600080fd5b6000806000806000806000806000806101408b8d0312156152d357600080fd5b6152dc8b614906565b995060208b01356001600160401b03808211156152f857600080fd5b6153048e838f01614c1f565b9a5060408d013591508082111561531a57600080fd5b6153268e838f01614c1f565b995060608d013591508082111561533c57600080fd5b6153488e838f01614c1f565b985060808d013591508082111561535e57600080fd5b5061536b8d828e01614d3f565b96505061537a60a08c01614906565b945061538860c08c01614906565b935061539660e08c0161529c565b92506153a56101008c0161529c565b91506153b46101208c01614906565b90509295989b9194979a5092959850565b600080604083850312156153d857600080fd5b82356153e3816148f1565b91506020830135614afe816148f1565b600080600080600080600060e0888a03121561540e57600080fd5b873596506020880135615420816148f1565b95506040880135945060608801359350608088013561543e816148f1565b925060a0880135915060c08801356001600160401b0381111561546057600080fd5b614f0d8a828b01614e65565b600080600080600060a0868803121561548457600080fd5b853561548f816148f1565b9450602086013561549f816148f1565b9350604086013592506060860135915060808601356001600160401b038111156154c857600080fd5b614d3288828901614c1f565b634e487b7160e01b600052602160045260246000fd5b602081016002831061550c57634e487b7160e01b600052602160045260246000fd5b91905290565b600181811c9082168061552657607f821691505b602082108103611bec57634e487b7160e01b600052602260045260246000fd5b60008351615558818460208801614975565b83519083019061556c818360208801614975565b01949350505050565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b80820180821115610c0957610c0961559d565b634e487b7160e01b600052603260045260246000fd5b6000823560fe198336030181126155f257600080fd5b9190910192915050565b6000808335601e1984360301811261561357600080fd5b8301803591506001600160401b0382111561562d57600080fd5b602001915036819003821315614a6657600080fd5b601f82111561178a576000816000526020600020601f850160051c8101602086101561566b5750805b601f850160051c820191505b81811015612b7557828155600101615677565b600019600383901b1c191660019190911b1790565b6001600160401b038311156156b6576156b6614b44565b6156ca836156c48354615512565b83615642565b6000601f8411600181146156f857600085156156e65750838201355b6156f0868261568a565b84555061122a565b600083815260209020601f19861690835b828110156157295786850135825560209485019460019092019101615709565b50868210156157465760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b813581556020820135600182015560408201356002820155606082013560038201556080820135600482015560a082013560058201556006810160c08301356157a0816148f1565b81546001600160a01b0319166001600160a01b03919091161790556157c860e08301836155fc565b61306b81836007860161569f565b6000808335601e198436030181126157ed57600080fd5b83016020810192503590506001600160401b0381111561580c57600080fd5b803603821315614a6657600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408082528181018490526000906060808401600587901b850182018885805b8a81101561591657888403605f190185528235368d900360fe19018112615889578283fd5b8c018035855260208082013581870152888201358987015287820135888701526080808301359087015260a080830135908701526101009060c0808401356158d0816148f1565b6001600160a01b03169088015260e06158eb848201856157d6565b945083828a01526158ff848a01868361581b565b998301999850505094909401935050600101615864565b5050508615156020870152935061167392505050565b8082028115828204841417610c0957610c0961559d565b60008261596057634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b81810381811115610c0957610c0961559d565b6000816159d5576159d561559d565b506000190190565b8581526060602082015260006159f760608301868861581b565b8281036040840152615a0a81858761581b565b98975050505050505050565b81516001600160401b03811115615a2f57615a2f614b44565b615a4381615a3d8454615512565b84615642565b602080601f831160018114615a725760008415615a605750858301515b615a6a858261568a565b865550612b75565b600085815260208120601f198616915b82811015615aa157888601518255948401946001909101908401615a82565b5085821015615abf5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6000808335601e19843603018112615ae657600080fd5b8301803591506001600160401b03821115615b0057600080fd5b6020019150600581901b3603821315614a6657600080fd5b6020808252600f908201526e45786365656473206d61782062707360881b604082015260600190565b602080825260119082015270125b9d985b1a59081c9958da5c1a595b9d607a1b604082015260600190565b7402832b936b4b9b9b4b7b7399d1030b1b1b7bab73a1605d1b815260008351615b9c816015850160208801614975565b7001034b99036b4b9b9b4b733903937b6329607d1b6015918401918201528351615bcd816026840160208801614975565b01602601949350505050565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b604081526000615cc36040830185614e16565b8281036020840152615cd58185614e16565b95945050505050565b60208082526002908201526110ab60f11b604082015260600190565b604081526000615d0d6040830185614999565b8281036020840152615cd58185614999565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090615d9690830186614e16565b8281036060840152615da88186614e16565b90508281036080840152615a0a8185614999565b600060208284031215615dce57600080fd5b81516134d181614942565b600060033d1115613bb25760046000803e5060005160e01c90565b600060443d1015615e025790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615e3157505050505090565b8285019150815181811115615e495750505050505090565b843d8701016020828501011115615e635750505050505090565b615e7260208286010187614b5a565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b600082516155f2818460208701614975565b6001600160a01b03868116825285166020820152604081018490526060810183905260a06080820181905260009061481690830184614999565b600060208284031215615f2357600080fd5b81516134d181614a6d56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564a2646970667358221220274e6147ef84da8be4dd8e829c4050c3f806e072eb529f164ed30ca9915a01d264736f6c63430008170033