Overview ERC721
Total Supply:
3,938 3NODE

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

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No

Created At:
Wed, 02 Feb 2022 09:05:29 GMT
BULLNODE.sol
BULLNODE.sol
BULLNODE.sol


Contract ABI
[
  {
    "inputs": [],
    "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": "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": "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": "baseTokenURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "getApproved",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getExchangeRate",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "currentExchangeRate",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getNodePrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "currentPrice",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "getNodePriceIncrease",
    "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": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "payable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "mintPrice",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "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": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "_data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_baseTokenURI",
        "type": "string"
      }
    ],
    "name": "setBaseTokenURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "setBullContract",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "account",
        "type": "address"
      }
    ],
    "name": "setCompanyWallet",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setExchangeRate",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setNodePrice",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "amount",
        "type": "uint256"
      }
    ],
    "name": "setNodePriceIncrease",
    "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": "withdraw",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  }
]


Contract Creation Code
60806040526000600860146101000a81548160ff02191690831515021790555069021e19e0c9bab2400000600955600954600a556064600b553480156200004557600080fd5b506040518060400160405280600e81526020017f504c41594133554c4c204e6f64650000000000000000000000000000000000008152506040518060400160405280600581526020017f334e4f44450000000000000000000000000000000000000000000000000000008152508160009080519060200190620000ca9291906200024c565b508060019080519060200190620000e39291906200024c565b50505062000106620000fa6200017e60201b60201c565b6200018660201b60201c565b61206a600c8190555033600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060405180602001604052806000815250600e9080519060200190620001779291906200024c565b5062000361565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8280546200025a90620002fc565b90600052602060002090601f0160209004810192826200027e5760008555620002ca565b82601f106200029957805160ff1916838001178555620002ca565b82800160010185558215620002ca579182015b82811115620002c9578251825591602001919060010190620002ac565b5b509050620002d99190620002dd565b5090565b5b80821115620002f8576000816000905550600101620002de565b5090565b600060028204905060018216806200031557607f821691505b602082108114156200032c576200032b62000332565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b613dcf80620003716000396000f3fe6080604052600436106101cd5760003560e01c80638ef707ae116100f7578063bcad3bc811610095578063e6a72acf11610064578063e6a72acf1461063d578063e6aa216c1461067a578063e985e9c5146106a5578063f2fde38b146106e2576101cd565b8063bcad3bc814610583578063c87b56dd146105ac578063d547cfb7146105e9578063db068e0e14610614576101cd565b8063a22cb465116100d1578063a22cb465146104dd578063a5021a1714610506578063b34f594b14610531578063b88d4fde1461055a576101cd565b80638ef707ae1461046b57806395d89b4114610496578063a0712d68146104c1576101cd565b806330176e131161016f5780636352211e1161013e5780636352211e146103af57806370a08231146103ec578063715018a6146104295780638da5cb5b14610440576101cd565b806330176e131461031d5780633198d381146103465780633ccfd60b1461036f57806342842e0e14610386576101cd565b8063095ea7b3116101ab578063095ea7b31461027757806318160ddd146102a057806323b872dd146102cb57806328831187146102f4576101cd565b806301ffc9a7146101d257806306fdde031461020f578063081812fc1461023a575b600080fd5b3480156101de57600080fd5b506101f960048036038101906101f49190612ab3565b61070b565b6040516102069190612ff5565b60405180910390f35b34801561021b57600080fd5b506102246107ed565b6040516102319190613010565b60405180910390f35b34801561024657600080fd5b50610261600480360381019061025c9190612b56565b61087f565b60405161026e9190612f8e565b60405180910390f35b34801561028357600080fd5b5061029e60048036038101906102999190612a73565b610904565b005b3480156102ac57600080fd5b506102b5610a1c565b6040516102c291906132d2565b60405180910390f35b3480156102d757600080fd5b506102f260048036038101906102ed919061295d565b610a2d565b005b34801561030057600080fd5b5061031b600480360381019061031691906128f0565b610a8d565b005b34801561032957600080fd5b50610344600480360381019061033f9190612b0d565b610b4d565b005b34801561035257600080fd5b5061036d60048036038101906103689190612b56565b610b67565b005b34801561037b57600080fd5b50610384610c00565b005b34801561039257600080fd5b506103ad60048036038101906103a8919061295d565b610d34565b005b3480156103bb57600080fd5b506103d660048036038101906103d19190612b56565b610d54565b6040516103e39190612f8e565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e91906128f0565b610e06565b60405161042091906132d2565b60405180910390f35b34801561043557600080fd5b5061043e610ebe565b005b34801561044c57600080fd5b50610455610f46565b6040516104629190612f8e565b60405180910390f35b34801561047757600080fd5b50610480610f70565b60405161048d91906132d2565b60405180910390f35b3480156104a257600080fd5b506104ab610f7a565b6040516104b89190613010565b60405180910390f35b6104db60048036038101906104d69190612b56565b61100c565b005b3480156104e957600080fd5b5061050460048036038101906104ff9190612a33565b6111d2565b005b34801561051257600080fd5b5061051b6111e8565b60405161052891906132d2565b60405180910390f35b34801561053d57600080fd5b5061055860048036038101906105539190612b56565b6111f2565b005b34801561056657600080fd5b50610581600480360381019061057c91906129b0565b61128b565b005b34801561058f57600080fd5b506105aa60048036038101906105a591906128f0565b6112ed565b005b3480156105b857600080fd5b506105d360048036038101906105ce9190612b56565b611418565b6040516105e09190613010565b60405180910390f35b3480156105f557600080fd5b506105fe6114bf565b60405161060b9190613010565b60405180910390f35b34801561062057600080fd5b5061063b60048036038101906106369190612b56565b61154d565b005b34801561064957600080fd5b50610664600480360381019061065f9190612b56565b6115d3565b60405161067191906132d2565b60405180910390f35b34801561068657600080fd5b5061068f6116e1565b60405161069c91906132d2565b60405180910390f35b3480156106b157600080fd5b506106cc60048036038101906106c7919061291d565b6116eb565b6040516106d99190612ff5565b60405180910390f35b3480156106ee57600080fd5b50610709600480360381019061070491906128f0565b61177f565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107d657507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107e657506107e582611877565b5b9050919050565b6060600080546107fc906135b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610828906135b6565b80156108755780601f1061084a57610100808354040283529160200191610875565b820191906000526020600020905b81548152906001019060200180831161085857829003601f168201915b5050505050905090565b600061088a826118e1565b6108c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108c0906131d2565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061090f82610d54565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610980576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161097790613252565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661099f61194d565b73ffffffffffffffffffffffffffffffffffffffff1614806109ce57506109cd816109c861194d565b6116eb565b5b610a0d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a0490613132565b60405180910390fd5b610a178383611955565b505050565b6000610a286007611a0e565b905090565b610a3e610a3861194d565b82611a1c565b610a7d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a7490613272565b60405180910390fd5b610a88838383611afa565b505050565b610a9561194d565b73ffffffffffffffffffffffffffffffffffffffff16610ab3610f46565b73ffffffffffffffffffffffffffffffffffffffff1614610b09576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b00906131f2565b60405180910390fd5b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b80600e9080519060200190610b63929190612704565b5050565b610b6f61194d565b73ffffffffffffffffffffffffffffffffffffffff16610b8d610f46565b73ffffffffffffffffffffffffffffffffffffffff1614610be3576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610bda906131f2565b60405180910390fd5b670de0b6b3a764000081610bf79190613472565b60098190555050565b610c0861194d565b73ffffffffffffffffffffffffffffffffffffffff16610c26610f46565b73ffffffffffffffffffffffffffffffffffffffff1614610c7c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c73906131f2565b60405180910390fd5b60004790506000803373ffffffffffffffffffffffffffffffffffffffff1683604051610ca890612f79565b60006040518083038185875af1925050503d8060008114610ce5576040519150601f19603f3d011682016040523d82523d6000602084013e610cea565b606091505b509150915081610d2f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d26906132b2565b60405180910390fd5b505050565b610d4f8383836040518060200160405280600081525061128b565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dfd576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610df490613172565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610e77576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e6e90613152565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610ec661194d565b73ffffffffffffffffffffffffffffffffffffffff16610ee4610f46565b73ffffffffffffffffffffffffffffffffffffffff1614610f3a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f31906131f2565b60405180910390fd5b610f446000611d56565b565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000600954905090565b606060018054610f89906135b6565b80601f0160208091040260200160405190810160405280929190818152602001828054610fb5906135b6565b80156110025780601f10610fd757610100808354040283529160200191611002565b820191906000526020600020905b815481529060010190602001808311610fe557829003601f168201915b5050505050905090565b6019811115611050576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161104790613032565b60405180910390fd5b600061105c6007611a0e565b905061c35081111561106d57600080fd5b6000611078836115d3565b9050348111156110bd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110b490613192565b60405180910390fd5b60005b83811015611185576110db336110d66007611a0e565b611e1c565b6110e56007611e3a565b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16639d95f1cc336040518263ffffffff1660e01b81526004016111409190612f8e565b600060405180830381600087803b15801561115a57600080fd5b505af115801561116e573d6000803e3d6000fd5b50505050808061117d90613619565b9150506110c0565b50600b54611191610a1c565b11156111cd576064600b60008282546111aa91906133eb565b92505081905550600954600a60008282546111c591906133eb565b925050819055505b505050565b6111e46111dd61194d565b8383611e50565b5050565b6000600a54905090565b6111fa61194d565b73ffffffffffffffffffffffffffffffffffffffff16611218610f46565b73ffffffffffffffffffffffffffffffffffffffff161461126e576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611265906131f2565b60405180910390fd5b670de0b6b3a7640000816112829190613472565b600a8190555050565b61129c61129661194d565b83611a1c565b6112db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112d290613272565b60405180910390fd5b6112e784848484611fbd565b50505050565b6112f561194d565b73ffffffffffffffffffffffffffffffffffffffff16611313610f46565b73ffffffffffffffffffffffffffffffffffffffff1614611369576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611360906131f2565b60405180910390fd5b600860149054906101000a900460ff16156113b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113b090613292565b60405180910390fd5b80600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506001600860146101000a81548160ff02191690831515021790555050565b6060611423826118e1565b611462576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145990613232565b60405180910390fd5b600061146c612019565b9050600081511161148c57604051806020016040528060008152506114b7565b80611496846120ab565b6040516020016114a7929190612f55565b6040516020818303038152906040525b915050919050565b600e80546114cc906135b6565b80601f01602080910402602001604051908101604052809291908181526020018280546114f8906135b6565b80156115455780601f1061151a57610100808354040283529160200191611545565b820191906000526020600020905b81548152906001019060200180831161152857829003601f168201915b505050505081565b61155561194d565b73ffffffffffffffffffffffffffffffffffffffff16611573610f46565b73ffffffffffffffffffffffffffffffffffffffff16146115c9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115c0906131f2565b60405180910390fd5b80600c8190555050565b60006019821115611619576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161161090613032565b60405180910390fd5b60008083611625610a1c565b61162f91906133eb565b9050600b548111156116b9576000600b548261164b91906134cc565b90506000600c54600a5461165f9190613441565b828761166b91906134cc565b6116759190613472565b90506000600c54600954600a5461168c91906133eb565b6116969190613441565b836116a19190613472565b905081816116af91906133eb565b94505050506116d7565b600c54600a546116c99190613441565b846116d49190613472565b91505b8192505050919050565b6000600c54905090565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61178761194d565b73ffffffffffffffffffffffffffffffffffffffff166117a5610f46565b73ffffffffffffffffffffffffffffffffffffffff16146117fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117f2906131f2565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561186b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161186290613072565b60405180910390fd5b61187481611d56565b50565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119c883610d54565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b6000611a27826118e1565b611a66576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a5d906130f2565b60405180910390fd5b6000611a7183610d54565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611ae057508373ffffffffffffffffffffffffffffffffffffffff16611ac88461087f565b73ffffffffffffffffffffffffffffffffffffffff16145b80611af15750611af081856116eb565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611b1a82610d54565b73ffffffffffffffffffffffffffffffffffffffff1614611b70576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6790613212565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611be0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bd7906130b2565b60405180910390fd5b611beb83838361220c565b611bf6600082611955565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c4691906134cc565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c9d91906133eb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611e3682826040518060200160405280600081525061232c565b5050565b6001816000016000828254019250508190555050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611ebf576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611eb6906130d2565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611fb09190612ff5565b60405180910390a3505050565b611fc8848484611afa565b611fd484848484612387565b612013576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161200a90613052565b60405180910390fd5b50505050565b6060600e8054612028906135b6565b80601f0160208091040260200160405190810160405280929190818152602001828054612054906135b6565b80156120a15780601f10612076576101008083540402835291602001916120a1565b820191906000526020600020905b81548152906001019060200180831161208457829003601f168201915b5050505050905090565b606060008214156120f3576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612207565b600082905060005b6000821461212557808061210e90613619565b915050600a8261211e9190613441565b91506120fb565b60008167ffffffffffffffff8111156121415761214061374f565b5b6040519080825280601f01601f1916602001820160405280156121735781602001600182028036833780820191505090505b5090505b600085146122005760018261218c91906134cc565b9150600a8561219b9190613662565b60306121a791906133eb565b60f81b8183815181106121bd576121bc613720565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856121f99190613441565b9450612177565b8093505050505b919050565b61221783838361251e565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146123275761c350612256610a1c565b1015612297576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161228e90613112565b60405180910390fd5b600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1663fae8fee082846040518363ffffffff1660e01b81526004016122f49291906132ed565b600060405180830381600087803b15801561230e57600080fd5b505af1158015612322573d6000803e3d6000fd5b505050505b505050565b6123368383612523565b6123436000848484612387565b612382576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161237990613052565b60405180910390fd5b505050565b60006123a88473ffffffffffffffffffffffffffffffffffffffff166126f1565b15612511578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026123d161194d565b8786866040518563ffffffff1660e01b81526004016123f39493929190612fa9565b602060405180830381600087803b15801561240d57600080fd5b505af192505050801561243e57506040513d601f19601f8201168201806040525081019061243b9190612ae0565b60015b6124c1573d806000811461246e576040519150601f19603f3d011682016040523d82523d6000602084013e612473565b606091505b506000815114156124b9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016124b090613052565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050612516565b600190505b949350505050565b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612593576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161258a906131b2565b60405180910390fd5b61259c816118e1565b156125dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125d390613092565b60405180910390fd5b6125e86000838361220c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461263891906133eb565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080823b905060008111915050919050565b828054612710906135b6565b90600052602060002090601f0160209004810192826127325760008555612779565b82601f1061274b57805160ff1916838001178555612779565b82800160010185558215612779579182015b8281111561277857825182559160200191906001019061275d565b5b509050612786919061278a565b5090565b5b808211156127a357600081600090555060010161278b565b5090565b60006127ba6127b58461333b565b613316565b9050828152602081018484840111156127d6576127d5613783565b5b6127e1848285613574565b509392505050565b60006127fc6127f78461336c565b613316565b90508281526020810184848401111561281857612817613783565b5b612823848285613574565b509392505050565b60008135905061283a81613d3d565b92915050565b60008135905061284f81613d54565b92915050565b60008135905061286481613d6b565b92915050565b60008151905061287981613d6b565b92915050565b600082601f8301126128945761289361377e565b5b81356128a48482602086016127a7565b91505092915050565b600082601f8301126128c2576128c161377e565b5b81356128d28482602086016127e9565b91505092915050565b6000813590506128ea81613d82565b92915050565b6000602082840312156129065761290561378d565b5b60006129148482850161282b565b91505092915050565b600080604083850312156129345761293361378d565b5b60006129428582860161282b565b92505060206129538582860161282b565b9150509250929050565b6000806000606084860312156129765761297561378d565b5b60006129848682870161282b565b93505060206129958682870161282b565b92505060406129a6868287016128db565b9150509250925092565b600080600080608085870312156129ca576129c961378d565b5b60006129d88782880161282b565b94505060206129e98782880161282b565b93505060406129fa878288016128db565b925050606085013567ffffffffffffffff811115612a1b57612a1a613788565b5b612a278782880161287f565b91505092959194509250565b60008060408385031215612a4a57612a4961378d565b5b6000612a588582860161282b565b9250506020612a6985828601612840565b9150509250929050565b60008060408385031215612a8a57612a8961378d565b5b6000612a988582860161282b565b9250506020612aa9858286016128db565b9150509250929050565b600060208284031215612ac957612ac861378d565b5b6000612ad784828501612855565b91505092915050565b600060208284031215612af657612af561378d565b5b6000612b048482850161286a565b91505092915050565b600060208284031215612b2357612b2261378d565b5b600082013567ffffffffffffffff811115612b4157612b40613788565b5b612b4d848285016128ad565b91505092915050565b600060208284031215612b6c57612b6b61378d565b5b6000612b7a848285016128db565b91505092915050565b612b8c81613500565b82525050565b612b9b81613512565b82525050565b6000612bac8261339d565b612bb681856133b3565b9350612bc6818560208601613583565b612bcf81613792565b840191505092915050565b6000612be5826133a8565b612bef81856133cf565b9350612bff818560208601613583565b612c0881613792565b840191505092915050565b6000612c1e826133a8565b612c2881856133e0565b9350612c38818560208601613583565b80840191505092915050565b6000612c51602c836133cf565b9150612c5c826137a3565b604082019050919050565b6000612c746032836133cf565b9150612c7f826137f2565b604082019050919050565b6000612c976026836133cf565b9150612ca282613841565b604082019050919050565b6000612cba601c836133cf565b9150612cc582613890565b602082019050919050565b6000612cdd6024836133cf565b9150612ce8826138b9565b604082019050919050565b6000612d006019836133cf565b9150612d0b82613908565b602082019050919050565b6000612d23602c836133cf565b9150612d2e82613931565b604082019050919050565b6000612d466032836133cf565b9150612d5182613980565b604082019050919050565b6000612d696038836133cf565b9150612d74826139cf565b604082019050919050565b6000612d8c602a836133cf565b9150612d9782613a1e565b604082019050919050565b6000612daf6029836133cf565b9150612dba82613a6d565b604082019050919050565b6000612dd26019836133cf565b9150612ddd82613abc565b602082019050919050565b6000612df56020836133cf565b9150612e0082613ae5565b602082019050919050565b6000612e18602c836133cf565b9150612e2382613b0e565b604082019050919050565b6000612e3b6020836133cf565b9150612e4682613b5d565b602082019050919050565b6000612e5e6029836133cf565b9150612e6982613b86565b604082019050919050565b6000612e81602f836133cf565b9150612e8c82613bd5565b604082019050919050565b6000612ea46021836133cf565b9150612eaf82613c24565b604082019050919050565b6000612ec76000836133c4565b9150612ed282613c73565b600082019050919050565b6000612eea6031836133cf565b9150612ef582613c76565b604082019050919050565b6000612f0d602e836133cf565b9150612f1882613cc5565b604082019050919050565b6000612f30600e836133cf565b9150612f3b82613d14565b602082019050919050565b612f4f8161356a565b82525050565b6000612f618285612c13565b9150612f6d8284612c13565b91508190509392505050565b6000612f8482612eba565b9150819050919050565b6000602082019050612fa36000830184612b83565b92915050565b6000608082019050612fbe6000830187612b83565b612fcb6020830186612b83565b612fd86040830185612f46565b8181036060830152612fea8184612ba1565b905095945050505050565b600060208201905061300a6000830184612b92565b92915050565b6000602082019050818103600083015261302a8184612bda565b905092915050565b6000602082019050818103600083015261304b81612c44565b9050919050565b6000602082019050818103600083015261306b81612c67565b9050919050565b6000602082019050818103600083015261308b81612c8a565b9050919050565b600060208201905081810360008301526130ab81612cad565b9050919050565b600060208201905081810360008301526130cb81612cd0565b9050919050565b600060208201905081810360008301526130eb81612cf3565b9050919050565b6000602082019050818103600083015261310b81612d16565b9050919050565b6000602082019050818103600083015261312b81612d39565b9050919050565b6000602082019050818103600083015261314b81612d5c565b9050919050565b6000602082019050818103600083015261316b81612d7f565b9050919050565b6000602082019050818103600083015261318b81612da2565b9050919050565b600060208201905081810360008301526131ab81612dc5565b9050919050565b600060208201905081810360008301526131cb81612de8565b9050919050565b600060208201905081810360008301526131eb81612e0b565b9050919050565b6000602082019050818103600083015261320b81612e2e565b9050919050565b6000602082019050818103600083015261322b81612e51565b9050919050565b6000602082019050818103600083015261324b81612e74565b9050919050565b6000602082019050818103600083015261326b81612e97565b9050919050565b6000602082019050818103600083015261328b81612edd565b9050919050565b600060208201905081810360008301526132ab81612f00565b9050919050565b600060208201905081810360008301526132cb81612f23565b9050919050565b60006020820190506132e76000830184612f46565b92915050565b60006040820190506133026000830185612f46565b61330f6020830184612b83565b9392505050565b6000613320613331565b905061332c82826135e8565b919050565b6000604051905090565b600067ffffffffffffffff8211156133565761335561374f565b5b61335f82613792565b9050602081019050919050565b600067ffffffffffffffff8211156133875761338661374f565b5b61339082613792565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b60006133f68261356a565b91506134018361356a565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561343657613435613693565b5b828201905092915050565b600061344c8261356a565b91506134578361356a565b925082613467576134666136c2565b5b828204905092915050565b600061347d8261356a565b91506134888361356a565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156134c1576134c0613693565b5b828202905092915050565b60006134d78261356a565b91506134e28361356a565b9250828210156134f5576134f4613693565b5b828203905092915050565b600061350b8261354a565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b82818337600083830152505050565b60005b838110156135a1578082015181840152602081019050613586565b838111156135b0576000848401525b50505050565b600060028204905060018216806135ce57607f821691505b602082108114156135e2576135e16136f1565b5b50919050565b6135f182613792565b810181811067ffffffffffffffff821117156136105761360f61374f565b5b80604052505050565b60006136248261356a565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561365757613656613693565b5b600182019050919050565b600061366d8261356a565b91506136788361356a565b925082613688576136876136c2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4d696e7420616d6f756e7420657863656564732073696e676c65207472616e7360008201527f616374696f6e206c696d69740000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f57652068617665206e6f742079657420736f6c6420616c6c206e6f6465732c2060008201527f74656c6c20796f757220667269656e6473210000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b7f56616c75652073656e74206973206e6f7420636f727265637400000000000000600082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732313a207472616e73666572206f6620746f6b656e2074686174206960008201527f73206e6f74206f776e0000000000000000000000000000000000000000000000602082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b50565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b7f33554c4c20546f6b656e20616c7265616479207365742c20746865726520697360008201527f206e6f20676f696e67206261636b000000000000000000000000000000000000602082015250565b7f4661696c656420746f2073656e64000000000000000000000000000000000000600082015250565b613d4681613500565b8114613d5157600080fd5b50565b613d5d81613512565b8114613d6857600080fd5b50565b613d748161351e565b8114613d7f57600080fd5b50565b613d8b8161356a565b8114613d9657600080fd5b5056fea2646970667358221220cc93b7e3edfed0ff96acd62c102ce900a61bd4925bf71e64e370794553c50ec164736f6c63430008070033