[ { "inputs": [], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "stateMutability": "payable", "type": "fallback" }, { "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": [ { "internalType": "uint256", "name": "tokenID", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" } ], "name": "changeURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "cost", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "flipPausedState", "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": "nfTombstoneId", "type": "uint256" }, { "internalType": "string", "name": "uri", "type": "string" }, { "internalType": "address", "name": "_to", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" }, { "internalType": "uint256", "name": "", "type": "uint256" }, { "internalType": "bytes", "name": "", "type": "bytes" } ], "name": "onERC721Received", "outputs": [ { "internalType": "bytes4", "name": "", "type": "bytes4" } ], "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": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "revokeToken", "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": "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": "_newBaseURI", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "newCost", "type": "uint256" } ], "name": "setCost", "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": "address", "name": "_tokenAddress", "type": "address" } ], "name": "withdrawERC20", "outputs": [], "stateMutability": "payable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_nftAddress", "type": "address" }, { "internalType": "uint256", "name": "_tokenID", "type": "uint256" } ], "name": "withdrawERC721", "outputs": [], "stateMutability": "payable", "type": "function" }, { "stateMutability": "payable", "type": "receive" } ]
60806040526040518060400160405280600b81526020017f697066733a2f2f6369642f000000000000000000000000000000000000000000815250600990805190602001906200005192919062000436565b506040518060400160405280600581526020017f2e6a736f6e000000000000000000000000000000000000000000000000000000815250600a90805190602001906200009f92919062000436565b506703782dace9d90000600b556001600c60006101000a81548160ff02191690831515021790555073e3525413c2a15daec57c92234361934f510356b8600e60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550730c6945e825fc3c80f0a1ea1d3e24d6854f7460d8600f60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055507332bd2811fb91bc46756232a0b8c6b2902d7d8763601060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600f60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16601260006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200029957600080fd5b506040518060400160405280600c81526020017f4e46546f6d6273746f6e656400000000000000000000000000000000000000008152506040518060400160405280600681526020017f53544f4e4544000000000000000000000000000000000000000000000000000081525081600090805190602001906200031e92919062000436565b5080600190805190602001906200033792919062000436565b505050600160078190555062000362620003566200036860201b60201c565b6200037060201b60201c565b6200054b565b600033905090565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b828054620004449062000515565b90600052602060002090601f016020900481019282620004685760008555620004b4565b82601f106200048357805160ff1916838001178555620004b4565b82800160010185558215620004b4579182015b82811115620004b357825182559160200191906001019062000496565b5b509050620004c39190620004c7565b5090565b5b80821115620004e2576000816000905550600101620004c8565b5090565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200052e57607f821691505b60208210811415620005455762000544620004e6565b5b50919050565b6143a0806200055b6000396000f3fe6080604052600436106101d15760003560e01c806370a08231116100f7578063b88d4fde11610095578063e985e9c511610064578063e985e9c51461065b578063f2fde38b14610698578063f3e414f8146106c1578063f4f3b200146106dd576101d8565b8063b88d4fde146105a1578063c6682862146105ca578063c87b56dd146105f5578063da6af97114610632576101d8565b80638da5cb5b116100d15780638da5cb5b1461050b57806393eff8511461053657806395d89b411461054d578063a22cb46514610578576101d8565b806370a082311461048e578063715018a6146104cb5780637dc9e79b146104e2576101d8565b80631ac429b21161016f57806355f804b31161013e57806355f804b3146103d25780635c975abb146103fb5780636352211e146104265780636c0360eb14610463576101d8565b80631ac429b21461033b57806323b872dd1461035757806342842e0e1461038057806344a0d68a146103a9576101d8565b8063095ea7b3116101ab578063095ea7b31461027f57806313faede6146102a8578063150b7a02146102d357806318160ddd14610310576101d8565b806301ffc9a7146101da57806306fdde0314610217578063081812fc14610242576101d8565b366101d857005b005b3480156101e657600080fd5b5061020160048036038101906101fc9190612a81565b6106f9565b60405161020e9190612ac9565b60405180910390f35b34801561022357600080fd5b5061022c6107db565b6040516102399190612b7d565b60405180910390f35b34801561024e57600080fd5b5061026960048036038101906102649190612bd5565b61086d565b6040516102769190612c43565b60405180910390f35b34801561028b57600080fd5b506102a660048036038101906102a19190612c8a565b6108f2565b005b3480156102b457600080fd5b506102bd610a0a565b6040516102ca9190612cd9565b60405180910390f35b3480156102df57600080fd5b506102fa60048036038101906102f59190612d59565b610a10565b6040516103079190612df0565b60405180910390f35b34801561031c57600080fd5b50610325610ab5565b6040516103329190612cd9565b60405180910390f35b61035560048036038101906103509190612f3b565b610ac6565b005b34801561036357600080fd5b5061037e60048036038101906103799190612faa565b610c6e565b005b34801561038c57600080fd5b506103a760048036038101906103a29190612faa565b610cce565b005b3480156103b557600080fd5b506103d060048036038101906103cb9190612bd5565b610cee565b005b3480156103de57600080fd5b506103f960048036038101906103f49190612ffd565b610d00565b005b34801561040757600080fd5b50610410610d22565b60405161041d9190612ac9565b60405180910390f35b34801561043257600080fd5b5061044d60048036038101906104489190612bd5565b610d35565b60405161045a9190612c43565b60405180910390f35b34801561046f57600080fd5b50610478610de7565b6040516104859190612b7d565b60405180910390f35b34801561049a57600080fd5b506104b560048036038101906104b09190613046565b610e75565b6040516104c29190612cd9565b60405180910390f35b3480156104d757600080fd5b506104e0610f2d565b005b3480156104ee57600080fd5b5061050960048036038101906105049190612bd5565b610f41565b005b34801561051757600080fd5b50610520610f82565b60405161052d9190612c43565b60405180910390f35b34801561054257600080fd5b5061054b610fac565b005b34801561055957600080fd5b50610562610fe0565b60405161056f9190612b7d565b60405180910390f35b34801561058457600080fd5b5061059f600480360381019061059a919061309f565b611072565b005b3480156105ad57600080fd5b506105c860048036038101906105c39190613180565b611088565b005b3480156105d657600080fd5b506105df6110ea565b6040516105ec9190612b7d565b60405180910390f35b34801561060157600080fd5b5061061c60048036038101906106179190612bd5565b611178565b6040516106299190612b7d565b60405180910390f35b34801561063e57600080fd5b5061065960048036038101906106549190613259565b6112ca565b005b34801561066757600080fd5b50610682600480360381019061067d91906132b9565b611325565b60405161068f9190612ac9565b60405180910390f35b3480156106a457600080fd5b506106bf60048036038101906106ba9190613046565b6113b9565b005b6106db60048036038101906106d69190612c8a565b61143d565b005b6106f760048036038101906106f29190613046565b6114c5565b005b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806107c457507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806107d457506107d3826115db565b5b9050919050565b6060600080546107ea90613328565b80601f016020809104026020016040519081016040528092919081815260200182805461081690613328565b80156108635780601f1061083857610100808354040283529160200191610863565b820191906000526020600020905b81548152906001019060200180831161084657829003601f168201915b5050505050905090565b600061087882611645565b6108b7576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016108ae906133cc565b60405180910390fd5b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006108fd82610d35565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16141561096e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109659061345e565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661098d6116b1565b73ffffffffffffffffffffffffffffffffffffffff1614806109bc57506109bb816109b66116b1565b611325565b5b6109fb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016109f2906134f0565b60405180910390fd5b610a0583836116b9565b505050565b600b5481565b6000600e60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610aa2576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a999061355c565b60405180910390fd5b63150b7a0260e01b905095945050505050565b6000610ac16013611772565b905090565b60026007541415610b0c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b03906135c8565b60405180910390fd5b6002600781905550600c60009054906101000a900460ff1615610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b90613634565b60405180910390fd5b6000601260009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166370a08231336040518263ffffffff1660e01b8152600401610bc19190612c43565b602060405180830381865afa158015610bde573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610c029190613669565b1415610c4e57600b54341015610c4d576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c44906136e2565b60405180910390fd5b5b610c618383610c5b6116b1565b84611780565b6001600781905550505050565b610c7f610c796116b1565b82611847565b610cbe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610cb590613774565b60405180910390fd5b610cc9838383611925565b505050565b610ce983838360405180602001604052806000815250611088565b505050565b610cf6611b8c565b80600b8190555050565b610d08611b8c565b8060099080519060200190610d1e929190612932565b5050565b600c60009054906101000a900460ff1681565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610dde576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610dd590613806565b60405180910390fd5b80915050919050565b60098054610df490613328565b80601f0160208091040260200160405190810160405280929190818152602001828054610e2090613328565b8015610e6d5780601f10610e4257610100808354040283529160200191610e6d565b820191906000526020600020905b815481529060010190602001808311610e5057829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610edd90613898565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610f35611b8c565b610f3f6000611c0a565b565b610f49611b8c565b6001600d600083815260200190815260200160002060006101000a81548160ff021916908360ff160217905550610f7f81611cd0565b50565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610fb4611b8c565b600c60009054906101000a900460ff1615600c60006101000a81548160ff021916908315150217905550565b606060018054610fef90613328565b80601f016020809104026020016040519081016040528092919081815260200182805461101b90613328565b80156110685780601f1061103d57610100808354040283529160200191611068565b820191906000526020600020905b81548152906001019060200180831161104b57829003601f168201915b5050505050905090565b61108461107d6116b1565b8383611d23565b5050565b6110996110936116b1565b83611847565b6110d8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110cf90613774565b60405180910390fd5b6110e484848484611e90565b50505050565b600a80546110f790613328565b80601f016020809104026020016040519081016040528092919081815260200182805461112390613328565b80156111705780601f1061114557610100808354040283529160200191611170565b820191906000526020600020905b81548152906001019060200180831161115357829003601f168201915b505050505081565b606061118382611645565b6111c2576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111b99061392a565b60405180910390fd5b60006014600084815260200190815260200160002080546111e290613328565b80601f016020809104026020016040519081016040528092919081815260200182805461120e90613328565b801561125b5780601f106112305761010080835404028352916020019161125b565b820191906000526020600020905b81548152906001019060200180831161123e57829003601f168201915b50505050509050600061126c611eec565b90506000815114156112825781925050506112c5565b6000825111156112b757808260405160200161129f929190613986565b604051602081830303815290604052925050506112c5565b6112c084611f7e565b925050505b919050565b6112d2611b8c565b6113208383838080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050506120d0565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6113c1611b8c565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415611431576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161142890613a1c565b60405180910390fd5b61143a81611c0a565b50565b611445611b8c565b60008290508073ffffffffffffffffffffffffffffffffffffffff166342842e0e3061146f610f82565b856040518463ffffffff1660e01b815260040161148e93929190613a3c565b600060405180830381600087803b1580156114a857600080fd5b505af11580156114bc573d6000803e3d6000fd5b50505050505050565b6114cd611b8c565b600081905060008173ffffffffffffffffffffffffffffffffffffffff166370a08231306040518263ffffffff1660e01b815260040161150d9190612c43565b602060405180830381865afa15801561152a573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061154e9190613669565b90508173ffffffffffffffffffffffffffffffffffffffff1663a9059cbb611574610f82565b836040518363ffffffff1660e01b8152600401611592929190613ad2565b6020604051808303816000875af11580156115b1573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906115d59190613b10565b50505050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661172c83610d35565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b600081600001549050919050565b601160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff166342842e0e8330876040518463ffffffff1660e01b81526004016117df93929190613a3c565b600060405180830381600087803b1580156117f957600080fd5b505af115801561180d573d6000803e3d6000fd5b5050505061181b6013612144565b61182e816118296013611772565b61215a565b61184161183b6013611772565b846120d0565b50505050565b600061185282611645565b611891576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161188890613baf565b60405180910390fd5b600061189c83610d35565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff1614806118de57506118dd8185611325565b5b8061191c57508373ffffffffffffffffffffffffffffffffffffffff166119048461086d565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661194582610d35565b73ffffffffffffffffffffffffffffffffffffffff161461199b576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161199290613c41565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611a0b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a0290613cd3565b60405180910390fd5b611a16838383612178565b611a216000826116b9565b6001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611a719190613d22565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611ac89190613d56565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611b87838383612223565b505050565b611b946116b1565b73ffffffffffffffffffffffffffffffffffffffff16611bb2610f82565b73ffffffffffffffffffffffffffffffffffffffff1614611c08576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611bff90613df8565b60405180910390fd5b565b6000600860009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600860006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611cd981612228565b6000600660008381526020019081526020016000208054611cf990613328565b905014611d2057600660008281526020019081526020016000206000611d1f91906129b8565b5b50565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415611d92576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611d8990613e64565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611e839190612ac9565b60405180910390a3505050565b611e9b848484611925565b611ea784848484612345565b611ee6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611edd90613ef6565b60405180910390fd5b50505050565b606060098054611efb90613328565b80601f0160208091040260200160405190810160405280929190818152602001828054611f2790613328565b8015611f745780601f10611f4957610100808354040283529160200191611f74565b820191906000526020600020905b815481529060010190602001808311611f5757829003601f168201915b5050505050905090565b6060611f8982611645565b611fc8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbf9061392a565b60405180910390fd5b6000600660008481526020019081526020016000208054611fe890613328565b80601f016020809104026020016040519081016040528092919081815260200182805461201490613328565b80156120615780601f1061203657610100808354040283529160200191612061565b820191906000526020600020905b81548152906001019060200180831161204457829003601f168201915b505050505090506000612072611eec565b90506000815114156120885781925050506120cb565b6000825111156120bd5780826040516020016120a5929190613986565b604051602081830303815290604052925050506120cb565b6120c6846124cd565b925050505b919050565b6120d982611645565b612118576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161210f90613f88565b60405180910390fd5b8060066000848152602001908152602001600020908051906020019061213f929190612932565b505050565b6001816000016000828254019250508190555050565b612174828260405180602001604052806000815250612574565b5050565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614612213576001600d600083815260200190815260200160002060009054906101000a900460ff1660ff1614612212576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161220990613ff4565b60405180910390fd5b5b61221e8383836125cf565b505050565b505050565b600061223382610d35565b905061224181600084612178565b61224c6000836116b9565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461229c9190613d22565b925050819055506002600083815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905581600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461234181600084612223565b5050565b60006123668473ffffffffffffffffffffffffffffffffffffffff166125d4565b156124c0578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261238f6116b1565b8786866040518563ffffffff1660e01b81526004016123b19493929190614069565b6020604051808303816000875af19250505080156123ed57506040513d601f19601f820116820180604052508101906123ea91906140ca565b60015b612470573d806000811461241d576040519150601f19603f3d011682016040523d82523d6000602084013e612422565b606091505b50600081511415612468576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161245f90613ef6565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506124c5565b600190505b949350505050565b60606124d882611645565b612517576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161250e90614169565b60405180910390fd5b6000612521611eec565b90506000815111612541576040518060200160405280600081525061256c565b8061254b846125f7565b60405160200161255c929190613986565b6040516020818303038152906040525b915050919050565b61257e8383612758565b61258b6000848484612345565b6125ca576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016125c190613ef6565b60405180910390fd5b505050565b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6060600082141561263f576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050612753565b600082905060005b6000821461267157808061265a90614189565b915050600a8261266a9190614201565b9150612647565b60008167ffffffffffffffff81111561268d5761268c612e10565b5b6040519080825280601f01601f1916602001820160405280156126bf5781602001600182028036833780820191505090505b5090505b6000851461274c576001826126d89190613d22565b9150600a856126e79190614232565b60306126f39190613d56565b60f81b81838151811061270957612708614263565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a856127459190614201565b94506126c3565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614156127c8576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016127bf906142de565b60405180910390fd5b6127d181611645565b15612811576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016128089061434a565b60405180910390fd5b61281d60008383612178565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825461286d9190613d56565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a461292e60008383612223565b5050565b82805461293e90613328565b90600052602060002090601f01602090048101928261296057600085556129a7565b82601f1061297957805160ff19168380011785556129a7565b828001600101855582156129a7579182015b828111156129a657825182559160200191906001019061298b565b5b5090506129b491906129f8565b5090565b5080546129c490613328565b6000825580601f106129d657506129f5565b601f0160209004906000526020600020908101906129f491906129f8565b5b50565b5b80821115612a115760008160009055506001016129f9565b5090565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b612a5e81612a29565b8114612a6957600080fd5b50565b600081359050612a7b81612a55565b92915050565b600060208284031215612a9757612a96612a1f565b5b6000612aa584828501612a6c565b91505092915050565b60008115159050919050565b612ac381612aae565b82525050565b6000602082019050612ade6000830184612aba565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612b1e578082015181840152602081019050612b03565b83811115612b2d576000848401525b50505050565b6000601f19601f8301169050919050565b6000612b4f82612ae4565b612b598185612aef565b9350612b69818560208601612b00565b612b7281612b33565b840191505092915050565b60006020820190508181036000830152612b978184612b44565b905092915050565b6000819050919050565b612bb281612b9f565b8114612bbd57600080fd5b50565b600081359050612bcf81612ba9565b92915050565b600060208284031215612beb57612bea612a1f565b5b6000612bf984828501612bc0565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612c2d82612c02565b9050919050565b612c3d81612c22565b82525050565b6000602082019050612c586000830184612c34565b92915050565b612c6781612c22565b8114612c7257600080fd5b50565b600081359050612c8481612c5e565b92915050565b60008060408385031215612ca157612ca0612a1f565b5b6000612caf85828601612c75565b9250506020612cc085828601612bc0565b9150509250929050565b612cd381612b9f565b82525050565b6000602082019050612cee6000830184612cca565b92915050565b600080fd5b600080fd5b600080fd5b60008083601f840112612d1957612d18612cf4565b5b8235905067ffffffffffffffff811115612d3657612d35612cf9565b5b602083019150836001820283011115612d5257612d51612cfe565b5b9250929050565b600080600080600060808688031215612d7557612d74612a1f565b5b6000612d8388828901612c75565b9550506020612d9488828901612c75565b9450506040612da588828901612bc0565b935050606086013567ffffffffffffffff811115612dc657612dc5612a24565b5b612dd288828901612d03565b92509250509295509295909350565b612dea81612a29565b82525050565b6000602082019050612e056000830184612de1565b92915050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612e4882612b33565b810181811067ffffffffffffffff82111715612e6757612e66612e10565b5b80604052505050565b6000612e7a612a15565b9050612e868282612e3f565b919050565b600067ffffffffffffffff821115612ea657612ea5612e10565b5b612eaf82612b33565b9050602081019050919050565b82818337600083830152505050565b6000612ede612ed984612e8b565b612e70565b905082815260208101848484011115612efa57612ef9612e0b565b5b612f05848285612ebc565b509392505050565b600082601f830112612f2257612f21612cf4565b5b8135612f32848260208601612ecb565b91505092915050565b600080600060608486031215612f5457612f53612a1f565b5b6000612f6286828701612bc0565b935050602084013567ffffffffffffffff811115612f8357612f82612a24565b5b612f8f86828701612f0d565b9250506040612fa086828701612c75565b9150509250925092565b600080600060608486031215612fc357612fc2612a1f565b5b6000612fd186828701612c75565b9350506020612fe286828701612c75565b9250506040612ff386828701612bc0565b9150509250925092565b60006020828403121561301357613012612a1f565b5b600082013567ffffffffffffffff81111561303157613030612a24565b5b61303d84828501612f0d565b91505092915050565b60006020828403121561305c5761305b612a1f565b5b600061306a84828501612c75565b91505092915050565b61307c81612aae565b811461308757600080fd5b50565b60008135905061309981613073565b92915050565b600080604083850312156130b6576130b5612a1f565b5b60006130c485828601612c75565b92505060206130d58582860161308a565b9150509250929050565b600067ffffffffffffffff8211156130fa576130f9612e10565b5b61310382612b33565b9050602081019050919050565b600061312361311e846130df565b612e70565b90508281526020810184848401111561313f5761313e612e0b565b5b61314a848285612ebc565b509392505050565b600082601f83011261316757613166612cf4565b5b8135613177848260208601613110565b91505092915050565b6000806000806080858703121561319a57613199612a1f565b5b60006131a887828801612c75565b94505060206131b987828801612c75565b93505060406131ca87828801612bc0565b925050606085013567ffffffffffffffff8111156131eb576131ea612a24565b5b6131f787828801613152565b91505092959194509250565b60008083601f84011261321957613218612cf4565b5b8235905067ffffffffffffffff81111561323657613235612cf9565b5b60208301915083600182028301111561325257613251612cfe565b5b9250929050565b60008060006040848603121561327257613271612a1f565b5b600061328086828701612bc0565b935050602084013567ffffffffffffffff8111156132a1576132a0612a24565b5b6132ad86828701613203565b92509250509250925092565b600080604083850312156132d0576132cf612a1f565b5b60006132de85828601612c75565b92505060206132ef85828601612c75565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061334057607f821691505b60208210811415613354576133536132f9565b5b50919050565b7f4552433732313a20617070726f76656420717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b60006133b6602c83612aef565b91506133c18261335a565b604082019050919050565b600060208201905081810360008301526133e5816133a9565b9050919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000613448602183612aef565b9150613453826133ec565b604082019050919050565b600060208201905081810360008301526134778161343b565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f74206f7760008201527f6e6572206e6f7220617070726f76656420666f7220616c6c0000000000000000602082015250565b60006134da603883612aef565b91506134e58261347e565b604082019050919050565b60006020820190508181036000830152613509816134cd565b9050919050565b7f4f6e6c79204e46546f6d6273746f6e6573212100000000000000000000000000600082015250565b6000613546601383612aef565b915061355182613510565b602082019050919050565b6000602082019050818103600083015261357581613539565b9050919050565b7f5265656e7472616e637947756172643a207265656e7472616e742063616c6c00600082015250565b60006135b2601f83612aef565b91506135bd8261357c565b602082019050919050565b600060208201905081810360008301526135e1816135a5565b9050919050565b7f4d696e74696e6720697320706175736564000000000000000000000000000000600082015250565b600061361e601183612aef565b9150613629826135e8565b602082019050919050565b6000602082019050818103600083015261364d81613611565b9050919050565b60008151905061366381612ba9565b92915050565b60006020828403121561367f5761367e612a1f565b5b600061368d84828501613654565b91505092915050565b7f496e73756666696369656e742066756e64730000000000000000000000000000600082015250565b60006136cc601283612aef565b91506136d782613696565b602082019050919050565b600060208201905081810360008301526136fb816136bf565b9050919050565b7f4552433732313a207472616e736665722063616c6c6572206973206e6f74206f60008201527f776e6572206e6f7220617070726f766564000000000000000000000000000000602082015250565b600061375e603183612aef565b915061376982613702565b604082019050919050565b6000602082019050818103600083015261378d81613751565b9050919050565b7f4552433732313a206f776e657220717565727920666f72206e6f6e657869737460008201527f656e7420746f6b656e0000000000000000000000000000000000000000000000602082015250565b60006137f0602983612aef565b91506137fb82613794565b604082019050919050565b6000602082019050818103600083015261381f816137e3565b9050919050565b7f4552433732313a2062616c616e636520717565727920666f7220746865207a6560008201527f726f206164647265737300000000000000000000000000000000000000000000602082015250565b6000613882602a83612aef565b915061388d82613826565b604082019050919050565b600060208201905081810360008301526138b181613875565b9050919050565b7f45524337323155524953746f726167653a2055524920717565727920666f722060008201527f6e6f6e6578697374656e7420746f6b656e000000000000000000000000000000602082015250565b6000613914603183612aef565b915061391f826138b8565b604082019050919050565b6000602082019050818103600083015261394381613907565b9050919050565b600081905092915050565b600061396082612ae4565b61396a818561394a565b935061397a818560208601612b00565b80840191505092915050565b60006139928285613955565b915061399e8284613955565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613a06602683612aef565b9150613a11826139aa565b604082019050919050565b60006020820190508181036000830152613a35816139f9565b9050919050565b6000606082019050613a516000830186612c34565b613a5e6020830185612c34565b613a6b6040830184612cca565b949350505050565b6000819050919050565b6000613a98613a93613a8e84612c02565b613a73565b612c02565b9050919050565b6000613aaa82613a7d565b9050919050565b6000613abc82613a9f565b9050919050565b613acc81613ab1565b82525050565b6000604082019050613ae76000830185613ac3565b613af46020830184612cca565b9392505050565b600081519050613b0a81613073565b92915050565b600060208284031215613b2657613b25612a1f565b5b6000613b3484828501613afb565b91505092915050565b7f4552433732313a206f70657261746f7220717565727920666f72206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b6000613b99602c83612aef565b9150613ba482613b3d565b604082019050919050565b60006020820190508181036000830152613bc881613b8c565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613c2b602583612aef565b9150613c3682613bcf565b604082019050919050565b60006020820190508181036000830152613c5a81613c1e565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613cbd602483612aef565b9150613cc882613c61565b604082019050919050565b60006020820190508181036000830152613cec81613cb0565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000613d2d82612b9f565b9150613d3883612b9f565b925082821015613d4b57613d4a613cf3565b5b828203905092915050565b6000613d6182612b9f565b9150613d6c83612b9f565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115613da157613da0613cf3565b5b828201905092915050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613de2602083612aef565b9150613ded82613dac565b602082019050919050565b60006020820190508181036000830152613e1181613dd5565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613e4e601983612aef565b9150613e5982613e18565b602082019050919050565b60006020820190508181036000830152613e7d81613e41565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b6000613ee0603283612aef565b9150613eeb82613e84565b604082019050919050565b60006020820190508181036000830152613f0f81613ed3565b9050919050565b7f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60008201527f6578697374656e7420746f6b656e000000000000000000000000000000000000602082015250565b6000613f72602e83612aef565b9150613f7d82613f16565b604082019050919050565b60006020820190508181036000830152613fa181613f65565b9050919050565b7f546f6b656e206973206c6f636b65642100000000000000000000000000000000600082015250565b6000613fde601083612aef565b9150613fe982613fa8565b602082019050919050565b6000602082019050818103600083015261400d81613fd1565b9050919050565b600081519050919050565b600082825260208201905092915050565b600061403b82614014565b614045818561401f565b9350614055818560208601612b00565b61405e81612b33565b840191505092915050565b600060808201905061407e6000830187612c34565b61408b6020830186612c34565b6140986040830185612cca565b81810360608301526140aa8184614030565b905095945050505050565b6000815190506140c481612a55565b92915050565b6000602082840312156140e0576140df612a1f565b5b60006140ee848285016140b5565b91505092915050565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b6000614153602f83612aef565b915061415e826140f7565b604082019050919050565b6000602082019050818103600083015261418281614146565b9050919050565b600061419482612b9f565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156141c7576141c6613cf3565b5b600182019050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b600061420c82612b9f565b915061421783612b9f565b925082614227576142266141d2565b5b828204905092915050565b600061423d82612b9f565b915061424883612b9f565b925082614258576142576141d2565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b60006142c8602083612aef565b91506142d382614292565b602082019050919050565b600060208201905081810360008301526142f7816142bb565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b6000614334601c83612aef565b915061433f826142fe565b602082019050919050565b6000602082019050818103600083015261436381614327565b905091905056fea26469706673582212205b47006c68e90e8cef62ee2ca15a248fb7d401d672eacc3b343f9f33e7866c5f64736f6c634300080b0033