Overview ERC20
PRICE


ON-CHAIN MARKET CAP $442,138.76

Total Supply:
48,163,264,128,256.00 SQRCAT

Holders:
1,786
Profile Summary
Blockchain:
C-Chain (43114)


Decimals:
18
Contract Source Code Verified (Exact Match)
Contract Name:
SQRCAT

Compiler Version
v0.8.20+commit.a1b79de6

Optimization Enabled:
No

Created At:
Wed, 06 Mar 2024 01:14:59 GMT
Ownable.sol
@openzeppelin
contracts
access
Ownable.sol


Contract ABI
[
  {
    "inputs": [],
    "stateMutability": "nonpayable",
    "type": "constructor"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "allowance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientAllowance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "balance",
        "type": "uint256"
      },
      {
        "internalType": "uint256",
        "name": "needed",
        "type": "uint256"
      }
    ],
    "name": "ERC20InsufficientBalance",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "approver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidApprover",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "receiver",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidReceiver",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "sender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "ERC20InvalidSpender",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      }
    ],
    "name": "OwnableInvalidOwner",
    "type": "error"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "OwnableUnauthorizedAccount",
    "type": "error"
  },
  {
    "anonymous": false,
    "inputs": [
      {
        "indexed": true,
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "indexed": true,
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "indexed": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Approval",
    "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": false,
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "Transfer",
    "type": "event"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "walletAddresses",
        "type": "address[]"
      }
    ],
    "name": "addWalletsToWhitelistPhase1",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address[]",
        "name": "walletAddresses",
        "type": "address[]"
      }
    ],
    "name": "addWalletsToWhitelistPhase2",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      }
    ],
    "name": "allowance",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "spender",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "approve",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "balanceOf",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "decimals",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "disownCat",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getLiquidityPool",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getWhaleStrainer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getWhitelistPhase",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "liquidityPool",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "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": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_liquidityPool",
        "type": "address"
      }
    ],
    "name": "setLiquidityPool",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "bool",
        "name": "_state",
        "type": "bool"
      }
    ],
    "name": "setWhaleStrainer",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint8",
        "name": "_phase",
        "type": "uint8"
      }
    ],
    "name": "setWhitelistPhase",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "symbol",
    "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": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transfer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "value",
        "type": "uint256"
      }
    ],
    "name": "transferFrom",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "newOwner",
        "type": "address"
      }
    ],
    "name": "transferOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_wallet",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "_contract",
        "type": "address"
      }
    ],
    "name": "walletIsNFTOwner",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "whaleStrainer",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "whitelistPhase",
    "outputs": [
      {
        "internalType": "uint8",
        "name": "",
        "type": "uint8"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "whitelistPhase1",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "name": "whitelistPhase2",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  }
]


