[ { "inputs": [ { "internalType": "uint96", "name": "_royaltyFee", "type": "uint96" }, { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "previousOwner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "OwnershipTransferred", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "approve", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "address", "name": "operator", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_to", "type": "address" }, { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "string", "name": "tokenURI_", "type": "string" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "postSetTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "_tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "_salePrice", "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": "string", "name": "baseURI_", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_reciever", "type": "address" }, { "internalType": "uint96", "name": "_royaltyFee", "type": "uint96" } ], "name": "setRoyaltyInfo", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" }, { "internalType": "uint256", "name": "index", "type": "uint256" } ], "name": "tokenOfOwnerByIndex", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b506040516200465b3803806200465b83398181016040528101906200003791906200054a565b818181600090805190602001906200005192919062000405565b5080600190805190602001906200006a92919062000405565b5050506200008d62000081620000a860201b60201c565b620000b060201b60201c565b6200009f33846200017660201b60201c565b50505062000927565b600033905090565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b620001866200019c60201b60201c565b6200019882826200022d60201b60201c565b5050565b620001ac620000a860201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16620001d2620003d160201b60201c565b73ffffffffffffffffffffffffffffffffffffffff16146200022b576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620002229062000659565b60405180910390fd5b565b6200023d620003fb60201b60201c565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156200029e576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000295906200067b565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141562000311576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040162000308906200069d565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000612710905090565b82805462000413906200077d565b90600052602060002090601f01602090048101928262000437576000855562000483565b82601f106200045257805160ff191683800117855562000483565b8280016001018555821562000483579182015b828111156200048257825182559160200191906001019062000465565b5b50905062000492919062000496565b5090565b5b80821115620004b157600081600090555060010162000497565b5090565b6000620004cc620004c684620006e8565b620006bf565b905082815260208101848484011115620004eb57620004ea6200084c565b5b620004f884828562000747565b509392505050565b600082601f83011262000518576200051762000847565b5b81516200052a848260208601620004b5565b91505092915050565b60008151905062000544816200090d565b92915050565b60008060006060848603121562000566576200056562000856565b5b6000620005768682870162000533565b935050602084015167ffffffffffffffff8111156200059a576200059962000851565b5b620005a88682870162000500565b925050604084015167ffffffffffffffff811115620005cc57620005cb62000851565b5b620005da8682870162000500565b9150509250925092565b6000620005f36020836200071e565b915062000600826200086c565b602082019050919050565b60006200061a602a836200071e565b9150620006278262000895565b604082019050919050565b6000620006416019836200071e565b91506200064e82620008e4565b602082019050919050565b600060208201905081810360008301526200067481620005e4565b9050919050565b6000602082019050818103600083015262000696816200060b565b9050919050565b60006020820190508181036000830152620006b88162000632565b9050919050565b6000620006cb620006de565b9050620006d98282620007b3565b919050565b6000604051905090565b600067ffffffffffffffff82111562000706576200070562000818565b5b62000711826200085b565b9050602081019050919050565b600082825260208201905092915050565b60006bffffffffffffffffffffffff82169050919050565b60005b83811015620007675780820151818401526020810190506200074a565b8381111562000777576000848401525b50505050565b600060028204905060018216806200079657607f821691505b60208210811415620007ad57620007ac620007e9565b5b50919050565b620007be826200085b565b810181811067ffffffffffffffff82111715620007e057620007df62000818565b5b80604052505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b62000918816200072f565b81146200092457600080fd5b50565b613d2480620009376000396000f3fe608060405234801561001057600080fd5b50600436106101585760003560e01c806357997081116100c3578063a22cb4651161007c578063a22cb465146103d8578063b88d4fde146103f4578063c87b56dd14610410578063d3fc986414610440578063e985e9c51461045c578063f2fde38b1461048c57610158565b806357997081146103165780636352211e1461033257806370a0823114610362578063715018a6146103925780638da5cb5b1461039c57806395d89b41146103ba57610158565b806323b872dd1161011557806323b872dd146102315780632a55205a1461024d5780632f745c591461027e57806342842e0e146102ae5780634f6ccce7146102ca57806355f804b3146102fa57610158565b806301ffc9a71461015d57806302fa7c471461018d57806306fdde03146101a9578063081812fc146101c7578063095ea7b3146101f757806318160ddd14610213575b600080fd5b61017760048036038101906101729190612a78565b6104a8565b6040516101849190613001565b60405180910390f35b6101a760048036038101906101a29190612a38565b6104ba565b005b6101b16104d0565b6040516101be919061301c565b60405180910390f35b6101e160048036038101906101dc9190612b1b565b610562565b6040516101ee9190612f71565b60405180910390f35b610211600480360381019061020c9190612989565b6105a8565b005b61021b6106c0565b604051610228919061329e565b60405180910390f35b61024b60048036038101906102469190612873565b6106cd565b005b61026760048036038101906102629190612ba4565b61072d565b604051610275929190612fd8565b60405180910390f35b61029860048036038101906102939190612989565b610918565b6040516102a5919061329e565b60405180910390f35b6102c860048036038101906102c39190612873565b6109bd565b005b6102e460048036038101906102df9190612b1b565b6109dd565b6040516102f1919061329e565b60405180910390f35b610314600480360381019061030f9190612ad2565b610a4e565b005b610330600480360381019061032b9190612b48565b610a70565b005b61034c60048036038101906103479190612b1b565b610aec565b6040516103599190612f71565b60405180910390f35b61037c60048036038101906103779190612806565b610b9e565b604051610389919061329e565b60405180910390f35b61039a610c56565b005b6103a4610c6a565b6040516103b19190612f71565b60405180910390f35b6103c2610c94565b6040516103cf919061301c565b60405180910390f35b6103f260048036038101906103ed9190612949565b610d26565b005b61040e600480360381019061040991906128c6565b610d3c565b005b61042a60048036038101906104259190612b1b565b610d9e565b604051610437919061301c565b60405180910390f35b61045a600480360381019061045591906129c9565b610f11565b005b61047660048036038101906104719190612833565b610f32565b6040516104839190613001565b60405180910390f35b6104a660048036038101906104a19190612806565b610fc6565b005b60006104b38261104a565b9050919050565b6104c26110c4565b6104cc8282611142565b5050565b6060600080546104df90613566565b80601f016020809104026020016040519081016040528092919081815260200182805461050b90613566565b80156105585780601f1061052d57610100808354040283529160200191610558565b820191906000526020600020905b81548152906001019060200180831161053b57829003601f168201915b5050505050905090565b600061056d826112d8565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b60006105b382610aec565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff161415610624576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161061b906131fe565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff16610643611323565b73ffffffffffffffffffffffffffffffffffffffff16148061067257506106718161066c611323565b610f32565b5b6106b1576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106a89061313e565b60405180910390fd5b6106bb838361132b565b505050565b6000600880549050905090565b6106de6106d8611323565b826113e4565b61071d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107149061325e565b60405180910390fd5b610728838383611479565b505050565b6000806000600b60008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff1614156108c357600a6040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b60006108cd61170b565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866108f9919061340a565b61090391906133d9565b90508160000151819350935050509250929050565b600061092383610b9e565b8210610964576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161095b9061303e565b60405180910390fd5b600660008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002054905092915050565b6109d883838360405180602001604052806000815250610d3c565b505050565b60006109e76106c0565b8210610a28576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a1f9061321e565b60405180910390fd5b60088281548110610a3c57610a3b6136ff565b5b90600052602060002001549050919050565b610a566110c4565b80600e9080519060200190610a6c929190612605565b5050565b610a786110c4565b610a8182611715565b610ac0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ab79061317e565b60405180910390fd5b80600d60008481526020019081526020016000209080519060200190610ae7929190612605565b505050565b6000806002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415610b95576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b8c906131de565b60405180910390fd5b80915050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415610c0f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610c069061311e565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610c5e6110c4565b610c686000611781565b565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b606060018054610ca390613566565b80601f0160208091040260200160405190810160405280929190818152602001828054610ccf90613566565b8015610d1c5780601f10610cf157610100808354040283529160200191610d1c565b820191906000526020600020905b815481529060010190602001808311610cff57829003601f168201915b5050505050905090565b610d38610d31611323565b8383611847565b5050565b610d4d610d47611323565b836113e4565b610d8c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610d839061325e565b60405180910390fd5b610d98848484846119b4565b50505050565b6060610da982611715565b610de8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ddf906131be565b60405180910390fd5b6000600d60008481526020019081526020016000208054610e0890613566565b80601f0160208091040260200160405190810160405280929190818152602001828054610e3490613566565b8015610e815780601f10610e5657610100808354040283529160200191610e81565b820191906000526020600020905b815481529060010190602001808311610e6457829003601f168201915b505050505090506000610e92611a10565b9050600081511415610ea8578192505050610f0c565b600082511115610edd578082604051602001610ec5929190612f4d565b60405160208183030381529060405292505050610f0c565b80610ee785611aa2565b604051602001610ef8929190612f4d565b604051602081830303815290604052925050505b919050565b610f196110c4565b610f238383611c03565b610f2d8282611ddd565b505050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b610fce6110c4565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561103e576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016110359061307e565b60405180910390fd5b61104781611781565b50565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806110bd57506110bc82611e51565b5b9050919050565b6110cc611323565b73ffffffffffffffffffffffffffffffffffffffff166110ea610c6a565b73ffffffffffffffffffffffffffffffffffffffff1614611140576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016111379061319e565b60405180910390fd5b565b61114a61170b565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff1611156111a8576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161119f9061323e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611218576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161120f9061327e565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600a60008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b6112e181611715565b611320576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611317906131de565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff1661139e83610aec565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b6000806113f083610aec565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061143257506114318185610f32565b5b8061147057508373ffffffffffffffffffffffffffffffffffffffff1661145884610562565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff1661149982610aec565b73ffffffffffffffffffffffffffffffffffffffff16146114ef576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016114e69061309e565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561155f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611556906130de565b60405180910390fd5b61156a838383611ecb565b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546115f09190613464565b925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546116479190613383565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611706838383611edb565b505050565b6000612710905090565b60008073ffffffffffffffffffffffffffffffffffffffff166002600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614159050919050565b6000600c60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600c60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156118b6576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016118ad906130fe565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516119a79190613001565b60405180910390a3505050565b6119bf848484611479565b6119cb84848484611ee0565b611a0a576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611a019061305e565b60405180910390fd5b50505050565b6060600e8054611a1f90613566565b80601f0160208091040260200160405190810160405280929190818152602001828054611a4b90613566565b8015611a985780601f10611a6d57610100808354040283529160200191611a98565b820191906000526020600020905b815481529060010190602001808311611a7b57829003601f168201915b5050505050905090565b60606000821415611aea576040518060400160405280600181526020017f30000000000000000000000000000000000000000000000000000000000000008152509050611bfe565b600082905060005b60008214611b1c578080611b05906135c9565b915050600a82611b1591906133d9565b9150611af2565b60008167ffffffffffffffff811115611b3857611b3761372e565b5b6040519080825280601f01601f191660200182016040528015611b6a5781602001600182028036833780820191505090505b5090505b60008514611bf757600182611b839190613464565b9150600a85611b929190613612565b6030611b9e9190613383565b60f81b818381518110611bb457611bb36136ff565b5b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350600a85611bf091906133d9565b9450611b6e565b8093505050505b919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff161415611c73576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c6a9061315e565b60405180910390fd5b611c7c81611715565b15611cbc576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611cb3906130be565b60405180910390fd5b611cc860008383611ecb565b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254611d189190613383565b92505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611dd960008383611edb565b5050565b611de682611715565b611e25576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e1c9061317e565b60405180910390fd5b80600d60008481526020019081526020016000209080519060200190611e4c929190612605565b505050565b60007f780e9d63000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161480611ec45750611ec382612077565b5b9050919050565b611ed6838383612159565b505050565b505050565b6000611f018473ffffffffffffffffffffffffffffffffffffffff1661226d565b1561206a578373ffffffffffffffffffffffffffffffffffffffff1663150b7a02611f2a611323565b8786866040518563ffffffff1660e01b8152600401611f4c9493929190612f8c565b602060405180830381600087803b158015611f6657600080fd5b505af1925050508015611f9757506040513d601f19601f82011682018060405250810190611f949190612aa5565b60015b61201a573d8060008114611fc7576040519150601f19603f3d011682016040523d82523d6000602084013e611fcc565b606091505b50600081511415612012576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016120099061305e565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19161491505061206f565b600190505b949350505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061214257507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80612152575061215182612290565b5b9050919050565b6121648383836122fa565b600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614156121a7576121a2816122ff565b6121e6565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146121e5576121e48382612348565b5b5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16141561222957612224816124b5565b612268565b8273ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614612267576122668282612586565b5b5b505050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b505050565b6008805490506009600083815260200190815260200160002081905550600881908060018154018082558091505060019003906000526020600020016000909190919091505550565b6000600161235584610b9e565b61235f9190613464565b9050600060076000848152602001908152602001600020549050818114612444576000600660008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002054905080600660008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600084815260200190815260200160002081905550816007600083815260200190815260200160002081905550505b6007600084815260200190815260200160002060009055600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008381526020019081526020016000206000905550505050565b600060016008805490506124c99190613464565b90506000600960008481526020019081526020016000205490506000600883815481106124f9576124f86136ff565b5b90600052602060002001549050806008838154811061251b5761251a6136ff565b5b90600052602060002001819055508160096000838152602001908152602001600020819055506009600085815260200190815260200160002060009055600880548061256a576125696136d0565b5b6001900381819060005260206000200160009055905550505050565b600061259183610b9e565b905081600660008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600083815260200190815260200160002081905550806007600084815260200190815260200160002081905550505050565b82805461261190613566565b90600052602060002090601f016020900481019282612633576000855561267a565b82601f1061264c57805160ff191683800117855561267a565b8280016001018555821561267a579182015b8281111561267957825182559160200191906001019061265e565b5b509050612687919061268b565b5090565b5b808211156126a457600081600090555060010161268c565b5090565b60006126bb6126b6846132de565b6132b9565b9050828152602081018484840111156126d7576126d6613762565b5b6126e2848285613524565b509392505050565b60006126fd6126f88461330f565b6132b9565b90508281526020810184848401111561271957612718613762565b5b612724848285613524565b509392505050565b60008135905061273b81613c7b565b92915050565b60008135905061275081613c92565b92915050565b60008135905061276581613ca9565b92915050565b60008151905061277a81613ca9565b92915050565b600082601f8301126127955761279461375d565b5b81356127a58482602086016126a8565b91505092915050565b600082601f8301126127c3576127c261375d565b5b81356127d38482602086016126ea565b91505092915050565b6000813590506127eb81613cc0565b92915050565b60008135905061280081613cd7565b92915050565b60006020828403121561281c5761281b61376c565b5b600061282a8482850161272c565b91505092915050565b6000806040838503121561284a5761284961376c565b5b60006128588582860161272c565b92505060206128698582860161272c565b9150509250929050565b60008060006060848603121561288c5761288b61376c565b5b600061289a8682870161272c565b93505060206128ab8682870161272c565b92505060406128bc868287016127dc565b9150509250925092565b600080600080608085870312156128e0576128df61376c565b5b60006128ee8782880161272c565b94505060206128ff8782880161272c565b9350506040612910878288016127dc565b925050606085013567ffffffffffffffff81111561293157612930613767565b5b61293d87828801612780565b91505092959194509250565b600080604083850312156129605761295f61376c565b5b600061296e8582860161272c565b925050602061297f85828601612741565b9150509250929050565b600080604083850312156129a05761299f61376c565b5b60006129ae8582860161272c565b92505060206129bf858286016127dc565b9150509250929050565b6000806000606084860312156129e2576129e161376c565b5b60006129f08682870161272c565b9350506020612a01868287016127dc565b925050604084013567ffffffffffffffff811115612a2257612a21613767565b5b612a2e868287016127ae565b9150509250925092565b60008060408385031215612a4f57612a4e61376c565b5b6000612a5d8582860161272c565b9250506020612a6e858286016127f1565b9150509250929050565b600060208284031215612a8e57612a8d61376c565b5b6000612a9c84828501612756565b91505092915050565b600060208284031215612abb57612aba61376c565b5b6000612ac98482850161276b565b91505092915050565b600060208284031215612ae857612ae761376c565b5b600082013567ffffffffffffffff811115612b0657612b05613767565b5b612b12848285016127ae565b91505092915050565b600060208284031215612b3157612b3061376c565b5b6000612b3f848285016127dc565b91505092915050565b60008060408385031215612b5f57612b5e61376c565b5b6000612b6d858286016127dc565b925050602083013567ffffffffffffffff811115612b8e57612b8d613767565b5b612b9a858286016127ae565b9150509250929050565b60008060408385031215612bbb57612bba61376c565b5b6000612bc9858286016127dc565b9250506020612bda858286016127dc565b9150509250929050565b612bed81613498565b82525050565b612bfc816134aa565b82525050565b6000612c0d82613340565b612c178185613356565b9350612c27818560208601613533565b612c3081613771565b840191505092915050565b6000612c468261334b565b612c508185613367565b9350612c60818560208601613533565b612c6981613771565b840191505092915050565b6000612c7f8261334b565b612c898185613378565b9350612c99818560208601613533565b80840191505092915050565b6000612cb2602b83613367565b9150612cbd82613782565b604082019050919050565b6000612cd5603283613367565b9150612ce0826137d1565b604082019050919050565b6000612cf8602683613367565b9150612d0382613820565b604082019050919050565b6000612d1b602583613367565b9150612d268261386f565b604082019050919050565b6000612d3e601c83613367565b9150612d49826138be565b602082019050919050565b6000612d61602483613367565b9150612d6c826138e7565b604082019050919050565b6000612d84601983613367565b9150612d8f82613936565b602082019050919050565b6000612da7602983613367565b9150612db28261395f565b604082019050919050565b6000612dca603e83613367565b9150612dd5826139ae565b604082019050919050565b6000612ded602083613367565b9150612df8826139fd565b602082019050919050565b6000612e10602c83613367565b9150612e1b82613a26565b604082019050919050565b6000612e33602083613367565b9150612e3e82613a75565b602082019050919050565b6000612e56602f83613367565b9150612e6182613a9e565b604082019050919050565b6000612e79601883613367565b9150612e8482613aed565b602082019050919050565b6000612e9c602183613367565b9150612ea782613b16565b604082019050919050565b6000612ebf602c83613367565b9150612eca82613b65565b604082019050919050565b6000612ee2602a83613367565b9150612eed82613bb4565b604082019050919050565b6000612f05602e83613367565b9150612f1082613c03565b604082019050919050565b6000612f28601983613367565b9150612f3382613c52565b602082019050919050565b612f4781613502565b82525050565b6000612f598285612c74565b9150612f658284612c74565b91508190509392505050565b6000602082019050612f866000830184612be4565b92915050565b6000608082019050612fa16000830187612be4565b612fae6020830186612be4565b612fbb6040830185612f3e565b8181036060830152612fcd8184612c02565b905095945050505050565b6000604082019050612fed6000830185612be4565b612ffa6020830184612f3e565b9392505050565b60006020820190506130166000830184612bf3565b92915050565b600060208201905081810360008301526130368184612c3b565b905092915050565b6000602082019050818103600083015261305781612ca5565b9050919050565b6000602082019050818103600083015261307781612cc8565b9050919050565b6000602082019050818103600083015261309781612ceb565b9050919050565b600060208201905081810360008301526130b781612d0e565b9050919050565b600060208201905081810360008301526130d781612d31565b9050919050565b600060208201905081810360008301526130f781612d54565b9050919050565b6000602082019050818103600083015261311781612d77565b9050919050565b6000602082019050818103600083015261313781612d9a565b9050919050565b6000602082019050818103600083015261315781612dbd565b9050919050565b6000602082019050818103600083015261317781612de0565b9050919050565b6000602082019050818103600083015261319781612e03565b9050919050565b600060208201905081810360008301526131b781612e26565b9050919050565b600060208201905081810360008301526131d781612e49565b9050919050565b600060208201905081810360008301526131f781612e6c565b9050919050565b6000602082019050818103600083015261321781612e8f565b9050919050565b6000602082019050818103600083015261323781612eb2565b9050919050565b6000602082019050818103600083015261325781612ed5565b9050919050565b6000602082019050818103600083015261327781612ef8565b9050919050565b6000602082019050818103600083015261329781612f1b565b9050919050565b60006020820190506132b36000830184612f3e565b92915050565b60006132c36132d4565b90506132cf8282613598565b919050565b6000604051905090565b600067ffffffffffffffff8211156132f9576132f861372e565b5b61330282613771565b9050602081019050919050565b600067ffffffffffffffff82111561332a5761332961372e565b5b61333382613771565b9050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600082825260208201905092915050565b600081905092915050565b600061338e82613502565b915061339983613502565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff038211156133ce576133cd613643565b5b828201905092915050565b60006133e482613502565b91506133ef83613502565b9250826133ff576133fe613672565b5b828204905092915050565b600061341582613502565b915061342083613502565b9250817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561345957613458613643565b5b828202905092915050565b600061346f82613502565b915061347a83613502565b92508282101561348d5761348c613643565b5b828203905092915050565b60006134a3826134e2565b9050919050565b60008115159050919050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b60006bffffffffffffffffffffffff82169050919050565b82818337600083830152505050565b60005b83811015613551578082015181840152602081019050613536565b83811115613560576000848401525b50505050565b6000600282049050600182168061357e57607f821691505b60208210811415613592576135916136a1565b5b50919050565b6135a182613771565b810181811067ffffffffffffffff821117156135c0576135bf61372e565b5b80604052505050565b60006135d482613502565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82141561360757613606613643565b5b600182019050919050565b600061361d82613502565b915061362883613502565b92508261363857613637613672565b5b828206905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600080fd5b600080fd5b600080fd5b600080fd5b6000601f19601f8301169050919050565b7f455243373231456e756d657261626c653a206f776e657220696e646578206f7560008201527f74206f6620626f756e6473000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206e6f7220617070726f76656420666f7220616c6c0000602082015250565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b7f4552433732314d657461646174613a2055524920736574206f66206e6f6e657860008201527f697374656e7420746f6b656e0000000000000000000000000000000000000000602082015250565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b7f4552433732314d657461646174613a2055524920717565727920666f72206e6f60008201527f6e6578697374656e7420746f6b656e0000000000000000000000000000000000602082015250565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b7f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60008201527f7574206f6620626f756e64730000000000000000000000000000000000000000602082015250565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206e6f7220617070726f766564000000000000000000000000000000000000602082015250565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b613c8481613498565b8114613c8f57600080fd5b50565b613c9b816134aa565b8114613ca657600080fd5b50565b613cb2816134b6565b8114613cbd57600080fd5b50565b613cc981613502565b8114613cd457600080fd5b50565b613ce08161350c565b8114613ceb57600080fd5b5056fea264697066735822122020752f4f0540dbb011d89ed39deb090bf46ca31fe6b5604c4e4d07ad93cd64c964736f6c634300080700330000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000006000000000000000000000000000000000000000000000000000000000000000a00000000000000000000000000000000000000000000000000000000000000003706f6f00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000003706f6f0000000000000000000000000000000000000000000000000000000000