[ { "inputs": [], "name": "OutOfBounds", "type": "error" }, { "inputs": [], "name": "Unauthorized", "type": "error" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "approved", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Approval", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "owner", "type": "address" }, { "indexed": true, "internalType": "address", "name": "operator", "type": "address" }, { "indexed": false, "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "ApprovalForAll", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "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": [], "name": "baseURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "uint16", "name": "_amt", "type": "uint16" }, { "internalType": "address", "name": "_receiver", "type": "address" } ], "name": "mint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "minter", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "nextTokenId", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "owner", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ownerOf", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "renounceOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "revealAddress", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "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": "_adr", "type": "address" } ], "name": "setMinter", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "_adr", "type": "address" } ], "name": "setRevealAddress", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator", "type": "uint96" } ], "name": "setRoyalty", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setUnrevealedURI", "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": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "newOwner", "type": "address" } ], "name": "transferOwnership", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [], "name": "unrevealedUri", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" } ]
60806040526000600c553480156200001657600080fd5b506040518060400160405280601881526020017f5468697273742054726170205761696675732047656e203200000000000000008152506040518060400160405280600681526020017f5761696675320000000000000000000000000000000000000000000000000000815250816000908162000094919062000417565b508060019081620000a6919062000417565b505050620000c9620000bd620000cf60201b60201c565b620000d760201b60201c565b620004fe565b600033905090565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200021f57607f821691505b602082108103620002355762000234620001d7565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b6000600883026200029f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000260565b620002ab868362000260565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b6000620002f8620002f2620002ec84620002c3565b620002cd565b620002c3565b9050919050565b6000819050919050565b6200031483620002d7565b6200032c6200032382620002ff565b8484546200026d565b825550505050565b600090565b6200034362000334565b6200035081848462000309565b505050565b5b8181101562000378576200036c60008262000339565b60018101905062000356565b5050565b601f821115620003c75762000391816200023b565b6200039c8462000250565b81016020851015620003ac578190505b620003c4620003bb8562000250565b83018262000355565b50505b505050565b600082821c905092915050565b6000620003ec60001984600802620003cc565b1980831691505092915050565b6000620004078383620003d9565b9150826002028217905092915050565b62000422826200019d565b67ffffffffffffffff8111156200043e576200043d620001a8565b5b6200044a825462000206565b620004578282856200037c565b600060209050601f8311600181146200048f57600084156200047a578287015190505b620004868582620003f9565b865550620004f6565b601f1984166200049f866200023b565b60005b82811015620004c957848901518255600182019150602085019450602081019050620004a2565b86831015620004e95784890151620004e5601f891682620003d9565b8355505b6001600288020188555050505b505050505050565b613a28806200050e6000396000f3fe608060405234801561001057600080fd5b50600436106101c45760003560e01c80638da5cb5b116100f9578063c02c1bcd11610097578063ec618b6c11610071578063ec618b6c146104f4578063f2fde38b14610510578063fca3b5aa1461052c578063fe2c7fee14610548576101c4565b8063c02c1bcd14610476578063c87b56dd14610494578063e985e9c5146104c4576101c4565b80639c205513116100d35780639c20551314610404578063a22cb46514610420578063a293996c1461043c578063b88d4fde1461045a576101c4565b80638da5cb5b146103ac5780638f2fc60b146103ca57806395d89b41146103e6576101c4565b806342842e0e116101665780636c0360eb116101405780636c0360eb1461033657806370a0823114610354578063715018a61461038457806375794a3c1461038e576101c4565b806342842e0e146102ce57806355f804b3146102ea5780636352211e14610306576101c4565b8063081812fc116101a2578063081812fc14610235578063095ea7b31461026557806323b872dd146102815780632a55205a1461029d576101c4565b806301ffc9a7146101c957806306fdde03146101f95780630754617214610217575b600080fd5b6101e360048036038101906101de91906124ba565b610564565b6040516101f09190612502565b60405180910390f35b610201610586565b60405161020e91906125ad565b60405180910390f35b61021f610618565b60405161022c9190612610565b60405180910390f35b61024f600480360381019061024a9190612661565b61063e565b60405161025c9190612610565b60405180910390f35b61027f600480360381019061027a91906126ba565b610684565b005b61029b600480360381019061029691906126fa565b61079b565b005b6102b760048036038101906102b2919061274d565b6107fb565b6040516102c592919061279c565b60405180910390f35b6102e860048036038101906102e391906126fa565b6109e5565b005b61030460048036038101906102ff919061282a565b610a05565b005b610320600480360381019061031b9190612661565b610a23565b60405161032d9190612610565b60405180910390f35b61033e610aa9565b60405161034b91906125ad565b60405180910390f35b61036e60048036038101906103699190612877565b610b37565b60405161037b91906128a4565b60405180910390f35b61038c610bee565b005b610396610c02565b6040516103a391906128a4565b60405180910390f35b6103b4610c08565b6040516103c19190612610565b60405180910390f35b6103e460048036038101906103df9190612903565b610c32565b005b6103ee610c48565b6040516103fb91906125ad565b60405180910390f35b61041e6004803603810190610419919061297d565b610cda565b005b61043a600480360381019061043591906129e9565b610db0565b005b610444610dc6565b6040516104519190612610565b60405180910390f35b610474600480360381019061046f9190612b59565b610dec565b005b61047e610e4e565b60405161048b91906125ad565b60405180910390f35b6104ae60048036038101906104a99190612661565b610edc565b6040516104bb91906125ad565b60405180910390f35b6104de60048036038101906104d99190612bdc565b611104565b6040516104eb9190612502565b60405180910390f35b61050e60048036038101906105099190612877565b611198565b005b61052a60048036038101906105259190612877565b6111e4565b005b61054660048036038101906105419190612877565b611267565b005b610562600480360381019061055d919061282a565b6112b3565b005b600061056f826112d1565b8061057f575061057e826113b3565b5b9050919050565b60606000805461059590612c4b565b80601f01602080910402602001604051908101604052809291908181526020018280546105c190612c4b565b801561060e5780601f106105e35761010080835404028352916020019161060e565b820191906000526020600020905b8154815290600101906020018083116105f157829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b60006106498261142d565b6004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600061068f82610a23565b90508073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16036106ff576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016106f690612cee565b60405180910390fd5b8073ffffffffffffffffffffffffffffffffffffffff1661071e611478565b73ffffffffffffffffffffffffffffffffffffffff16148061074d575061074c81610747611478565b611104565b5b61078c576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161078390612d80565b60405180910390fd5b6107968383611480565b505050565b6107ac6107a6611478565b82611539565b6107eb576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016107e290612e12565b60405180910390fd5b6107f68383836115ce565b505050565b6000806000600860008681526020019081526020016000206040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff16815250509050600073ffffffffffffffffffffffffffffffffffffffff16816000015173ffffffffffffffffffffffffffffffffffffffff16036109905760076040518060400160405290816000820160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1681526020016000820160149054906101000a90046bffffffffffffffffffffffff166bffffffffffffffffffffffff166bffffffffffffffffffffffff168152505090505b600061099a6118c7565b6bffffffffffffffffffffffff1682602001516bffffffffffffffffffffffff16866109c69190612e61565b6109d09190612ed2565b90508160000151819350935050509250929050565b610a0083838360405180602001604052806000815250610dec565b505050565b610a0d6118d1565b8181600b9182610a1e9291906130ba565b505050565b600080610a2f8361194f565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610aa0576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610a97906131d6565b60405180910390fd5b80915050919050565b600b8054610ab690612c4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610ae290612c4b565b8015610b2f5780601f10610b0457610100808354040283529160200191610b2f565b820191906000526020600020905b815481529060010190602001808311610b1257829003601f168201915b505050505081565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603610ba7576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b9e90613268565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b610bf66118d1565b610c00600061198c565b565b600c5481565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b610c3a6118d1565b610c448282611a52565b5050565b606060018054610c5790612c4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610c8390612c4b565b8015610cd05780601f10610ca557610100808354040283529160200191610cd0565b820191906000526020600020905b815481529060010190602001808311610cb357829003601f168201915b5050505050905090565b600d60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610d61576040517f82b4290000000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b60005b8261ffff168161ffff161015610dab576000600c549050610d858382611be7565b600c60008154809291906001019190505550508080610da390613288565b915050610d64565b505050565b610dc2610dbb611478565b8383611e04565b5050565b600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b610dfd610df7611478565b83611539565b610e3c576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610e3390612e12565b60405180910390fd5b610e4884848484611f70565b50505050565b60098054610e5b90612c4b565b80601f0160208091040260200160405190810160405280929190818152602001828054610e8790612c4b565b8015610ed45780601f10610ea957610100808354040283529160200191610ed4565b820191906000526020600020905b815481529060010190602001808311610eb757829003601f168201915b505050505081565b6060600c548210610f19576040517fb4120f1400000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6000600a60009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1690508073ffffffffffffffffffffffffffffffffffffffff1662e0b04e846040518263ffffffff1660e01b8152600401610f7891906128a4565b602060405180830381865afa158015610f95573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610fb991906132c7565b156110705760008173ffffffffffffffffffffffffffffffffffffffff1663cfedd61b856040518263ffffffff1660e01b8152600401610ff991906128a4565b602060405180830381865afa158015611016573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061103a9190613309565b9050600b61104782611fcc565b6040516020016110589291906133f5565b604051602081830303815290604052925050506110ff565b6009805461107d90612c4b565b80601f01602080910402602001604051908101604052809291908181526020018280546110a990612c4b565b80156110f65780601f106110cb576101008083540402835291602001916110f6565b820191906000526020600020905b8154815290600101906020018083116110d957829003601f168201915b50505050509150505b919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6111a06118d1565b80600a60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6111ec6118d1565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361125b576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016112529061348b565b60405180910390fd5b6112648161198c565b50565b61126f6118d1565b80600d60006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050565b6112bb6118d1565b8181600991826112cc9291906130ba565b505050565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061139c57507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b806113ac57506113ab8261209a565b5b9050919050565b60007f2a55205a000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806114265750611425826112d1565b5b9050919050565b61143681612104565b611475576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161146c906131d6565b60405180910390fd5b50565b600033905090565b816004600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff166114f383610a23565b73ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45050565b60008061154583610a23565b90508073ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff16148061158757506115868185611104565b5b806115c557508373ffffffffffffffffffffffffffffffffffffffff166115ad8461063e565b73ffffffffffffffffffffffffffffffffffffffff16145b91505092915050565b8273ffffffffffffffffffffffffffffffffffffffff166115ee82610a23565b73ffffffffffffffffffffffffffffffffffffffff1614611644576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161163b9061351d565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036116b3576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016116aa906135af565b60405180910390fd5b6116c08383836001612145565b8273ffffffffffffffffffffffffffffffffffffffff166116e082610a23565b73ffffffffffffffffffffffffffffffffffffffff1614611736576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161172d9061351d565b60405180910390fd5b6004600082815260200190815260200160002060006101000a81549073ffffffffffffffffffffffffffffffffffffffff02191690556001600360008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055506001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a46118c2838383600161214b565b505050565b6000612710905090565b6118d9611478565b73ffffffffffffffffffffffffffffffffffffffff166118f7610c08565b73ffffffffffffffffffffffffffffffffffffffff161461194d576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016119449061361b565b60405180910390fd5b565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b6000600660009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600660006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b611a5a6118c7565b6bffffffffffffffffffffffff16816bffffffffffffffffffffffff161115611ab8576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611aaf906136ad565b60405180910390fd5b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611b27576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611b1e90613719565b60405180910390fd5b60405180604001604052808373ffffffffffffffffffffffffffffffffffffffff168152602001826bffffffffffffffffffffffff16815250600760008201518160000160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555060208201518160000160146101000a8154816bffffffffffffffffffffffff02191690836bffffffffffffffffffffffff1602179055509050505050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1603611c56576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c4d90613785565b60405180910390fd5b611c5f81612104565b15611c9f576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611c96906137f1565b60405180910390fd5b611cad600083836001612145565b611cb681612104565b15611cf6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611ced906137f1565b60405180910390fd5b6001600360008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008282540192505081905550816002600083815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550808273ffffffffffffffffffffffffffffffffffffffff16600073ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4611e0060008383600161214b565b5050565b8173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e72576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611e699061385d565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3183604051611f639190612502565b60405180910390a3505050565b611f7b8484846115ce565b611f8784848484612151565b611fc6576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401611fbd906138ef565b60405180910390fd5b50505050565b606060006001611fdb846122d8565b01905060008167ffffffffffffffff811115611ffa57611ff9612a2e565b5b6040519080825280601f01601f19166020018201604052801561202c5781602001600182028036833780820191505090505b509050600082602001820190505b60011561208f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a858161208357612082612ea3565b5b0494506000850361203a575b819350505050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60008073ffffffffffffffffffffffffffffffffffffffff166121268361194f565b73ffffffffffffffffffffffffffffffffffffffff1614159050919050565b50505050565b50505050565b60006121728473ffffffffffffffffffffffffffffffffffffffff1661242b565b156122cb578373ffffffffffffffffffffffffffffffffffffffff1663150b7a0261219b611478565b8786866040518563ffffffff1660e01b81526004016121bd9493929190613964565b6020604051808303816000875af19250505080156121f957506040513d601f19601f820116820180604052508101906121f691906139c5565b60015b61227b573d8060008114612229576040519150601f19603f3d011682016040523d82523d6000602084013e61222e565b606091505b506000815103612273576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161226a906138ef565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149150506122d0565b600190505b949350505050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310612336577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000838161232c5761232b612ea3565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310612373576d04ee2d6d415b85acef8100000000838161236957612368612ea3565b5b0492506020810190505b662386f26fc1000083106123a257662386f26fc10000838161239857612397612ea3565b5b0492506010810190505b6305f5e10083106123cb576305f5e10083816123c1576123c0612ea3565b5b0492506008810190505b61271083106123f05761271083816123e6576123e5612ea3565b5b0492506004810190505b60648310612413576064838161240957612408612ea3565b5b0492506002810190505b600a8310612422576001810190505b80915050919050565b6000808273ffffffffffffffffffffffffffffffffffffffff163b119050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b61249781612462565b81146124a257600080fd5b50565b6000813590506124b48161248e565b92915050565b6000602082840312156124d0576124cf612458565b5b60006124de848285016124a5565b91505092915050565b60008115159050919050565b6124fc816124e7565b82525050565b600060208201905061251760008301846124f3565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561255757808201518184015260208101905061253c565b60008484015250505050565b6000601f19601f8301169050919050565b600061257f8261251d565b6125898185612528565b9350612599818560208601612539565b6125a281612563565b840191505092915050565b600060208201905081810360008301526125c78184612574565b905092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b60006125fa826125cf565b9050919050565b61260a816125ef565b82525050565b60006020820190506126256000830184612601565b92915050565b6000819050919050565b61263e8161262b565b811461264957600080fd5b50565b60008135905061265b81612635565b92915050565b60006020828403121561267757612676612458565b5b60006126858482850161264c565b91505092915050565b612697816125ef565b81146126a257600080fd5b50565b6000813590506126b48161268e565b92915050565b600080604083850312156126d1576126d0612458565b5b60006126df858286016126a5565b92505060206126f08582860161264c565b9150509250929050565b60008060006060848603121561271357612712612458565b5b6000612721868287016126a5565b9350506020612732868287016126a5565b92505060406127438682870161264c565b9150509250925092565b6000806040838503121561276457612763612458565b5b60006127728582860161264c565b92505060206127838582860161264c565b9150509250929050565b6127968161262b565b82525050565b60006040820190506127b16000830185612601565b6127be602083018461278d565b9392505050565b600080fd5b600080fd5b600080fd5b60008083601f8401126127ea576127e96127c5565b5b8235905067ffffffffffffffff811115612807576128066127ca565b5b602083019150836001820283011115612823576128226127cf565b5b9250929050565b6000806020838503121561284157612840612458565b5b600083013567ffffffffffffffff81111561285f5761285e61245d565b5b61286b858286016127d4565b92509250509250929050565b60006020828403121561288d5761288c612458565b5b600061289b848285016126a5565b91505092915050565b60006020820190506128b9600083018461278d565b92915050565b60006bffffffffffffffffffffffff82169050919050565b6128e0816128bf565b81146128eb57600080fd5b50565b6000813590506128fd816128d7565b92915050565b6000806040838503121561291a57612919612458565b5b6000612928858286016126a5565b9250506020612939858286016128ee565b9150509250929050565b600061ffff82169050919050565b61295a81612943565b811461296557600080fd5b50565b60008135905061297781612951565b92915050565b6000806040838503121561299457612993612458565b5b60006129a285828601612968565b92505060206129b3858286016126a5565b9150509250929050565b6129c6816124e7565b81146129d157600080fd5b50565b6000813590506129e3816129bd565b92915050565b60008060408385031215612a00576129ff612458565b5b6000612a0e858286016126a5565b9250506020612a1f858286016129d4565b9150509250929050565b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612a6682612563565b810181811067ffffffffffffffff82111715612a8557612a84612a2e565b5b80604052505050565b6000612a9861244e565b9050612aa48282612a5d565b919050565b600067ffffffffffffffff821115612ac457612ac3612a2e565b5b612acd82612563565b9050602081019050919050565b82818337600083830152505050565b6000612afc612af784612aa9565b612a8e565b905082815260208101848484011115612b1857612b17612a29565b5b612b23848285612ada565b509392505050565b600082601f830112612b4057612b3f6127c5565b5b8135612b50848260208601612ae9565b91505092915050565b60008060008060808587031215612b7357612b72612458565b5b6000612b81878288016126a5565b9450506020612b92878288016126a5565b9350506040612ba38782880161264c565b925050606085013567ffffffffffffffff811115612bc457612bc361245d565b5b612bd087828801612b2b565b91505092959194509250565b60008060408385031215612bf357612bf2612458565b5b6000612c01858286016126a5565b9250506020612c12858286016126a5565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b60006002820490506001821680612c6357607f821691505b602082108103612c7657612c75612c1c565b5b50919050565b7f4552433732313a20617070726f76616c20746f2063757272656e74206f776e6560008201527f7200000000000000000000000000000000000000000000000000000000000000602082015250565b6000612cd8602183612528565b9150612ce382612c7c565b604082019050919050565b60006020820190508181036000830152612d0781612ccb565b9050919050565b7f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60008201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c000000602082015250565b6000612d6a603d83612528565b9150612d7582612d0e565b604082019050919050565b60006020820190508181036000830152612d9981612d5d565b9050919050565b7f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560008201527f72206f7220617070726f76656400000000000000000000000000000000000000602082015250565b6000612dfc602d83612528565b9150612e0782612da0565b604082019050919050565b60006020820190508181036000830152612e2b81612def565b9050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000612e6c8261262b565b9150612e778361262b565b9250828202612e858161262b565b91508282048414831517612e9c57612e9b612e32565b5b5092915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000612edd8261262b565b9150612ee88361262b565b925082612ef857612ef7612ea3565b5b828204905092915050565b600082905092915050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612f707fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612f33565b612f7a8683612f33565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612fb7612fb2612fad8461262b565b612f92565b61262b565b9050919050565b6000819050919050565b612fd183612f9c565b612fe5612fdd82612fbe565b848454612f40565b825550505050565b600090565b612ffa612fed565b613005818484612fc8565b505050565b5b818110156130295761301e600082612ff2565b60018101905061300b565b5050565b601f82111561306e5761303f81612f0e565b61304884612f23565b81016020851015613057578190505b61306b61306385612f23565b83018261300a565b50505b505050565b600082821c905092915050565b600061309160001984600802613073565b1980831691505092915050565b60006130aa8383613080565b9150826002028217905092915050565b6130c48383612f03565b67ffffffffffffffff8111156130dd576130dc612a2e565b5b6130e78254612c4b565b6130f282828561302d565b6000601f831160018114613121576000841561310f578287013590505b613119858261309e565b865550613181565b601f19841661312f86612f0e565b60005b8281101561315757848901358255600182019150602085019450602081019050613132565b868310156131745784890135613170601f891682613080565b8355505b6001600288020188555050505b50505050505050565b7f4552433732313a20696e76616c696420746f6b656e2049440000000000000000600082015250565b60006131c0601883612528565b91506131cb8261318a565b602082019050919050565b600060208201905081810360008301526131ef816131b3565b9050919050565b7f4552433732313a2061646472657373207a65726f206973206e6f74206120766160008201527f6c6964206f776e65720000000000000000000000000000000000000000000000602082015250565b6000613252602983612528565b915061325d826131f6565b604082019050919050565b6000602082019050818103600083015261328181613245565b9050919050565b600061329382612943565b915061ffff82036132a7576132a6612e32565b5b600182019050919050565b6000815190506132c1816129bd565b92915050565b6000602082840312156132dd576132dc612458565b5b60006132eb848285016132b2565b91505092915050565b60008151905061330381612635565b92915050565b60006020828403121561331f5761331e612458565b5b600061332d848285016132f4565b91505092915050565b600081905092915050565b6000815461334e81612c4b565b6133588186613336565b945060018216600081146133735760018114613388576133bb565b60ff19831686528115158202860193506133bb565b61339185612f0e565b60005b838110156133b357815481890152600182019150602081019050613394565b838801955050505b50505092915050565b60006133cf8261251d565b6133d98185613336565b93506133e9818560208601612539565b80840191505092915050565b60006134018285613341565b915061340d82846133c4565b91508190509392505050565b7f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160008201527f6464726573730000000000000000000000000000000000000000000000000000602082015250565b6000613475602683612528565b915061348082613419565b604082019050919050565b600060208201905081810360008301526134a481613468565b9050919050565b7f4552433732313a207472616e736665722066726f6d20696e636f72726563742060008201527f6f776e6572000000000000000000000000000000000000000000000000000000602082015250565b6000613507602583612528565b9150613512826134ab565b604082019050919050565b60006020820190508181036000830152613536816134fa565b9050919050565b7f4552433732313a207472616e7366657220746f20746865207a65726f2061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000613599602483612528565b91506135a48261353d565b604082019050919050565b600060208201905081810360008301526135c88161358c565b9050919050565b7f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572600082015250565b6000613605602083612528565b9150613610826135cf565b602082019050919050565b60006020820190508181036000830152613634816135f8565b9050919050565b7f455243323938313a20726f79616c7479206665652077696c6c2065786365656460008201527f2073616c65507269636500000000000000000000000000000000000000000000602082015250565b6000613697602a83612528565b91506136a28261363b565b604082019050919050565b600060208201905081810360008301526136c68161368a565b9050919050565b7f455243323938313a20696e76616c696420726563656976657200000000000000600082015250565b6000613703601983612528565b915061370e826136cd565b602082019050919050565b60006020820190508181036000830152613732816136f6565b9050919050565b7f4552433732313a206d696e7420746f20746865207a65726f2061646472657373600082015250565b600061376f602083612528565b915061377a82613739565b602082019050919050565b6000602082019050818103600083015261379e81613762565b9050919050565b7f4552433732313a20746f6b656e20616c7265616479206d696e74656400000000600082015250565b60006137db601c83612528565b91506137e6826137a5565b602082019050919050565b6000602082019050818103600083015261380a816137ce565b9050919050565b7f4552433732313a20617070726f766520746f2063616c6c657200000000000000600082015250565b6000613847601983612528565b915061385282613811565b602082019050919050565b600060208201905081810360008301526138768161383a565b9050919050565b7f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560008201527f63656976657220696d706c656d656e7465720000000000000000000000000000602082015250565b60006138d9603283612528565b91506138e48261387d565b604082019050919050565b60006020820190508181036000830152613908816138cc565b9050919050565b600081519050919050565b600082825260208201905092915050565b60006139368261390f565b613940818561391a565b9350613950818560208601612539565b61395981612563565b840191505092915050565b60006080820190506139796000830187612601565b6139866020830186612601565b613993604083018561278d565b81810360608301526139a5818461392b565b905095945050505050565b6000815190506139bf8161248e565b92915050565b6000602082840312156139db576139da612458565b5b60006139e9848285016139b0565b9150509291505056fea2646970667358221220ff3eefb49229513e9a6c2be34332a8a59422337eec27bd00564c70c6dd81b36b64736f6c63430008110033