Overview ERC721
Total Supply:
501 GOOS

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

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

Compiler Version
v0.8.7+commit.e28d00a7

Optimization Enabled:
No

Created At:
Sun, 31 Jul 2022 05:07:13 GMT
GooseGeese.sol
GooseGeese.sol
GooseGeese.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": [],
    "name": "_cid",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "_nonRevealedURI",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "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": "closeSale",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "extension",
    "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": [
      {
        "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": "maxSupply",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint256",
        "name": "count",
        "type": "uint256"
      }
    ],
    "name": "mint",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "mintOpen",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "name",
    "outputs": [
      {
        "internalType": "string",
        "name": "",
        "type": "string"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "openSale",
    "outputs": [],
    "stateMutability": "nonpayable",
    "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": "price",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "renounceOwnership",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "reveal",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "revealed",
    "outputs": [
      {
        "internalType": "bool",
        "name": "",
        "type": "bool"
      }
    ],
    "stateMutability": "view",
    "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": [],
    "name": "royaltyPayout",
    "outputs": [
      {
        "internalType": "address",
        "name": "",
        "type": "address"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "from",
        "type": "address"
      },
      {
        "internalType": "address",
        "name": "to",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "tokenId",
        "type": "uint256"
      },
      {
        "internalType": "bytes",
        "name": "data",
        "type": "bytes"
      }
    ],
    "name": "safeTransferFrom",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "operator",
        "type": "address"
      },
      {
        "internalType": "bool",
        "name": "approved",
        "type": "bool"
      }
    ],
    "name": "setApprovalForAll",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      }
    ],
    "name": "setBaseURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_extension",
        "type": "string"
      }
    ],
    "name": "setExtension",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "string",
        "name": "_uri",
        "type": "string"
      }
    ],
    "name": "setNotRevealedURI",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "_payoutAddress",
        "type": "address"
      }
    ],
    "name": "setRoyaltyPayoutAddress",
    "outputs": [],
    "stateMutability": "nonpayable",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "uint96",
        "name": "_royalties",
        "type": "uint96"
      }
    ],
    "name": "setTokenRoyalties",
    "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": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [
      {
        "internalType": "address",
        "name": "owner",
        "type": "address"
      },
      {
        "internalType": "uint256",
        "name": "index",
        "type": "uint256"
      }
    ],
    "name": "tokenOfOwnerByIndex",
    "outputs": [
      {
        "internalType": "uint256",
        "name": "",
        "type": "uint256"
      }
    ],
    "stateMutability": "view",
    "type": "function"
  },
  {
    "inputs": [],
    "name": "tokenRoyalties",
    "outputs": [
      {
        "internalType": "uint96",
        "name": "",
        "type": "uint96"
      }
    ],
    "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
608060405260405180608001604052806051815260200162005e1160519139601090805190602001906200003592919062001004565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250601290805190602001906200008392919062001004565b506000601360006101000a81548160ff0219169083151502179055506000601360016101000a81548160ff0219169083151502179055506101f46014556000601555610384601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055507345543a4eccabd8481fa9bf0304702f0bffb014166016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200015a57600080fd5b506040518060400160405280600a81526020017f536d6f6c204765657365000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f474f4f53000000000000000000000000000000000000000000000000000000008152508160009080519060200190620001df92919062001004565b508060019080519060200190620001f892919062001004565b5050506001600a8190555062000223620002176200030b60201b60201c565b6200031360201b60201c565b6200024873745c1c48c34d743fe83cd8ae259d9989b67b6c34620003d960201b60201c565b6200026d7385e6cc88f3055b589eb1d4030863be2cfcc0763e620003d960201b60201c565b6200029273b8cf11b8de281560884b4a23efd69d9aacbf3f4d620003d960201b60201c565b620002b773a3d5ada94bb423f7c7cbf83403d63aab8278f8cf620003d960201b60201c565b620003056016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff166200042160201b60201c565b62001759565b600033905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620003f0600e620005c560201b6200184f1760201c565b600062000409600e620005db60201b620018651760201c565b90506200041d8282620005e960201b60201c565b5050565b620004316200060f60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff16111562000492576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004899062001326565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000505576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620004fc9062001348565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6001816000016000828254019250508190555050565b600081600001549050919050565b6200060b8282604051806020016040528060008152506200061960201b60201c565b5050565b6000612710905090565b6200062b83836200068760201b60201c565b6200064060008484846200088160201b60201c565b62000682576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000679906200129e565b60405180910390fd5b505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415620006fa576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620006f19062001304565b60405180910390fd5b6200070b8162000a3b60201b60201c565b156200074e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016200074590620012c0565b60405180910390fd5b620007626000838362000aa760201b60201c565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254620007b4919062001397565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46200087d6000838362000bee60201b60201c565b5050565b6000620008af8473ffffffffffffffffffffffffffffffffffffffff1662000bf360201b620018731760201c565b1562000a2e578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02620008e16200030b60201b60201c565b8786866040518563ffffffff1660e01b81526004016200090594939291906200124a565b602060405180830381600087803b1580156200092057600080fd5b505af19250505080156200095457506040513d601f19601f82011682018060405250810190620009519190620010cb565b60015b620009dd573d806000811462000987576040519150601f19603f3d011682016040523d82523d6000602084013e6200098c565b606091505b50600081511415620009d5576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620009cc906200129e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505062000a33565b600190505b949350505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b62000abf83838362000c1660201b620018961760201c565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141562000b0c5762000b068162000c1b60201b60201c565b62000b54565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161462000b535762000b52838262000c6460201b60201c565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000ba15762000b9b8162000de160201b60201c565b62000be9565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161462000be85762000be7828262000ebd60201b60201c565b5b5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600162000c7e8462000f4960201b62000ffb1760201c565b62000c8a9190620013f4565b905060006007600084815260200190815260200160002054905081811462000d70576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b6000600160088054905062000df79190620013f4565b905060006009600084815260200190815260200160002054905060006008838154811062000e2a5762000e2962001592565b5b90600052602060002001549050806008838154811062000e4f5762000e4e62001592565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548062000ea15762000ea062001563565b5b6001900381819060005260206000200160009055905550505050565b600062000ed58362000f4960201b62000ffb1760201c565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000fbd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000fb490620012e2565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b8280546200101290620014cf565b90600052602060002090601f01602090048101928262001036576000855562001082565b82601f106200105157805160ff191683800117855562001082565b8280016001018555821562001082579182015b828111156200108157825182559160200191906001019062001064565b5b50905062001091919062001095565b5090565b5b80821115620010b057600081600090555060010162001096565b5090565b600081519050620010c5816200173f565b92915050565b600060208284031215620010e457620010e3620015c1565b5b6000620010f484828501620010b4565b91505092915050565b62001108816200142f565b82525050565b60006200111b826200136a565b62001127818562001375565b93506200113981856020860162001499565b6200114481620015c6565b840191505092915050565b60006200115e60328362001386565b91506200116b82620015d7565b604082019050919050565b600062001185601c8362001386565b9150620011928262001626565b602082019050919050565b6000620011ac60298362001386565b9150620011b9826200164f565b604082019050919050565b6000620011d360208362001386565b9150620011e0826200169e565b602082019050919050565b6000620011fa602a8362001386565b91506200120782620016c7565b604082019050919050565b60006200122160198362001386565b91506200122e8262001716565b602082019050919050565b62001244816200148f565b82525050565b6000608082019050620012616000830187620010fd565b620012706020830186620010fd565b6200127f604083018562001239565b81810360608301526200129381846200110e565b905095945050505050565b60006020820190508181036000830152620012b9816200114f565b9050919050565b60006020820190508181036000830152620012db8162001176565b9050919050565b60006020820190508181036000830152620012fd816200119d565b9050919050565b600060208201905081810360008301526200131f81620011c4565b9050919050565b600060208201905081810360008301526200134181620011eb565b9050919050565b60006020820190508181036000830152620013638162001212565b9050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b6000620013a4826200148f565b9150620013b1836200148f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115620013e957620013e862001505565b5b828201905092915050565b600062001401826200148f565b91506200140e836200148f565b92508282101562001424576200142362001505565b5b828203905092915050565b60006200143c826200146f565b9050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60005b83811015620014b95780820151818401526020810190506200149c565b83811115620014c9576000848401525b50505050565b60006002820490506001821680620014e857607f821691505b60208210811415620014ff57620014fe62001534565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b600080fd5b6000601f19601f8301169050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6200174a8162001443565b81146200175657600080fd5b50565b6146a880620017696000396000f3fe608060405234801561001057600080fd5b506004361061023d5760003560e01c80636352211e1161013b578063a22cb465116100b8578063d5abeb011161007c578063d5abeb011461066b578063e985e9c514610689578063ee55efee146106b9578063f2c4ce1e146106c3578063f2fde38b146106df5761023d565b8063a22cb465146105db578063a475b5dd146105f7578063b88d4fde14610601578063c299e9d01461061d578063c87b56dd1461063b5761023d565b80638da5cb5b116100ff5780638da5cb5b14610547578063932d42c91461056557806395d89b4114610583578063a035b1fe146105a1578063a0712d68146105bf5761023d565b80636352211e146104a357806370a08231146104d3578063715018a6146105035780637e2285aa1461050d5780638b584eeb146105295761023d565b80632a55205a116101c957806342842e0e1161018d57806342842e0e1461040157806345aeefde1461041d5780634f6ccce714610439578063518302271461046957806355f804b3146104875761023d565b80632a55205a1461035a5780632d5537b01461038b5780632dff8423146103a95780632f745c59146103c75780633ccfd60b146103f75761023d565b8063167ff46f11610210578063167ff46f146102dc57806318160ddd146102e65780631ebdcaae1461030457806323b872dd1461032057806324bbd0491461033c5761023d565b806301ffc9a71461024257806306fdde0314610272578063081812fc14610290578063095ea7b3146102c0575b600080fd5b61025c60048036038101906102579190613190565b6106fb565b6040516102699190613834565b60405180910390f35b61027a61070d565b604051610287919061384f565b60405180910390f35b6102aa60048036038101906102a59190613233565b61079f565b6040516102b791906137a4565b60405180910390f35b6102da60048036038101906102d59190613150565b6107e5565b005b6102e46108fd565b005b6102ee610922565b6040516102fb9190613b71565b60405180910390f35b61031e600480360381019061031991906132a0565b61092f565b005b61033a6004803603810190610335919061303a565b6109b1565b005b610344610a11565b6040516103519190613834565b60405180910390f35b610374600480360381019061036f9190613260565b610a24565b60405161038292919061380b565b60405180910390f35b610393610c0f565b6040516103a0919061384f565b60405180910390f35b6103b1610c9d565b6040516103be9190613b8c565b60405180910390f35b6103e160048036038101906103dc9190613150565b610cbb565b6040516103ee9190613b71565b60405180910390f35b6103ff610d60565b005b61041b6004803603810190610416919061303a565b610df1565b005b61043760048036038101906104329190612fcd565b610e11565b005b610453600480360381019061044e9190613233565b610ea3565b6040516104609190613b71565b60405180910390f35b610471610f14565b60405161047e9190613834565b60405180910390f35b6104a1600480360381019061049c91906131ea565b610f27565b005b6104bd60048036038101906104b89190613233565b610f49565b6040516104ca91906137a4565b60405180910390f35b6104ed60048036038101906104e89190612fcd565b610ffb565b6040516104fa9190613b71565b60405180910390f35b61050b6110b3565b005b610527600480360381019061052291906131ea565b6110c7565b005b6105316110e9565b60405161053e91906137a4565b60405180910390f35b61054f61110f565b60405161055c91906137a4565b60405180910390f35b61056d611139565b60405161057a919061384f565b60405180910390f35b61058b6111c7565b604051610598919061384f565b60405180910390f35b6105a9611259565b6040516105b69190613b71565b60405180910390f35b6105d960048036038101906105d49190613233565b61125f565b005b6105f560048036038101906105f09190613110565b611466565b005b6105ff61147c565b005b61061b6004803603810190610616919061308d565b6114a1565b005b610625611503565b604051610632919061384f565b60405180910390f35b61065560048036038101906106509190613233565b611591565b604051610662919061384f565b60405180910390f35b6106736116ea565b6040516106809190613b71565b60405180910390f35b6106a3600480360381019061069e9190612ffa565b6116f0565b6040516106b09190613834565b60405180910390f35b6106c1611784565b005b6106dd60048036038101906106d891906131ea565b6117a9565b005b6106f960048036038101906106f49190612fcd565b6117cb565b005b60006107068261189b565b9050919050565b60606000805461071c90613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461074890613e69565b80156107955780601f1061076a57610100808354040283529160200191610795565b820191906000526020600020905b81548152906001019060200180831161077857829003601f168201915b5050505050905090565b60006107aa82611915565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006107f082610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610861576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161085890613ab1565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610880611960565b73ffffffffffffffffffffffffffffffffffffffff1614806108af57506108ae816108a9611960565b6116f0565b5b6108ee576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108e5906139f1565b60405180910390fd5b6108f88383611968565b505050565b610905611a21565b6001601360016101000a81548160ff021916908315150217905550565b6000600880549050905090565b610937611a21565b80601660006101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055506109ae6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611a9f565b50565b6109c26109bc611960565b82611c35565b610a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f890613b11565b60405180910390fd5b610a0c838383611cca565b505050565b601360019054906101000a900460ff1681565b6000806000600d60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff161415610bba57600c6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b6000610bc4611edf565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff1686610bf09190613d0d565b610bfa9190613cdc565b90508160000151819350935050509250929050565b60128054610c1c90613e69565b80601f0160208091040260200160405190810160405280929190818152602001828054610c4890613e69565b8015610c955780601f10610c6a57610100808354040283529160200191610c95565b820191906000526020600020905b815481529060010190602001808311610c7857829003601f168201915b505050505081565b601660009054906101000a90046bffffffffffffffffffffffff1681565b6000610cc683610ffb565b8210610d07576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cfe90613891565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b610d68611a21565b600047905060008111610db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610da790613871565b60405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050610dee57600080fd5b50565b610e0c838383604051806020016040528060008152506114a1565b505050565b610e19611a21565b806016600c6101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550610ea06016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601660009054906101000a90046bffffffffffffffffffffffff16611a9f565b50565b6000610ead610922565b8210610eee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ee590613ad1565b60405180910390fd5b60088281548110610f0257610f01614002565b5b90600052602060002001549050919050565b601360009054906101000a900460ff1681565b610f2f611a21565b80600f9080519060200190610f45929190612dcc565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610ff2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fe990613a91565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561106c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611063906139d1565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6110bb611a21565b6110c56000611ee9565b565b6110cf611a21565b80601290805190602001906110e5929190612dcc565b5050565b6016600c9054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6010805461114690613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461117290613e69565b80156111bf5780601f10611194576101008083540402835291602001916111bf565b820191906000526020600020905b8154815290600101906020018083116111a257829003601f168201915b505050505081565b6060600180546111d690613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461120290613e69565b801561124f5780601f106112245761010080835404028352916020019161124f565b820191906000526020600020905b81548152906001019060200180831161123257829003601f168201915b5050505050905090565b60155481565b3373ffffffffffffffffffffffffffffffffffffffff163273ffffffffffffffffffffffffffffffffffffffff16146112cd576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112c4906139b1565b60405180910390fd5b6002600a541415611313576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161130a90613b31565b60405180910390fd5b6002600a81905550601360019054906101000a900460ff1661136a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136190613a71565b60405180910390fd5b600a8111156113ae576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113a590613931565b60405180910390fd5b6014546113b9610922565b11156113fa576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016113f190613a31565b60405180910390fd5b61140333611faf565b6001601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055506001600a8190555050565b611478611471611960565b8383611fd5565b5050565b611484611a21565b6001601360006101000a81548160ff021916908315150217905550565b6114b26114ac611960565b83611c35565b6114f1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e890613b11565b60405180910390fd5b6114fd84848484612142565b50505050565b600f805461151090613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461153c90613e69565b80156115895780601f1061155e57610100808354040283529160200191611589565b820191906000526020600020905b81548152906001019060200180831161156c57829003601f168201915b505050505081565b606061159c8261219e565b6115db576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d290613991565b60405180910390fd5b60001515601360009054906101000a900460ff1615151415611689576010805461160490613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461163090613e69565b801561167d5780601f106116525761010080835404028352916020019161167d565b820191906000526020600020905b81548152906001019060200180831161166057829003601f168201915b505050505090506116e5565b600061169361220a565b905060008151116116b357604051806020016040528060008152506116e1565b806116bd8461229c565b60126040516020016116d193929190613773565b6040516020818303038152906040525b9150505b919050565b60145481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61178c611a21565b6000601360016101000a81548160ff021916908315150217905550565b6117b1611a21565b80601090805190602001906117c7929190612dcc565b5050565b6117d3611a21565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611843576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161183a906138d1565b60405180910390fd5b61184c81611ee9565b50565b6001816000016000828254019250508190555050565b600081600001549050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b505050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061190e575061190d826123fd565b5b9050919050565b61191e8161219e565b61195d576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161195490613a91565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166119db83610f49565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b611a29611960565b73ffffffffffffffffffffffffffffffffffffffff16611a4761110f565b73ffffffffffffffffffffffffffffffffffffffff1614611a9d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a9490613a51565b60405180910390fd5b565b611aa7611edf565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611b05576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611afc90613af1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611b75576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b6c90613b51565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600c60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600080611c4183610f49565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611c835750611c8281856116f0565b5b80611cc157508373ffffffffffffffffffffffffffffffffffffffff16611ca98461079f565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611cea82610f49565b73ffffffffffffffffffffffffffffffffffffffff1614611d40576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d37906138f1565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611db0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611da790613951565b60405180910390fd5b611dbb838383612477565b611dc6600082611968565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e169190613d67565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611e6d9190613c86565b92505081905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611eda83838361258b565b505050565b6000612710905090565b6000600b60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600b60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611fb9600e61184f565b6000611fc5600e611865565b9050611fd18282612590565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415612044576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161203b90613971565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516121359190613834565b60405180910390a3505050565b61214d848484611cca565b612159848484846125ae565b612198576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161218f906138b1565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600f805461221990613e69565b80601f016020809104026020016040519081016040528092919081815260200182805461224590613e69565b80156122925780601f1061226757610100808354040283529160200191612292565b820191906000526020600020905b81548152906001019060200180831161227557829003601f168201915b5050505050905090565b606060008214156122e4576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506123f8565b600082905060005b600082146123165780806122ff90613ecc565b915050600a8261230f9190613cdc565b91506122ec565b60008167ffffffffffffffff81111561233257612331614031565b5b6040519080825280601f01601f1916602001820160405280156123645781602001600182028036833780820191505090505b5090505b600085146123f15760018261237d9190613d67565b9150600a8561238c9190613f15565b60306123989190613c86565b60f81b8183815181106123ae576123ad614002565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856123ea9190613cdc565b9450612368565b8093505050505b919050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480612470575061246f82612745565b5b9050919050565b612482838383611896565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156124c5576124c081612827565b612504565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612503576125028382612870565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561254757612542816129dd565b612586565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612585576125848282612aae565b5b5b505050565b505050565b6125aa828260405180602001604052806000815250612b2d565b5050565b60006125cf8473ffffffffffffffffffffffffffffffffffffffff16611873565b15612738578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026125f8611960565b8786866040518563ffffffff1660e01b815260040161261a94939291906137bf565b602060405180830381600087803b15801561263457600080fd5b505af192505050801561266557506040513d601f19601f8201168201806040525081019061266291906131bd565b60015b6126e8573d8060008114612695576040519150601f19603f3d011682016040523d82523d6000602084013e61269a565b606091505b506000815114156126e0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016126d7906138b1565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061273d565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061281057507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612820575061281f82612b88565b5b9050919050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161287d84610ffb565b6128879190613d67565b905060006007600084815260200190815260200160002054905081811461296c576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506129f19190613d67565b9050600060096000848152602001908152602001600020549050600060088381548110612a2157612a20614002565b5b906000526020600020015490508060088381548110612a4357612a42614002565b5b906000526020600020018190555081600960008381526020019081526020016000208190555060096000858152602001908152602001600020600090556008805480612a9257612a91613fd3565b5b6001900381819060005260206000200160009055905550505050565b6000612ab983610ffb565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b612b378383612bf2565b612b4460008484846125ae565b612b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612b7a906138b1565b60405180910390fd5b505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415612c62576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612c5990613a11565b60405180910390fd5b612c6b8161219e565b15612cab576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401612ca290613911565b60405180910390fd5b612cb760008383612477565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254612d079190613c86565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4612dc86000838361258b565b5050565b828054612dd890613e69565b90600052602060002090601f016020900481019282612dfa5760008555612e41565b82601f10612e1357805160ff1916838001178555612e41565b82800160010185558215612e41579182015b82811115612e40578251825591602001919060010190612e25565b5b509050612e4e9190612e52565b5090565b5b80821115612e6b576000816000905550600101612e53565b5090565b6000612e82612e7d84613bcc565b613ba7565b905082815260208101848484011115612e9e57612e9d614065565b5b612ea9848285613e27565b509392505050565b6000612ec4612ebf84613bfd565b613ba7565b905082815260208101848484011115612ee057612edf614065565b5b612eeb848285613e27565b509392505050565b600081359050612f02816145ff565b92915050565b600081359050612f1781614616565b92915050565b600081359050612f2c8161462d565b92915050565b600081519050612f418161462d565b92915050565b600082601f830112612f5c57612f5b614060565b5b8135612f6c848260208601612e6f565b91505092915050565b600082601f830112612f8a57612f89614060565b5b8135612f9a848260208601612eb1565b91505092915050565b600081359050612fb281614644565b92915050565b600081359050612fc78161465b565b92915050565b600060208284031215612fe357612fe261406f565b5b6000612ff184828501612ef3565b91505092915050565b600080604083850312156130115761301061406f565b5b600061301f85828601612ef3565b925050602061303085828601612ef3565b9150509250929050565b6000806000606084860312156130535761305261406f565b5b600061306186828701612ef3565b935050602061307286828701612ef3565b925050604061308386828701612fa3565b9150509250925092565b600080600080608085870312156130a7576130a661406f565b5b60006130b587828801612ef3565b94505060206130c687828801612ef3565b93505060406130d787828801612fa3565b925050606085013567ffffffffffffffff8111156130f8576130f761406a565b5b61310487828801612f47565b91505092959194509250565b600080604083850312156131275761312661406f565b5b600061313585828601612ef3565b925050602061314685828601612f08565b9150509250929050565b600080604083850312156131675761316661406f565b5b600061317585828601612ef3565b925050602061318685828601612fa3565b9150509250929050565b6000602082840312156131a6576131a561406f565b5b60006131b484828501612f1d565b91505092915050565b6000602082840312156131d3576131d261406f565b5b60006131e184828501612f32565b91505092915050565b600060208284031215613200576131ff61406f565b5b600082013567ffffffffffffffff81111561321e5761321d61406a565b5b61322a84828501612f75565b91505092915050565b6000602082840312156132495761324861406f565b5b600061325784828501612fa3565b91505092915050565b600080604083850312156132775761327661406f565b5b600061328585828601612fa3565b925050602061329685828601612fa3565b9150509250929050565b6000602082840312156132b6576132b561406f565b5b60006132c484828501612fb8565b91505092915050565b6132d681613d9b565b82525050565b6132e581613dad565b82525050565b60006132f682613c43565b6133008185613c59565b9350613310818560208601613e36565b61331981614074565b840191505092915050565b600061332f82613c4e565b6133398185613c6a565b9350613349818560208601613e36565b61335281614074565b840191505092915050565b600061336882613c4e565b6133728185613c7b565b9350613382818560208601613e36565b80840191505092915050565b6000815461339b81613e69565b6133a58186613c7b565b945060018216600081146133c057600181146133d157613404565b60ff19831686528186019350613404565b6133da85613c2e565b60005b838110156133fc578154818901526001820191506020810190506133dd565b838801955050505b50505092915050565b600061341a601383613c6a565b915061342582614085565b602082019050919050565b600061343d602b83613c6a565b9150613448826140ae565b604082019050919050565b6000613460603283613c6a565b915061346b826140fd565b604082019050919050565b6000613483602683613c6a565b915061348e8261414c565b604082019050919050565b60006134a6602583613c6a565b91506134b18261419b565b604082019050919050565b60006134c9601c83613c6a565b91506134d4826141ea565b602082019050919050565b60006134ec600f83613c6a565b91506134f782614213565b602082019050919050565b600061350f602483613c6a565b915061351a8261423c565b604082019050919050565b6000613532601983613c6a565b915061353d8261428b565b602082019050919050565b6000613555601483613c6a565b9150613560826142b4565b602082019050919050565b6000613578601e83613c6a565b9150613583826142dd565b602082019050919050565b600061359b602983613c6a565b91506135a682614306565b604082019050919050565b60006135be603e83613c6a565b91506135c982614355565b604082019050919050565b60006135e1602083613c6a565b91506135ec826143a4565b602082019050919050565b6000613604601a83613c6a565b915061360f826143cd565b602082019050919050565b6000613627602083613c6a565b9150613632826143f6565b602082019050919050565b600061364a601283613c6a565b91506136558261441f565b602082019050919050565b600061366d601883613c6a565b915061367882614448565b602082019050919050565b6000613690602183613c6a565b915061369b82614471565b604082019050919050565b60006136b3602c83613c6a565b91506136be826144c0565b604082019050919050565b60006136d6602a83613c6a565b91506136e18261450f565b604082019050919050565b60006136f9602e83613c6a565b91506137048261455e565b604082019050919050565b600061371c601f83613c6a565b9150613727826145ad565b602082019050919050565b600061373f601983613c6a565b915061374a826145d6565b602082019050919050565b61375e81613e05565b82525050565b61376d81613e0f565b82525050565b600061377f828661335d565b915061378b828561335d565b9150613797828461338e565b9150819050949350505050565b60006020820190506137b960008301846132cd565b92915050565b60006080820190506137d460008301876132cd565b6137e160208301866132cd565b6137ee6040830185613755565b818103606083015261380081846132eb565b905095945050505050565b600060408201905061382060008301856132cd565b61382d6020830184613755565b9392505050565b600060208201905061384960008301846132dc565b92915050565b600060208201905081810360008301526138698184613324565b905092915050565b6000602082019050818103600083015261388a8161340d565b9050919050565b600060208201905081810360008301526138aa81613430565b9050919050565b600060208201905081810360008301526138ca81613453565b9050919050565b600060208201905081810360008301526138ea81613476565b9050919050565b6000602082019050818103600083015261390a81613499565b9050919050565b6000602082019050818103600083015261392a816134bc565b9050919050565b6000602082019050818103600083015261394a816134df565b9050919050565b6000602082019050818103600083015261396a81613502565b9050919050565b6000602082019050818103600083015261398a81613525565b9050919050565b600060208201905081810360008301526139aa81613548565b9050919050565b600060208201905081810360008301526139ca8161356b565b9050919050565b600060208201905081810360008301526139ea8161358e565b9050919050565b60006020820190508181036000830152613a0a816135b1565b9050919050565b60006020820190508181036000830152613a2a816135d4565b9050919050565b60006020820190508181036000830152613a4a816135f7565b9050919050565b60006020820190508181036000830152613a6a8161361a565b9050919050565b60006020820190508181036000830152613a8a8161363d565b9050919050565b60006020820190508181036000830152613aaa81613660565b9050919050565b60006020820190508181036000830152613aca81613683565b9050919050565b60006020820190508181036000830152613aea816136a6565b9050919050565b60006020820190508181036000830152613b0a816136c9565b9050919050565b60006020820190508181036000830152613b2a816136ec565b9050919050565b60006020820190508181036000830152613b4a8161370f565b9050919050565b60006020820190508181036000830152613b6a81613732565b9050919050565b6000602082019050613b866000830184613755565b92915050565b6000602082019050613ba16000830184613764565b92915050565b6000613bb1613bc2565b9050613bbd8282613e9b565b919050565b6000604051905090565b600067ffffffffffffffff821115613be757613be6614031565b5b613bf082614074565b9050602081019050919050565b600067ffffffffffffffff821115613c1857613c17614031565b5b613c2182614074565b9050602081019050919050565b60008190508160005260206000209050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b6000613c9182613e05565b9150613c9c83613e05565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613cd157613cd0613f46565b5b828201905092915050565b6000613ce782613e05565b9150613cf283613e05565b925082613d0257613d01613f75565b5b828204905092915050565b6000613d1882613e05565b9150613d2383613e05565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0483118215151615613d5c57613d5b613f46565b5b828202905092915050565b6000613d7282613e05565b9150613d7d83613e05565b925082821015613d9057613d8f613f46565b5b828203905092915050565b6000613da682613de5565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015613e54578082015181840152602081019050613e39565b83811115613e63576000848401525b50505050565b60006002820490506001821680613e8157607f821691505b60208210811415613e9557613e94613fa4565b5b50919050565b613ea482614074565b810181811067ffffffffffffffff82111715613ec357613ec2614031565b5b80604052505050565b6000613ed782613e05565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff821415613f0a57613f09613f46565b5b600182019050919050565b6000613f2082613e05565b9150613f2b83613e05565b925082613f3b57613f3a613f75565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4f6e6c7920313020616c6c6f7765640000000000000000000000000000000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f546f6b656e20646f6573206e6f74206578697374000000000000000000000000600082015250565b7f5468652063616c6c657220697320616e6f7468657220636f6e74726163740000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f416c6c2047656573652068617665206265656e206d696e746564000000000000600082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4d696e74206973206e6f74206163746976650000000000000000000000000000600082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b61460881613d9b565b811461461357600080fd5b50565b61461f81613dad565b811461462a57600080fd5b50565b61463681613db9565b811461464157600080fd5b50565b61464d81613e05565b811461465857600080fd5b50565b61466481613e0f565b811461466f57600080fd5b5056fea26469706673582212201e8138755a711693d0a2449fa52b9a98c4ce4dd4423ed9f4bd830d501e1dd93064736f6c6343000807003368747470733a2f2f736d6f6c722e6d7970696e6174612e636c6f75642f697066732f516d5636766b616b4e744c4c44786164346757544433743552355a534d596d7634705543665456344e6e397a676d2f