Overview ERC721
Total Supply:
1,129 EXFS

Holders:
714
Profile Summary
Blockchain:
C-Chain (43114)

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

Compiler Version
v0.8.14+commit.80d49f37

Optimization Enabled:
No

Created At:
Mon, 03 Oct 2022 16:02:36 GMT
CoralNftV1.sol
src
CoralNftV1.sol


Contract ABI
[
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_name",
        "type": "string"
      },
      {
        "internalType": "string",
        "name": "_symbol",
        "type": "string"
      },
      {
        "internalType": "uint16",
        "name": "_usdPricePerToken",
        "type": "uint16"
      },
      {
        "internalType": "uint16",
        "name": "_maxSupply",
        "type": "uint16"
      },
      {
        "internalType": "uint8",
        "name": "_maxTokensPerWallet",
        "type": "uint8"
      },
      {
        "internalType": "string",
        "name": "_baseTokenURI",
        "type": "string"
      },
      {
        "internalType": "uint256",
        "name": "_saleStartTime",
        "type": "uint256"
      },
      {
        "internalType": "address",
        "name": "_royaltyRecipient",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "_royaltyFeeNumerator",
        "type": "uint96"
      },
      {
        "internalType": "address",
        "name": "_priceFeedAddress",
        "type": "address"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "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": 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": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "RelayMint",
    "type": "event"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_newRelayAddr",
        "type": "address"
      }
    ],
    "name": "addRelayAddr",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "_recipients",
        "type": "address[]"
      }
    ],
    "name": "airdropMint",
    "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": [],
    "name": "closeAirdropMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "deleteDefaultRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getTokenPriceInAvax",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "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": "isSaleActive",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxSupply",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "maxTokensPerWallet",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "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": "publicMint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      }
    ],
    "name": "relayMint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revokeAllRelayAddrPrivileges",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_relayAddr",
        "type": "address"
      }
    ],
    "name": "revokeRelayAddrPrivilege",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_tokenId",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "_salePrice",
        "type": "uint256"
      }
    ],
    "name": "royaltyInfo",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      },
      {
        "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": "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": [],
    "name": "saleStartTime",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": "address",
        "name": "receiver",
        "type": "address"
      },
      {
        "internalType": "uint96",
        "name": "feeNumerator",
        "type": "uint96"
      }
    ],
    "name": "setDefaultRoyalty",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_newAddress",
        "type": "address"
      }
    ],
    "name": "setPriceFeedAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "_newTime",
        "type": "uint256"
      }
    ],
    "name": "setSaleStartTime",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_newState",
        "type": "bool"
      }
    ],
    "name": "setSaleState",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_newTokenURI",
        "type": "string"
      }
    ],
    "name": "setTokenURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bytes4",
        "name": "interfaceId",
        "type": "bytes4"
      }
    ],
    "name": "supportsInterface",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "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": "usdPricePerToken",
    "outputs": [
      {
        "internalType": "uint16",
        "name": "",
        "type": "uint16"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60c06040526001600b60026101000a81548160ff0219169083151502179055506001600b60036101000a81548160ff0219169083151502179055503480156200004757600080fd5b506040516200529f3803806200529f83398181016040528101906200006d9190620007de565b808a8a8160009080519060200190620000889291906200042b565b508060019080519060200190620000a19291906200042b565b505050620000c4620000b86200019a60201b60201c565b620001a260201b60201c565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505087600b60006101000a81548161ffff021916908361ffff1602179055508661ffff1660808161ffff16815250508560ff1660a08160ff168152505084600c9080519060200190620001599291906200042b565b5083600d8190555062000178600a6200026860201b62001c7b1760201c565b6200018a83836200027e60201b60201c565b5050505050505050505062000ab0565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6001816000016000828254019250508190555050565b6200028e6200042160201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115620002ef576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002e690620009b8565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160362000361576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003589062000a2a565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000612710905090565b828054620004399062000a7b565b90600052602060002090601f0160209004810192826200045d5760008555620004a9565b82601f106200047857805160ff1916838001178555620004a9565b82800160010185558215620004a9579182015b82811115620004a85782518255916020019190600101906200048b565b5b509050620004b89190620004bc565b5090565b5b80821115620004d7576000816000905550600101620004bd565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6200054482620004f9565b810181811067ffffffffffffffff821117156200056657620005656200050a565b5b80604052505050565b60006200057b620004db565b905062000589828262000539565b919050565b600067ffffffffffffffff821115620005ac57620005ab6200050a565b5b620005b782620004f9565b9050602081019050919050565b60005b83811015620005e4578082015181840152602081019050620005c7565b83811115620005f4576000848401525b50505050565b6000620006116200060b846200058e565b6200056f565b90508281526020810184848401111562000630576200062f620004f4565b5b6200063d848285620005c4565b509392505050565b600082601f8301126200065d576200065c620004ef565b5b81516200066f848260208601620005fa565b91505092915050565b600061ffff82169050919050565b620006918162000678565b81146200069d57600080fd5b50565b600081519050620006b18162000686565b92915050565b600060ff82169050919050565b620006cf81620006b7565b8114620006db57600080fd5b50565b600081519050620006ef81620006c4565b92915050565b6000819050919050565b6200070a81620006f5565b81146200071657600080fd5b50565b6000815190506200072a81620006ff565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200075d8262000730565b9050919050565b6200076f8162000750565b81146200077b57600080fd5b50565b6000815190506200078f8162000764565b92915050565b60006bffffffffffffffffffffffff82169050919050565b620007b88162000795565b8114620007c457600080fd5b50565b600081519050620007d881620007ad565b92915050565b6000806000806000806000806000806101408b8d031215620008055762000804620004e5565b5b60008b015167ffffffffffffffff811115620008265762000825620004ea565b5b620008348d828e0162000645565b9a505060208b015167ffffffffffffffff811115620008585762000857620004ea565b5b620008668d828e0162000645565b9950506040620008798d828e01620006a0565b98505060606200088c8d828e01620006a0565b97505060806200089f8d828e01620006de565b96505060a08b015167ffffffffffffffff811115620008c357620008c2620004ea565b5b620008d18d828e0162000645565b95505060c0620008e48d828e0162000719565b94505060e0620008f78d828e016200077e565b9350506101006200090b8d828e01620007c7565b9250506101206200091f8d828e016200077e565b9150509295989b9194979a5092959850565b600082825260208201905092915050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000620009a0602a8362000931565b9150620009ad8262000942565b604082019050919050565b60006020820190508181036000830152620009d38162000991565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b600062000a1260198362000931565b915062000a1f82620009da565b602082019050919050565b6000602082019050818103600083015262000a458162000a03565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000a9457607f821691505b60208210810362000aaa5762000aa962000a4c565b5b50919050565b60805160a0516147a662000af960003960008181610dac0152818161121401526114d6015260008181610e8b015281816112f8015281816115510152611afb01526147a66000f3fe6080604052600436106102245760003560e01c8063563266fb11610123578063a22cb465116100ab578063d5abeb011161006f578063d5abeb0114610796578063e0df5b6f146107c1578063e985e9c5146107ea578063f2fde38b14610827578063fa3acf251461085057610224565b8063a22cb465146106c7578063aa1b103f146106f0578063b88d4fde14610707578063c4e3709514610730578063c87b56dd1461075957610224565b806370a08231116100f257806370a08231146105f2578063715018a61461062f5780638da5cb5b1461064657806395d89b41146106715780639e1815c31461069c57610224565b8063563266fb1461054a578063564566a8146105735780635fdaca441461059e5780636352211e146105b557610224565b80631a922666116101b15780633ccfd60b116101755780633ccfd60b1461048d57806342842e0e146104a4578063469132ce146104cd57806346d36211146104f8578063525f8a5c1461052157610224565b80631a922666146103c65780631cbaee2d146103f157806323b872dd1461041c57806326092b83146104455780632a55205a1461044f57610224565b806306fdde03116101f857806306fdde03146102e1578063081812fc1461030c578063095ea7b314610349578063163079861461037257806318160ddd1461039b57610224565b8062cf5db41461022957806301ffc9a71461025257806303a751d01461028f57806304634d8d146102b8575b600080fd5b34801561023557600080fd5b50610250600480360381019061024b9190612d62565b610867565b005b34801561025e57600080fd5b5061027960048036038101906102749190612de7565b6108b3565b6040516102869190612e2f565b60405180910390f35b34801561029b57600080fd5b506102b660048036038101906102b19190612d62565b6108c5565b005b3480156102c457600080fd5b506102df60048036038101906102da9190612e8e565b6109b4565b005b3480156102ed57600080fd5b506102f66109ca565b6040516103039190612f67565b60405180910390f35b34801561031857600080fd5b50610333600480360381019061032e9190612fbf565b610a5c565b6040516103409190612ffb565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190613016565b610aa2565b005b34801561037e57600080fd5b5061039960048036038101906103949190612d62565b610bb9565b005b3480156103a757600080fd5b506103b0610c7f565b6040516103bd9190613065565b60405180910390f35b3480156103d257600080fd5b506103db610c9c565b6040516103e8919061309d565b60405180910390f35b3480156103fd57600080fd5b50610406610cb0565b6040516104139190613065565b60405180910390f35b34801561042857600080fd5b50610443600480360381019061043e91906130b8565b610cb6565b005b61044d610d16565b005b34801561045b57600080fd5b506104766004803603810190610471919061310b565b610f08565b60405161048492919061314b565b60405180910390f35b34801561049957600080fd5b506104a26110f2565b005b3480156104b057600080fd5b506104cb60048036038101906104c691906130b8565b6111f2565b005b3480156104d957600080fd5b506104e2611212565b6040516104ef9190613190565b60405180910390f35b34801561050457600080fd5b5061051f600480360381019061051a91906132f3565b611236565b005b34801561052d57600080fd5b5061054860048036038101906105439190612fbf565b61139b565b005b34801561055657600080fd5b50610571600480360381019061056c9190612d62565b6113ad565b005b34801561057f57600080fd5b506105886115fb565b6040516105959190612e2f565b60405180910390f35b3480156105aa57600080fd5b506105b361160e565b005b3480156105c157600080fd5b506105dc60048036038101906105d79190612fbf565b611712565b6040516105e99190612ffb565b60405180910390f35b3480156105fe57600080fd5b5061061960048036038101906106149190612d62565b6117c3565b6040516106269190613065565b60405180910390f35b34801561063b57600080fd5b5061064461187a565b005b34801561065257600080fd5b5061065b61188e565b6040516106689190612ffb565b60405180910390f35b34801561067d57600080fd5b506106866118b8565b6040516106939190612f67565b60405180910390f35b3480156106a857600080fd5b506106b161194a565b6040516106be9190613065565b60405180910390f35b3480156106d357600080fd5b506106ee60048036038101906106e99190613368565b61196e565b005b3480156106fc57600080fd5b50610705611984565b005b34801561071357600080fd5b5061072e6004803603810190610729919061345d565b611996565b005b34801561073c57600080fd5b50610757600480360381019061075291906134e0565b6119f8565b005b34801561076557600080fd5b50610780600480360381019061077b9190612fbf565b611a1d565b60405161078d9190612f67565b60405180910390f35b3480156107a257600080fd5b506107ab611af9565b6040516107b8919061309d565b60405180910390f35b3480156107cd57600080fd5b506107e860048036038101906107e391906135ae565b611b1d565b005b3480156107f657600080fd5b50610811600480360381019061080c91906135f7565b611b3f565b60405161081e9190612e2f565b60405180910390f35b34801561083357600080fd5b5061084e60048036038101906108499190612d62565b611bd3565b005b34801561085c57600080fd5b50610865611c56565b005b61086f611c91565b80600960006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006108be82611d0f565b9050919050565b6108cd611c91565b600e60008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16610959576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095090613683565b60405180910390fd5b6000600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b6109bc611c91565b6109c68282611d89565b5050565b6060600080546109d9906136d2565b80601f0160208091040260200160405190810160405280929190818152602001828054610a05906136d2565b8015610a525780601f10610a2757610100808354040283529160200191610a52565b820191906000526020600020905b815481529060010190602001808311610a3557829003601f168201915b5050505050905090565b6000610a6782611f1e565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610aad82611712565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b1d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b1490613775565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610b3c611f69565b73ffffffffffffffffffffffffffffffffffffffff161480610b6b5750610b6a81610b65611f69565b611b3f565b5b610baa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ba190613807565b60405180910390fd5b610bb48383611f71565b505050565b610bc1611c91565b6001600e60008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550600f819080600181540180825580915050600190039060005260206000200160009091909190916101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60006001610c8d600a61202a565b610c979190613856565b905090565b600b60009054906101000a900461ffff1681565b600d5481565b610cc7610cc1611f69565b82612038565b610d06576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfd906138fc565b60405180910390fd5b610d118383836120cd565b505050565b600b60039054906101000a900460ff16610d65576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d5c90613968565b60405180910390fd5b600d54421015610daa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da1906139d4565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060ff16610dd7336117c3565b10610e17576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e0e90613a66565b60405180910390fd5b6000610e36600b60009054906101000a900461ffff1661ffff16612333565b905080341015610e7b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e7290613ad2565b60405180910390fd5b6000610e87600a61202a565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff16811115610ef0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee790613b3e565b60405180910390fd5b610efa600a611c7b565b610f043382612382565b5050565b6000806000600760008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff160361109d5760066040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006110a761255b565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866110d39190613b5e565b6110dd9190613be7565b90508160000151819350935050509250929050565b6110fa611c91565b600047905060008111611142576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161113990613c64565b60405180910390fd5b60003373ffffffffffffffffffffffffffffffffffffffff168260405161116890613cb5565b60006040518083038185875af1925050503d80600081146111a5576040519150601f19603f3d011682016040523d82523d6000602084013e6111aa565b606091505b50509050806111ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111e590613d16565b60405180910390fd5b5050565b61120d83838360405180602001604052806000815250611996565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b61123e611c91565b600b60029054906101000a900460ff1661128d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161128490613d82565b60405180910390fd5b600b60039054906101000a900460ff166112dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d390613968565b60405180910390fd5b60005b81518110156113975760006112f4600a61202a565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff1681111561135d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161135490613b3e565b60405180910390fd5b611367600a611c7b565b61138b83838151811061137d5761137c613da2565b5b602002602001015182612382565b816001019150506112df565b5050565b6113a3611c91565b80600d8190555050565b600b60039054906101000a900460ff166113fc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f390613968565b60405180910390fd5b600d54421015611441576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611438906139d4565b60405180910390fd5b60011515600e60003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff161515146114d4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114cb90613e1d565b60405180910390fd5b7f000000000000000000000000000000000000000000000000000000000000000060ff16611501826117c3565b10611541576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161153890613a66565b60405180910390fd5b600061154d600a61202a565b90507f000000000000000000000000000000000000000000000000000000000000000061ffff168111156115b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115ad90613b3e565b60405180910390fd5b6115c0600a611c7b565b6115ca8282612382565b807f7a011e4ac7d1bdba42f20053b41b4e3f11b036133ba82ba1470080b4d8e6059260405160405180910390a25050565b600b60039054906101000a900460ff1681565b611616611c91565b6000600f805490501161165e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161165590613e89565b60405180910390fd5b60005b600f8054905081101561170f576000600e6000600f848154811061168857611687613da2565b5b9060005260206000200160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550806001019050611661565b50565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036117ba576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b190613ef5565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611833576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161182a90613f87565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b611882611c91565b61188c6000612565565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546118c7906136d2565b80601f01602080910402602001604051908101604052809291908181526020018280546118f3906136d2565b80156119405780601f1061191557610100808354040283529160200191611940565b820191906000526020600020905b81548152906001019060200180831161192357829003601f168201915b5050505050905090565b6000611969600b60009054906101000a900461ffff1661ffff16612333565b905090565b611980611979611f69565b838361262b565b5050565b61198c611c91565b611994612797565b565b6119a76119a1611f69565b83612038565b6119e6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119dd906138fc565b60405180910390fd5b6119f2848484846127e4565b50505050565b611a00611c91565b80600b60036101000a81548160ff02191690831515021790555050565b6060611a2882612840565b611a67576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5e90614019565b60405180910390fd5b600c8054611a74906136d2565b80601f0160208091040260200160405190810160405280929190818152602001828054611aa0906136d2565b8015611aed5780601f10611ac257610100808354040283529160200191611aed565b820191906000526020600020905b815481529060010190602001808311611ad057829003601f168201915b50505050509050919050565b7f000000000000000000000000000000000000000000000000000000000000000081565b611b25611c91565b80600c9080519060200190611b3b929190612c4d565b5050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611bdb611c91565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611c4a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c41906140ab565b60405180910390fd5b611c5381612565565b50565b611c5e611c91565b6000600b60026101000a81548160ff021916908315150217905550565b6001816000016000828254019250508190555050565b611c99611f69565b73ffffffffffffffffffffffffffffffffffffffff16611cb761188e565b73ffffffffffffffffffffffffffffffffffffffff1614611d0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d0490614117565b60405180910390fd5b565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611d825750611d81826128ac565b5b9050919050565b611d9161255b565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611def576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611de6906141a9565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611e5e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e5590614215565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600660008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b611f2781612840565b611f66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f5d90613ef5565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611fe483611712565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b60008061204483611712565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061208657506120858185611b3f565b5b806120c457508373ffffffffffffffffffffffffffffffffffffffff166120ac84610a5c565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166120ed82611712565b73ffffffffffffffffffffffffffffffffffffffff1614612143576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161213a906142a7565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036121b2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016121a990614339565b60405180910390fd5b6121bd83838361298e565b6121c8600082611f71565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122189190613856565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461226f9190614359565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461232e838383612993565b505050565b6000806305f5e100836123469190613b5e565b90506000612352612998565b9050600081670de0b6b3a76400008461236b9190613b5e565b6123759190613be7565b9050809350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036123f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016123e8906143fb565b60405180910390fd5b6123fa81612840565b1561243a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161243190614467565b60405180910390fd5b6124466000838361298e565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124969190614359565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461255760008383612993565b5050565b6000612710905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603612699576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612690906144d3565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161278a9190612e2f565b60405180910390a3505050565b6006600080820160006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000820160146101000a8154906bffffffffffffffffffffffff02191690555050565b6127ef8484846120cd565b6127fb84848484612a39565b61283a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161283190614565565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061297757507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612987575061298682612bc0565b5b9050919050565b505050565b505050565b600080600960009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663feaf968c6040518163ffffffff1660e01b815260040160a060405180830381865afa158015612a08573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190612a2c9190614612565b5050509150508091505090565b6000612a5a8473ffffffffffffffffffffffffffffffffffffffff16612c2a565b15612bb3578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612a83611f69565b8786866040518563ffffffff1660e01b8152600401612aa594939291906146e2565b6020604051808303816000875af1925050508015612ae157506040513d601f19601f82011682018060405250810190612ade9190614743565b60015b612b63573d8060008114612b11576040519150601f19603f3d011682016040523d82523d6000602084013e612b16565b606091505b506000815103612b5b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b5290614565565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612bb8565b600190505b949350505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b828054612c59906136d2565b90600052602060002090601f016020900481019282612c7b5760008555612cc2565b82601f10612c9457805160ff1916838001178555612cc2565b82800160010185558215612cc2579182015b82811115612cc1578251825591602001919060010190612ca6565b5b509050612ccf9190612cd3565b5090565b5b80821115612cec576000816000905550600101612cd4565b5090565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612d2f82612d04565b9050919050565b612d3f81612d24565b8114612d4a57600080fd5b50565b600081359050612d5c81612d36565b92915050565b600060208284031215612d7857612d77612cfa565b5b6000612d8684828501612d4d565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612dc481612d8f565b8114612dcf57600080fd5b50565b600081359050612de181612dbb565b92915050565b600060208284031215612dfd57612dfc612cfa565b5b6000612e0b84828501612dd2565b91505092915050565b60008115159050919050565b612e2981612e14565b82525050565b6000602082019050612e446000830184612e20565b92915050565b60006bffffffffffffffffffffffff82169050919050565b612e6b81612e4a565b8114612e7657600080fd5b50565b600081359050612e8881612e62565b92915050565b60008060408385031215612ea557612ea4612cfa565b5b6000612eb385828601612d4d565b9250506020612ec485828601612e79565b9150509250929050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612f08578082015181840152602081019050612eed565b83811115612f17576000848401525b50505050565b6000601f19601f8301169050919050565b6000612f3982612ece565b612f438185612ed9565b9350612f53818560208601612eea565b612f5c81612f1d565b840191505092915050565b60006020820190508181036000830152612f818184612f2e565b905092915050565b6000819050919050565b612f9c81612f89565b8114612fa757600080fd5b50565b600081359050612fb981612f93565b92915050565b600060208284031215612fd557612fd4612cfa565b5b6000612fe384828501612faa565b91505092915050565b612ff581612d24565b82525050565b60006020820190506130106000830184612fec565b92915050565b6000806040838503121561302d5761302c612cfa565b5b600061303b85828601612d4d565b925050602061304c85828601612faa565b9150509250929050565b61305f81612f89565b82525050565b600060208201905061307a6000830184613056565b92915050565b600061ffff82169050919050565b61309781613080565b82525050565b60006020820190506130b2600083018461308e565b92915050565b6000806000606084860312156130d1576130d0612cfa565b5b60006130df86828701612d4d565b93505060206130f086828701612d4d565b925050604061310186828701612faa565b9150509250925092565b6000806040838503121561312257613121612cfa565b5b600061313085828601612faa565b925050602061314185828601612faa565b9150509250929050565b60006040820190506131606000830185612fec565b61316d6020830184613056565b9392505050565b600060ff82169050919050565b61318a81613174565b82525050565b60006020820190506131a56000830184613181565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6131e882612f1d565b810181811067ffffffffffffffff82111715613207576132066131b0565b5b80604052505050565b600061321a612cf0565b905061322682826131df565b919050565b600067ffffffffffffffff821115613246576132456131b0565b5b602082029050602081019050919050565b600080fd5b600061326f61326a8461322b565b613210565b9050808382526020820190506020840283018581111561329257613291613257565b5b835b818110156132bb57806132a78882612d4d565b845260208401935050602081019050613294565b5050509392505050565b600082601f8301126132da576132d96131ab565b5b81356132ea84826020860161325c565b91505092915050565b60006020828403121561330957613308612cfa565b5b600082013567ffffffffffffffff81111561332757613326612cff565b5b613333848285016132c5565b91505092915050565b61334581612e14565b811461335057600080fd5b50565b6000813590506133628161333c565b92915050565b6000806040838503121561337f5761337e612cfa565b5b600061338d85828601612d4d565b925050602061339e85828601613353565b9150509250929050565b600080fd5b600067ffffffffffffffff8211156133c8576133c76131b0565b5b6133d182612f1d565b9050602081019050919050565b82818337600083830152505050565b60006134006133fb846133ad565b613210565b90508281526020810184848401111561341c5761341b6133a8565b5b6134278482856133de565b509392505050565b600082601f830112613444576134436131ab565b5b81356134548482602086016133ed565b91505092915050565b6000806000806080858703121561347757613476612cfa565b5b600061348587828801612d4d565b945050602061349687828801612d4d565b93505060406134a787828801612faa565b925050606085013567ffffffffffffffff8111156134c8576134c7612cff565b5b6134d48782880161342f565b91505092959194509250565b6000602082840312156134f6576134f5612cfa565b5b600061350484828501613353565b91505092915050565b600067ffffffffffffffff821115613528576135276131b0565b5b61353182612f1d565b9050602081019050919050565b600061355161354c8461350d565b613210565b90508281526020810184848401111561356d5761356c6133a8565b5b6135788482856133de565b509392505050565b600082601f830112613595576135946131ab565b5b81356135a584826020860161353e565b91505092915050565b6000602082840312156135c4576135c3612cfa565b5b600082013567ffffffffffffffff8111156135e2576135e1612cff565b5b6135ee84828501613580565b91505092915050565b6000806040838503121561360e5761360d612cfa565b5b600061361c85828601612d4d565b925050602061362d85828601612d4d565b9150509250929050565b7f41646472657373206e6f7420666f756e64000000000000000000000000000000600082015250565b600061366d601183612ed9565b915061367882613637565b602082019050919050565b6000602082019050818103600083015261369c81613660565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806136ea57607f821691505b6020821081036136fd576136fc6136a3565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b600061375f602183612ed9565b915061376a82613703565b604082019050919050565b6000602082019050818103600083015261378e81613752565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b60006137f1603e83612ed9565b91506137fc82613795565b604082019050919050565b60006020820190508181036000830152613820816137e4565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061386182612f89565b915061386c83612f89565b92508282101561387f5761387e613827565b5b828203905092915050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b60006138e6602e83612ed9565b91506138f18261388a565b604082019050919050565b60006020820190508181036000830152613915816138d9565b9050919050565b7f53616c65206e6f74206163746976650000000000000000000000000000000000600082015250565b6000613952600f83612ed9565b915061395d8261391c565b602082019050919050565b6000602082019050818103600083015261398181613945565b9050919050565b7f53616c6520686173206e6f742073746172746564207965740000000000000000600082015250565b60006139be601883612ed9565b91506139c982613988565b602082019050919050565b600060208201905081810360008301526139ed816139b1565b9050919050565b7f57616c6c657420616c7265616479206f776e73206d6178696d756d20616d6f7560008201527f6e74000000000000000000000000000000000000000000000000000000000000602082015250565b6000613a50602283612ed9565b9150613a5b826139f4565b604082019050919050565b60006020820190508181036000830152613a7f81613a43565b9050919050565b7f4e6f7420656e6f75676820657468657220746f20707572636861736500000000600082015250565b6000613abc601c83612ed9565b9150613ac782613a86565b602082019050919050565b60006020820190508181036000830152613aeb81613aaf565b9050919050565b7f416c726561647920536f6c64204f757400000000000000000000000000000000600082015250565b6000613b28601083612ed9565b9150613b3382613af2565b602082019050919050565b60006020820190508181036000830152613b5781613b1b565b9050919050565b6000613b6982612f89565b9150613b7483612f89565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613bad57613bac613827565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613bf282612f89565b9150613bfd83612f89565b925082613c0d57613c0c613bb8565b5b828204905092915050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b6000613c4e601383612ed9565b9150613c5982613c18565b602082019050919050565b60006020820190508181036000830152613c7d81613c41565b9050919050565b600081905092915050565b50565b6000613c9f600083613c84565b9150613caa82613c8f565b600082019050919050565b6000613cc082613c92565b9150819050919050565b7f576974686472617720756e7375636365737366756c0000000000000000000000600082015250565b6000613d00601583612ed9565b9150613d0b82613cca565b602082019050919050565b60006020820190508181036000830152613d2f81613cf3565b9050919050565b7f41697264726f70206d696e74206e6f206c6f6e67657220617661696c61626c65600082015250565b6000613d6c602083612ed9565b9150613d7782613d36565b602082019050919050565b60006020820190508181036000830152613d9b81613d5f565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e6f74206f6e2072656c6179206c697374000000000000000000000000000000600082015250565b6000613e07601183612ed9565b9150613e1282613dd1565b602082019050919050565b60006020820190508181036000830152613e3681613dfa565b9050919050565b7f4e6f2072656c61792061646472657373657320666f756e640000000000000000600082015250565b6000613e73601883612ed9565b9150613e7e82613e3d565b602082019050919050565b60006020820190508181036000830152613ea281613e66565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000613edf601883612ed9565b9150613eea82613ea9565b602082019050919050565b60006020820190508181036000830152613f0e81613ed2565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613f71602983612ed9565b9150613f7c82613f15565b604082019050919050565b60006020820190508181036000830152613fa081613f64565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614003602f83612ed9565b915061400e82613fa7565b604082019050919050565b6000602082019050818103600083015261403281613ff6565b9050919050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000614095602683612ed9565b91506140a082614039565b604082019050919050565b600060208201905081810360008301526140c481614088565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000614101602083612ed9565b915061410c826140cb565b602082019050919050565b60006020820190508181036000830152614130816140f4565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000614193602a83612ed9565b915061419e82614137565b604082019050919050565b600060208201905081810360008301526141c281614186565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b60006141ff601983612ed9565b915061420a826141c9565b602082019050919050565b6000602082019050818103600083015261422e816141f2565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000614291602583612ed9565b915061429c82614235565b604082019050919050565b600060208201905081810360008301526142c081614284565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000614323602483612ed9565b915061432e826142c7565b604082019050919050565b6000602082019050818103600083015261435281614316565b9050919050565b600061436482612f89565b915061436f83612f89565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156143a4576143a3613827565b5b828201905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006143e5602083612ed9565b91506143f0826143af565b602082019050919050565b60006020820190508181036000830152614414816143d8565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614451601c83612ed9565b915061445c8261441b565b602082019050919050565b6000602082019050818103600083015261448081614444565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b60006144bd601983612ed9565b91506144c882614487565b602082019050919050565b600060208201905081810360008301526144ec816144b0565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b600061454f603283612ed9565b915061455a826144f3565b604082019050919050565b6000602082019050818103600083015261457e81614542565b9050919050565b600069ffffffffffffffffffff82169050919050565b6145a481614585565b81146145af57600080fd5b50565b6000815190506145c18161459b565b92915050565b6000819050919050565b6145da816145c7565b81146145e557600080fd5b50565b6000815190506145f7816145d1565b92915050565b60008151905061460c81612f93565b92915050565b600080600080600060a0868803121561462e5761462d612cfa565b5b600061463c888289016145b2565b955050602061464d888289016145e8565b945050604061465e888289016145fd565b935050606061466f888289016145fd565b9250506080614680888289016145b2565b9150509295509295909350565b600081519050919050565b600082825260208201905092915050565b60006146b48261468d565b6146be8185614698565b93506146ce818560208601612eea565b6146d781612f1d565b840191505092915050565b60006080820190506146f76000830187612fec565b6147046020830186612fec565b6147116040830185613056565b818103606083015261472381846146a9565b905095945050505050565b60008151905061473d81612dbb565b92915050565b60006020828403121561475957614758612cfa565b5b60006147678482850161472e565b9150509291505056fea26469706673582212206f54f7b1d34c76e30badbc852f99f4c6a9076b15e1593994c5700d87a789241664736f6c634300080e003300000000000000000000000000000000000000000000000000000000000001400000000000000000000000000000000000000000000000000000000000000180000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007d0000000000000000000000000000000000000000000000000000000000000000200000000000000000000000000000000000000000000000000000000000001c000000000000000000000000000000000000000000000000000000000633af8f0000000000000000000000000be74cdf5c499a8b21de8a19c5f757c3abf7f3bec00000000000000000000000000000000000000000000000000000000000001f40000000000000000000000000a77230d17318075983913bc2145db16c736615600000000000000000000000000000000000000000000000000000000000000164558464c455820537570706c656d656e74205469657200000000000000000000000000000000000000000000000000000000000000000000000000000000000445584653000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000050697066733a2f2f6261667972656965716376727266717134367879686b61346a69337a37667270626d367379656861766e7737636d32657735326d366b326a7234712f6d657461646174612e6a736f6e00000000000000000000000000000000