[ { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" }, { "internalType": "string", "name": "_baseURI", "type": "string" }, { "internalType": "string", "name": "_unrevealURI", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "ApproveToCaller", "type": "error" }, { "inputs": [], "name": "BalanceQueryForZeroAddress", "type": "error" }, { "inputs": [], "name": "MintERC2309QuantityExceedsLimit", "type": "error" }, { "inputs": [], "name": "MintToZeroAddress", "type": "error" }, { "inputs": [], "name": "MintZeroQuantity", "type": "error" }, { "inputs": [], "name": "OwnerQueryForNonexistentToken", "type": "error" }, { "inputs": [], "name": "OwnershipNotInitializedForExtraData", "type": "error" }, { "inputs": [], "name": "TransferCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "TransferFromIncorrectOwner", "type": "error" }, { "inputs": [], "name": "TransferToNonERC721ReceiverImplementer", "type": "error" }, { "inputs": [], "name": "TransferToZeroAddress", "type": "error" }, { "inputs": [], "name": "URIQueryForNonexistentToken", "type": "error" }, { "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": "uint256", "name": "fromTokenId", "type": "uint256" }, { "indexed": false, "internalType": "uint256", "name": "toTokenId", "type": "uint256" }, { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" } ], "name": "ConsecutiveTransfer", "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_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address[]", "name": "_addresses", "type": "address[]" } ], "name": "addAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "addressMinted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "allowList", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseExtension", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipAllowList", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "flipPaused", "outputs": [], "stateMutability": "nonpayable", "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": "maxPerTx", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "maxPerWallet", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "onlyAllowList", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "paused", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "reveal", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealed", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "royalty", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "uint256", "name": "value", "type": "uint256" } ], "name": "royaltyInfo", "outputs": [ { "internalType": "address", "name": "", "type": "address" }, { "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": "bytes4", "name": "interfaceID", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unrevealedURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newExtension", "type": "string" } ], "name": "updateBaseExtension", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "updateBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateCost", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_newAmount", "type": "uint256" } ], "name": "updateRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_newURI", "type": "string" } ], "name": "updateUnrevealURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600a908051906020019062000051929190620003c5565b5060405180602001604052806000815250600b908051906020019062000079929190620003c5565b5060405180602001604052806000815250600c9080519060200190620000a1929190620003c5565b506001600d60006101000a81548160ff0219169083151502179055506001600d60016101000a81548160ff0219169083151502179055506000600d60026101000a81548160ff0219169083151502179055506000600e556103e8600f55600160105560016011553480156200011557600080fd5b506040516200418c3803806200418c83398181016040528101906200013b919062000612565b8383816002908051906020019062000155929190620003c5565b5080600390805190602001906200016e929190620003c5565b506200017f620001db60201b60201c565b6000819055505050620001a76200019b620001e460201b60201c565b620001ec60201b60201c565b6001600981905550620001c082620002b260201b60201c565b620001d181620002de60201b60201c565b50505050620007e8565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620002c26200030a60201b60201c565b80600b9080519060200190620002da929190620003c5565b5050565b620002ee6200030a60201b60201c565b80600c908051906020019062000306929190620003c5565b5050565b6200031a620001e460201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620003406200039b60201b60201c565b73ffffffffffffffffffffffffffffffffffffffff161462000399576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620003909062000761565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b828054620003d390620007b2565b90600052602060002090601f016020900481019282620003f7576000855562000443565b82601f106200041257805160ff191683800117855562000443565b8280016001018555821562000443579182015b828111156200044257825182559160200191906001019062000425565b5b50905062000452919062000456565b5090565b5b808211156200047157600081600090555060010162000457565b5090565b6000604051905090565b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b620004de8262000493565b810181811067ffffffffffffffff821117156200050057620004ff620004a4565b5b80604052505050565b60006200051562000475565b9050620005238282620004d3565b919050565b600067ffffffffffffffff821115620005465762000545620004a4565b5b620005518262000493565b9050602081019050919050565b60005b838110156200057e57808201518184015260208101905062000561565b838111156200058e576000848401525b50505050565b6000620005ab620005a58462000528565b62000509565b905082815260208101848484011115620005ca57620005c96200048e565b5b620005d78482856200055e565b509392505050565b600082601f830112620005f757620005f662000489565b5b81516200060984826020860162000594565b91505092915050565b600080600080608085870312156200062f576200062e6200047f565b5b600085015167ffffffffffffffff81111562000650576200064f62000484565b5b6200065e87828801620005df565b945050602085015167ffffffffffffffff81111562000682576200068162000484565b5b6200069087828801620005df565b935050604085015167ffffffffffffffff811115620006b457620006b362000484565b5b620006c287828801620005df565b925050606085015167ffffffffffffffff811115620006e657620006e562000484565b5b620006f487828801620005df565b91505092959194509250565b600082825260208201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006200074960208362000700565b9150620007568262000711565b602082019050919050565b600060208201905081810360008301526200077c816200073a565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680620007cb57607f821691505b60208210811415620007e257620007e162000783565b5b50919050565b61399480620007f86000396000f3fe6080604052600436106102465760003560e01c8063518302271161013957806395d89b41116100b6578063c66828621161007a578063c668286214610824578063c87b56dd1461084f578063e985e9c51461088c578063f2fde38b146108c9578063f968adbe146108f2578063fa30297e1461091d57610246565b806395d89b4114610774578063a0712d681461079f578063a22cb465146107bb578063a475b5dd146107e4578063b88d4fde146107fb57610246565b806370a08231116100fd57806370a08231146106a3578063715018a6146106e05780638da5cb5b146106f75780638fffd8b514610722578063931688cb1461074b57610246565b806351830227146105ba5780635c975abb146105e55780636352211e146106105780636c0360eb1461064d5780637035bf181461067857610246565b8063255323ff116101c757806332cb6b0c1161018b57806332cb6b0c146104fb578063333171bb1461052657806342842e0e1461053d5780634467477614610566578063453c23101461058f57610246565b8063255323ff146104035780632848aeaf1461042c57806329ee566c146104695780632a55205a146104945780633232c10b146104d257610246565b806318160ddd1161020e57806318160ddd1461034457806320843e871461036f57806323b872dd1461038657806323c5a088146103af578063252e3ab9146103d857610246565b806301ffc9a71461024b57806306fdde0314610288578063081812fc146102b3578063095ea7b3146102f057806313faede614610319575b600080fd5b34801561025757600080fd5b50610272600480360381019061026d9190612839565b61095a565b60405161027f9190612881565b60405180910390f35b34801561029457600080fd5b5061029d6109d4565b6040516102aa9190612935565b60405180910390f35b3480156102bf57600080fd5b506102da60048036038101906102d5919061298d565b610a66565b6040516102e791906129fb565b60405180910390f35b3480156102fc57600080fd5b5061031760048036038101906103129190612a42565b610ae5565b005b34801561032557600080fd5b5061032e610c29565b60405161033b9190612a91565b60405180910390f35b34801561035057600080fd5b50610359610c2f565b6040516103669190612a91565b60405180910390f35b34801561037b57600080fd5b50610384610c46565b005b34801561039257600080fd5b506103ad60048036038101906103a89190612aac565b610c7a565b005b3480156103bb57600080fd5b506103d660048036038101906103d1919061298d565b610f9f565b005b3480156103e457600080fd5b506103ed610fb1565b6040516103fa9190612881565b60405180910390f35b34801561040f57600080fd5b5061042a60048036038101906104259190612b64565b610fc4565b005b34801561043857600080fd5b50610453600480360381019061044e9190612bb1565b611072565b6040516104609190612bfa565b60405180910390f35b34801561047557600080fd5b5061047e611092565b60405161048b9190612a91565b60405180910390f35b3480156104a057600080fd5b506104bb60048036038101906104b69190612c15565b611098565b6040516104c9929190612c55565b60405180910390f35b3480156104de57600080fd5b506104f960048036038101906104f49190612dae565b6110c9565b005b34801561050757600080fd5b506105106110eb565b60405161051d9190612a91565b60405180910390f35b34801561053257600080fd5b5061053b6110f1565b005b34801561054957600080fd5b50610564600480360381019061055f9190612aac565b611125565b005b34801561057257600080fd5b5061058d60048036038101906105889190612dae565b611145565b005b34801561059b57600080fd5b506105a4611167565b6040516105b19190612a91565b60405180910390f35b3480156105c657600080fd5b506105cf61116d565b6040516105dc9190612881565b60405180910390f35b3480156105f157600080fd5b506105fa611180565b6040516106079190612881565b60405180910390f35b34801561061c57600080fd5b506106376004803603810190610632919061298d565b611193565b60405161064491906129fb565b60405180910390f35b34801561065957600080fd5b506106626111a5565b60405161066f9190612935565b60405180910390f35b34801561068457600080fd5b5061068d611233565b60405161069a9190612935565b60405180910390f35b3480156106af57600080fd5b506106ca60048036038101906106c59190612bb1565b6112c1565b6040516106d79190612a91565b60405180910390f35b3480156106ec57600080fd5b506106f561137a565b005b34801561070357600080fd5b5061070c61138e565b60405161071991906129fb565b60405180910390f35b34801561072e57600080fd5b506107496004803603810190610744919061298d565b6113b8565b005b34801561075757600080fd5b50610772600480360381019061076d9190612dae565b6113ca565b005b34801561078057600080fd5b506107896113ec565b6040516107969190612935565b60405180910390f35b6107b960048036038101906107b4919061298d565b61147e565b005b3480156107c757600080fd5b506107e260048036038101906107dd9190612e23565b6118db565b005b3480156107f057600080fd5b506107f9611a53565b005b34801561080757600080fd5b50610822600480360381019061081d9190612f04565b611a78565b005b34801561083057600080fd5b50610839611aeb565b6040516108469190612935565b60405180910390f35b34801561085b57600080fd5b506108766004803603810190610871919061298d565b611b79565b6040516108839190612935565b60405180910390f35b34801561089857600080fd5b506108b360048036038101906108ae9190612f87565b611ccb565b6040516108c09190612881565b60405180910390f35b3480156108d557600080fd5b506108f060048036038101906108eb9190612bb1565b611d5f565b005b3480156108fe57600080fd5b50610907611de3565b6040516109149190612a91565b60405180910390f35b34801561092957600080fd5b50610944600480360381019061093f9190612bb1565b611de9565b6040516109519190612a91565b60405180910390f35b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806109cd57506109cc82611e01565b5b9050919050565b6060600280546109e390612ff6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a0f90612ff6565b8015610a5c5780601f10610a3157610100808354040283529160200191610a5c565b820191906000526020600020905b815481529060010190602001808311610a3f57829003601f168201915b5050505050905090565b6000610a7182611e93565b610aa7576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000610af082611193565b90508073ffffffffffffffffffffffffffffffffffffffff16610b11611ef2565b73ffffffffffffffffffffffffffffffffffffffff1614610b7457610b3d81610b38611ef2565b611ccb565b610b73576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b600e5481565b6000610c39611efa565b6001546000540303905090565b610c4e611f03565b600d60019054906101000a900460ff1615600d60016101000a81548160ff021916908315150217905550565b6000610c8582611f81565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614610cec576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600080610cf88461204f565b91509150610d0e8187610d09611ef2565b612076565b610d5a57610d2386610d1e611ef2565b611ccb565b610d59576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff161415610dc1576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610dce86868660016120ba565b8015610dd957600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610ea785610e838888876120c0565b7c0200000000000000000000000000000000000000000000000000000000176120e8565b600460008681526020019081526020016000208190555060007c020000000000000000000000000000000000000000000000000000000084161415610f2f576000600185019050600060046000838152602001908152602001600020541415610f2d576000548114610f2c578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610f978686866001612113565b505050505050565b610fa7611f03565b80600e8190555050565b600d60019054906101000a900460ff1681565b610fcc611f03565b60005b8282905081101561106d57600160126000858585818110610ff357610ff2613028565b5b90506020020160208101906110089190612bb1565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff021916908360ff160217905550808061106590613086565b915050610fcf565b505050565b60126020528060005260406000206000915054906101000a900460ff1681565b600f5481565b6000806110a361138e565b612710600f54856110b491906130cf565b6110be9190613158565b915091509250929050565b6110d1611f03565b80600a90805190602001906110e792919061272a565b5050565b61029a81565b6110f9611f03565b600d60009054906101000a900460ff1615600d60006101000a81548160ff021916908315150217905550565b61114083838360405180602001604052806000815250611a78565b505050565b61114d611f03565b80600c908051906020019061116392919061272a565b5050565b60115481565b600d60029054906101000a900460ff1681565b600d60009054906101000a900460ff1681565b600061119e82611f81565b9050919050565b600b80546111b290612ff6565b80601f01602080910402602001604051908101604052809291908181526020018280546111de90612ff6565b801561122b5780601f106112005761010080835404028352916020019161122b565b820191906000526020600020905b81548152906001019060200180831161120e57829003601f168201915b505050505081565b600c805461124090612ff6565b80601f016020809104026020016040519081016040528092919081815260200182805461126c90612ff6565b80156112b95780601f1061128e576101008083540402835291602001916112b9565b820191906000526020600020905b81548152906001019060200180831161129c57829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611329576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b611382611f03565b61138c6000612119565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6113c0611f03565b80600f8190555050565b6113d2611f03565b80600b90805190602001906113e892919061272a565b5050565b6060600380546113fb90612ff6565b80601f016020809104026020016040519081016040528092919081815260200182805461142790612ff6565b80156114745780601f1061144957610100808354040283529160200191611474565b820191906000526020600020905b81548152906001019060200180831161145757829003601f168201915b5050505050905090565b600260095414156114c4576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114bb906131d5565b60405180910390fd5b60026009819055506000811161150f576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161150690613241565b60405180910390fd5b600d60009054906101000a900460ff161561155f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611556906132ad565b60405180910390fd5b6010548111156115a4576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161159b90613319565b60405180910390fd5b61029a816115b0610c2f565b6115ba9190613339565b11156115fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115f2906133db565b60405180910390fd5b61160361138e565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146117bc57600d60019054906101000a900460ff16156116dd576001601260003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1660ff16146116dc576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116d390613447565b60405180910390fd5b5b60115481601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205461172b9190613339565b111561176c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611763906134b3565b60405180910390fd5b80600e5461177a91906130cf565b34146117bb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016117b29061351f565b60405180910390fd5b5b60006117c661138e565b73ffffffffffffffffffffffffffffffffffffffff16346040516117e990613570565b60006040518083038185875af1925050503d8060008114611826576040519150601f19603f3d011682016040523d82523d6000602084013e61182b565b606091505b505090508061186f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611866906135f7565b60405180910390fd5b81601360003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546118be9190613339565b925050819055506118cf33836121df565b50600160098190555050565b6118e3611ef2565b73ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611948576040517fb06307db00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060076000611955611ef2565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611a02611ef2565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611a479190612881565b60405180910390a35050565b611a5b611f03565b6001600d60026101000a81548160ff021916908315150217905550565b611a83848484610c7a565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611ae557611aae848484846121fd565b611ae4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b600a8054611af890612ff6565b80601f0160208091040260200160405190810160405280929190818152602001828054611b2490612ff6565b8015611b715780601f10611b4657610100808354040283529160200191611b71565b820191906000526020600020905b815481529060010190602001808311611b5457829003601f168201915b505050505081565b6060611b8482611e93565b611bba576040517fa14c4b5000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60001515600d60029054906101000a900460ff1615151415611c6857600c8054611be390612ff6565b80601f0160208091040260200160405190810160405280929190818152602001828054611c0f90612ff6565b8015611c5c5780601f10611c3157610100808354040283529160200191611c5c565b820191906000526020600020905b815481529060010190602001808311611c3f57829003601f168201915b50505050509050611cc6565b6000600b8054611c7790612ff6565b90501415611c945760405180602001604052806000815250611cc3565b600b611c9f8361234e565b600a604051602001611cb3939291906136e7565b6040516020818303038152906040525b90505b919050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b611d67611f03565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611dd7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611dce9061378a565b60405180910390fd5b611de081612119565b50565b60105481565b60136020528060005260406000206000915090505481565b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611e5c57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611e8c5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b600081611e9e611efa565b11158015611ead575060005482105b8015611eeb575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b60006001905090565b611f0b6124af565b73ffffffffffffffffffffffffffffffffffffffff16611f2961138e565b73ffffffffffffffffffffffffffffffffffffffff1614611f7f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611f76906137f6565b60405180910390fd5b565b60008082905080611f90611efa565b11612018576000548110156120175760006004600083815260200190815260200160002054905060007c010000000000000000000000000000000000000000000000000000000082161415612015575b600081141561200b576004600083600190039350838152602001908152602001600020549050611fe0565b809250505061204a565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e86120d78686846124b7565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b6121f98282604051806020016040528060008152506124c0565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02612223611ef2565b8786866040518563ffffffff1660e01b8152600401612245949392919061386b565b6020604051808303816000875af192505050801561228157506040513d601f19601f8201168201806040525081019061227e91906138cc565b60015b6122fb573d80600081146122b1576040519150601f19603f3d011682016040523d82523d6000602084013e6122b6565b606091505b506000815114156122f3576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b60606000821415612396576040518060400160405280600181526020017f300000000000000000000000000000000000000000000000000000000000000081525090506124aa565b600082905060005b600082146123c85780806123b190613086565b915050600a826123c19190613158565b915061239e565b60008167ffffffffffffffff8111156123e4576123e3612c83565b5b6040519080825280601f01601f1916602001820160405280156124165781602001600182028036833780820191505090505b5090505b600085146124a35760018261242f91906138f9565b9150600a8561243e919061392d565b603061244a9190613339565b60f81b8183815181106124605761245f613028565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a8561249c9190613158565b945061241a565b8093505050505b919050565b600033905090565b60009392505050565b6124ca838361255d565b60008373ffffffffffffffffffffffffffffffffffffffff163b1461255857600080549050600083820390505b61250a60008683806001019450866121fd565b612540576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8181106124f757816000541461255557600080fd5b50505b505050565b600080549050600082141561259e576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6125ab60008483856120ba565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055506126228361261360008660006120c0565b61261c8561271a565b176120e8565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b8181146126c357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050612688565b5060008214156126ff576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8060008190555050506127156000848385612113565b505050565b60006001821460e11b9050919050565b82805461273690612ff6565b90600052602060002090601f016020900481019282612758576000855561279f565b82601f1061277157805160ff191683800117855561279f565b8280016001018555821561279f579182015b8281111561279e578251825591602001919060010190612783565b5b5090506127ac91906127b0565b5090565b5b808211156127c95760008160009055506001016127b1565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612816816127e1565b811461282157600080fd5b50565b6000813590506128338161280d565b92915050565b60006020828403121561284f5761284e6127d7565b5b600061285d84828501612824565b91505092915050565b60008115159050919050565b61287b81612866565b82525050565b60006020820190506128966000830184612872565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b838110156128d65780820151818401526020810190506128bb565b838111156128e5576000848401525b50505050565b6000601f19601f8301169050919050565b60006129078261289c565b61291181856128a7565b93506129218185602086016128b8565b61292a816128eb565b840191505092915050565b6000602082019050818103600083015261294f81846128fc565b905092915050565b6000819050919050565b61296a81612957565b811461297557600080fd5b50565b60008135905061298781612961565b92915050565b6000602082840312156129a3576129a26127d7565b5b60006129b184828501612978565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006129e5826129ba565b9050919050565b6129f5816129da565b82525050565b6000602082019050612a1060008301846129ec565b92915050565b612a1f816129da565b8114612a2a57600080fd5b50565b600081359050612a3c81612a16565b92915050565b60008060408385031215612a5957612a586127d7565b5b6000612a6785828601612a2d565b9250506020612a7885828601612978565b9150509250929050565b612a8b81612957565b82525050565b6000602082019050612aa66000830184612a82565b92915050565b600080600060608486031215612ac557612ac46127d7565b5b6000612ad386828701612a2d565b9350506020612ae486828701612a2d565b9250506040612af586828701612978565b9150509250925092565b600080fd5b600080fd5b600080fd5b60008083601f840112612b2457612b23612aff565b5b8235905067ffffffffffffffff811115612b4157612b40612b04565b5b602083019150836020820283011115612b5d57612b5c612b09565b5b9250929050565b60008060208385031215612b7b57612b7a6127d7565b5b600083013567ffffffffffffffff811115612b9957612b986127dc565b5b612ba585828601612b0e565b92509250509250929050565b600060208284031215612bc757612bc66127d7565b5b6000612bd584828501612a2d565b91505092915050565b600060ff82169050919050565b612bf481612bde565b82525050565b6000602082019050612c0f6000830184612beb565b92915050565b60008060408385031215612c2c57612c2b6127d7565b5b6000612c3a85828601612978565b9250506020612c4b85828601612978565b9150509250929050565b6000604082019050612c6a60008301856129ec565b612c776020830184612a82565b9392505050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612cbb826128eb565b810181811067ffffffffffffffff82111715612cda57612cd9612c83565b5b80604052505050565b6000612ced6127cd565b9050612cf98282612cb2565b919050565b600067ffffffffffffffff821115612d1957612d18612c83565b5b612d22826128eb565b9050602081019050919050565b82818337600083830152505050565b6000612d51612d4c84612cfe565b612ce3565b905082815260208101848484011115612d6d57612d6c612c7e565b5b612d78848285612d2f565b509392505050565b600082601f830112612d9557612d94612aff565b5b8135612da5848260208601612d3e565b91505092915050565b600060208284031215612dc457612dc36127d7565b5b600082013567ffffffffffffffff811115612de257612de16127dc565b5b612dee84828501612d80565b91505092915050565b612e0081612866565b8114612e0b57600080fd5b50565b600081359050612e1d81612df7565b92915050565b60008060408385031215612e3a57612e396127d7565b5b6000612e4885828601612a2d565b9250506020612e5985828601612e0e565b9150509250929050565b600067ffffffffffffffff821115612e7e57612e7d612c83565b5b612e87826128eb565b9050602081019050919050565b6000612ea7612ea284612e63565b612ce3565b905082815260208101848484011115612ec357612ec2612c7e565b5b612ece848285612d2f565b509392505050565b600082601f830112612eeb57612eea612aff565b5b8135612efb848260208601612e94565b91505092915050565b60008060008060808587031215612f1e57612f1d6127d7565b5b6000612f2c87828801612a2d565b9450506020612f3d87828801612a2d565b9350506040612f4e87828801612978565b925050606085013567ffffffffffffffff811115612f6f57612f6e6127dc565b5b612f7b87828801612ed6565b91505092959194509250565b60008060408385031215612f9e57612f9d6127d7565b5b6000612fac85828601612a2d565b9250506020612fbd85828601612a2d565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061300e57607f821691505b6020821081141561302257613021612fc7565b5b50919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061309182612957565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156130c4576130c3613057565b5b600182019050919050565b60006130da82612957565b91506130e583612957565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561311e5761311d613057565b5b828202905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061316382612957565b915061316e83612957565b92508261317e5761317d613129565b5b828204905092915050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006131bf601f836128a7565b91506131ca82613189565b602082019050919050565b600060208201905081810360008301526131ee816131b2565b9050919050565b7f6d696e2031206d696e7420726571756972656400000000000000000000000000600082015250565b600061322b6013836128a7565b9150613236826131f5565b602082019050919050565b6000602082019050818103600083015261325a8161321e565b9050919050565b7f4d696e74696e6720697320706175736564210000000000000000000000000000600082015250565b60006132976012836128a7565b91506132a282613261565b602082019050919050565b600060208201905081810360008301526132c68161328a565b9050919050565b7f6d6178206d696e74207065722073657373696f6e206578636565646564000000600082015250565b6000613303601d836128a7565b915061330e826132cd565b602082019050919050565b60006020820190508181036000830152613332816132f6565b9050919050565b600061334482612957565b915061334f83612957565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0382111561338457613383613057565b5b828201905092915050565b7f416d6f756e74206578636565647320737570706c792100000000000000000000600082015250565b60006133c56016836128a7565b91506133d08261338f565b602082019050919050565b600060208201905081810360008301526133f4816133b8565b9050919050565b7f596f75206172656e2774206f6e20416c6c6f77204c6973742100000000000000600082015250565b60006134316019836128a7565b915061343c826133fb565b602082019050919050565b6000602082019050818103600083015261346081613424565b9050919050565b7f596f752063616e2774206d696e742074686174206d616e792121000000000000600082015250565b600061349d601a836128a7565b91506134a882613467565b602082019050919050565b600060208201905081810360008301526134cc81613490565b9050919050565b7f496e73756666696369656e742066756e64732100000000000000000000000000600082015250565b60006135096013836128a7565b9150613514826134d3565b602082019050919050565b60006020820190508181036000830152613538816134fc565b9050919050565b600081905092915050565b50565b600061355a60008361353f565b91506135658261354a565b600082019050919050565b600061357b8261354d565b9150819050919050565b7f4661696c656420746f207472616e736665722066756e647320746f206f776e6560008201527f7221000000000000000000000000000000000000000000000000000000000000602082015250565b60006135e16022836128a7565b91506135ec82613585565b604082019050919050565b60006020820190508181036000830152613610816135d4565b9050919050565b600081905092915050565b60008190508160005260206000209050919050565b6000815461364481612ff6565b61364e8186613617565b94506001821660008114613669576001811461367a576136ad565b60ff198316865281860193506136ad565b61368385613622565b60005b838110156136a557815481890152600182019150602081019050613686565b838801955050505b50505092915050565b60006136c18261289c565b6136cb8185613617565b93506136db8185602086016128b8565b80840191505092915050565b60006136f38286613637565b91506136ff82856136b6565b915061370b8284613637565b9150819050949350505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b60006137746026836128a7565b915061377f82613718565b604082019050919050565b600060208201905081810360008301526137a381613767565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b60006137e06020836128a7565b91506137eb826137aa565b602082019050919050565b6000602082019050818103600083015261380f816137d3565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061383d82613816565b6138478185613821565b93506138578185602086016128b8565b613860816128eb565b840191505092915050565b600060808201905061388060008301876129ec565b61388d60208301866129ec565b61389a6040830185612a82565b81810360608301526138ac8184613832565b905095945050505050565b6000815190506138c68161280d565b92915050565b6000602082840312156138e2576138e16127d7565b5b60006138f0848285016138b7565b91505092915050565b600061390482612957565b915061390f83612957565b92508282101561392257613921613057565b5b828203905092915050565b600061393882612957565b915061394383612957565b92508261395357613952613129565b5b82820690509291505056fea2646970667358221220d7dcb7588e127611b5a1b2e4effbd70327284abf9acd1d90be33b007e92c9ec964736f6c634300080c0033000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000000c0000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001800000000000000000000000000000000000000000000000000000000000000008536b756c6c696f730000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000004534b4c53000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052697066733a2f2f6261667962656966767476746c75746a7077616a373674666a636869336765736175616277327473346f636536626c6d6e71793766746f766b72792f756e72657665616c65642e6a736f6e00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000052697066733a2f2f6261667962656966767476746c75746a7077616a373674666a636869336765736175616277327473346f636536626c6d6e71793766746f766b72792f756e72657665616c65642e6a736f6e0000000000000000000000000000