Loading
[ { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AlreadyExists", "type": "error" }, { "inputs": [], "name": "InvalidOwner", "type": "error" }, { "inputs": [], "name": "InvalidRecipient", "type": "error" }, { "inputs": [], "name": "InvalidSender", "type": "error" }, { "inputs": [], "name": "NotFound", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "inputs": [], "name": "UnsafeRecipient", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "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": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": false, "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "ERC20Transfer", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "spender", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "id", "type": "uint256" } ], "name": "ERC721Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "user", "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": "id", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "allowance", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "spender", "type": "address" }, { "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "approve", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "balanceOf", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "baseTokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "dataURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "decimals", "outputs": [ { "internalType": "uint8", "name": "", "type": "uint8" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "name": "getApproved", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "isApprovedForAll", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "minted", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "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": "id", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "revokeOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "id", "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": "id", "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": "_dataURI", "type": "string" } ], "name": "setDataURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_name", "type": "string" }, { "internalType": "string", "name": "_symbol", "type": "string" } ], "name": "setNameSymbol", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_tokenURI", "type": "string" } ], "name": "setTokenURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "target", "type": "address" }, { "internalType": "bool", "name": "state", "type": "bool" } ], "name": "setWhitelist", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "id", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "amount", "type": "uint256" } ], "name": "transfer", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "amountOrId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_owner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "whitelist", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" } ]
60c06040523480156200001157600080fd5b50604051620046ea380380620046ea8339818101604052810190620000379190620002cb565b6040518060400160405280600981526020017f44473820546f6b656e00000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f444738000000000000000000000000000000000000000000000000000000000081525060126305f5e1008480600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160362000113576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3508460019081620001c0919062000577565b508360029081620001d2919062000577565b508260ff1660808160ff1681525050608051600a620001f29190620007ee565b82620001ff91906200083f565b60a0818152505050505050506a52b7d2dcc80cd2e4000000600460008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002081905550506200088a565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002938262000266565b9050919050565b620002a58162000286565b8114620002b157600080fd5b50565b600081519050620002c5816200029a565b92915050565b600060208284031215620002e457620002e362000261565b5b6000620002f484828501620002b4565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200037f57607f821691505b60208210810362000395576200039462000337565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003ff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82620003c0565b6200040b8683620003c0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b600062000458620004526200044c8462000423565b6200042d565b62000423565b9050919050565b6000819050919050565b620004748362000437565b6200048c62000483826200045f565b848454620003cd565b825550505050565b600090565b620004a362000494565b620004b081848462000469565b505050565b5b81811015620004d857620004cc60008262000499565b600181019050620004b6565b5050565b601f8211156200052757620004f1816200039b565b620004fc84620003b0565b810160208510156200050c578190505b620005246200051b85620003b0565b830182620004b5565b50505b505050565b600082821c905092915050565b60006200054c600019846008026200052c565b1980831691505092915050565b600062000567838362000539565b9150826002028217905092915050565b6200058282620002fd565b67ffffffffffffffff8111156200059e576200059d62000308565b5b620005aa825462000366565b620005b7828285620004dc565b600060209050601f831160018114620005ef5760008415620005da578287015190505b620005e6858262000559565b86555062000656565b601f198416620005ff866200039b565b60005b82811015620006295784890151825560018201915060208501945060208101905062000602565b8683101562000649578489015162000645601f89168262000539565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60008160011c9050919050565b6000808291508390505b6001851115620006ec57808604811115620006c457620006c36200065e565b5b6001851615620006d45780820291505b8081029050620006e4856200068d565b9450620006a4565b94509492505050565b600082620007075760019050620007da565b81620007175760009050620007da565b81600181146200073057600281146200073b5762000771565b6001915050620007da565b60ff84111562000750576200074f6200065e565b5b8360020a9150848211156200076a57620007696200065e565b5b50620007da565b5060208310610133831016604e8410600b8410161715620007ab5782820a905083811115620007a557620007a46200065e565b5b620007da565b620007ba84848460016200069a565b92509050818404811115620007d457620007d36200065e565b5b81810290505b9392505050565b600060ff82169050919050565b6000620007fb8262000423565b91506200080883620007e1565b9250620008377fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484620006f5565b905092915050565b60006200084c8262000423565b9150620008598362000423565b9250828202620008698162000423565b915082820484148315176200088357620008826200065e565b5b5092915050565b60805160a051613e33620008b7600039600061091001526000818161132601526121b80152613e336000f3fe608060405234801561001057600080fd5b50600436106101a95760003560e01c806370a08231116100f9578063c87b56dd11610097578063e0df5b6f11610071578063e0df5b6f146104ce578063e985e9c5146104ea578063f28ca1dd1461051a578063f2fde38b14610538576101a9565b8063c87b56dd14610450578063d547cfb714610480578063dd62ed3e1461049e576101a9565b80639b19251a116100d35780639b19251a146103b8578063a22cb465146103e8578063a9059cbb14610404578063b88d4fde14610434576101a9565b806370a082311461034c5780638da5cb5b1461037c57806395d89b411461039a576101a9565b80632b968958116101665780634f02c420116101405780634f02c420146102c6578063504334c2146102e457806353d6fd59146103005780636352211e1461031c576101a9565b80632b96895814610282578063313ce5671461028c57806342842e0e146102aa576101a9565b806306fdde03146101ae578063081812fc146101cc578063095ea7b3146101fc57806318160ddd1461022c57806318d217c31461024a57806323b872dd14610266575b600080fd5b6101b6610554565b6040516101c39190612d1a565b60405180910390f35b6101e660048036038101906101e19190612d86565b6105e2565b6040516101f39190612df4565b60405180910390f35b61021660048036038101906102119190612e3b565b610615565b6040516102239190612e96565b60405180910390f35b61023461090e565b6040516102419190612ec0565b60405180910390f35b610264600480360381019061025f9190613010565b610932565b005b610280600480360381019061027b9190613059565b6109ca565b005b61028a611201565b005b610294611324565b6040516102a191906130c8565b60405180910390f35b6102c460048036038101906102bf9190613059565b611348565b005b6102ce61147b565b6040516102db9190612ec0565b60405180910390f35b6102fe60048036038101906102f991906130e3565b611481565b005b61031a60048036038101906103159190613187565b611514565b005b61033660048036038101906103319190612d86565b6115f4565b6040516103439190612df4565b60405180910390f35b610366600480360381019061036191906131c7565b611697565b6040516103739190612ec0565b60405180910390f35b6103846116af565b6040516103919190612df4565b60405180910390f35b6103a26116d3565b6040516103af9190612d1a565b60405180910390f35b6103d260048036038101906103cd91906131c7565b611761565b6040516103df9190612e96565b60405180910390f35b61040260048036038101906103fd9190613187565b611781565b005b61041e60048036038101906104199190612e3b565b61187e565b60405161042b9190612e96565b60405180910390f35b61044e60048036038101906104499190613254565b611893565b005b61046a60048036038101906104659190612d86565b6119cc565b6040516104779190612d1a565b60405180910390f35b610488611e24565b6040516104959190612d1a565b60405180910390f35b6104b860048036038101906104b391906132dc565b611eb2565b6040516104c59190612ec0565b60405180910390f35b6104e860048036038101906104e39190613010565b611ed7565b005b61050460048036038101906104ff91906132dc565b611f6f565b6040516105119190612e96565b60405180910390f35b610522611f9e565b60405161052f9190612d1a565b60405180910390f35b610552600480360381019061054d91906131c7565b61202c565b005b600180546105619061334b565b80601f016020809104026020016040519081016040528092919081815260200182805461058d9061334b565b80156105da5780601f106105af576101008083540402835291602001916105da565b820191906000526020600020905b8154815290600101906020018083116105bd57829003601f168201915b505050505081565b60066020528060005260406000206000915054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060035482111580156106295750600082115b1561081d5760006008600084815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16141580156107295750600760008273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b15610760576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b836006600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258560405161080f9190612ec0565b60405180910390a350610904565b81600560003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055508273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925846040516108fb9190612ec0565b60405180910390a35b6001905092915050565b7f000000000000000000000000000000000000000000000000000000000000000081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146109b7576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600c90816109c69190613528565b5050565b60035481116110b9576008600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614610a6b576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ad1576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614158015610b945750600760008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16155b8015610bff57506006600082815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614155b15610c36576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b610c3e6121b4565b600460008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206000828254610c8c9190613629565b92505081905550610c9b6121b4565b600460008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055506006600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556000600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600960008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050610dff9190613629565b81548110610e1057610e0f61365d565b5b9060005260206000200154905080600960008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600a60008581526020019081526020016000205481548110610e8257610e8161365d565b5b9060005260206000200181905550600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480610edf57610ede61368c565b5b60019003818190600052602060002001600090559055600a600083815260200190815260200160002054600a600083815260200190815260200160002081905550600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208290806001815401808255809150506001900390600052602060002001600090919091909150556001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050610fd59190613629565b600a600084815260200190815260200160002081905550818373ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a48273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e03148761109e6121b4565b6040516110ab9190612ec0565b60405180910390a3506111fc565b6000600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff81146111ee57818161116d9190613629565b600560008673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020819055505b6111f98484846121e8565b50505b505050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611286576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60008060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a3565b7f000000000000000000000000000000000000000000000000000000000000000081565b6113538383836109ca565b60008273ffffffffffffffffffffffffffffffffffffffff163b1415801561143f575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168273ffffffffffffffffffffffffffffffffffffffff1663150b7a023386856040518463ffffffff1660e01b81526004016113da939291906136f2565b6020604051808303816000875af11580156113f9573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061141d9190613794565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b15611476576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b505050565b60035481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611506576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6115108282612553565b5050565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611599576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600b60008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055505050565b60006008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603611692576040517fc5723b5100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b919050565b60046020528060005260406000206000915090505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600280546116e09061334b565b80601f016020809104026020016040519081016040528092919081815260200182805461170c9061334b565b80156117595780601f1061172e57610100808354040283529160200191611759565b820191906000526020600020905b81548152906001019060200180831161173c57829003601f168201915b505050505081565b600b6020528060005260406000206000915054906101000a900460ff1681565b80600760003373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118729190612e96565b60405180910390a35050565b600061188b3384846121e8565b905092915050565b61189e8585856109ca565b60008473ffffffffffffffffffffffffffffffffffffffff163b1415801561198e575063150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff19168473ffffffffffffffffffffffffffffffffffffffff1663150b7a0233888787876040518663ffffffff1660e01b81526004016119299594939291906137ee565b6020604051808303816000875af1158015611948573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061196c9190613794565b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614155b156119c5576040517f3da6393100000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b5050505050565b60606000600d80546119dd9061334b565b90501115611a1757600d6119f083612577565b604051602001611a019291906138fb565b6040516020818303038152906040529050611e1f565b600082604051602001611a2a9190613940565b6040516020818303038152906040528051906020012060f81c905060608060648360ff1611611ac8576040518060400160405280600581526020017f312e67696600000000000000000000000000000000000000000000000000000081525091506040518060400160405280600581526020017f477265656e0000000000000000000000000000000000000000000000000000008152509050611cc8565b60a08360ff1611611b48576040518060400160405280600581526020017f322e67696600000000000000000000000000000000000000000000000000000081525091506040518060400160405280600481526020017f426c7565000000000000000000000000000000000000000000000000000000008152509050611cc7565b60d28360ff1611611bc8576040518060400160405280600581526020017f332e67696600000000000000000000000000000000000000000000000000000081525091506040518060400160405280600681526020017f507572706c6500000000000000000000000000000000000000000000000000008152509050611cc6565b60f08360ff1611611c48576040518060400160405280600581526020017f342e67696600000000000000000000000000000000000000000000000000000081525091506040518060400160405280600681526020017f4f72616e676500000000000000000000000000000000000000000000000000008152509050611cc5565b60ff8360ff1611611cc4576040518060400160405280600581526020017f352e67696600000000000000000000000000000000000000000000000000000081525091506040518060400160405280600381526020017f526564000000000000000000000000000000000000000000000000000000000081525090505b5b5b5b5b6000611cd386612577565b604051602001611ce39190613981565b604051602081830303815290604052604051602001611d029190613ab1565b604051602081830303815290604052600c84604051602001611d259291906138fb565b604051602081830303815290604052604051602001611d45929190613ad3565b6040516020818303038152906040529050600082604051602001611d699190613b69565b604051602081830303815290604052905060006040518060400160405280600481526020017f227d5d7d0000000000000000000000000000000000000000000000000000000081525090508282604051602001611dc7929190613ad3565b60405160208183030381529060405281604051602001611de8929190613ad3565b604051602081830303815290604052604051602001611e079190613bb1565b60405160208183030381529060405296505050505050505b919050565b600d8054611e319061334b565b80601f0160208091040260200160405190810160405280929190818152602001828054611e5d9061334b565b8015611eaa5780601f10611e7f57610100808354040283529160200191611eaa565b820191906000526020600020905b815481529060010190602001808311611e8d57829003601f168201915b505050505081565b6005602052816000526040600020602052806000526040600020600091509150505481565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614611f5c576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b80600d9081611f6b9190613528565b5050565b60076020528160005260406000206020528060005260406000206000915091509054906101000a900460ff1681565b600c8054611fab9061334b565b80601f0160208091040260200160405190810160405280929190818152602001828054611fd79061334b565b80156120245780601f10611ff957610100808354040283529160200191612024565b820191906000526020600020905b81548152906001019060200180831161200757829003601f168201915b505050505081565b60008054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146120b1576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612117576040517f49e27cff00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a350565b60007f0000000000000000000000000000000000000000000000000000000000000000600a6121e39190613d0a565b905090565b6000806121f36121b4565b90506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000205490506000600460008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002054905084600460008973ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282546122cc9190613629565b9250508190555084600460008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550600b60008873ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff1661240057600083600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546123be9190613d84565b84846123ca9190613d84565b6123d49190613629565b905060005b818110156123fd576123ea89612645565b80806123f590613db5565b9150506123d9565b50505b600b60008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff166124e0576000838261245f9190613d84565b84600460008a73ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020546124aa9190613d84565b6124b49190613629565b905060005b818110156124dd576124ca886128a1565b80806124d590613db5565b9150506124b9565b50505b8573ffffffffffffffffffffffffffffffffffffffff168773ffffffffffffffffffffffffffffffffffffffff167fe59fdd36d0d223c0c7d996db7ad796880f45e1936cb0bb7ac102e7082e0314878760405161253d9190612ec0565b60405180910390a3600193505050509392505050565b81600190816125629190613528565b5080600290816125729190613528565b505050565b60606000600161258684612b37565b01905060008167ffffffffffffffff8111156125a5576125a4612ee5565b5b6040519080825280601f01601f1916602001820160405280156125d75781602001600182028036833780820191505090505b509050600082602001820190505b60011561263a578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161262e5761262d613d55565b5b049450600085036125e5575b819350505050919050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16036126ab576040517fddb5de5e00000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000206001600960008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054905061273b9190613629565b8154811061274c5761274b61365d565b5b90600052602060002001549050600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208054806127a8576127a761368c565b5b60019003818190600052602060002001600090559055600a6000828152602001908152602001600020600090556008600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556006600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff021916905580600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603612907576040517f9c8d2cd200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60036000815480929190600101919050555060006003549050600073ffffffffffffffffffffffffffffffffffffffff166008600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16146129b9576040517f23369fa600000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b816008600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550600960008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020019081526020016000208190806001815401808255809150506001900390600052602060002001600090919091909150556001600960008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002080549050612ac09190613629565b600a600083815260200190815260200160002081905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a45050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612b95577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381612b8b57612b8a613d55565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612bd2576d04ee2d6d415b85acef81000000008381612bc857612bc7613d55565b5b0492506020810190505b662386f26fc100008310612c0157662386f26fc100008381612bf757612bf6613d55565b5b0492506010810190505b6305f5e1008310612c2a576305f5e1008381612c2057612c1f613d55565b5b0492506008810190505b6127108310612c4f576127108381612c4557612c44613d55565b5b0492506004810190505b60648310612c725760648381612c6857612c67613d55565b5b0492506002810190505b600a8310612c81576001810190505b80915050919050565b600081519050919050565b600082825260208201905092915050565b60005b83811015612cc4578082015181840152602081019050612ca9565b60008484015250505050565b6000601f19601f8301169050919050565b6000612cec82612c8a565b612cf68185612c95565b9350612d06818560208601612ca6565b612d0f81612cd0565b840191505092915050565b60006020820190508181036000830152612d348184612ce1565b905092915050565b6000604051905090565b600080fd5b600080fd5b6000819050919050565b612d6381612d50565b8114612d6e57600080fd5b50565b600081359050612d8081612d5a565b92915050565b600060208284031215612d9c57612d9b612d46565b5b6000612daa84828501612d71565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000612dde82612db3565b9050919050565b612dee81612dd3565b82525050565b6000602082019050612e096000830184612de5565b92915050565b612e1881612dd3565b8114612e2357600080fd5b50565b600081359050612e3581612e0f565b92915050565b60008060408385031215612e5257612e51612d46565b5b6000612e6085828601612e26565b9250506020612e7185828601612d71565b9150509250929050565b60008115159050919050565b612e9081612e7b565b82525050565b6000602082019050612eab6000830184612e87565b92915050565b612eba81612d50565b82525050565b6000602082019050612ed56000830184612eb1565b92915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612f1d82612cd0565b810181811067ffffffffffffffff82111715612f3c57612f3b612ee5565b5b80604052505050565b6000612f4f612d3c565b9050612f5b8282612f14565b919050565b600067ffffffffffffffff821115612f7b57612f7a612ee5565b5b612f8482612cd0565b9050602081019050919050565b82818337600083830152505050565b6000612fb3612fae84612f60565b612f45565b905082815260208101848484011115612fcf57612fce612ee0565b5b612fda848285612f91565b509392505050565b600082601f830112612ff757612ff6612edb565b5b8135613007848260208601612fa0565b91505092915050565b60006020828403121561302657613025612d46565b5b600082013567ffffffffffffffff81111561304457613043612d4b565b5b61305084828501612fe2565b91505092915050565b60008060006060848603121561307257613071612d46565b5b600061308086828701612e26565b935050602061309186828701612e26565b92505060406130a286828701612d71565b9150509250925092565b600060ff82169050919050565b6130c2816130ac565b82525050565b60006020820190506130dd60008301846130b9565b92915050565b600080604083850312156130fa576130f9612d46565b5b600083013567ffffffffffffffff81111561311857613117612d4b565b5b61312485828601612fe2565b925050602083013567ffffffffffffffff81111561314557613144612d4b565b5b61315185828601612fe2565b9150509250929050565b61316481612e7b565b811461316f57600080fd5b50565b6000813590506131818161315b565b92915050565b6000806040838503121561319e5761319d612d46565b5b60006131ac85828601612e26565b92505060206131bd85828601613172565b9150509250929050565b6000602082840312156131dd576131dc612d46565b5b60006131eb84828501612e26565b91505092915050565b600080fd5b600080fd5b60008083601f84011261321457613213612edb565b5b8235905067ffffffffffffffff811115613231576132306131f4565b5b60208301915083600182028301111561324d5761324c6131f9565b5b9250929050565b6000806000806000608086880312156132705761326f612d46565b5b600061327e88828901612e26565b955050602061328f88828901612e26565b94505060406132a088828901612d71565b935050606086013567ffffffffffffffff8111156132c1576132c0612d4b565b5b6132cd888289016131fe565b92509250509295509295909350565b600080604083850312156132f3576132f2612d46565b5b600061330185828601612e26565b925050602061331285828601612e26565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b6000600282049050600182168061336357607f821691505b6020821081036133765761337561331c565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026133de7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff826133a1565b6133e886836133a1565b95508019841693508086168417925050509392505050565b6000819050919050565b600061342561342061341b84612d50565b613400565b612d50565b9050919050565b6000819050919050565b61343f8361340a565b61345361344b8261342c565b8484546133ae565b825550505050565b600090565b61346861345b565b613473818484613436565b505050565b5b818110156134975761348c600082613460565b600181019050613479565b5050565b601f8211156134dc576134ad8161337c565b6134b684613391565b810160208510156134c5578190505b6134d96134d185613391565b830182613478565b50505b505050565b600082821c905092915050565b60006134ff600019846008026134e1565b1980831691505092915050565b600061351883836134ee565b9150826002028217905092915050565b61353182612c8a565b67ffffffffffffffff81111561354a57613549612ee5565b5b613554825461334b565b61355f82828561349b565b600060209050601f8311600181146135925760008415613580578287015190505b61358a858261350c565b8655506135f2565b601f1984166135a08661337c565b60005b828110156135c8578489015182556001820191506020850194506020810190506135a3565b868310156135e557848901516135e1601f8916826134ee565b8355505b6001600288020188555050505b505050505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b600061363482612d50565b915061363f83612d50565b9250828203905081811115613657576136566135fa565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b600082825260208201905092915050565b50565b60006136dc6000836136bb565b91506136e7826136cc565b600082019050919050565b60006080820190506137076000830186612de5565b6137146020830185612de5565b6137216040830184612eb1565b8181036060830152613732816136cf565b9050949350505050565b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6137718161373c565b811461377c57600080fd5b50565b60008151905061378e81613768565b92915050565b6000602082840312156137aa576137a9612d46565b5b60006137b88482850161377f565b91505092915050565b60006137cd83856136bb565b93506137da838584612f91565b6137e383612cd0565b840190509392505050565b60006080820190506138036000830188612de5565b6138106020830187612de5565b61381d6040830186612eb1565b81810360608301526138308184866137c1565b90509695505050505050565b600081905092915050565b600081546138548161334b565b61385e818661383c565b94506001821660008114613879576001811461388e576138c1565b60ff19831686528115158202860193506138c1565b6138978561337c565b60005b838110156138b95781548189015260018201915060208101905061389a565b838801955050505b50505092915050565b60006138d582612c8a565b6138df818561383c565b93506138ef818560208601612ca6565b80840191505092915050565b60006139078285613847565b915061391382846138ca565b91508190509392505050565b6000819050919050565b61393a61393582612d50565b61391f565b82525050565b600061394c8284613929565b60208201915081905092915050565b7f7b226e616d65223a202244473820230000000000000000000000000000000000815250565b600061398c8261395b565b600f8201915061399c82846138ca565b915081905092915050565b7f222c226465736372697074696f6e223a22412073796d626f6c206f662074686560008201527f20706f77657266756c20706172746e657273686970206265747765656e20444760208201527f2050756220616e642041382c206372656174696e67206120676174657761792060408201527f746f2074686520646563656e7472616c697a656420657261202d20576562332e60608201527f222c2265787465726e616c5f75726c223a2268747470733a2f2f64672e70756260808201527f222c22696d616765223a2200000000000000000000000000000000000000000060a082015250565b6000613a9b60ab8361383c565b9150613aa6826139a7565b60ab82019050919050565b6000613abd82846138ca565b9150613ac882613a8e565b915081905092915050565b6000613adf82856138ca565b9150613aeb82846138ca565b91508190509392505050565b7f222c2261747472696275746573223a5b7b2274726169745f74797065223a224360008201527f6f6c6f72222c2276616c7565223a220000000000000000000000000000000000602082015250565b6000613b53602f8361383c565b9150613b5e82613af7565b602f82019050919050565b6000613b7482613b46565b9150613b8082846138ca565b915081905092915050565b7f646174613a6170706c69636174696f6e2f6a736f6e3b757466382c0000000000815250565b6000613bbc82613b8b565b601b82019150613bcc82846138ca565b915081905092915050565b60008160011c9050919050565b6000808291508390505b6001851115613c2e57808604811115613c0a57613c096135fa565b5b6001851615613c195780820291505b8081029050613c2785613bd7565b9450613bee565b94509492505050565b600082613c475760019050613d03565b81613c555760009050613d03565b8160018114613c6b5760028114613c7557613ca4565b6001915050613d03565b60ff841115613c8757613c866135fa565b5b8360020a915084821115613c9e57613c9d6135fa565b5b50613d03565b5060208310610133831016604e8410600b8410161715613cd95782820a905083811115613cd457613cd36135fa565b5b613d03565b613ce68484846001613be4565b92509050818404811115613cfd57613cfc6135fa565b5b81810290505b9392505050565b6000613d1582612d50565b9150613d20836130ac565b9250613d4d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8484613c37565b905092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000613d8f82612d50565b9150613d9a83612d50565b925082613daa57613da9613d55565b5b828204905092915050565b6000613dc082612d50565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203613df257613df16135fa565b5b60018201905091905056fea26469706673582212209caa85f37314951301a91470e0e09cfd94464f017d153e9e16f5ca934298de3e64736f6c63430008140033000000000000000000000000d7fc673f93f99e93643cc96258b9863d7954771f