[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "ApprovalCallerNotOwnerNorApproved", "type": "error" }, { "inputs": [], "name": "ApprovalQueryForNonexistentToken", "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": "msgSender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "mintQuantity", "type": "uint256" } ], "name": "NewMint", "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": "FREE_SUPPLY", "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": "PAID_SUPPLY", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "changeDefURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "flag", "type": "uint256" } ], "name": "changeTokenURIFlag", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "changeURI", "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": [ { "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": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "payable", "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": "payable", "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": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" } ], "name": "transferOut", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040526040518060800160405280605b81526020016200347a605b9139600a90816200002e91906200047d565b5060405180602001604052806000815250600b90816200004f91906200047d565b503480156200005d57600080fd5b506040518060400160405280601281526020017f4f706570656e205275672045646974696f6e00000000000000000000000000008152506040518060400160405280600381526020017f6f726500000000000000000000000000000000000000000000000000000000008152508160029081620000db91906200047d565b508060039081620000ed91906200047d565b50620000fe6200012c60201b60201c565b6000819055505050620001266200011a6200013560201b60201c565b6200013d60201b60201c565b62000564565b60006001905090565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200028557607f821691505b6020821081036200029b576200029a6200023d565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003057fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620002c6565b620003118683620002c6565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200035e62000358620003528462000329565b62000333565b62000329565b9050919050565b6000819050919050565b6200037a836200033d565b62000392620003898262000365565b848454620002d3565b825550505050565b600090565b620003a96200039a565b620003b68184846200036f565b505050565b5b81811015620003de57620003d26000826200039f565b600181019050620003bc565b5050565b601f8211156200042d57620003f781620002a1565b6200040284620002b6565b8101602085101562000412578190505b6200042a6200042185620002b6565b830182620003bb565b50505b505050565b600082821c905092915050565b6000620004526000198460080262000432565b1980831691505092915050565b60006200046d83836200043f565b9150826002028217905092915050565b620004888262000203565b67ffffffffffffffff811115620004a457620004a36200020e565b5b620004b082546200026c565b620004bd828285620003e2565b600060209050601f831160018114620004f55760008415620004e0578287015190505b620004ec85826200045f565b8655506200055c565b601f1984166200050586620002a1565b60005b828110156200052f5784890151825560018201915060208501945060208101905062000508565b868310156200054f57848901516200054b601f8916826200043f565b8355505b6001600288020188555050505b505050505050565b612f0680620005746000396000f3fe6080604052600436106101665760003560e01c8063715018a6116100d1578063a22cb4651161008a578063e5e01c1111610064578063e5e01c11146104e5578063e985e9c51461050e578063f2fde38b1461054b578063fe878b1d1461057457610166565b8063a22cb46514610463578063b88d4fde1461048c578063c87b56dd146104a857610166565b8063715018a6146103865780638da5cb5b1461039d57806395d89b41146103c85780639858cf19146103f35780639894ba7c1461041e578063a0712d681461044757610166565b806323b872dd1161012357806323b872dd1461028057806332cb6b0c1461029c57806342842e0e146102c7578063528c06cc146102e35780636352211e1461030c57806370a082311461034957610166565b806301ffc9a71461016b57806306fdde03146101a8578063081812fc146101d3578063095ea7b3146102105780630e5c19191461022c57806318160ddd14610255575b600080fd5b34801561017757600080fd5b50610192600480360381019061018d9190611fb5565b61059f565b60405161019f9190611ffd565b60405180910390f35b3480156101b457600080fd5b506101bd610631565b6040516101ca91906120a8565b60405180910390f35b3480156101df57600080fd5b506101fa60048036038101906101f59190612100565b6106c3565b604051610207919061216e565b60405180910390f35b61022a600480360381019061022591906121b5565b610742565b005b34801561023857600080fd5b50610253600480360381019061024e919061225a565b610886565b005b34801561026157600080fd5b5061026a610918565b60405161027791906122b6565b60405180910390f35b61029a600480360381019061029591906122d1565b61092f565b005b3480156102a857600080fd5b506102b1610c51565b6040516102be91906122b6565b60405180910390f35b6102e160048036038101906102dc91906122d1565b610c58565b005b3480156102ef57600080fd5b5061030a60048036038101906103059190612100565b610c78565b005b34801561031857600080fd5b50610333600480360381019061032e9190612100565b610cfe565b604051610340919061216e565b60405180910390f35b34801561035557600080fd5b50610370600480360381019061036b9190612324565b610d10565b60405161037d91906122b6565b60405180910390f35b34801561039257600080fd5b5061039b610dc8565b005b3480156103a957600080fd5b506103b2610e50565b6040516103bf919061216e565b60405180910390f35b3480156103d457600080fd5b506103dd610e7a565b6040516103ea91906120a8565b60405180910390f35b3480156103ff57600080fd5b50610408610f0c565b60405161041591906122b6565b60405180910390f35b34801561042a57600080fd5b5061044560048036038101906104409190612324565b610f11565b005b610461600480360381019061045c9190612100565b610fdd565b005b34801561046f57600080fd5b5061048a6004803603810190610485919061237d565b61127d565b005b6104a660048036038101906104a191906124ed565b611388565b005b3480156104b457600080fd5b506104cf60048036038101906104ca9190612100565b6113fb565b6040516104dc91906120a8565b60405180910390f35b3480156104f157600080fd5b5061050c6004803603810190610507919061225a565b611514565b005b34801561051a57600080fd5b5061053560048036038101906105309190612570565b6115a6565b6040516105429190611ffd565b60405180910390f35b34801561055757600080fd5b50610572600480360381019061056d9190612324565b61163a565b005b34801561058057600080fd5b50610589611731565b60405161059691906122b6565b60405180910390f35b60006301ffc9a760e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806105fa57506380ac58cd60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b8061062a5750635b5e139f60e01b827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b9050919050565b606060028054610640906125df565b80601f016020809104026020016040519081016040528092919081815260200182805461066c906125df565b80156106b95780601f1061068e576101008083540402835291602001916106b9565b820191906000526020600020905b81548152906001019060200180831161069c57829003601f168201915b5050505050905090565b60006106ce82611736565b610704576040517fcf4700e400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6006600083815260200190815260200160002060000160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061074d82610cfe565b90508073ffffffffffffffffffffffffffffffffffffffff1661076e611795565b73ffffffffffffffffffffffffffffffffffffffff16146107d15761079a81610795611795565b6115a6565b6107d0576040517fcfb3b94200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b826006600084815260200190815260200160002060000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550818373ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a4505050565b61088e61179d565b73ffffffffffffffffffffffffffffffffffffffff166108ac610e50565b73ffffffffffffffffffffffffffffffffffffffff1614610902576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108f99061265c565b60405180910390fd5b8181600a9182610913929190612833565b505050565b60006109226117a5565b6001546000540303905090565b600061093a826117ae565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146109a1576040517fa114810000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000806109ad8461187a565b915091506109c381876109be611795565b6118a1565b610a0f576109d8866109d3611795565b6115a6565b610a0e576040517f59c896be00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff1603610a75576040517fea553b3400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610a8286868660016118e5565b8015610a8d57600082555b600560008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600081546001900391905081905550600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000815460010191905081905550610b5b85610b378888876118eb565b7c020000000000000000000000000000000000000000000000000000000017611913565b600460008681526020019081526020016000208190555060007c0200000000000000000000000000000000000000000000000000000000841603610be15760006001850190506000600460008381526020019081526020016000205403610bdf576000548114610bde578360046000838152602001908152602001600020819055505b5b505b838573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4610c49868686600161193e565b505050505050565b6298968081565b610c7383838360405180602001604052806000815250611388565b505050565b610c8061179d565b73ffffffffffffffffffffffffffffffffffffffff16610c9e610e50565b73ffffffffffffffffffffffffffffffffffffffff1614610cf4576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ceb9061265c565b60405180910390fd5b8060098190555050565b6000610d09826117ae565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610d77576040517f8f4eb60400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b67ffffffffffffffff600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054169050919050565b610dd061179d565b73ffffffffffffffffffffffffffffffffffffffff16610dee610e50565b73ffffffffffffffffffffffffffffffffffffffff1614610e44576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3b9061265c565b60405180910390fd5b610e4e6000611944565b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060038054610e89906125df565b80601f0160208091040260200160405190810160405280929190818152602001828054610eb5906125df565b8015610f025780601f10610ed757610100808354040283529160200191610f02565b820191906000526020600020905b815481529060010190602001808311610ee557829003601f168201915b5050505050905090565b600481565b610f1961179d565b73ffffffffffffffffffffffffffffffffffffffff16610f37610e50565b73ffffffffffffffffffffffffffffffffffffffff1614610f8d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610f849061265c565b60405180910390fd5b60004790508173ffffffffffffffffffffffffffffffffffffffff166108fc829081150290604051600060405180830381858888f19350505050158015610fd8573d6000803e3d6000fd5b505050565b6298968081610fea610918565b610ff49190612932565b1115611035576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161102c906129b2565b60405180910390fd5b60018114806110445750600481145b8061104f5750600a81145b8061105a5750606481145b8061106657506103e881145b6110a5576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161109c90612a1e565b60405180910390fd5b6001810361110557651b48eb57e0003410156110f6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110ed90612a8a565b60405180910390fd5b6111003382611a0a565b611236565b6004810361111c576111173382611a0a565b611235565b6064810361117d576605543df729c00034101561116e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161116590612a8a565b60405180910390fd5b6111783382611a0a565b611234565b6103e881036111df57662386f26fc100003410156111d0576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111c790612a8a565b60405180910390fd5b6111da3382611a0a565b611233565b65b5e620f48000341015611228576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161121f90612a8a565b60405180910390fd5b6112323382611a0a565b5b5b5b5b803373ffffffffffffffffffffffffffffffffffffffff167f52277f0b4a9b555c5aa96900a13546f972bda413737ec164aac947c87eec602460405160405180910390a350565b806007600061128a611795565b73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff16611337611795565b73ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c318360405161137c9190611ffd565b60405180910390a35050565b61139384848461092f565b60008373ffffffffffffffffffffffffffffffffffffffff163b146113f5576113be84848484611a28565b6113f4576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5b50505050565b606060006009540361149957600a8054611414906125df565b80601f0160208091040260200160405190810160405280929190818152602001828054611440906125df565b801561148d5780601f106114625761010080835404028352916020019161148d565b820191906000526020600020905b81548152906001019060200180831161147057829003601f168201915b5050505050905061150f565b6114a282611736565b6114e1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114d890612b1c565b60405180910390fd5b600b6114ec83611b78565b6040516020016114fd929190612bfb565b60405160208183030381529060405290505b919050565b61151c61179d565b73ffffffffffffffffffffffffffffffffffffffff1661153a610e50565b73ffffffffffffffffffffffffffffffffffffffff1614611590576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016115879061265c565b60405180910390fd5b8181600b91826115a1929190612833565b505050565b6000600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b61164261179d565b73ffffffffffffffffffffffffffffffffffffffff16611660610e50565b73ffffffffffffffffffffffffffffffffffffffff16146116b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116ad9061265c565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611725576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161171c90612c91565b60405180910390fd5b61172e81611944565b50565b600a81565b6000816117416117a5565b11158015611750575060005482105b801561178e575060007c0100000000000000000000000000000000000000000000000000000000600460008581526020019081526020016000205416145b9050919050565b600033905090565b600033905090565b60006001905090565b600080829050806117bd6117a5565b11611843576000548110156118425760006004600083815260200190815260200160002054905060007c0100000000000000000000000000000000000000000000000000000000821603611840575b6000810361183657600460008360019003935083815260200190815260200160002054905061180c565b8092505050611875565b505b5b6040517fdf2d9b4200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60008060006006600085815260200190815260200160002090508092508254915050915091565b600073ffffffffffffffffffffffffffffffffffffffff8316925073ffffffffffffffffffffffffffffffffffffffff821691508382148383141790509392505050565b50505050565b60008060e883901c905060e8611902868684611cd8565b62ffffff16901b9150509392505050565b600073ffffffffffffffffffffffffffffffffffffffff83169250814260a01b178317905092915050565b50505050565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611a24828260405180602001604052806000815250611ce1565b5050565b60008373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611a4e611795565b8786866040518563ffffffff1660e01b8152600401611a709493929190612d06565b6020604051808303816000875af1925050508015611aac57506040513d601f19601f82011682018060405250810190611aa99190612d67565b60015b611b25573d8060008114611adc576040519150601f19603f3d011682016040523d82523d6000602084013e611ae1565b606091505b506000815103611b1d576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614915050949350505050565b606060008203611bbf576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611cd3565b600082905060005b60008214611bf1578080611bda90612d94565b915050600a82611bea9190612e0b565b9150611bc7565b60008167ffffffffffffffff811115611c0d57611c0c6123c2565b5b6040519080825280601f01601f191660200182016040528015611c3f5781602001600182028036833780820191505090505b5090505b60008514611ccc57600182611c589190612e3c565b9150600a85611c679190612e70565b6030611c739190612932565b60f81b818381518110611c8957611c88612ea1565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611cc59190612e0b565b9450611c43565b8093505050505b919050565b60009392505050565b611ceb8383611d7e565b60008373ffffffffffffffffffffffffffffffffffffffff163b14611d7957600080549050600083820390505b611d2b6000868380600101945086611a28565b611d61576040517fd1a57ed600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b818110611d18578160005414611d7657600080fd5b50505b505050565b60008054905060008203611dbe576040517fb562e8dd00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b611dcb60008483856118e5565b600160406001901b178202600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550611e4283611e3360008660006118eb565b611e3c85611f39565b17611913565b6004600083815260200190815260200160002081905550600080838301905073ffffffffffffffffffffffffffffffffffffffff85169150828260007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600183015b818114611ee357808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4600181019050611ea8565b5060008203611f1e576040517f2e07630000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000819055505050611f34600084838561193e565b505050565b60006001821460e11b9050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b611f9281611f5d565b8114611f9d57600080fd5b50565b600081359050611faf81611f89565b92915050565b600060208284031215611fcb57611fca611f53565b5b6000611fd984828501611fa0565b91505092915050565b60008115159050919050565b611ff781611fe2565b82525050565b60006020820190506120126000830184611fee565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612052578082015181840152602081019050612037565b60008484015250505050565b6000601f19601f8301169050919050565b600061207a82612018565b6120848185612023565b9350612094818560208601612034565b61209d8161205e565b840191505092915050565b600060208201905081810360008301526120c2818461206f565b905092915050565b6000819050919050565b6120dd816120ca565b81146120e857600080fd5b50565b6000813590506120fa816120d4565b92915050565b60006020828403121561211657612115611f53565b5b6000612124848285016120eb565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006121588261212d565b9050919050565b6121688161214d565b82525050565b6000602082019050612183600083018461215f565b92915050565b6121928161214d565b811461219d57600080fd5b50565b6000813590506121af81612189565b92915050565b600080604083850312156121cc576121cb611f53565b5b60006121da858286016121a0565b92505060206121eb858286016120eb565b9150509250929050565b600080fd5b600080fd5b600080fd5b60008083601f84011261221a576122196121f5565b5b8235905067ffffffffffffffff811115612237576122366121fa565b5b602083019150836001820283011115612253576122526121ff565b5b9250929050565b6000806020838503121561227157612270611f53565b5b600083013567ffffffffffffffff81111561228f5761228e611f58565b5b61229b85828601612204565b92509250509250929050565b6122b0816120ca565b82525050565b60006020820190506122cb60008301846122a7565b92915050565b6000806000606084860312156122ea576122e9611f53565b5b60006122f8868287016121a0565b9350506020612309868287016121a0565b925050604061231a868287016120eb565b9150509250925092565b60006020828403121561233a57612339611f53565b5b6000612348848285016121a0565b91505092915050565b61235a81611fe2565b811461236557600080fd5b50565b60008135905061237781612351565b92915050565b6000806040838503121561239457612393611f53565b5b60006123a2858286016121a0565b92505060206123b385828601612368565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6123fa8261205e565b810181811067ffffffffffffffff82111715612419576124186123c2565b5b80604052505050565b600061242c611f49565b905061243882826123f1565b919050565b600067ffffffffffffffff821115612458576124576123c2565b5b6124618261205e565b9050602081019050919050565b82818337600083830152505050565b600061249061248b8461243d565b612422565b9050828152602081018484840111156124ac576124ab6123bd565b5b6124b784828561246e565b509392505050565b600082601f8301126124d4576124d36121f5565b5b81356124e484826020860161247d565b91505092915050565b6000806000806080858703121561250757612506611f53565b5b6000612515878288016121a0565b9450506020612526878288016121a0565b9350506040612537878288016120eb565b925050606085013567ffffffffffffffff81111561255857612557611f58565b5b612564878288016124bf565b91505092959194509250565b6000806040838503121561258757612586611f53565b5b6000612595858286016121a0565b92505060206125a6858286016121a0565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806125f757607f821691505b60208210810361260a576126096125b0565b5b50919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000612646602083612023565b915061265182612610565b602082019050919050565b6000602082019050818103600083015261267581612639565b9050919050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026126e97fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826126ac565b6126f386836126ac565b95508019841693508086168417925050509392505050565b6000819050919050565b600061273061272b612726846120ca565b61270b565b6120ca565b9050919050565b6000819050919050565b61274a83612715565b61275e61275682612737565b8484546126b9565b825550505050565b600090565b612773612766565b61277e818484612741565b505050565b5b818110156127a25761279760008261276b565b600181019050612784565b5050565b601f8211156127e7576127b881612687565b6127c18461269c565b810160208510156127d0578190505b6127e46127dc8561269c565b830182612783565b50505b505050565b600082821c905092915050565b600061280a600019846008026127ec565b1980831691505092915050565b600061282383836127f9565b9150826002028217905092915050565b61283d838361267c565b67ffffffffffffffff811115612856576128556123c2565b5b61286082546125df565b61286b8282856127a6565b6000601f83116001811461289a5760008415612888578287013590505b6128928582612817565b8655506128fa565b601f1984166128a886612687565b60005b828110156128d0578489013582556001820191506020850194506020810190506128ab565b868310156128ed57848901356128e9601f8916826127f9565b8355505b6001600288020188555050505b50505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061293d826120ca565b9150612948836120ca565b92508282019050808211156129605761295f612903565b5b92915050565b7f4552433732313a2045786365656473206d6178696d756d20737570706c790000600082015250565b600061299c601e83612023565b91506129a782612966565b602082019050919050565b600060208201905081810360008301526129cb8161298f565b9050919050565b7f4552433732313a20496e76616c6964207175616e746974790000000000000000600082015250565b6000612a08601883612023565b9150612a13826129d2565b602082019050919050565b60006020820190508181036000830152612a37816129fb565b9050919050565b7f4552433732313a20496e73756666696369656e74207061796d656e7400000000600082015250565b6000612a74601c83612023565b9150612a7f82612a3e565b602082019050919050565b60006020820190508181036000830152612aa381612a67565b9050919050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000612b06602f83612023565b9150612b1182612aaa565b604082019050919050565b60006020820190508181036000830152612b3581612af9565b9050919050565b600081905092915050565b60008154612b54816125df565b612b5e8186612b3c565b94506001821660008114612b795760018114612b8e57612bc1565b60ff1983168652811515820286019350612bc1565b612b9785612687565b60005b83811015612bb957815481890152600182019150602081019050612b9a565b838801955050505b50505092915050565b6000612bd582612018565b612bdf8185612b3c565b9350612bef818560208601612034565b80840191505092915050565b6000612c078285612b47565b9150612c138284612bca565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000612c7b602683612023565b9150612c8682612c1f565b604082019050919050565b60006020820190508181036000830152612caa81612c6e565b9050919050565b600081519050919050565b600082825260208201905092915050565b6000612cd882612cb1565b612ce28185612cbc565b9350612cf2818560208601612034565b612cfb8161205e565b840191505092915050565b6000608082019050612d1b600083018761215f565b612d28602083018661215f565b612d3560408301856122a7565b8181036060830152612d478184612ccd565b905095945050505050565b600081519050612d6181611f89565b92915050565b600060208284031215612d7d57612d7c611f53565b5b6000612d8b84828501612d52565b91505092915050565b6000612d9f826120ca565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612dd157612dd0612903565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612e16826120ca565b9150612e21836120ca565b925082612e3157612e30612ddc565b5b828204905092915050565b6000612e47826120ca565b9150612e52836120ca565b9250828203905081811115612e6a57612e69612903565b5b92915050565b6000612e7b826120ca565b9150612e86836120ca565b925082612e9657612e95612ddc565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220dc1bd70896fe6a07db21e3a7cf185787210ab7f16086cf2feb7e8ab069e4832464736f6c6343000812003368747470733a2f2f626166796265696471727277646b6b62766f6667666671346a67766c33366a666e707436726b7565373734756e696e767a78746b6d7232617963612e697066732e6e667473746f726167652e6c696e6b2f4d44