Loading
[ { "inputs": [ { "internalType": "string", "name": "name", "type": "string" }, { "internalType": "string", "name": "symbol", "type": "string" }, { "internalType": "string", "name": "baseURI", "type": "string" } ], "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": "MAX_RESERVE", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "MAX_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "SALE_START_TIMESTAMP", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "minPrice", "type": "uint256" } ], "name": "acceptBidForPunk", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "buyPunk", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "baseURI", "type": "string" } ], "name": "changeBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "enterBidForPunk", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "getNFTPrice", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "imageHash", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "mintNFT", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "minSalePriceInWei", "type": "uint256" } ], "name": "offerPunkForSale", "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": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "pendingWithdrawals", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "punkBids", "outputs": [ { "internalType": "bool", "name": "hasBid", "type": "bool" }, { "internalType": "uint256", "name": "punkIndex", "type": "uint256" }, { "internalType": "address", "name": "bidder", "type": "address" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "punkNoLongerForSale", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "punksOfferedForSale", "outputs": [ { "internalType": "bool", "name": "isForSale", "type": "bool" }, { "internalType": "uint256", "name": "punkIndex", "type": "uint256" }, { "internalType": "address", "name": "seller", "type": "address" }, { "internalType": "uint256", "name": "minValue", "type": "uint256" }, { "internalType": "address", "name": "onlySellTo", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "punksRemainingToAssign", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "reserveNFTs", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reserved", "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": "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": "uint256", "name": "new_SALE_START_TIMESTAMP", "type": "uint256" } ], "name": "setSaleTimestamp", "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": [ { "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": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "withdrawBidForPunk", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
6080604052636111174660105561271060115560006012553480156200002457600080fd5b5060405162005c9038038062005c90833981810160405260608110156200004a57600080fd5b81019080805160405193929190846401000000008211156200006b57600080fd5b838201915060208201858111156200008257600080fd5b8251866001820283011164010000000082111715620000a057600080fd5b8083526020830192505050908051906020019080838360005b83811015620000d6578082015181840152602081019050620000b9565b50505050905090810190601f168015620001045780820380516001836020036101000a031916815260200191505b50604052602001805160405193929190846401000000008211156200012857600080fd5b838201915060208201858111156200013f57600080fd5b82518660018202830111640100000000821117156200015d57600080fd5b8083526020830192505050908051906020019080838360005b838110156200019357808201518184015260208101905062000176565b50505050905090810190601f168015620001c15780820380516001836020036101000a031916815260200191505b5060405260200180516040519392919084640100000000821115620001e557600080fd5b83820191506020820185811115620001fc57600080fd5b82518660018202830111640100000000821117156200021a57600080fd5b8083526020830192505050908051906020019080838360005b838110156200025057808201518184015260208101905062000233565b50505050905090810190601f1680156200027e5780820380516001836020036101000a031916815260200191505b5060405250505082826200029f6301ffc9a760e01b620003e660201b60201c565b81600a9080519060200190620002b792919062000513565b5080600b9080519060200190620002d092919062000513565b50620002e96380ac58cd60e01b620003e660201b60201c565b62000301635b5e139f60e01b620003e660201b60201c565b6200031963780e9d6360e01b620003e660201b60201c565b505060006200032d620004ef60201b60201c565b905080600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350620003dd81620004f760201b60201c565b505050620005c9565b63ffffffff60e01b817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916141562000483576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433136353a20696e76616c696420696e746572666163652069640000000081525060200191505060405180910390fd5b6001600080837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060006101000a81548160ff02191690831515021790555050565b600033905090565b80600d90805190602001906200050f92919062000513565b5050565b828054600181600116156101000203166002900490600052602060002090601f0160209004810192826200054b576000855562000597565b82601f106200056657805160ff191683800117855562000597565b8280016001018555821562000597579182015b828111156200059657825182559160200191906001019062000579565b5b509050620005a69190620005aa565b5090565b5b80821115620005c5576000816000905550600101620005ab565b5090565b6156b780620005d96000396000f3fe6080604052600436106102465760003560e01c806370a0823111610139578063b88d4fde116100b6578063e985e9c51161007a578063e985e9c514610f8c578063eff31e9e14611013578063f2fde38b1461103e578063f3f437031461108f578063f6eeff1e146110f4578063fe60d12c1461112f57610246565b8063b88d4fde14610d1b578063bc7df09114610e2d578063c0d6ce6314610e68578063c44193c314610e93578063c87b56dd14610ed857610246565b806392976179116100fd5780639297617914610b79578063946807fd14610bc857806395d89b4114610bf3578063979bc63814610c83578063a22cb46514610cbe57610246565b806370a0823114610a3c5780637a1cbd3f14610aa15780638264fe9814610adc5780638da5cb5b14610b0a5780639264274414610b4b57610246565b80632f745c59116101c75780634f6ccce71161018b5780634f6ccce7146107ec57806351605d801461083b5780636352211e146108cb5780636c0360eb146109305780636e743fa9146109c057610246565b80632f745c59146105f857806332cb6b0c1461066757806339a0c6f9146106925780633ccfd60b1461075a57806342842e0e1461077157610246565b8063095ea7b31161020e578063095ea7b31461047757806318160ddd146104d257806323165b75146104fd57806323b872dd146105425780632e1a7d4d146105bd57610246565b806301ffc9a71461024b57806306fdde03146102bb578063081812fc1461034b578063088f11f3146103b0578063091dbfd214610449575b600080fd5b34801561025757600080fd5b506102a36004803603602081101561026e57600080fd5b8101908080357bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916906020019092919050505061115a565b60405180821515815260200191505060405180910390f35b3480156102c757600080fd5b506102d06111c1565b6040518080602001828103825283818151815260200191508051906020019080838360005b838110156103105780820151818401526020810190506102f5565b50505050905090810190601f16801561033d5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b34801561035757600080fd5b506103846004803603602081101561036e57600080fd5b8101908080359060200190929190505050611263565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b3480156103bc57600080fd5b506103e9600480360360208110156103d357600080fd5b81019080803590602001909291905050506112fe565b6040518086151581526020018581526020018473ffffffffffffffffffffffffffffffffffffffff1681526020018381526020018273ffffffffffffffffffffffffffffffffffffffff1681526020019550505050505060405180910390f35b6104756004803603602081101561045f57600080fd5b8101908080359060200190929190505050611381565b005b34801561048357600080fd5b506104d06004803603604081101561049a57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611714565b005b3480156104de57600080fd5b506104e7611858565b6040518082815260200191505060405180910390f35b34801561050957600080fd5b506105406004803603604081101561052057600080fd5b810190808035906020019092919080359060200190929190505050611869565b005b34801561054e57600080fd5b506105bb6004803603606081101561056557600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611c93565b005b3480156105c957600080fd5b506105f6600480360360208110156105e057600080fd5b8101908080359060200190929190505050611d09565b005b34801561060457600080fd5b506106516004803603604081101561061b57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050611e02565b6040518082815260200191505060405180910390f35b34801561067357600080fd5b5061067c611e5d565b6040518082815260200191505060405180910390f35b34801561069e57600080fd5b50610758600480360360208110156106b557600080fd5b81019080803590602001906401000000008111156106d257600080fd5b8201836020820111156106e457600080fd5b8035906020019184600183028401116401000000008311171561070657600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050509192919290505050611e63565b005b34801561076657600080fd5b5061076f611f1e565b005b34801561077d57600080fd5b506107ea6004803603606081101561079457600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080359060200190929190505050612033565b005b3480156107f857600080fd5b506108256004803603602081101561080f57600080fd5b8101908080359060200190929190505050612053565b6040518082815260200191505060405180910390f35b34801561084757600080fd5b50610850612076565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610890578082015181840152602081019050610875565b50505050905090810190601f1680156108bd5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156108d757600080fd5b50610904600480360360208110156108ee57600080fd5b8101908080359060200190929190505050612092565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b34801561093c57600080fd5b506109456120c9565b6040518080602001828103825283818151815260200191508051906020019080838360005b8381101561098557808201518184015260208101905061096a565b50505050905090810190601f1680156109b25780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b3480156109cc57600080fd5b506109f9600480360360208110156109e357600080fd5b810190808035906020019092919050505061216b565b6040518085151581526020018481526020018373ffffffffffffffffffffffffffffffffffffffff16815260200182815260200194505050505060405180910390f35b348015610a4857600080fd5b50610a8b60048036036020811015610a5f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506121c8565b6040518082815260200191505060405180910390f35b348015610aad57600080fd5b50610ada60048036036020811015610ac457600080fd5b810190808035906020019092919050505061229d565b005b610b0860048036036020811015610af257600080fd5b8101908080359060200190929190505050612356565b005b348015610b1657600080fd5b50610b1f612861565b604051808273ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b610b7760048036036020811015610b6157600080fd5b810190808035906020019092919050505061288b565b005b348015610b8557600080fd5b50610bb260048036036020811015610b9c57600080fd5b8101908080359060200190929190505050612b7b565b6040518082815260200191505060405180910390f35b348015610bd457600080fd5b50610bdd612c1d565b6040518082815260200191505060405180910390f35b348015610bff57600080fd5b50610c08612c23565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610c48578082015181840152602081019050610c2d565b50505050905090810190601f168015610c755780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610c8f57600080fd5b50610cbc60048036036020811015610ca657600080fd5b8101908080359060200190929190505050612cc5565b005b348015610cca57600080fd5b50610d1960048036036040811015610ce157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff16906020019092919080351515906020019092919050505061302c565b005b348015610d2757600080fd5b50610e2b60048036036080811015610d3e57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291908035906020019092919080359060200190640100000000811115610da557600080fd5b820183602082011115610db757600080fd5b80359060200191846001830284011164010000000083111715610dd957600080fd5b91908080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f8201169050808301925050505050505091929192905050506131e2565b005b348015610e3957600080fd5b50610e6660048036036020811015610e5057600080fd5b810190808035906020019092919050505061325a565b005b348015610e7457600080fd5b50610e7d613425565b6040518082815260200191505060405180910390f35b348015610e9f57600080fd5b50610ed660048036036040811015610eb657600080fd5b81019080803590602001909291908035906020019092919050505061342b565b005b348015610ee457600080fd5b50610f1160048036036020811015610efb57600080fd5b8101908080359060200190929190505050613673565b6040518080602001828103825283818151815260200191508051906020019080838360005b83811015610f51578082015181840152602081019050610f36565b50505050905090810190601f168015610f7e5780820380516001836020036101000a031916815260200191505b509250505060405180910390f35b348015610f9857600080fd5b50610ffb60048036036040811015610faf57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190803573ffffffffffffffffffffffffffffffffffffffff1690602001909291905050506137a7565b60405180821515815260200191505060405180910390f35b34801561101f57600080fd5b5061102861383b565b6040518082815260200191505060405180910390f35b34801561104a57600080fd5b5061108d6004803603602081101561106157600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613840565b005b34801561109b57600080fd5b506110de600480360360208110156110b257600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050613a35565b6040518082815260200191505060405180910390f35b34801561110057600080fd5b5061112d6004803603602081101561111757600080fd5b8101908080359060200190929190505050613a4d565b005b34801561113b57600080fd5b50611144613a61565b6040518082815260200191505060405180910390f35b6000806000837bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19167bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916815260200190815260200160002060009054906101000a900460ff169050919050565b6060600a8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156112595780601f1061122e57610100808354040283529160200191611259565b820191906000526020600020905b81548152906001019060200180831161123c57829003601f168201915b5050505050905090565b600061126e82613a67565b6112c3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615542602c913960400191505060405180910390fd5b6008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60026020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154908060040160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905085565b61271081106113f8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260038152602001807f4f7574000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b611400613a84565b73ffffffffffffffffffffffffffffffffffffffff1661141f82612092565b73ffffffffffffffffffffffffffffffffffffffff1614156114a9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f496e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60036000828152602001908152602001600020600301543411611534576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f496e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008381526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481525050905060008160600151111561163e57806060015160046000836040015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b6040518060800160405280600115158152602001838152602001611660613a84565b73ffffffffffffffffffffffffffffffffffffffff168152602001348152506003600084815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050505050565b600061171f82612092565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156117a6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806155f06021913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff166117c5613a84565b73ffffffffffffffffffffffffffffffffffffffff1614806117f457506117f3816117ee613a84565b6137a7565b5b611849576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260388152602001806154746038913960400191505060405180910390fd5b6118538383613a8c565b505050565b60006118646006613b45565b905090565b611871613a84565b8261271081106118e9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f7574206f6620746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1661190982612092565b73ffffffffffffffffffffffffffffffffffffffff1614611975576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806155986029913960400191505060405180910390fd5b8260036000868152602001908152602001600020600301541015611a01576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f496e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6000600360008681526020019081526020016000206040518060800160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200160038201548152505090506040518060800160405280600015158152602001868152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506003600087815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060608201518160030155905050611b9b611b80613a84565b82604001518760405180602001604052806000815250613b5a565b6064605f82606001510281611bac57fe5b0460046000611bb9613a84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506000611c0a612861565b73ffffffffffffffffffffffffffffffffffffffff166064600584606001510281611c3157fe5b0460405180600001905060006040518083038185875af1925050503d8060008114611c78576040519150601f19603f3d011682016040523d82523d6000602084013e611c7d565b606091505b5050905080611c8b57600080fd5b505050505050565b611ca4611c9e613a84565b82613bcc565b611cf9576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806156116031913960400191505060405180910390fd5b611d04838383613cc0565b505050565b611d11613a84565b73ffffffffffffffffffffffffffffffffffffffff16611d2f612861565b73ffffffffffffffffffffffffffffffffffffffff1614611db8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b3373ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015611dfe573d6000803e3d6000fd5b5050565b6000611e5582600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613f0390919063ffffffff16565b905092915050565b61271081565b611e6b613a84565b73ffffffffffffffffffffffffffffffffffffffff16611e89612861565b73ffffffffffffffffffffffffffffffffffffffff1614611f12576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b611f1b81613f1d565b50565b600060046000611f2c613a84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050600060046000611f77613a84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055506000611fbf613a84565b73ffffffffffffffffffffffffffffffffffffffff168260405180600001905060006040518083038185875af1925050503d806000811461201c576040519150601f19603f3d011682016040523d82523d6000602084013e612021565b606091505b505090508061202f57600080fd5b5050565b61204e838383604051806020016040528060008152506131e2565b505050565b60008061206a836006613f3790919063ffffffff16565b50905080915050919050565b6040518060600160405280604081526020016156426040913981565b60006120c2826040518060600160405280602981526020016154d6602991396006613f639092919063ffffffff16565b9050919050565b6060600d8054600181600116156101000203166002900480601f0160208091040260200160405190810160405280929190818152602001828054600181600116156101000203166002900480156121615780601f1061213657610100808354040283529160200191612161565b820191906000526020600020905b81548152906001019060200180831161214457829003601f168201915b5050505050905090565b60036020528060005260406000206000915090508060000160009054906101000a900460ff16908060010154908060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16908060030154905084565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561224f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a8152602001806154ac602a913960400191505060405180910390fd5b612296600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020613f82565b9050919050565b6122a5613a84565b73ffffffffffffffffffffffffffffffffffffffff166122c3612861565b73ffffffffffffffffffffffffffffffffffffffff161461234c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b8060108190555050565b6000600260008381526020019081526020016000206040518060a00160405290816000820160009054906101000a900460ff16151515158152602001600182015481526020016002820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001600382015481526020016004820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681525050905061271082106124ca576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f7574206f6620746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8060000151612541576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f4e6f2053616c650000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff1614806125b65750612583613a84565b73ffffffffffffffffffffffffffffffffffffffff16816080015173ffffffffffffffffffffffffffffffffffffffff16145b612628576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f556e61626c6520746f2073656c6c00000000000000000000000000000000000081525060200191505060405180910390fd5b80606001513410156126a2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260138152602001807f496e73756666696369656e7420616d6f756e740000000000000000000000000081525060200191505060405180910390fd5b806040015173ffffffffffffffffffffffffffffffffffffffff166126c683612092565b73ffffffffffffffffffffffffffffffffffffffff161461274f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600a8152602001807f4e6f742073656c6c65720000000000000000000000000000000000000000000081525060200191505060405180910390fd5b60008160400151905061277a81612764613a84565b8560405180602001604052806000815250613b5a565b6064605f34028161278757fe5b04600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254019250508190555060006127de612861565b73ffffffffffffffffffffffffffffffffffffffff166064600534028161280157fe5b0460405180600001905060006040518083038185875af1925050503d8060008114612848576040519150601f19603f3d011682016040523d82523d6000602084013e61284d565b606091505b505090508061285b57600080fd5b50505050565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b612710612896611858565b10612909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53616c652068617320616c726561647920656e6465642e00000000000000000081525060200191505060405180910390fd5b6000811161297f576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f596f752063616e6e6f74206d696e742030204e6674732e00000000000000000081525060200191505060405180910390fd5b60148111156129d9576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602a81526020018061556e602a913960400191505060405180910390fd5b6127106129ed6129e7611858565b83613f97565b1115612a44576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806153936035913960400191505060405180910390fd5b34612a4e82612b7b565b14612aa4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806153176024913960400191505060405180910390fd5b6000612aae612861565b73ffffffffffffffffffffffffffffffffffffffff163460405180600001905060006040518083038185875af1925050503d8060008114612b0b576040519150601f19603f3d011682016040523d82523d6000602084013e612b10565b606091505b5050905080612b1e57600080fd5b60005b82811015612b76576000601154612b3661401f565b81612b3d57fe5b0690506000612b5b6011600081546001900391905081905583614102565b9050612b6733826141d0565b50508080600101915050612b21565b505050565b6000612710612b88611858565b10612bfb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260178152602001807f53616c652068617320616c726561647920656e6465642e00000000000000000081525060200191505060405180910390fd5b612c16671bc16d674ec80000836141ee90919063ffffffff16565b9050919050565b60105481565b6060600b8054600181600116156101000203166002900480601f016020809104026020016040519081016040528092919081815260200182805460018160011615610100020316600290048015612cbb5780601f10612c9057610100808354040283529160200191612cbb565b820191906000526020600020905b815481529060010190602001808311612c9e57829003601f168201915b5050505050905090565b6127108110612d3c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260038152602001807f4f7574000000000000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b612d44613a84565b73ffffffffffffffffffffffffffffffffffffffff16612d6382612092565b73ffffffffffffffffffffffffffffffffffffffff161415612ded576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f496e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b612df5613a84565b73ffffffffffffffffffffffffffffffffffffffff166003600083815260200190815260200160002060020160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614612ecb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260078152602001807f496e76616c69640000000000000000000000000000000000000000000000000081525060200191505060405180910390fd5b6040518060800160405280600015158152602001828152602001600073ffffffffffffffffffffffffffffffffffffffff16815260200160008152506003600083815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550606082015181600301559050506000612fa2613a84565b73ffffffffffffffffffffffffffffffffffffffff16600360008481526020019081526020016000206003015460405180600001905060006040518083038185875af1925050503d8060008114613015576040519150601f19603f3d011682016040523d82523d6000602084013e61301a565b606091505b505090508061302857600080fd5b5050565b613034613a84565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156130d5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260198152602001807f4552433732313a20617070726f766520746f2063616c6c65720000000000000081525060200191505060405180910390fd5b80600960006130e2613a84565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff1661318f613a84565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405180821515815260200191505060405180910390a35050565b6131f36131ed613a84565b83613bcc565b613248576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260318152602001806156116031913960400191505060405180910390fd5b61325484848484613b5a565b50505050565b613262613a84565b73ffffffffffffffffffffffffffffffffffffffff16613280612861565b73ffffffffffffffffffffffffffffffffffffffff1614613309576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b61271061331d613317611858565b83613f97565b1115613374576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260358152602001806153936035913960400191505060405180910390fd5b606461338b82601254613f9790919063ffffffff16565b11156133e2576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603681526020018061543e6036913960400191505060405180910390fd5b60005b818110156134115760006133f7611858565b905061340333826141d0565b5080806001019150506133e5565b508060126000828254019250508190555050565b60115481565b613433613a84565b8261271081106134ab576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f7574206f6620746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff166134cb82612092565b73ffffffffffffffffffffffffffffffffffffffff1614613537576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806155986029913960400191505060405180910390fd5b6040518060a00160405280600115158152602001858152602001613559613a84565b73ffffffffffffffffffffffffffffffffffffffff168152602001848152602001600073ffffffffffffffffffffffffffffffffffffffff168152506002600086815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505050505050565b606061367e82613a67565b6136d3576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602f8152602001806155c1602f913960400191505060405180910390fd5b6136db6120c9565b6136e483614274565b6040516020018083805190602001908083835b6020831061371a57805182526020820191506020810190506020830392506136f7565b6001836020036101000a03801982511681845116808217855250505050505090500182805190602001908083835b6020831061376b5780518252602082019150602081019050602083039250613748565b6001836020036101000a038019825116818451168082178552505050505050905001925050506040516020818303038152906040529050919050565b6000600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b606481565b613848613a84565b73ffffffffffffffffffffffffffffffffffffffff16613866612861565b73ffffffffffffffffffffffffffffffffffffffff16146138ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657281525060200191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415613975576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602681526020018061536d6026913960400191505060405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a380600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b60046020528060005260406000206000915090505481565b613a5e613a58613a84565b826143bb565b50565b60125481565b6000613a7d8260066145f690919063ffffffff16565b9050919050565b600033905090565b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16613aff83612092565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000613b5382600001614610565b9050919050565b613b65848484613cc0565b613b7184848484614621565b613bc6576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061533b6032913960400191505060405180910390fd5b50505050565b6000613bd782613a67565b613c2c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252602c815260200180615412602c913960400191505060405180910390fd5b6000613c3783612092565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480613ca657508373ffffffffffffffffffffffffffffffffffffffff16613c8e84611263565b73ffffffffffffffffffffffffffffffffffffffff16145b80613cb75750613cb681856137a7565b5b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16613ce082612092565b73ffffffffffffffffffffffffffffffffffffffff1614613d4c576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806155986029913960400191505060405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415613dd2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260248152602001806153c86024913960400191505060405180910390fd5b613ddd83838361483a565b613de8600082613a8c565b613e3981600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061483f90919063ffffffff16565b50613e8b81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061485990919063ffffffff16565b50613ea2818360066148739092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4505050565b6000613f1283600001836148a8565b60001c905092915050565b80600d9080519060200190613f33929190615249565b5050565b600080600080613f4a866000018661492b565b915091508160001c8160001c9350935050509250929050565b6000613f76846000018460001b846149c4565b60001c90509392505050565b6000613f9082600001614aba565b9050919050565b600080828401905083811015614015576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601b8152602001807f536166654d6174683a206164646974696f6e206f766572666c6f77000000000081525060200191505060405180910390fd5b8091505092915050565b6000601154434261402e613a84565b604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060001c8161407757fe5b04454241604051602001808273ffffffffffffffffffffffffffffffffffffffff1660601b81526014019150506040516020818303038152906040528051906020012060001c816140c457fe5b0444420101010101604051602001808281526020019150506040516020818303038152906040528051906020012060001c816140fc57fe5b04905090565b6000808390506000600f600086815260200190815260200160002054111561413b57600f60008581526020019081526020016000205490505b82600f6000868152602001908152602001600020819055506000600f600085815260200190815260200160002054111561419b57600f600084815260200190815260200160002054600f6000868152602001908152602001600020819055505b80600f600085815260200190815260200160002081905550600f60008581526020019081526020016000205491505092915050565b6141ea828260405180602001604052806000815250614acb565b5050565b600080831415614201576000905061426e565b600082840290508284828161421257fe5b0414614269576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260218152602001806155216021913960400191505060405180910390fd5b809150505b92915050565b606060008214156142bc576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506143b6565b600082905060005b600082146142e6578080600101915050600a82816142de57fe5b0491506142c4565b60008167ffffffffffffffff811180156142ff57600080fd5b506040519080825280601f01601f1916602001820160405280156143325781602001600182028036833780820191505090505b50905060006001830390508593505b600084146143ae57600a848161435357fe5b0660300160f81b8282806001900393508151811061436d57fe5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a84816143a657fe5b049350614341565b819450505050505b919050565b81816127108110614434576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252600e8152602001807f4f7574206f6620746f6b656e496400000000000000000000000000000000000081525060200191505060405180910390fd5b8173ffffffffffffffffffffffffffffffffffffffff1661445482612092565b73ffffffffffffffffffffffffffffffffffffffff16146144c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260298152602001806155986029913960400191505060405180910390fd5b6040518060a001604052806000151581526020018481526020018573ffffffffffffffffffffffffffffffffffffffff16815260200160008152602001600073ffffffffffffffffffffffffffffffffffffffff168152506002600085815260200190815260200160002060008201518160000160006101000a81548160ff0219169083151502179055506020820151816001015560408201518160020160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506060820151816003015560808201518160040160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555090505050505050565b6000614608836000018360001b614b3c565b905092915050565b600081600001805490509050919050565b60006146428473ffffffffffffffffffffffffffffffffffffffff16614b5f565b61464f5760019050614832565b60006147b963150b7a0260e01b614664613a84565b888787604051602401808573ffffffffffffffffffffffffffffffffffffffff1681526020018473ffffffffffffffffffffffffffffffffffffffff16815260200183815260200180602001828103825283818151815260200191508051906020019080838360005b838110156146e85780820151818401526020810190506146cd565b50505050905090810190601f1680156147155780820380516001836020036101000a031916815260200191505b5095505050505050604051602081830303815290604052907bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19166020820180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff838183161783525050505060405180606001604052806032815260200161533b603291398773ffffffffffffffffffffffffffffffffffffffff16614b729092919063ffffffff16565b905060008180602001905160208110156147d257600080fd5b8101908080519060200190929190505050905063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614925050505b949350505050565b505050565b6000614851836000018360001b614b8a565b905092915050565b600061486b836000018360001b614c72565b905092915050565b600061489f846000018460001b8473ffffffffffffffffffffffffffffffffffffffff1660001b614ce2565b90509392505050565b600081836000018054905011614909576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806152f56022913960400191505060405180910390fd5b82600001828154811061491857fe5b9060005260206000200154905092915050565b6000808284600001805490501161498d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260228152602001806154ff6022913960400191505060405180910390fd5b600084600001848154811061499e57fe5b906000526020600020906002020190508060000154816001015492509250509250929050565b60008084600101600085815260200190815260200160002054905060008114158390614a8b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b83811015614a50578082015181840152602081019050614a35565b50505050905090810190601f168015614a7d5780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50846000016001820381548110614a9e57fe5b9060005260206000209060020201600101549150509392505050565b600081600001805490509050919050565b614ad58383614dbe565b614ae26000848484614621565b614b37576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252603281526020018061533b6032913960400191505060405180910390fd5b505050565b600080836001016000848152602001908152602001600020541415905092915050565b600080823b905060008111915050919050565b6060614b818484600085614fb2565b90509392505050565b60008083600101600084815260200190815260200160002054905060008114614c665760006001820390506000600186600001805490500390506000866000018281548110614bd557fe5b9060005260206000200154905080876000018481548110614bf257fe5b9060005260206000200181905550600183018760010160008381526020019081526020016000208190555086600001805480614c2a57fe5b60019003818190600052602060002001600090559055866001016000878152602001908152602001600020600090556001945050505050614c6c565b60009150505b92915050565b6000614c7e838361515a565b614cd7578260000182908060018154018082558091505060019003906000526020600020016000909190919091505582600001805490508360010160008481526020019081526020016000208190555060019050614cdc565b600090505b92915050565b6000808460010160008581526020019081526020016000205490506000811415614d8957846000016040518060400160405280868152602001858152509080600181540180825580915050600190039060005260206000209060020201600090919091909150600082015181600001556020820151816001015550508460000180549050856001016000868152602001908152602001600020819055506001915050614db7565b82856000016001830381548110614d9c57fe5b90600052602060002090600202016001018190555060009150505b9392505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415614e61576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260208152602001807f4552433732313a206d696e7420746f20746865207a65726f206164647265737381525060200191505060405180910390fd5b614e6a81613a67565b15614edd576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601c8152602001807f4552433732313a20746f6b656e20616c7265616479206d696e7465640000000081525060200191505060405180910390fd5b614ee96000838361483a565b614f3a81600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002061485990919063ffffffff16565b50614f51818360066148739092919063ffffffff16565b50808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b60608247101561500d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825260268152602001806153ec6026913960400191505060405180910390fd5b61501685614b5f565b615088576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040180806020018281038252601d8152602001807f416464726573733a2063616c6c20746f206e6f6e2d636f6e747261637400000081525060200191505060405180910390fd5b6000808673ffffffffffffffffffffffffffffffffffffffff1685876040518082805190602001908083835b602083106150d757805182526020820191506020810190506020830392506150b4565b6001836020036101000a03801982511681845116808217855250505050505090500191505060006040518083038185875af1925050503d8060008114615139576040519150601f19603f3d011682016040523d82523d6000602084013e61513e565b606091505b509150915061514e82828661517d565b92505050949350505050565b600080836001016000848152602001908152602001600020541415905092915050565b6060831561518d57829050615242565b6000835111156151a05782518084602001fd5b816040517f08c379a00000000000000000000000000000000000000000000000000000000081526004018080602001828103825283818151815260200191508051906020019080838360005b838110156152075780820151818401526020810190506151ec565b50505050905090810190601f1680156152345780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b9392505050565b828054600181600116156101000203166002900490600052602060002090601f01602090048101928261527f57600085556152c6565b82601f1061529857805160ff19168380011785556152c6565b828001600101855582156152c6579182015b828111156152c55782518255916020019190600101906152aa565b5b5090506152d391906152d7565b5090565b5b808211156152f05760008160009055506001016152d8565b509056fe456e756d657261626c655365743a20696e646578206f7574206f6620626f756e6473416d6f756e74206f662045746865722073656e74206973206e6f7420636f72726563742e4552433732313a207472616e7366657220746f206e6f6e20455243373231526563656976657220696d706c656d656e7465724f776e61626c653a206e6577206f776e657220697320746865207a65726f206164647265737345786365656473206d6178696d756d20737570706c792e20506c656173652074727920746f206d696e74206c657373204e6674732e4552433732313a207472616e7366657220746f20746865207a65726f2061646472657373416464726573733a20696e73756666696369656e742062616c616e636520666f722063616c6c4552433732313a206f70657261746f7220717565727920666f72206e6f6e6578697374656e7420746f6b656e45786365656473206d6178696d756d20726573657276652e20506c656173652074727920746f206d696e74206c657373204e6674732e4552433732313a20617070726f76652063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656420666f7220616c6c4552433732313a2062616c616e636520717565727920666f7220746865207a65726f20616464726573734552433732313a206f776e657220717565727920666f72206e6f6e6578697374656e7420746f6b656e456e756d657261626c654d61703a20696e646578206f7574206f6620626f756e6473536166654d6174683a206d756c7469706c69636174696f6e206f766572666c6f774552433732313a20617070726f76656420717565727920666f72206e6f6e6578697374656e7420746f6b656e596f752063616e6e6f74206d696e74206d6f7265207468616e203230204e66747320706572206f6e63654552433732313a207472616e73666572206f6620746f6b656e2074686174206973206e6f74206f776e4552433732314d657461646174613a2055524920717565727920666f72206e6f6e6578697374656e7420746f6b656e4552433732313a20617070726f76616c20746f2063757272656e74206f776e65724552433732313a207472616e736665722063616c6c6572206973206e6f74206f776e6572206e6f7220617070726f76656434653239356462306638376533343263373363396539626237346534306436653633613664326364356332376631626664633033623336343239613034613934a2646970667358221220906e3571327917a172b6188bee1b9da65b32998b5af26467b6b1d32554ae879c64736f6c63430007060033000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000000000000000000000000000000000000000000a415641582050554e4b5300000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000450554e4b00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002068747470733a2f2f6170692e6176617870756e6b732e636f6d2f70756e6b732f