Contract Creation Code
60806040526001600560146101000a81548160ff0219169083151502179055506000600560156101000a81548160ff021916908360ff1602179055503480156200004857600080fd5b50336040518060400160405280600681526020017f53515243415400000000000000000000000000000000000000000000000000008152506040518060400160405280600681526020017f53515243415400000000000000000000000000000000000000000000000000008152508160039081620000c7919062000d99565b508060049081620000d9919062000d99565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001515760006040517f1e4fbdf700000000000000000000000000000000000000000000000000000000815260040162000148919062000ec5565b60405180910390fd5b62000162816200018960201b60201c565b5062000183336d025fe7e652fc6a7f2e58740000006200024f60201b60201c565b620013b5565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603620002c45760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401620002bb919062000ec5565b60405180910390fd5b620002d860008383620002dc60201b60201c565b5050565b620002ef838383620007e860201b60201c565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff160362000412576200035662000a1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161480620003ca57506200039b62000a1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6200040c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004039062000f43565b60405180910390fd5b620007e3565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614620006b5576000600560159054906101000a900460ff1660ff1603620004cd576000620004c7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004be9062000fdb565b60405180910390fd5b620006b4565b6001600560159054906101000a900460ff1660ff16036200057d57600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1662000577576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200056e9062001073565b60405180910390fd5b620006b3565b6002600560159054906101000a900460ff1660ff1603620006b257600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806200061357506200061282735beb759f7769193a8e401bb2d7cad22bacb930d562000a4260201b60201c565b5b806200064157506200064082730c3546ecfca3979dfd66fd4452c3a06466fa19f062000a4260201b60201c565b5b806200066f57506200066e82734d2fa52d6f08034ee98a4c6c81a5eade726c835462000a4260201b60201c565b5b620006b1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006a89062001157565b60405180910390fd5b5b5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141580156200074f57506200071f62000a1860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b8015620007685750600560149054906101000a900460ff165b15620007e25760646200078062000acd60201b60201c565b6200078c9190620011d7565b6200079d8362000ad760201b60201c565b1115620007e1576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620007d89062001285565b60405180910390fd5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036200083e578060026000828254620008319190620012a7565b9250508190555062000914565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015620008cd578381836040517fe450d38c000000000000000000000000000000000000000000000000000000008152600401620008c493929190620012f3565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036200095f5780600260008282540392505081905550620009ac565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8360405162000a0b919062001330565b60405180910390a3505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000808273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b815260040162000a80919062000ec5565b602060405180830381865afa15801562000a9e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019062000ac4919062001383565b11905092915050565b6000600254905090565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168062000ba157607f821691505b60208210810362000bb75762000bb662000b59565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b60006008830262000c217fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000be2565b62000c2d868362000be2565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000c7a62000c7462000c6e8462000c45565b62000c4f565b62000c45565b9050919050565b6000819050919050565b62000c968362000c59565b62000cae62000ca58262000c81565b84845462000bef565b825550505050565b600090565b62000cc562000cb6565b62000cd281848462000c8b565b505050565b5b8181101562000cfa5762000cee60008262000cbb565b60018101905062000cd8565b5050565b601f82111562000d495762000d138162000bbd565b62000d1e8462000bd2565b8101602085101562000d2e578190505b62000d4662000d3d8562000bd2565b83018262000cd7565b50505b505050565b600082821c905092915050565b600062000d6e6000198460080262000d4e565b1980831691505092915050565b600062000d89838362000d5b565b9150826002028217905092915050565b62000da48262000b1f565b67ffffffffffffffff81111562000dc05762000dbf62000b2a565b5b62000dcc825462000b88565b62000dd982828562000cfe565b600060209050601f83116001811462000e11576000841562000dfc578287015190505b62000e08858262000d7b565b86555062000e78565b601f19841662000e218662000bbd565b60005b8281101562000e4b5784890151825560018201915060208501945060208101905062000e24565b8683101562000e6b578489015162000e67601f89168262000d5b565b8355505b6001600288020188555050505b505050505050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600062000ead8262000e80565b9050919050565b62000ebf8162000ea0565b82525050565b600060208201905062000edc600083018462000eb4565b92915050565b600082825260208201905092915050565b7f4e6f206c6971756964697479202d206e6f206361742100000000000000000000600082015250565b600062000f2b60168362000ee2565b915062000f388262000ef3565b602082019050919050565b6000602082019050818103600083015262000f5e8162000f1c565b9050919050565b7f5374696c6c20736c656570696e2720696e20746865206c6974746572626f782e60008201527f20476f20646f20736f6d65206b6e656164696e67202e2e2e0000000000000000602082015250565b600062000fc360388362000ee2565b915062000fd08262000f65565b604082019050919050565b6000602082019050818103600083015262000ff68162000fb4565b9050919050565b7f57686974656c697374207068617365203120666f72204c5020646f6e6f72732060008201527f616e642070726f6d6f74696f6e616c20706172746e6572732100000000000000602082015250565b60006200105b60398362000ee2565b9150620010688262000ffd565b604082019050919050565b600060208201905081810360008301526200108e816200104c565b9050919050565b7f4e65656420746f2062652077686974656c697374656420696e2070686173652060008201527f32206f7220626520616e204e465420686f6c646572206f66206569746865722060208201527f53686f653430342c20534d4f4c204a6f6573206f72204672616374696f20466960408201527f6e616e6365210000000000000000000000000000000000000000000000000000606082015250565b60006200113f60668362000ee2565b91506200114c8262001095565b608082019050919050565b60006020820190508181036000830152620011728162001130565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000620011e48262000c45565b9150620011f18362000c45565b92508262001204576200120362001179565b5b828204905092915050565b7f312520427579204c696d697420696e206566666563742e205374696c6c20737460008201527f7261696e696e67206f757420746865207768616c657321000000000000000000602082015250565b60006200126d60378362000ee2565b91506200127a826200120f565b604082019050919050565b60006020820190508181036000830152620012a0816200125e565b9050919050565b6000620012b48262000c45565b9150620012c18362000c45565b9250828201905080821115620012dc57620012db620011a8565b5b92915050565b620012ed8162000c45565b82525050565b60006060820190506200130a600083018662000eb4565b620013196020830185620012e2565b620013286040830184620012e2565b949350505050565b6000602082019050620013476000830184620012e2565b92915050565b600080fd5b6200135d8162000c45565b81146200136957600080fd5b50565b6000815190506200137d8162001352565b92915050565b6000602082840312156200139c576200139b6200134d565b5b6000620013ac848285016200136c565b91505092915050565b6122e780620013c56000396000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c8063815d544c116100f9578063b9a3045e11610097578063c796c47f11610071578063c796c47f1461049c578063cc53b276146104b8578063dd62ed3e146104e8578063f2fde38b14610518576101a9565b8063b9a3045e14610446578063bdac8c9814610450578063c2df39821461046c576101a9565b806395d89b41116100d357806395d89b41146103bc57806395ddbe89146103da578063a2c1e0ff146103f8578063a9059cbb14610416576101a9565b8063815d544c146103645780638531993c146103825780638da5cb5b1461039e576101a9565b80632b08c4171161016657806336daf6b11161014057806336daf6b1146102ee578063665a11ca1461030c57806370a082311461032a578063715018a61461035a576101a9565b80632b08c417146102965780632b9bdef2146102b2578063313ce567146102d0576101a9565b806301877020146101ae57806306fdde03146101ca578063095ea7b3146101e857806318160ddd146102185780631feac18f1461023657806323b872dd14610266575b600080fd5b6101c860048036038101906101c39190611820565b610534565b005b6101d2610580565b6040516101df91906118dd565b60405180910390f35b61020260048036038101906101fd9190611935565b610612565b60405161020f9190611990565b60405180910390f35b610220610635565b60405161022d91906119ba565b60405180910390f35b610250600480360381019061024b91906119d5565b61063f565b60405161025d9190611990565b60405180910390f35b610280600480360381019061027b9190611a15565b6106c5565b60405161028d9190611990565b60405180910390f35b6102b060048036038101906102ab9190611bb0565b6106f4565b005b6102ba610791565b6040516102c79190611990565b60405180910390f35b6102d86107a4565b6040516102e59190611c15565b60405180910390f35b6102f66107ad565b6040516103039190611c15565b60405180910390f35b6103146107c4565b6040516103219190611c3f565b60405180910390f35b610344600480360381019061033f9190611820565b6107ea565b60405161035191906119ba565b60405180910390f35b610362610832565b005b61036c610846565b6040516103799190611c15565b60405180910390f35b61039c60048036038101906103979190611c86565b610859565b005b6103a661087e565b6040516103b39190611c3f565b60405180910390f35b6103c46108a8565b6040516103d191906118dd565b60405180910390f35b6103e261093a565b6040516103ef9190611c3f565b60405180910390f35b610400610964565b60405161040d9190611990565b60405180910390f35b610430600480360381019061042b9190611935565b61097b565b60405161043d9190611990565b60405180910390f35b61044e61099e565b005b61046a60048036038101906104659190611cdf565b6109b0565b005b61048660048036038101906104819190611820565b610a35565b6040516104939190611990565b60405180910390f35b6104b660048036038101906104b19190611bb0565b610a55565b005b6104d260048036038101906104cd9190611820565b610af2565b6040516104df9190611990565b60405180910390f35b61050260048036038101906104fd91906119d5565b610b12565b60405161050f91906119ba565b60405180910390f35b610532600480360381019061052d9190611820565b610b99565b005b61053c610c1f565b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60606003805461058f90611d3b565b80601f01602080910402602001604051908101604052809291908181526020018280546105bb90611d3b565b80156106085780601f106105dd57610100808354040283529160200191610608565b820191906000526020600020905b8154815290600101906020018083116105eb57829003601f168201915b5050505050905090565b60008061061d610ca6565b905061062a818585610cae565b600191505092915050565b6000600254905090565b6000808273ffffffffffffffffffffffffffffffffffffffff166370a08231856040518263ffffffff1660e01b815260040161067b9190611c3f565b602060405180830381865afa158015610698573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906106bc9190611d81565b11905092915050565b6000806106d0610ca6565b90506106dd858285610cc0565b6106e8858585610d54565b60019150509392505050565b6106fc610c1f565b60005b815181101561078d5760016007600084848151811061072157610720611dae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908315150217905550808061078590611e0c565b9150506106ff565b5050565b600560149054906101000a900460ff1681565b60006012905090565b6000600560159054906101000a900460ff16905090565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60008060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b61083a610c1f565b6108446000610e48565b565b600560159054906101000a900460ff1681565b610861610c1f565b80600560146101000a81548160ff02191690831515021790555050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600480546108b790611d3b565b80601f01602080910402602001604051908101604052809291908181526020018280546108e390611d3b565b80156109305780601f1061090557610100808354040283529160200191610930565b820191906000526020600020905b81548152906001019060200180831161091357829003601f168201915b5050505050905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600560149054906101000a900460ff16905090565b600080610986610ca6565b9050610993818585610d54565b600191505092915050565b6109a6610c1f565b6109ae610832565b565b6109b8610c1f565b600560159054906101000a900460ff1660ff168160ff161015610a17576000610a16576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0d90611ec6565b60405180910390fd5b5b80600560156101000a81548160ff021916908360ff16021790555050565b60066020528060005260406000206000915054906101000a900460ff1681565b610a5d610c1f565b60005b8151811015610aee57600160066000848481518110610a8257610a81611dae565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610ae690611e0c565b915050610a60565b5050565b60076020528060005260406000206000915054906101000a900460ff1681565b6000600160008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905092915050565b610ba1610c1f565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610c135760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610c0a9190611c3f565b60405180910390fd5b610c1c81610e48565b50565b610c27610ca6565b73ffffffffffffffffffffffffffffffffffffffff16610c4561087e565b73ffffffffffffffffffffffffffffffffffffffff1614610ca457610c68610ca6565b6040517f118cdaa7000000000000000000000000000000000000000000000000000000008152600401610c9b9190611c3f565b60405180910390fd5b565b600033905090565b610cbb8383836001610f0e565b505050565b6000610ccc8484610b12565b90507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8114610d4e5781811015610d3e578281836040517ffb8f41b2000000000000000000000000000000000000000000000000000000008152600401610d3593929190611ee6565b60405180910390fd5b610d4d84848484036000610f0e565b5b50505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610dc65760006040517f96c6fd1e000000000000000000000000000000000000000000000000000000008152600401610dbd9190611c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610e385760006040517fec442f05000000000000000000000000000000000000000000000000000000008152600401610e2f9190611c3f565b60405180910390fd5b610e438383836110e5565b505050565b6000600560009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600560006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1603610f805760006040517fe602df05000000000000000000000000000000000000000000000000000000008152600401610f779190611c3f565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610ff25760006040517f94280d62000000000000000000000000000000000000000000000000000000008152600401610fe99190611c3f565b60405180910390fd5b81600160008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190555080156110df578273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516110d691906119ba565b60405180910390a35b50505050565b6110f0838383611589565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff16036111fd5761114e61087e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614806111b9575061118a61087e565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16145b6111f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111ef90611f69565b60405180910390fd5b611584565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614611476576000600560159054906101000a900460ff1660ff16036112b25760006112ad576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112a490611ffb565b60405180910390fd5b611475565b6001600560159054906101000a900460ff1660ff160361135d57600660008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16611358576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161134f9061208d565b60405180910390fd5b611474565b6002600560159054906101000a900460ff1660ff160361147357600760008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16806113e957506113e882735beb759f7769193a8e401bb2d7cad22bacb930d561063f565b5b8061140e575061140d82730c3546ecfca3979dfd66fd4452c3a06466fa19f061063f565b5b80611433575061143282734d2fa52d6f08034ee98a4c6c81a5eade726c835461063f565b5b611472576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114699061216b565b60405180910390fd5b5b5b5b5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415801561150757506114d761087e565b73ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614155b801561151f5750600560149054906101000a900460ff165b1561158357606461152e610635565b61153891906121ba565b611541836107ea565b1115611582576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115799061225d565b60405180910390fd5b5b5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036115db5780600260008282546115cf919061227d565b925050819055506116ae565b60008060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905081811015611667578381836040517fe450d38c00000000000000000000000000000000000000000000000000000000815260040161165e93929190611ee6565b60405180910390fd5b8181036000808673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550505b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116f75780600260008282540392505081905550611744565b806000808473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef836040516117a191906119ba565b60405180910390a3505050565b6000604051905090565b600080fd5b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006117ed826117c2565b9050919050565b6117fd816117e2565b811461180857600080fd5b50565b60008135905061181a816117f4565b92915050565b600060208284031215611836576118356117b8565b5b60006118448482850161180b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561188757808201518184015260208101905061186c565b60008484015250505050565b6000601f19601f8301169050919050565b60006118af8261184d565b6118b98185611858565b93506118c9818560208601611869565b6118d281611893565b840191505092915050565b600060208201905081810360008301526118f781846118a4565b905092915050565b6000819050919050565b611912816118ff565b811461191d57600080fd5b50565b60008135905061192f81611909565b92915050565b6000806040838503121561194c5761194b6117b8565b5b600061195a8582860161180b565b925050602061196b85828601611920565b9150509250929050565b60008115159050919050565b61198a81611975565b82525050565b60006020820190506119a56000830184611981565b92915050565b6119b4816118ff565b82525050565b60006020820190506119cf60008301846119ab565b92915050565b600080604083850312156119ec576119eb6117b8565b5b60006119fa8582860161180b565b9250506020611a0b8582860161180b565b9150509250929050565b600080600060608486031215611a2e57611a2d6117b8565b5b6000611a3c8682870161180b565b9350506020611a4d8682870161180b565b9250506040611a5e86828701611920565b9150509250925092565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b611aa582611893565b810181811067ffffffffffffffff82111715611ac457611ac3611a6d565b5b80604052505050565b6000611ad76117ae565b9050611ae38282611a9c565b919050565b600067ffffffffffffffff821115611b0357611b02611a6d565b5b602082029050602081019050919050565b600080fd5b6000611b2c611b2784611ae8565b611acd565b90508083825260208201905060208402830185811115611b4f57611b4e611b14565b5b835b81811015611b785780611b64888261180b565b845260208401935050602081019050611b51565b5050509392505050565b600082601f830112611b9757611b96611a68565b5b8135611ba7848260208601611b19565b91505092915050565b600060208284031215611bc657611bc56117b8565b5b600082013567ffffffffffffffff811115611be457611be36117bd565b5b611bf084828501611b82565b91505092915050565b600060ff82169050919050565b611c0f81611bf9565b82525050565b6000602082019050611c2a6000830184611c06565b92915050565b611c39816117e2565b82525050565b6000602082019050611c546000830184611c30565b92915050565b611c6381611975565b8114611c6e57600080fd5b50565b600081359050611c8081611c5a565b92915050565b600060208284031215611c9c57611c9b6117b8565b5b6000611caa84828501611c71565b91505092915050565b611cbc81611bf9565b8114611cc757600080fd5b50565b600081359050611cd981611cb3565b92915050565b600060208284031215611cf557611cf46117b8565b5b6000611d0384828501611cca565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680611d5357607f821691505b602082108103611d6657611d65611d0c565b5b50919050565b600081519050611d7b81611909565b92915050565b600060208284031215611d9757611d966117b8565b5b6000611da584828501611d6c565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000611e17826118ff565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203611e4957611e48611ddd565b5b600182019050919050565b7f43617427732070726964653a206f6e6c7920666f72776172642c206e6576657260008201527f206261636b210000000000000000000000000000000000000000000000000000602082015250565b6000611eb0602683611858565b9150611ebb82611e54565b604082019050919050565b60006020820190508181036000830152611edf81611ea3565b9050919050565b6000606082019050611efb6000830186611c30565b611f0860208301856119ab565b611f1560408301846119ab565b949350505050565b7f4e6f206c6971756964697479202d206e6f206361742100000000000000000000600082015250565b6000611f53601683611858565b9150611f5e82611f1d565b602082019050919050565b60006020820190508181036000830152611f8281611f46565b9050919050565b7f5374696c6c20736c656570696e2720696e20746865206c6974746572626f782e60008201527f20476f20646f20736f6d65206b6e656164696e67202e2e2e0000000000000000602082015250565b6000611fe5603883611858565b9150611ff082611f89565b604082019050919050565b6000602082019050818103600083015261201481611fd8565b9050919050565b7f57686974656c697374207068617365203120666f72204c5020646f6e6f72732060008201527f616e642070726f6d6f74696f6e616c20706172746e6572732100000000000000602082015250565b6000612077603983611858565b91506120828261201b565b604082019050919050565b600060208201905081810360008301526120a68161206a565b9050919050565b7f4e65656420746f2062652077686974656c697374656420696e2070686173652060008201527f32206f7220626520616e204e465420686f6c646572206f66206569746865722060208201527f53686f653430342c20534d4f4c204a6f6573206f72204672616374696f20466960408201527f6e616e6365210000000000000000000000000000000000000000000000000000606082015250565b6000612155606683611858565b9150612160826120ad565b608082019050919050565b6000602082019050818103600083015261218481612148565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006121c5826118ff565b91506121d0836118ff565b9250826121e0576121df61218b565b5b828204905092915050565b7f312520427579204c696d697420696e206566666563742e205374696c6c20737460008201527f7261696e696e67206f757420746865207768616c657321000000000000000000602082015250565b6000612247603783611858565b9150612252826121eb565b604082019050919050565b600060208201905081810360008301526122768161223a565b9050919050565b6000612288826118ff565b9150612293836118ff565b92508282019050808211156122ab576122aa611ddd565b5b9291505056fea2646970667358221220eac6619d3d556a6b059b499736aa5787518d2c42cc5910c1f7ae721bd92ce0d064736f6c63430008140033