Overview ERC721
Total Supply:
0

Profile Summary
Blockchain:
Blast Sepolia (168587773)

Contract Source Code Verified (Exact Match)
Contract Name:
Blastosaurz

Compiler Version
v0.8.18+commit.87f61d96

Optimization Enabled:
Yes with 200 runs

Created At:
Sun, 14 Apr 2024 07:04:40 GMT
OwnableUpgradeable.sol
@openzeppelin
contracts-upgradeable
access
OwnableUpgradeable.sol


Contract ABI
[
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "approved",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "ApprovalForAll",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": false,
        "internalType": "uint8",
        "name": "version",
        "type": "uint8"
      }
    ],
    "name": "Initialized",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "_minter",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "MintNFT",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "previousOwner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "OwnershipTransferred",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "stateMutability": "payable",
    "type": "fallback"
  },
  {
    "inputs": [],
    "name": "BLAST",
    "outputs": [
      {
        "internalType": "contract IBlast",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MAX_NFT_SUPPLY",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "MINT_LIMIT_TRANSACTION",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "Reveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "UnReveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      }
    ],
    "name": "claimAllYield",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "claimMyContractsGas",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "claimMyContractsGasMax",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "recipient",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "claimYield",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "feeWenExchange",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      },
      {
        "internalType": "address",
        "name": "_user",
        "type": "address"
      }
    ],
    "name": "getMintLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      },
      {
        "internalType": "address",
        "name": "_user",
        "type": "address"
      }
    ],
    "name": "getMintPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getMintState",
    "outputs": [
      {
        "internalType": "string",
        "name": "_mintStep",
        "type": "string"
      },
      {
        "internalType": "bool",
        "name": "_mintPause",
        "type": "bool"
      },
      {
        "internalType": "uint256",
        "name": "_ogPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_wlPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_puPrice",
        "type": "uint256"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRootOG",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRootWL",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "initialize",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      }
    ],
    "name": "isApprovedForAll",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "merkleRootOG",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "merkleRootWL",
    "outputs": [
      {
        "internalType": "bytes32",
        "name": "",
        "type": "bytes32"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintCounter",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes32[]",
        "name": "_proof",
        "type": "bytes32[]"
      },
      {
        "internalType": "uint256",
        "name": "_quantity",
        "type": "uint256"
      }
    ],
    "name": "mintNFT",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_amount",
        "type": "uint256"
      }
    ],
    "name": "mintNFTForOwner",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintPause",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintStep",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ogLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ogPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "ogTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "owner",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "ownerOf",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "pause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "puLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "puPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "puTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "reveal",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "baseURI_",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_maxSupply",
        "type": "uint256"
      }
    ],
    "name": "setMaxSupply",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "extension_",
        "type": "string"
      }
    ],
    "name": "setMetadataExtension",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_mintLimitTransaction",
        "type": "uint256"
      }
    ],
    "name": "setMintLimitTransaction",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_mintStep",
        "type": "string"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRootOG",
        "type": "bytes32"
      },
      {
        "internalType": "bytes32",
        "name": "_merkleRootWL",
        "type": "bytes32"
      },
      {
        "internalType": "bool",
        "name": "_startNow",
        "type": "bool"
      }
    ],
    "name": "setMintState",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ogTime",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_wlTime",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_puTime",
        "type": "uint256"
      }
    ],
    "name": "setMintTimes",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_ogPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_wlPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_puPrice",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_ogLimit",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_wlLimit",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_puLimit",
        "type": "uint256"
      }
    ],
    "name": "setPriceAndLimit",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_stakingContract",
        "type": "address"
      }
    ],
    "name": "setStakingContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      }
    ],
    "name": "setUnrevealURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_wenExchange",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "_fee",
        "type": "uint256"
      }
    ],
    "name": "setWenExchange",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "stakingContract",
    "outputs": [
      {
        "internalType": "address payable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "tokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "totalSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unPause",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "unrevealURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wenExchange",
    "outputs": [
      {
        "internalType": "address payable",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wlLimit",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wlPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "wlTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "stateMutability": "payable",
    "type": "receive"
  }
]


Contract Creation Code
608060405234801561001057600080fd5b50613997806100206000396000f3fe6080604052600436106103ad5760003560e01c806377d5d2dc116101e5578063b803e2661161010c578063cba1e377116100a5578063eddbc03c11610077578063eddbc03c14610aa8578063ee99205c14610ac8578063f2fde38b14610ae9578063f7b188a514610b09578063fe62e71d14610b1e57005b8063cba1e37714610a08578063d3e9665814610a28578063d6492d8114610a48578063e985e9c514610a5f57005b8063c2d94aec116100de578063c2d94aec1461099a578063c4e3891b146109ba578063c7f8d01a146109d1578063c87b56dd146109e857005b8063b803e26614610928578063b88d4fde14610943578063beeb50de14610963578063c182eecf1461098357005b80639dd373b91161017e578063ad236d4c11610150578063ad236d4c146108c5578063ad6cb319146108e5578063af7c13e3146108fc578063b5077f441461091157005b80639dd373b91461084c5780639f6350e61461086c578063a22cb4651461088c578063a475b5dd146108ac57005b80638faeb78f116101b75780638faeb78f146107e257806395d89b41146107f757806397bc411c1461080c57806397d757761461082c57005b806377d5d2dc146107855780638129fc1c1461079a5780638456cb59146107af5780638da5cb5b146107c457005b8063420ac7c2116102d457806355f804b31161026d578063672cb6581161023f578063672cb658146106f35780636f8b44b01461070857806370a0823114610728578063715018a614610748578063774a88351461075d57005b806355f804b31461067d578063581290b81461069d5780636352211e146106be57806366b9f0d2146106de57005b806344c31e11116102a657806344c31e111461061857806346aa52ce1461062f5780634f6ccce7146106465780634f9134161461066657005b8063420ac7c2146105a157806342842e0e146105c15780634290f9a6146105e15780634475b72e146105f857005b806315f5d8a01161034657806323b872dd1161031857806323b872dd1461052c5780632ba23a6b1461054c5780632f745c591461056c5780633ccfd60b1461058c57005b806315f5d8a0146104cb57806318160ddd146104e25780631869ebda146104f75780632126ea811461051757005b8063093c2dd81161037f578063093c2dd81461046a578063095ea7b31461047d5780630b755bff1461049d578063117104c5146104b457005b806301ffc9a7146103b6578063058d9bf9146103eb57806306fdde0314610410578063081812fc1461043257005b366103b457005b005b3480156103c257600080fd5b506103d66103d1366004612f4f565b610b35565b60405190151581526020015b60405180910390f35b3480156103f757600080fd5b506104026101095481565b6040519081526020016103e2565b34801561041c57600080fd5b50610425610b60565b6040516103e29190612fbc565b34801561043e57600080fd5b5061045261044d366004612fcf565b610bf2565b6040516001600160a01b0390911681526020016103e2565b6103b4610478366004613034565b610c19565b34801561048957600080fd5b506103b461049836600461309c565b61109f565b3480156104a957600080fd5b5061040261010e5481565b3480156104c057600080fd5b506104026101065481565b3480156104d757600080fd5b506104026101025481565b3480156104ee57600080fd5b50609954610402565b34801561050357600080fd5b506103b461051236600461309c565b6111af565b34801561052357600080fd5b50610425611227565b34801561053857600080fd5b506103b46105473660046130c6565b6112b5565b34801561055857600080fd5b506103b46105673660046131be565b6112e6565b34801561057857600080fd5b5061040261058736600461309c565b61131b565b34801561059857600080fd5b506103b46113b1565b3480156105ad57600080fd5b506103b46105bc36600461321f565b61142d565b3480156105cd57600080fd5b506103b46105dc3660046130c6565b611458565b3480156105ed57600080fd5b506104026101075481565b34801561060457600080fd5b50610402610613366004613262565b611473565b34801561062457600080fd5b506104026101135481565b34801561063b57600080fd5b5061040261010f5481565b34801561065257600080fd5b50610402610661366004612fcf565b61157f565b34801561067257600080fd5b506104026101055481565b34801561068957600080fd5b506103b46106983660046132b6565b611612565b3480156106a957600080fd5b5061011254610452906001600160a01b031681565b3480156106ca57600080fd5b506104526106d9366004612fcf565b611626565b3480156106ea57600080fd5b506103b4611686565b3480156106ff57600080fd5b506103b461169d565b34801561071457600080fd5b506103b4610723366004612fcf565b6116b1565b34801561073457600080fd5b506104026107433660046132eb565b6116bf565b34801561075457600080fd5b506103b4611745565b34801561076957600080fd5b50610772611759565b6040516103e29796959493929190613306565b34801561079157600080fd5b506103b461182c565b3480156107a657600080fd5b506103b46118ac565b3480156107bb57600080fd5b506103b4611c70565b3480156107d057600080fd5b5060c9546001600160a01b0316610452565b3480156107ee57600080fd5b50610425611c88565b34801561080357600080fd5b50610425611c96565b34801561081857600080fd5b506103b46108273660046132b6565b611ca5565b34801561083857600080fd5b5060fb54610452906001600160a01b031681565b34801561085857600080fd5b506103b46108673660046132eb565b611cb9565b34801561087857600080fd5b506103b46108873660046132b6565b611ce4565b34801561089857600080fd5b506103b46108a736600461334a565b611cf8565b3480156108b857600080fd5b5060ff80546103d6911681565b3480156108d157600080fd5b506103b46108e0366004612fcf565b611d03565b3480156108f157600080fd5b5061040261010b5481565b34801561090857600080fd5b506103b4611d15565b34801561091d57600080fd5b5061040261010d5481565b34801561093457600080fd5b50610101546103d69060ff1681565b34801561094f57600080fd5b506103b461095e36600461337d565b611d53565b34801561096f57600080fd5b5061040261097e366004613262565b611d8b565b34801561098f57600080fd5b5061040261010a5481565b3480156109a657600080fd5b506103b46109b53660046132eb565b611e81565b3480156109c657600080fd5b506104026101085481565b3480156109dd57600080fd5b506104026101035481565b3480156109f457600080fd5b50610425610a03366004612fcf565b611ef1565b348015610a1457600080fd5b506103b4610a2336600461309c565b61206a565b348015610a3457600080fd5b506103b4610a433660046133f9565b61209a565b348015610a5457600080fd5b5061040261010c5481565b348015610a6b57600080fd5b506103d6610a7a366004613425565b6001600160a01b039182166000908152606a6020908152604080832093909416825291909152205460ff1690565b348015610ab457600080fd5b506103b4610ac3366004612fcf565b6120b3565b348015610ad457600080fd5b5061011054610452906001600160a01b031681565b348015610af557600080fd5b506103b4610b043660046132eb565b6120c1565b348015610b1557600080fd5b506103b4612137565b348015610b2a57600080fd5b506104026101045481565b60006001600160e01b0319821663780e9d6360e01b1480610b5a5750610b5a8261214c565b92915050565b606060658054610b6f9061344f565b80601f0160208091040260200160405190810160405280929190818152602001828054610b9b9061344f565b8015610be85780601f10610bbd57610100808354040283529160200191610be8565b820191906000526020600020905b815481529060010190602001808311610bcb57829003601f168201915b5050505050905090565b6000610bfd8261219c565b506000908152606960205260409020546001600160a01b031690565b60008111610c645760405162461bcd60e51b8152602060048201526013602482015272125b9d985b1a59081b5a5b9d08185b5bdd5b9d606a1b60448201526064015b60405180910390fd5b61010e54811115610cc15760405162461bcd60e51b815260206004820152602160248201527f457863656564206d696e74206c696d697420706572207472616e73616374696f6044820152603760f91b6064820152608401610c5b565b80610ccb336116bf565b610cd5919061349f565b610ce0848433611473565b1015610d2e5760405162461bcd60e51b815260206004820152601d60248201527f457863656564206d696e74206c696d697420706572206163636f756e740000006044820152606401610c5b565b3481610d3b858533611d8b565b610d4591906134b2565b1115610d935760405162461bcd60e51b815260206004820152601860248201527f4554482076616c7565206973206e6f7420636f727265637400000000000000006044820152606401610c5b565b6101015460ff1615610dd55760405162461bcd60e51b815260206004820152600b60248201526a135a5b9d0814185d5cd95960aa1b6044820152606401610c5b565b6101085442118015610de957506101095442105b15610eb757610e568383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010b54604051909250610e3b915033906020016134c9565b604051602081830303815290604052805190602001206121fb565b610eb25760405162461bcd60e51b815260206004820152602760248201527f4164647265737320646f6573206e6f7420657869737420696e206f726967696e60448201526630b63634b9ba1760c91b6064820152608401610c5b565b610fbc565b6101095442118015610ecb575061010a5442105b15610f7557610f1d8383808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010c54604051909250610e3b915033906020016134c9565b610eb25760405162461bcd60e51b8152602060048201526024808201527f4164647265737320646f6573206e6f7420657869737420696e2077686974656c60448201526334b9ba1760e11b6064820152608401610c5b565b61010a544211610fbc5760405162461bcd60e51b8152602060048201526012602482015271283ab13634b1902a34b6b29032b93937b91760711b6044820152606401610c5b565b610110546001600160a01b03166108fc610fd7600a346134e6565b6040518115909202916000818181858888f19350505050158015610fff573d6000803e3d6000fd5b50610111546001600160a01b03166108fc61101b6005346134e6565b6040518115909202916000818181858888f19350505050158015611043573d6000803e3d6000fd5b5061011254610113546001600160a01b03909116906108fc906110679084906134b2565b6040518115909202916000818181858888f1935050505015801561108f573d6000803e3d6000fd5b5061109a3382612211565b505050565b60006110aa82611626565b9050806001600160a01b0316836001600160a01b0316036111175760405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608401610c5b565b336001600160a01b038216148061113357506111338133610a7a565b6111a55760405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608401610c5b565b61109a83836122d6565b6111b7612344565b60fb54604051637cb8cb3160e11b81523060048201526001600160a01b038481166024830152604482018490529091169063f971966290606401600060405180830381600087803b15801561120b57600080fd5b505af115801561121f573d6000803e3d6000fd5b505050505050565b60fe80546112349061344f565b80601f01602080910402602001604051908101604052809291908181526020018280546112609061344f565b80156112ad5780601f10611282576101008083540402835291602001916112ad565b820191906000526020600020905b81548152906001019060200180831161129057829003601f168201915b505050505081565b6112bf338261239e565b6112db5760405162461bcd60e51b8152600401610c5b90613508565b61109a83838361241d565b6112ee612344565b6101006112fb858261359b565b5061010b9290925561010c55610101805460ff1916911591909117905550565b6000611326836116bf565b82106113885760405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608401610c5b565b506001600160a01b03919091166000908152609760209081526040808320938352929052205490565b6113b9612344565b6101015460ff166113fb5760405162461bcd60e51b815260206004820152600c60248201526b4d696e742072756e6e696e6760a01b6044820152606401610c5b565b604051339081904780156108fc02916000818181858888f19350505050158015611429573d6000803e3d6000fd5b5050565b611435612344565b610102959095556101039390935561010491909155610105556101065561010755565b61109a83838360405180602001604052806000815250611d53565b6000610108544211801561148957506101095442105b156114f2576114db8484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010b54604051909250610e3b915086906020016134c9565b156114ea575061010554611578565b506000611578565b6101095442118015611506575061010a5442105b15611567576115588484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010c54604051909250610e3b915086906020016134c9565b156114ea575061010654611578565b61010a544211156114ea5750610107545b9392505050565b600061158a60995490565b82106115ed5760405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608401610c5b565b609982815481106116005761160061365b565b90600052602060002001549050919050565b61161a612344565b60fc611429828261359b565b6000818152606760205260408120546001600160a01b031680610b5a5760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5b565b61168e612344565b60ff805460ff19166001179055565b6116a5612344565b60ff805460ff19169055565b6116b9612344565b61010d55565b60006001600160a01b0382166117295760405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608401610c5b565b506001600160a01b031660009081526068602052604090205490565b61174d612344565b611757600061258e565b565b606060008060008060008061010080546117729061344f565b80601f016020809104026020016040519081016040528092919081815260200182805461179e9061344f565b80156117eb5780601f106117c0576101008083540402835291602001916117eb565b820191906000526020600020905b8154815290600101906020018083116117ce57829003601f168201915b5050505050965061010160009054906101000a900460ff16955061010254945061010354935061010454925061010b54915061010c54905090919293949596565b611834612344565b60fb54604051634aa7d2f760e11b81523060048201523360248201526001600160a01b039091169063954fa5ee906044015b6020604051808303816000875af1158015611885573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906118a99190613671565b50565b600054610100900460ff16158080156118cc5750600054600160ff909116105b806118e65750303b1580156118e6575060005460ff166001145b6119495760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608401610c5b565b6000805460ff19166001179055801561196c576000805461ff0019166101001790555b6119b46040518060400160405280600b81526020016a213630b9ba37b9b0bab93d60a91b81525060405180604001604052806003815260200162424c5360e81b8152506125e0565b6119bc612611565b660a4d88ddd9400061010255660f46d3c488c000610103556614401eab3840006101045560026101058190556101065560056101075563661b8d006101085563661b9b106101095563661ba92061010a5561138861010d55600a61010e556040805160808101909152605380825261390f602083013960fc90611a3f908261359b565b50604080518082019091526005815264173539b7b760d91b602082015260fd90611a69908261359b565b506040518060800160405280606081526020016138af6060913960fe90611a90908261359b565b5061011180547359790e88301b2376d5c3c421d6b4b6d640d18e8d6001600160a01b0319918216179091556101128054736f2dad132b8c2c4a28915b2024533ac7086e5a19908316179055660305120c0f20006101135560fb80546002604360981b019216821790556040805163784c3b3d60e11b8152905163f098767a9160048082019260009290919082900301818387803b158015611b3057600080fd5b505af1158015611b44573d6000803e3d6000fd5b5050505060fb60009054906101000a90046001600160a01b03166001600160a01b0316634e606c476040518163ffffffff1660e01b8152600401600060405180830381600087803b158015611b9857600080fd5b505af1158015611bac573d6000803e3d6000fd5b50506040516336b91f2b60e01b8152737eb11f470551e7add74c93e32f2ae3aacf4fa66f6004820152732fc95838c71e76ec69ff817983bff17c710f34e092506336b91f2b9150602401600060405180830381600087803b158015611c1057600080fd5b505af1158015611c24573d6000803e3d6000fd5b5050505080156118a9576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a150565b611c78612344565b610101805460ff19166001179055565b61010080546112349061344f565b606060668054610b6f9061344f565b611cad612344565b60fe611429828261359b565b611cc1612344565b61011080546001600160a01b0319166001600160a01b0392909216919091179055565b611cec612344565b60fd611429828261359b565b611429338383612640565b611d0b612344565b6118a93382612211565b611d1d612344565b60fb5460405163662aa11d60e01b81523060048201523360248201526001600160a01b039091169063662aa11d90604401611866565b611d5d338361239e565b611d795760405162461bcd60e51b8152600401610c5b90613508565b611d858484848461270e565b50505050565b60006101085442118015611da157506101095442105b15611e0c57611df38484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010b54604051909250610e3b915086906020016134c9565b15611e02575061010254611578565b5061010454611578565b6101095442118015611e20575061010a5442105b15611e0257611e728484808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505061010c54604051909250610e3b915086906020016134c9565b15611e02575061010354611578565b611e89612344565b60fb5460405163430021db60e11b81523060048201526001600160a01b0383811660248301529091169063860043b690604401600060405180830381600087803b158015611ed657600080fd5b505af1158015611eea573d6000803e3d6000fd5b5050505050565b6000818152606760205260409020546060906001600160a01b0316611f705760405162461bcd60e51b815260206004820152602f60248201527f4552433732314d657461646174613a2055524920717565727920666f72206e6f60448201526e3732bc34b9ba32b73a103a37b5b2b760891b6064820152608401610c5b565b60ff80541661200b5760fe8054611f869061344f565b80601f0160208091040260200160405190810160405280929190818152602001828054611fb29061344f565b8015611fff5780601f10611fd457610100808354040283529160200191611fff565b820191906000526020600020905b815481529060010190602001808311611fe257829003601f168201915b50505050509050919050565b600060fc805461201a9061344f565b9050116120365760405180602001604052806000815250610b5a565b60fc61204183612741565b60fd604051602001612055939291906136fd565b60405160208183030381529060405292915050565b612072612344565b61011280546001600160a01b0319166001600160a01b03939093169290921790915561011355565b6120a2612344565b610108929092556101095561010a55565b6120bb612344565b61010e55565b6120c9612344565b6001600160a01b03811661212e5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608401610c5b565b6118a98161258e565b61213f612344565b610101805460ff19169055565b60006001600160e01b031982166380ac58cd60e01b148061217d57506001600160e01b03198216635b5e139f60e01b145b80610b5a57506301ffc9a760e01b6001600160e01b0319831614610b5a565b6000818152606760205260409020546001600160a01b03166118a95760405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606401610c5b565b60008261220885846127d4565b14949350505050565b60005b8181101561229c5761010d5461010f541061226a5760405162461bcd60e51b815260206004820152601660248201527514d85b19481a185cc8185b1c9958591e48195b99195960521b6044820152606401610c5b565b61010f5461227990600161349f565b61010f81905561228a908490612821565b8061229481613730565b915050612214565b5060405181815233907f1f89f147a58d1673945cf416187db98efc8208408c011b91887acd59fd8523c39060200160405180910390a25050565b600081815260696020526040902080546001600160a01b0319166001600160a01b038416908117909155819061230b82611626565b6001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60c9546001600160a01b031633146117575760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152606401610c5b565b6000806123aa83611626565b9050806001600160a01b0316846001600160a01b031614806123f157506001600160a01b038082166000908152606a602090815260408083209388168352929052205460ff165b806124155750836001600160a01b031661240a84610bf2565b6001600160a01b0316145b949350505050565b826001600160a01b031661243082611626565b6001600160a01b0316146124565760405162461bcd60e51b8152600401610c5b90613749565b6001600160a01b0382166124b85760405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608401610c5b565b6124c5838383600161283b565b826001600160a01b03166124d882611626565b6001600160a01b0316146124fe5760405162461bcd60e51b8152600401610c5b90613749565b600081815260696020908152604080832080546001600160a01b03199081169091556001600160a01b0387811680865260688552838620805460001901905590871680865283862080546001019055868652606790945282852080549092168417909155905184937fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b60c980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b600054610100900460ff166126075760405162461bcd60e51b8152600401610c5b9061378e565b6114298282612968565b600054610100900460ff166126385760405162461bcd60e51b8152600401610c5b9061378e565b6117576129a8565b816001600160a01b0316836001600160a01b0316036126a15760405162461bcd60e51b815260206004820152601960248201527f4552433732313a20617070726f766520746f2063616c6c6572000000000000006044820152606401610c5b565b6001600160a01b038381166000818152606a6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b61271984848461241d565b612725848484846129d8565b611d855760405162461bcd60e51b8152600401610c5b906137d9565b6060600061274e83612ad9565b600101905060008167ffffffffffffffff81111561276e5761276e613102565b6040519080825280601f01601f191660200182016040528015612798576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846127a257509392505050565b600081815b845181101561281957612805828683815181106127f8576127f861365b565b6020026020010151612bb1565b91508061281181613730565b9150506127d9565b509392505050565b611429828260405180602001604052806000815250612bdd565b60018111156128aa5760405162461bcd60e51b815260206004820152603560248201527f455243373231456e756d657261626c653a20636f6e7365637574697665207472604482015274185b9cd9995c9cc81b9bdd081cdd5c1c1bdc9d1959605a1b6064820152608401610c5b565b816001600160a01b0385166129065761290181609980546000838152609a60205260408120829055600182018355919091527f72a152ddfb8e864297c917af52ea6c1c68aead0fee1a62673fcc7e0c94979d000155565b612929565b836001600160a01b0316856001600160a01b031614612929576129298582612c10565b6001600160a01b0384166129455761294081612cad565b611eea565b846001600160a01b0316846001600160a01b031614611eea57611eea8482612d5c565b600054610100900460ff1661298f5760405162461bcd60e51b8152600401610c5b9061378e565b606561299b838261359b565b50606661109a828261359b565b600054610100900460ff166129cf5760405162461bcd60e51b8152600401610c5b9061378e565b6117573361258e565b60006001600160a01b0384163b15612ace57604051630a85bd0160e11b81526001600160a01b0385169063150b7a0290612a1c90339089908890889060040161382b565b6020604051808303816000875af1925050508015612a57575060408051601f3d908101601f19168201909252612a5491810190613868565b60015b612ab4573d808015612a85576040519150601f19603f3d011682016040523d82523d6000602084013e612a8a565b606091505b508051600003612aac5760405162461bcd60e51b8152600401610c5b906137d9565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612415565b506001949350505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310612b185772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310612b44576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310612b6257662386f26fc10000830492506010015b6305f5e1008310612b7a576305f5e100830492506008015b6127108310612b8e57612710830492506004015b60648310612ba0576064830492506002015b600a8310610b5a5760010192915050565b6000818310612bcd576000828152602084905260409020611578565b5060009182526020526040902090565b612be78383612da0565b612bf460008484846129d8565b61109a5760405162461bcd60e51b8152600401610c5b906137d9565b60006001612c1d846116bf565b612c279190613885565b600083815260986020526040902054909150808214612c7a576001600160a01b03841660009081526097602090815260408083208584528252808320548484528184208190558352609890915290208190555b5060009182526098602090815260408084208490556001600160a01b039094168352609781528383209183525290812055565b609954600090612cbf90600190613885565b6000838152609a602052604081205460998054939450909284908110612ce757612ce761365b565b906000526020600020015490508060998381548110612d0857612d0861365b565b6000918252602080832090910192909255828152609a90915260408082208490558582528120556099805480612d4057612d40613898565b6001900381819060005260206000200160009055905550505050565b6000612d67836116bf565b6001600160a01b039093166000908152609760209081526040808320868452825280832085905593825260989052919091209190915550565b6001600160a01b038216612df65760405162461bcd60e51b815260206004820181905260248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152606401610c5b565b6000818152606760205260409020546001600160a01b031615612e5b5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5b565b612e6960008383600161283b565b6000818152606760205260409020546001600160a01b031615612ece5760405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606401610c5b565b6001600160a01b038216600081815260686020908152604080832080546001019055848352606790915280822080546001600160a01b0319168417905551839291907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b6001600160e01b0319811681146118a957600080fd5b600060208284031215612f6157600080fd5b813561157881612f39565b60005b83811015612f87578181015183820152602001612f6f565b50506000910152565b60008151808452612fa8816020860160208601612f6c565b601f01601f19169290920160200192915050565b6020815260006115786020830184612f90565b600060208284031215612fe157600080fd5b5035919050565b60008083601f840112612ffa57600080fd5b50813567ffffffffffffffff81111561301257600080fd5b6020830191508360208260051b850101111561302d57600080fd5b9250929050565b60008060006040848603121561304957600080fd5b833567ffffffffffffffff81111561306057600080fd5b61306c86828701612fe8565b909790965060209590950135949350505050565b80356001600160a01b038116811461309757600080fd5b919050565b600080604083850312156130af57600080fd5b6130b883613080565b946020939093013593505050565b6000806000606084860312156130db57600080fd5b6130e484613080565b92506130f260208501613080565b9150604084013590509250925092565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561313357613133613102565b604051601f8501601f19908116603f0116810190828211818310171561315b5761315b613102565b8160405280935085815286868601111561317457600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261319f57600080fd5b61157883833560208501613118565b8035801515811461309757600080fd5b600080600080608085870312156131d457600080fd5b843567ffffffffffffffff8111156131eb57600080fd5b6131f78782880161318e565b9450506020850135925060408501359150613214606086016131ae565b905092959194509250565b60008060008060008060c0878903121561323857600080fd5b505084359660208601359650604086013595606081013595506080810135945060a0013592509050565b60008060006040848603121561327757600080fd5b833567ffffffffffffffff81111561328e57600080fd5b61329a86828701612fe8565b90945092506132ad905060208501613080565b90509250925092565b6000602082840312156132c857600080fd5b813567ffffffffffffffff8111156132df57600080fd5b6124158482850161318e565b6000602082840312156132fd57600080fd5b61157882613080565b60e08152600061331960e083018a612f90565b97151560208301525060408101959095526060850193909352608084019190915260a083015260c090910152919050565b6000806040838503121561335d57600080fd5b61336683613080565b9150613374602084016131ae565b90509250929050565b6000806000806080858703121561339357600080fd5b61339c85613080565b93506133aa60208601613080565b925060408501359150606085013567ffffffffffffffff8111156133cd57600080fd5b8501601f810187136133de57600080fd5b6133ed87823560208401613118565b91505092959194509250565b60008060006060848603121561340e57600080fd5b505081359360208301359350604090920135919050565b6000806040838503121561343857600080fd5b61344183613080565b915061337460208401613080565b600181811c9082168061346357607f821691505b60208210810361348357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820180821115610b5a57610b5a613489565b8082028115828204841417610b5a57610b5a613489565b60609190911b6bffffffffffffffffffffffff1916815260140190565b60008261350357634e487b7160e01b600052601260045260246000fd5b500490565b6020808252602d908201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560408201526c1c881bdc88185c1c1c9bdd9959609a1b606082015260800190565b601f82111561109a57600081815260208120601f850160051c8101602086101561357c5750805b601f850160051c820191505b8181101561121f57828155600101613588565b815167ffffffffffffffff8111156135b5576135b5613102565b6135c9816135c3845461344f565b84613555565b602080601f8311600181146135fe57600084156135e65750858301515b600019600386901b1c1916600185901b17855561121f565b600085815260208120601f198616915b8281101561362d5788860151825594840194600190910190840161360e565b508582101561364b5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b60006020828403121561368357600080fd5b5051919050565b600081546136978161344f565b600182811680156136af57600181146136c4576136f3565b60ff19841687528215158302870194506136f3565b8560005260208060002060005b858110156136ea5781548a8201529084019082016136d1565b50505082870194505b5050505092915050565b6000613709828661368a565b8451613719818360208901612f6c565b6137258183018661368a565b979650505050505050565b60006001820161374257613742613489565b5060010190565b60208082526025908201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060408201526437bbb732b960d91b606082015260800190565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b60208082526032908201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b606082015260800190565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061385e90830184612f90565b9695505050505050565b60006020828403121561387a57600080fd5b815161157881612f39565b81810381811115610b5a57610b5a613489565b634e487b7160e01b600052603160045260246000fdfe68747470733a2f2f7261696a696e732e6d7970696e6174612e636c6f75642f697066732f516d55347679314e46725a425a7036504867554b50724b3662504851776877686b6d637770586832357841614b722f756e72657665616c2e6a736f6e68747470733a2f2f7261696a696e732e6d7970696e6174612e636c6f75642f697066732f516d516a6f6d694248545a59764d33506633534b7a775266357a546b5477374a6f424e58733854627966534a35642fa26469706673582212202a2b7dc3c0c968d607768c344d3a0204f964e7cc7f845ed34a21ab0379cf26a964736f6c63430008120033