[ { "inputs": [ { "internalType": "string", "name": "customBaseURI", "type": "string" }, { "internalType": "address", "name": "royaltyAddr", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "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": "_maxMintPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxMintPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_maxMintable", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_mintActive", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_price", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_price_Public", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_price_WL", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_royaltyAmount", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "_tokenIds", "outputs": [ { "internalType": "uint256", "name": "_value", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addressList", "type": "address[]" } ], "name": "addWhiteList", "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": [ { "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": "isMaxPerWallet", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "isWL", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "quantity", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "addressList", "type": "address[]" } ], "name": "removeWhiteList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint256", "name": "royaltyAmount", "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": "string", "name": "customBaseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bool", "name": "status", "type": "bool" } ], "name": "setMintActive", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "royaltyAddr", "type": "address" } ], "name": "setRoyaltyAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "setWLStatus", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "updatePublicMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "supply", "type": "uint256" } ], "name": "updatePublicSupply", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "price", "type": "uint256" } ], "name": "updateWLMintPrice", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whiteListed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "withdraw", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
608060405260006009556000600a5560c8600b556102bc600d556001600e556000600f60006101000a81548160ff0219169083151502179055506001600f60156101000a81548160ff021916908315150217905550600260105560006012556001601460006101000a81548160ff0219169083151502179055503480156200008657600080fd5b506040516200469e3803806200469e8339818101604052810190620000ac919062000557565b6040518060400160405280600981526020017f4d6574612043616e7300000000000000000000000000000000000000000000008152506040518060400160405280600481526020017f43414e5300000000000000000000000000000000000000000000000000000000815250816000908051906020019062000130929190620002a5565b50806001908051906020019062000149929190620002a5565b5050506200016c62000160620001d760201b60201c565b620001df60201b60201c565b81600c908051906020019062000184929190620002a5565b5080600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550601254600981905550505062000621565b600033905090565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620002b390620005ec565b90600052602060002090601f016020900481019282620002d7576000855562000323565b82601f10620002f257805160ff191683800117855562000323565b8280016001018555821562000323579182015b828111156200032257825182559160200191906001019062000305565b5b50905062000332919062000336565b5090565b5b808211156200035157600081600090555060010162000337565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620003be8262000373565b810181811067ffffffffffffffff82111715620003e057620003df62000384565b5b80604052505050565b6000620003f562000355565b9050620004038282620003b3565b919050565b600067ffffffffffffffff82111562000426576200042562000384565b5b620004318262000373565b9050602081019050919050565b60005b838110156200045e57808201518184015260208101905062000441565b838111156200046e576000848401525b50505050565b60006200048b620004858462000408565b620003e9565b905082815260208101848484011115620004aa57620004a96200036e565b5b620004b78482856200043e565b509392505050565b600082601f830112620004d757620004d662000369565b5b8151620004e984826020860162000474565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006200051f82620004f2565b9050919050565b620005318162000512565b81146200053d57600080fd5b50565b600081519050620005518162000526565b92915050565b600080604083850312156200057157620005706200035f565b5b600083015167ffffffffffffffff81111562000592576200059162000364565b5b620005a085828601620004bf565b9250506020620005b38582860162000540565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200060557607f821691505b6020821081036200061b576200061a620005bd565b5b50919050565b61406d80620006316000396000f3fe6080604052600436106102465760003560e01c80636904adb711610139578063aa46a400116100b6578063e65192951161007a578063e651929514610836578063e80a355814610861578063e985e9c51461088c578063ee1cc944146108c9578063f2fde38b146108f2578063fa0fca841461091b57610246565b8063aa46a4001461074f578063b88d4fde1461077a578063c87b56dd146107a3578063de314a59146107e0578063deb333421461080b57610246565b806395d89b41116100fd57806395d89b411461068b5780639ef4b9aa146106b65780639f585f9e146106e1578063a0712d681461070a578063a22cb4651461072657610246565b80636904adb7146105b857806369b53824146105e157806370a082311461060c578063715018a6146106495780638da5cb5b1461066057610246565b80632a55205a116101c757806342842e0e1161018b57806342842e0e146104e957806355f804b31461051257806358a4daa71461053b5780635e1045ec146105525780636352211e1461057b57610246565b80632a55205a146104155780632ebca05e14610453578063397457911461047e5780633af20757146104a75780633ccfd60b146104d257610246565b8063095ea7b31161020e578063095ea7b3146103425780630b82f4731461036b57806318160ddd14610396578063235b6ea1146103c157806323b872dd146103ec57610246565b806301e49e311461024b57806301ffc9a71461027457806306d254da146102b157806306fdde03146102da578063081812fc14610305575b600080fd5b34801561025757600080fd5b50610272600480360381019061026d919061280a565b610958565b005b34801561028057600080fd5b5061029b6004803603810190610296919061288f565b61096a565b6040516102a891906128d7565b60405180910390f35b3480156102bd57600080fd5b506102d860048036038101906102d39190612950565b6109e4565b005b3480156102e657600080fd5b506102ef610a30565b6040516102fc9190612a16565b60405180910390f35b34801561031157600080fd5b5061032c6004803603810190610327919061280a565b610ac2565b6040516103399190612a47565b60405180910390f35b34801561034e57600080fd5b5061036960048036038101906103649190612a62565b610b08565b005b34801561037757600080fd5b50610380610c1f565b60405161038d9190612ab1565b60405180910390f35b3480156103a257600080fd5b506103ab610c25565b6040516103b89190612ab1565b60405180910390f35b3480156103cd57600080fd5b506103d6610c36565b6040516103e39190612ab1565b60405180910390f35b3480156103f857600080fd5b50610413600480360381019061040e9190612acc565b610c3c565b005b34801561042157600080fd5b5061043c60048036038101906104379190612b1f565b610c9c565b60405161044a929190612b5f565b60405180910390f35b34801561045f57600080fd5b50610468610ce8565b60405161047591906128d7565b60405180910390f35b34801561048a57600080fd5b506104a560048036038101906104a09190612cd0565b610cfb565b005b3480156104b357600080fd5b506104bc610ddc565b6040516104c99190612ab1565b60405180910390f35b3480156104de57600080fd5b506104e7610de2565b005b3480156104f557600080fd5b50610510600480360381019061050b9190612acc565b610e7d565b005b34801561051e57600080fd5b5061053960048036038101906105349190612dce565b610e9d565b005b34801561054757600080fd5b50610550610ebf565b005b34801561055e57600080fd5b5061057960048036038101906105749190612cd0565b610ef3565b005b34801561058757600080fd5b506105a2600480360381019061059d919061280a565b61105d565b6040516105af9190612a47565b60405180910390f35b3480156105c457600080fd5b506105df60048036038101906105da919061280a565b61110e565b005b3480156105ed57600080fd5b506105f6611120565b6040516106039190612ab1565b60405180910390f35b34801561061857600080fd5b50610633600480360381019061062e9190612950565b611126565b6040516106409190612ab1565b60405180910390f35b34801561065557600080fd5b5061065e6111dd565b005b34801561066c57600080fd5b506106756111f1565b6040516106829190612a47565b60405180910390f35b34801561069757600080fd5b506106a061121b565b6040516106ad9190612a16565b60405180910390f35b3480156106c257600080fd5b506106cb6112ad565b6040516106d891906128d7565b60405180910390f35b3480156106ed57600080fd5b506107086004803603810190610703919061280a565b6112c0565b005b610724600480360381019061071f919061280a565b6112d2565b005b34801561073257600080fd5b5061074d60048036038101906107489190612e43565b61156d565b005b34801561075b57600080fd5b50610764611583565b6040516107719190612ab1565b60405180910390f35b34801561078657600080fd5b506107a1600480360381019061079c9190612f24565b61158f565b005b3480156107af57600080fd5b506107ca60048036038101906107c5919061280a565b6115f1565b6040516107d79190612a16565b60405180910390f35b3480156107ec57600080fd5b506107f56116c3565b6040516108029190612ab1565b60405180910390f35b34801561081757600080fd5b506108206116c9565b60405161082d91906128d7565b60405180910390f35b34801561084257600080fd5b5061084b6116dc565b6040516108589190612ab1565b60405180910390f35b34801561086d57600080fd5b506108766116e2565b6040516108839190612ab1565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612fa7565b6116e8565b6040516108c091906128d7565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb9190612fe7565b61177c565b005b3480156108fe57600080fd5b5061091960048036038101906109149190612950565b6117a1565b005b34801561092757600080fd5b50610942600480360381019061093d9190612950565b611824565b60405161094f91906128d7565b60405180910390f35b610960611844565b80600a8190555050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109dd57506109dc826118c2565b5b9050919050565b6109ec611844565b80600f60016101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b606060008054610a3f90613043565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6b90613043565b8015610ab85780601f10610a8d57610100808354040283529160200191610ab8565b820191906000526020600020905b815481529060010190602001808311610a9b57829003601f168201915b5050505050905090565b6000610acd826119a4565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610b138261105d565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603610b83576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b7a906130e6565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610ba26119ef565b73ffffffffffffffffffffffffffffffffffffffff161480610bd15750610bd081610bcb6119ef565b6116e8565b5b610c10576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c0790613178565b60405180910390fd5b610c1a83836119f7565b505050565b60105481565b6000610c316008611ab0565b905090565b60095481565b610c4d610c476119ef565b82611abe565b610c8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c839061320a565b60405180910390fd5b610c97838383611b53565b505050565b600080600f60019054906101000a900473ffffffffffffffffffffffffffffffffffffffff16612710600d5485610cd39190613259565b610cdd91906132e2565b915091509250929050565b600f60159054906101000a900460ff1681565b610d03611844565b6000815111610d47576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d3e9061335f565b60405180910390fd5b60005b8151811015610dd857600060136000848481518110610d6c57610d6b61337f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080610dd0906133ae565b915050610d4a565b5050565b600a5481565b610dea611844565b60004711610e2d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e2490613442565b60405180910390fd5b610e356119ef565b73ffffffffffffffffffffffffffffffffffffffff166108fc479081150290604051600060405180830381858888f19350505050158015610e7a573d6000803e3d6000fd5b50565b610e988383836040518060200160405280600081525061158f565b505050565b610ea5611844565b80600c9080519060200190610ebb92919061271d565b5050565b610ec7611844565b601460009054906101000a900460ff1615601460006101000a81548160ff021916908315150217905550565b610efb611844565b6000815111610f3f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f369061335f565b60405180910390fd5b60005b815181101561105957600073ffffffffffffffffffffffffffffffffffffffff16828281518110610f7657610f7561337f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1603610fd4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610fcb906134ae565b60405180910390fd5b600160136000848481518110610fed57610fec61337f565b5b602002602001015173ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508080611051906133ae565b915050610f42565b5050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611105576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110fc9061351a565b60405180910390fd5b80915050919050565b611116611844565b80600b8190555050565b600d5481565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611196576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161118d906135ac565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6111e5611844565b6111ef6000611db9565b565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b60606001805461122a90613043565b80601f016020809104026020016040519081016040528092919081815260200182805461125690613043565b80156112a35780601f10611278576101008083540402835291602001916112a3565b820191906000526020600020905b81548152906001019060200180831161128657829003601f168201915b5050505050905090565b600f60009054906101000a900460ff1681565b6112c8611844565b8060128190555050565b600f60009054906101000a900460ff16611321576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161131890613618565b60405180910390fd5b600e5481111580156113335750600081115b611372576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161136990613684565b60405180910390fd5b600f60159054906101000a900460ff16156114625780601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546113d691906136a4565b92505081905550601054601160003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020541115611461576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161145890613746565b60405180910390fd5b5b600a54600981905550601460009054906101000a900460ff161561151d5760011515601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16151514611513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150a906137d8565b60405180910390fd5b6012546009819055505b6009543414611561576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115589061386a565b60405180910390fd5b61156a33611e7f565b50565b61157f6115786119ef565b8383611eea565b5050565b60088060000154905081565b6115a061159a6119ef565b83611abe565b6115df576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115d69061320a565b60405180910390fd5b6115eb84848484612056565b50505050565b60606115fc826120b2565b61163b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611632906138fc565b60405180910390fd5b600061164561211e565b9050600081511161168b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116829061398e565b60405180910390fd5b6000611696846121b0565b905081816040516020016116ab929190613a36565b60405160208183030381529060405292505050919050565b600e5481565b601460009054906101000a900460ff1681565b60125481565b600b5481565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611784611844565b80600f60006101000a81548160ff02191690831515021790555050565b6117a9611844565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611818576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161180f90613ad7565b60405180910390fd5b61182181611db9565b50565b60136020528060005260406000206000915054906101000a900460ff1681565b61184c6119ef565b73ffffffffffffffffffffffffffffffffffffffff1661186a6111f1565b73ffffffffffffffffffffffffffffffffffffffff16146118c0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118b790613b43565b60405180910390fd5b565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061198d57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061199d575061199c82612310565b5b9050919050565b6119ad816120b2565b6119ec576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119e39061351a565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16611a6a8361105d565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b600080611aca8361105d565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611b0c5750611b0b81856116e8565b5b80611b4a57508373ffffffffffffffffffffffffffffffffffffffff16611b3284610ac2565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff16611b738261105d565b73ffffffffffffffffffffffffffffffffffffffff1614611bc9576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bc090613bd5565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c38576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c2f90613c67565b60405180910390fd5b611c4383838361237a565b611c4e6000826119f7565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611c9e9190613c87565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611cf591906136a4565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611db483838361237f565b505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611e896008612384565b6000611e956008611ab0565b9050600b54811115611edc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ed390613d2d565b60405180910390fd5b611ee6828261239a565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611f58576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f4f90613d99565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161204991906128d7565b60405180910390a3505050565b612061848484611b53565b61206d84848484612573565b6120ac576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120a390613e2b565b60405180910390fd5b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6060600c805461212d90613043565b80601f016020809104026020016040519081016040528092919081815260200182805461215990613043565b80156121a65780601f1061217b576101008083540402835291602001916121a6565b820191906000526020600020905b81548152906001019060200180831161218957829003601f168201915b5050505050905090565b6060600082036121f7576040518060400160405280600181526020017f3000000000000000000000000000000000000000000000000000000000000000815250905061230b565b600082905060005b60008214612229578080612212906133ae565b915050600a8261222291906132e2565b91506121ff565b60008167ffffffffffffffff81111561224557612244612b8d565b5b6040519080825280601f01601f1916602001820160405280156122775781602001600182028036833780820191505090505b5090505b60008514612304576001826122909190613c87565b9150600a8561229f9190613e4b565b60306122ab91906136a4565b60f81b8183815181106122c1576122c061337f565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856122fd91906132e2565b945061227b565b8093505050505b919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b505050565b6001816000016000828254019250508190555050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603612409576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161240090613ec8565b60405180910390fd5b612412816120b2565b15612452576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161244990613f34565b60405180910390fd5b61245e6000838361237a565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546124ae91906136a4565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461256f6000838361237f565b5050565b60006125948473ffffffffffffffffffffffffffffffffffffffff166126fa565b156126ed578373ffffffffffffffffffffffffffffffffffffffff1663150b7a026125bd6119ef565b8786866040518563ffffffff1660e01b81526004016125df9493929190613fa9565b6020604051808303816000875af192505050801561261b57506040513d601f19601f82011682018060405250810190612618919061400a565b60015b61269d573d806000811461264b576040519150601f19603f3d011682016040523d82523d6000602084013e612650565b606091505b506000815103612695576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161268c90613e2b565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506126f2565b600190505b949350505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b82805461272990613043565b90600052602060002090601f01602090048101928261274b5760008555612792565b82601f1061276457805160ff1916838001178555612792565b82800160010185558215612792579182015b82811115612791578251825591602001919060010190612776565b5b50905061279f91906127a3565b5090565b5b808211156127bc5760008160009055506001016127a4565b5090565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b6127e7816127d4565b81146127f257600080fd5b50565b600081359050612804816127de565b92915050565b6000602082840312156128205761281f6127ca565b5b600061282e848285016127f5565b91505092915050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61286c81612837565b811461287757600080fd5b50565b60008135905061288981612863565b92915050565b6000602082840312156128a5576128a46127ca565b5b60006128b38482850161287a565b91505092915050565b60008115159050919050565b6128d1816128bc565b82525050565b60006020820190506128ec60008301846128c8565b92915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061291d826128f2565b9050919050565b61292d81612912565b811461293857600080fd5b50565b60008135905061294a81612924565b92915050565b600060208284031215612966576129656127ca565b5b60006129748482850161293b565b91505092915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156129b757808201518184015260208101905061299c565b838111156129c6576000848401525b50505050565b6000601f19601f8301169050919050565b60006129e88261297d565b6129f28185612988565b9350612a02818560208601612999565b612a0b816129cc565b840191505092915050565b60006020820190508181036000830152612a3081846129dd565b905092915050565b612a4181612912565b82525050565b6000602082019050612a5c6000830184612a38565b92915050565b60008060408385031215612a7957612a786127ca565b5b6000612a878582860161293b565b9250506020612a98858286016127f5565b9150509250929050565b612aab816127d4565b82525050565b6000602082019050612ac66000830184612aa2565b92915050565b600080600060608486031215612ae557612ae46127ca565b5b6000612af38682870161293b565b9350506020612b048682870161293b565b9250506040612b15868287016127f5565b9150509250925092565b60008060408385031215612b3657612b356127ca565b5b6000612b44858286016127f5565b9250506020612b55858286016127f5565b9150509250929050565b6000604082019050612b746000830185612a38565b612b816020830184612aa2565b9392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612bc5826129cc565b810181811067ffffffffffffffff82111715612be457612be3612b8d565b5b80604052505050565b6000612bf76127c0565b9050612c038282612bbc565b919050565b600067ffffffffffffffff821115612c2357612c22612b8d565b5b602082029050602081019050919050565b600080fd5b6000612c4c612c4784612c08565b612bed565b90508083825260208201905060208402830185811115612c6f57612c6e612c34565b5b835b81811015612c985780612c84888261293b565b845260208401935050602081019050612c71565b5050509392505050565b600082601f830112612cb757612cb6612b88565b5b8135612cc7848260208601612c39565b91505092915050565b600060208284031215612ce657612ce56127ca565b5b600082013567ffffffffffffffff811115612d0457612d036127cf565b5b612d1084828501612ca2565b91505092915050565b600080fd5b600067ffffffffffffffff821115612d3957612d38612b8d565b5b612d42826129cc565b9050602081019050919050565b82818337600083830152505050565b6000612d71612d6c84612d1e565b612bed565b905082815260208101848484011115612d8d57612d8c612d19565b5b612d98848285612d4f565b509392505050565b600082601f830112612db557612db4612b88565b5b8135612dc5848260208601612d5e565b91505092915050565b600060208284031215612de457612de36127ca565b5b600082013567ffffffffffffffff811115612e0257612e016127cf565b5b612e0e84828501612da0565b91505092915050565b612e20816128bc565b8114612e2b57600080fd5b50565b600081359050612e3d81612e17565b92915050565b60008060408385031215612e5a57612e596127ca565b5b6000612e688582860161293b565b9250506020612e7985828601612e2e565b9150509250929050565b600067ffffffffffffffff821115612e9e57612e9d612b8d565b5b612ea7826129cc565b9050602081019050919050565b6000612ec7612ec284612e83565b612bed565b905082815260208101848484011115612ee357612ee2612d19565b5b612eee848285612d4f565b509392505050565b600082601f830112612f0b57612f0a612b88565b5b8135612f1b848260208601612eb4565b91505092915050565b60008060008060808587031215612f3e57612f3d6127ca565b5b6000612f4c8782880161293b565b9450506020612f5d8782880161293b565b9350506040612f6e878288016127f5565b925050606085013567ffffffffffffffff811115612f8f57612f8e6127cf565b5b612f9b87828801612ef6565b91505092959194509250565b60008060408385031215612fbe57612fbd6127ca565b5b6000612fcc8582860161293b565b9250506020612fdd8582860161293b565b9150509250929050565b600060208284031215612ffd57612ffc6127ca565b5b600061300b84828501612e2e565b91505092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061305b57607f821691505b60208210810361306e5761306d613014565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b60006130d0602183612988565b91506130db82613074565b604082019050919050565b600060208201905081810360008301526130ff816130c3565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b6000613162603e83612988565b915061316d82613106565b604082019050919050565b6000602082019050818103600083015261319181613155565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b60006131f4602e83612988565b91506131ff82613198565b604082019050919050565b60006020820190508181036000830152613223816131e7565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613264826127d4565b915061326f836127d4565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff04831182151516156132a8576132a761322a565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b60006132ed826127d4565b91506132f8836127d4565b925082613308576133076132b3565b5b828204905092915050565b7f4572726f723a206c69737420697320656d707479000000000000000000000000600082015250565b6000613349601483612988565b915061335482613313565b602082019050919050565b600060208201905081810360008301526133788161333c565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b60006133b9826127d4565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82036133eb576133ea61322a565b5b600182019050919050565b7f4e6f7468696e6720746f20776974686472617700000000000000000000000000600082015250565b600061342c601383612988565b9150613437826133f6565b602082019050919050565b6000602082019050818103600083015261345b8161341f565b9050919050565b7f416464726573732063616e6e6f7420626520302e000000000000000000000000600082015250565b6000613498601483612988565b91506134a382613462565b602082019050919050565b600060208201905081810360008301526134c78161348b565b9050919050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b6000613504601883612988565b915061350f826134ce565b602082019050919050565b60006020820190508181036000830152613533816134f7565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613596602983612988565b91506135a18261353a565b604082019050919050565b600060208201905081810360008301526135c581613589565b9050919050565b7f4d696e74696e67206973206e6f74206163746976652e00000000000000000000600082015250565b6000613602601683612988565b915061360d826135cc565b602082019050919050565b60006020820190508181036000830152613631816135f5565b9050919050565b7f43616e6e6f74206d696e742074686174206d616e79206174206f6e63652e0000600082015250565b600061366e601e83612988565b915061367982613638565b602082019050919050565b6000602082019050818103600083015261369d81613661565b9050919050565b60006136af826127d4565b91506136ba836127d4565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156136ef576136ee61322a565b5b828201905092915050565b7f43616e6e6f74206d696e74206d6f7265206f6e20796f75722077616c6c65742e600082015250565b6000613730602083612988565b915061373b826136fa565b602082019050919050565b6000602082019050818103600083015261375f81613723565b9050919050565b7f596f75722077616c6c6574206973206e6f742061207768697465206c6973746560008201527f642e000000000000000000000000000000000000000000000000000000000000602082015250565b60006137c2602283612988565b91506137cd82613766565b604082019050919050565b600060208201905081810360008301526137f1816137b5565b9050919050565b7f4e6f7420656e6f75676820415641582073656e7420666f72206d696e74206f7260008201527f206e6f7420657175616c20746865207072696365000000000000000000000000602082015250565b6000613854603483612988565b915061385f826137f8565b604082019050919050565b6000602082019050818103600083015261388381613847565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b60006138e6602f83612988565b91506138f18261388a565b604082019050919050565b60006020820190508181036000830152613915816138d9565b9050919050565b7f4552433732314d657461646174613a204261736520555249206973206e6f742060008201527f7365740000000000000000000000000000000000000000000000000000000000602082015250565b6000613978602383612988565b91506139838261391c565b604082019050919050565b600060208201905081810360008301526139a78161396b565b9050919050565b600081905092915050565b60006139c48261297d565b6139ce81856139ae565b93506139de818560208601612999565b80840191505092915050565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000600082015250565b6000613a206005836139ae565b9150613a2b826139ea565b600582019050919050565b6000613a4282856139b9565b9150613a4e82846139b9565b9150613a5982613a13565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613ac1602683612988565b9150613acc82613a65565b604082019050919050565b60006020820190508181036000830152613af081613ab4565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613b2d602083612988565b9150613b3882613af7565b602082019050919050565b60006020820190508181036000830152613b5c81613b20565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613bbf602583612988565b9150613bca82613b63565b604082019050919050565b60006020820190508181036000830152613bee81613bb2565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613c51602483612988565b9150613c5c82613bf5565b604082019050919050565b60006020820190508181036000830152613c8081613c44565b9050919050565b6000613c92826127d4565b9150613c9d836127d4565b925082821015613cb057613caf61322a565b5b828203905092915050565b7f4d696e742069732066696e6973686564206f72206d696e7420616d6f756e742060008201527f6973206f76657220746865206c696d6974000000000000000000000000000000602082015250565b6000613d17603183612988565b9150613d2282613cbb565b604082019050919050565b60006020820190508181036000830152613d4681613d0a565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613d83601983612988565b9150613d8e82613d4d565b602082019050919050565b60006020820190508181036000830152613db281613d76565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613e15603283612988565b9150613e2082613db9565b604082019050919050565b60006020820190508181036000830152613e4481613e08565b9050919050565b6000613e56826127d4565b9150613e61836127d4565b925082613e7157613e706132b3565b5b828206905092915050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b6000613eb2602083612988565b9150613ebd82613e7c565b602082019050919050565b60006020820190508181036000830152613ee181613ea5565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000613f1e601c83612988565b9150613f2982613ee8565b602082019050919050565b60006020820190508181036000830152613f4d81613f11565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000613f7b82613f54565b613f858185613f5f565b9350613f95818560208601612999565b613f9e816129cc565b840191505092915050565b6000608082019050613fbe6000830187612a38565b613fcb6020830186612a38565b613fd86040830185612aa2565b8181036060830152613fea8184613f70565b905095945050505050565b60008151905061400481612863565b92915050565b6000602082840312156140205761401f6127ca565b5b600061402e84828501613ff5565b9150509291505056fea2646970667358221220f720fd1130d9270bb9ad84e018d54e380e6c685e8a9f5f3aa997abbe3fbe21c464736f6c634300080e00330000000000000000000000000000000000000000000000000000000000000040000000000000000000000000d8936e602e38dfee5d6466865068b94b1943debf000000000000000000000000000000000000000000000000000000000000006668747470733a2f2f62616679626569626f717034707a656c343734656d6935696d6d343572757272616a62376135717671793471687a636d6b786162666879737466752e697066732e647765622e6c696e6b2f6d6574615f63616e735f6d657461646174612f0000000000000000000000000000000000000000000000000000