[ { "inputs": [ { "internalType": "address", "name": "royaltyPayee_", "type": "address" }, { "internalType": "uint96", "name": "feeNumerator_", "type": "uint96" } ], "stateMutability": "nonpayable", "type": "constructor" }, { "inputs": [], "name": "AccessControlBadConfirmation", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "account", "type": "address" }, { "internalType": "bytes32", "name": "neededRole", "type": "bytes32" } ], "name": "AccessControlUnauthorizedAccount", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidDefaultRoyalty", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidDefaultRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "uint256", "name": "numerator", "type": "uint256" }, { "internalType": "uint256", "name": "denominator", "type": "uint256" } ], "name": "ERC2981InvalidTokenRoyalty", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC2981InvalidTokenRoyaltyReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721IncorrectOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721InsufficientApproval", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "approver", "type": "address" } ], "name": "ERC721InvalidApprover", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" } ], "name": "ERC721InvalidOperator", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "owner", "type": "address" } ], "name": "ERC721InvalidOwner", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "receiver", "type": "address" } ], "name": "ERC721InvalidReceiver", "type": "error" }, { "inputs": [ { "internalType": "address", "name": "sender", "type": "address" } ], "name": "ERC721InvalidSender", "type": "error" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "ERC721NonexistentToken", "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": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "previousAdminRole", "type": "bytes32" }, { "indexed": true, "internalType": "bytes32", "name": "newAdminRole", "type": "bytes32" } ], "name": "RoleAdminChanged", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleGranted", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "indexed": true, "internalType": "address", "name": "account", "type": "address" }, { "indexed": true, "internalType": "address", "name": "sender", "type": "address" } ], "name": "RoleRevoked", "type": "event" }, { "anonymous": false, "inputs": [ { "indexed": true, "internalType": "address", "name": "from", "type": "address" }, { "indexed": true, "internalType": "address", "name": "to", "type": "address" }, { "indexed": true, "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "Transfer", "type": "event" }, { "inputs": [], "name": "DEFAULT_ADMIN_ROLE", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "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": "bytes32", "name": "role", "type": "bytes32" } ], "name": "getRoleAdmin", "outputs": [ { "internalType": "bytes32", "name": "", "type": "bytes32" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "grantRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "hasRole", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "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": [], "name": "name", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "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": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "callerConfirmation", "type": "address" } ], "name": "renounceRole", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes32", "name": "role", "type": "bytes32" }, { "internalType": "address", "name": "account", "type": "address" } ], "name": "revokeRole", "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": "to", "type": "address" }, { "internalType": "uint256", "name": "nftId", "type": "uint256" } ], "name": "safeMint", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" }, { "internalType": "bytes", "name": "data", "type": "bytes" } ], "name": "safeTransferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "operator", "type": "address" }, { "internalType": "bool", "name": "approved", "type": "bool" } ], "name": "setApprovalForAll", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "string", "name": "_uri", "type": "string" } ], "name": "setBaseURI", "outputs": [], "stateMutability": "nonpayable", "type": "function" }, { "inputs": [ { "internalType": "bytes4", "name": "interfaceId", "type": "bytes4" } ], "name": "supportsInterface", "outputs": [ { "internalType": "bool", "name": "", "type": "bool" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "symbol", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "tokenURI", "outputs": [ { "internalType": "string", "name": "", "type": "string" } ], "stateMutability": "view", "type": "function" }, { "inputs": [], "name": "totalSupply", "outputs": [ { "internalType": "uint256", "name": "", "type": "uint256" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "from", "type": "address" }, { "internalType": "address", "name": "to", "type": "address" }, { "internalType": "uint256", "name": "tokenId", "type": "uint256" } ], "name": "transferFrom", "outputs": [], "stateMutability": "nonpayable", "type": "function" } ]
60806040523480156200001157600080fd5b5060405162001d9e38038062001d9e83398101604081905262000034916200027d565b6040518060400160405280601181526020017023a6af19102130b13c902937b7b9ba32b960791b8152506040518060400160405280600381526020016223a69960e91b81525081600290816200008b919062000379565b5060036200009a828262000379565b505050620000af82826200011f60201b60201c565b620000bc600033620001ca565b50620000e97fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c2177533620001ca565b50620001167f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a633620001ca565b50505062000445565b6127106001600160601b0382168110156200016457604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044015b60405180910390fd5b6001600160a01b0383166200019057604051635b6cc80560e11b8152600060048201526024016200015b565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b60008281526008602090815260408083206001600160a01b038516845290915281205460ff16620002735760008381526008602090815260408083206001600160a01b03861684529091529020805460ff191660011790556200022a3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a450600162000277565b5060005b92915050565b600080604083850312156200029157600080fd5b82516001600160a01b0381168114620002a957600080fd5b60208401519092506001600160601b0381168114620002c757600080fd5b809150509250929050565b634e487b7160e01b600052604160045260246000fd5b600181811c90821680620002fd57607f821691505b6020821081036200031e57634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000374576000816000526020600020601f850160051c810160208610156200034f5750805b601f850160051c820191505b8181101562000370578281556001016200035b565b5050505b505050565b81516001600160401b03811115620003955762000395620002d2565b620003ad81620003a68454620002e8565b8462000324565b602080601f831160018114620003e55760008415620003cc5750858301515b600019600386901b1c1916600185901b17855562000370565b600085815260208120601f198616915b828110156200041657888601518255948401946001909101908401620003f5565b5085821015620004355787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b61194980620004556000396000f3fe608060405234801561001057600080fd5b50600436106101985760003560e01c80636352211e116100e3578063a217fddf1161008c578063c87b56dd11610066578063c87b56dd14610390578063d547741f146103a3578063e985e9c5146103b657600080fd5b8063a217fddf14610362578063a22cb4651461036a578063b88d4fde1461037d57600080fd5b806391d14854116100bd57806391d148541461030e57806395d89b4114610347578063a14481941461034f57600080fd5b80636352211e146102e05780636c0360eb146102f357806370a08231146102fb57600080fd5b8063248a9ca31161014557806336568abe1161011f57806336568abe146102a757806342842e0e146102ba57806355f804b3146102cd57600080fd5b8063248a9ca31461023f5780632a55205a146102625780632f2ff15d1461029457600080fd5b8063095ea7b311610176578063095ea7b31461020557806318160ddd1461021a57806323b872dd1461022c57600080fd5b806301ffc9a71461019d57806306fdde03146101c5578063081812fc146101da575b600080fd5b6101b06101ab3660046113a4565b6103f2565b60405190151581526020015b60405180910390f35b6101cd610403565b6040516101bc9190611411565b6101ed6101e8366004611424565b610495565b6040516001600160a01b0390911681526020016101bc565b610218610213366004611459565b6104be565b005b600a545b6040519081526020016101bc565b61021861023a366004611483565b6104cd565b61021e61024d366004611424565b60009081526008602052604090206001015490565b6102756102703660046114bf565b610576565b604080516001600160a01b0390931683526020830191909152016101bc565b6102186102a23660046114e1565b610631565b6102186102b53660046114e1565b610656565b6102186102c8366004611483565b6106a7565b6102186102db366004611599565b6106c2565b6101ed6102ee366004611424565b6106f8565b6101cd610703565b61021e6103093660046115e2565b610791565b6101b061031c3660046114e1565b60009182526008602090815260408084206001600160a01b0393909316845291905290205460ff1690565b6101cd6107f2565b61021861035d366004611459565b610801565b61021e600081565b6102186103783660046115fd565b610852565b61021861038b366004611639565b61085d565b6101cd61039e366004611424565b610874565b6102186103b13660046114e1565b6108dc565b6101b06103c43660046116b5565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b60006103fd82610901565b92915050565b606060028054610412906116df565b80601f016020809104026020016040519081016040528092919081815260200182805461043e906116df565b801561048b5780601f106104605761010080835404028352916020019161048b565b820191906000526020600020905b81548152906001019060200180831161046e57829003601f168201915b5050505050905090565b60006104a08261093f565b506000828152600660205260409020546001600160a01b03166103fd565b6104c9828233610978565b5050565b6001600160a01b0382166104fc57604051633250574960e11b8152600060048201526024015b60405180910390fd5b6000610509838333610985565b9050836001600160a01b0316816001600160a01b031614610570576040517f64283d7b0000000000000000000000000000000000000000000000000000000081526001600160a01b03808616600483015260248201849052821660448201526064016104f3565b50505050565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046bffffffffffffffffffffffff169282019290925282916105f55750604080518082019091526000546001600160a01b0381168252600160a01b90046bffffffffffffffffffffffff1660208201525b602081015160009061271090610619906bffffffffffffffffffffffff168761172f565b6106239190611746565b915196919550909350505050565b60008281526008602052604090206001015461064c81610a8b565b6105708383610a98565b6001600160a01b0381163314610698576040517f6697b23200000000000000000000000000000000000000000000000000000000815260040160405180910390fd5b6106a28282610b46565b505050565b6106a28383836040518060200160405280600081525061085d565b7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217756106ec81610a8b565b60096106a283826117b8565b60006103fd8261093f565b60098054610710906116df565b80601f016020809104026020016040519081016040528092919081815260200182805461073c906116df565b80156107895780601f1061075e57610100808354040283529160200191610789565b820191906000526020600020905b81548152906001019060200180831161076c57829003601f168201915b505050505081565b60006001600160a01b0382166107d6576040517f89c62b64000000000000000000000000000000000000000000000000000000008152600060048201526024016104f3565b506001600160a01b031660009081526005602052604090205490565b606060038054610412906116df565b7f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a661082b81610a8b565b6108358383610bcd565b6001600a60008282546108489190611878565b9091555050505050565b6104c9338383610be7565b6108688484846104cd565b61057084848484610c9f565b606061087f8261093f565b50600061088a610dc8565b905060008151116108aa57604051806020016040528060008152506108d5565b806108b484610dd7565b6040516020016108c592919061188b565b6040516020818303038152906040525b9392505050565b6000828152600860205260409020600101546108f781610a8b565b6105708383610b46565b60006001600160e01b031982167f7965db0b0000000000000000000000000000000000000000000000000000000014806103fd57506103fd82610e77565b6000818152600460205260408120546001600160a01b0316806103fd57604051637e27328960e01b8152600481018490526024016104f3565b6106a28383836001610e82565b6000828152600460205260408120546001600160a01b03908116908316156109b2576109b2818486610fcd565b6001600160a01b038116156109f0576109cf600085600080610e82565b6001600160a01b038116600090815260056020526040902080546000190190555b6001600160a01b03851615610a1f576001600160a01b0385166000908152600560205260409020805460010190555b600084815260046020526040808220805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b610a95813361104a565b50565b60008281526008602090815260408083206001600160a01b038516845290915281205460ff16610b3e5760008381526008602090815260408083206001600160a01b03861684529091529020805460ff19166001179055610af63390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016103fd565b5060006103fd565b60008281526008602090815260408083206001600160a01b038516845290915281205460ff1615610b3e5760008381526008602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016103fd565b6104c98282604051806020016040528060008152506110b8565b6001600160a01b038216610c32576040517f5b08ba180000000000000000000000000000000000000000000000000000000081526001600160a01b03831660048201526024016104f3565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b1561057057604051630a85bd0160e11b81526001600160a01b0384169063150b7a0290610ce19033908890879087906004016118ba565b6020604051808303816000875af1925050508015610d1c575060408051601f3d908101601f19168201909252610d19918101906118f6565b60015b610d85573d808015610d4a576040519150601f19603f3d011682016040523d82523d6000602084013e610d4f565b606091505b508051600003610d7d57604051633250574960e11b81526001600160a01b03851660048201526024016104f3565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b14610dc157604051633250574960e11b81526001600160a01b03851660048201526024016104f3565b5050505050565b606060098054610412906116df565b60606000610de4836110cf565b600101905060008167ffffffffffffffff811115610e0457610e0461150d565b6040519080825280601f01601f191660200182016040528015610e2e576020820181803683370190505b5090508181016020015b600019017f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8504945084610e3857509392505050565b60006103fd826111b1565b8080610e9657506001600160a01b03821615155b15610f90576000610ea68461093f565b90506001600160a01b03831615801590610ed25750826001600160a01b0316816001600160a01b031614155b8015610f0457506001600160a01b0380821660009081526007602090815260408083209387168352929052205460ff16155b15610f46576040517fa9fbf51f0000000000000000000000000000000000000000000000000000000081526001600160a01b03841660048201526024016104f3565b8115610f8e5783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b50506000908152600660205260409020805473ffffffffffffffffffffffffffffffffffffffff19166001600160a01b0392909216919091179055565b610fd8838383611223565b6106a2576001600160a01b03831661100657604051637e27328960e01b8152600481018290526024016104f3565b6040517f177e802f0000000000000000000000000000000000000000000000000000000081526001600160a01b0383166004820152602481018290526044016104f3565b60008281526008602090815260408083206001600160a01b038516845290915290205460ff166104c9576040517fe2517d3f0000000000000000000000000000000000000000000000000000000081526001600160a01b0382166004820152602481018390526044016104f3565b6110c283836112a9565b6106a26000848484610c9f565b6000807a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611118577a184f03e93ff9f4daa797ed6e38ed64bf6a1f010000000000000000830492506040015b6d04ee2d6d415b85acef81000000008310611144576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc10000831061116257662386f26fc10000830492506010015b6305f5e100831061117a576305f5e100830492506008015b612710831061118e57612710830492506004015b606483106111a0576064830492506002015b600a83106103fd5760010192915050565b60006001600160e01b031982167f80ac58cd00000000000000000000000000000000000000000000000000000000148061121457506001600160e01b031982167f5b5e139f00000000000000000000000000000000000000000000000000000000145b806103fd57506103fd82611327565b60006001600160a01b038316158015906112a15750826001600160a01b0316846001600160a01b0316148061127d57506001600160a01b0380851660009081526007602090815260408083209387168352929052205460ff165b806112a157506000828152600660205260409020546001600160a01b038481169116145b949350505050565b6001600160a01b0382166112d357604051633250574960e11b8152600060048201526024016104f3565b60006112e183836000610985565b90506001600160a01b038116156106a2576040517f73c6ac6e000000000000000000000000000000000000000000000000000000008152600060048201526024016104f3565b60006001600160e01b031982167f2a55205a0000000000000000000000000000000000000000000000000000000014806103fd57507f01ffc9a7000000000000000000000000000000000000000000000000000000006001600160e01b03198316146103fd565b6001600160e01b031981168114610a9557600080fd5b6000602082840312156113b657600080fd5b81356108d58161138e565b60005b838110156113dc5781810151838201526020016113c4565b50506000910152565b600081518084526113fd8160208601602086016113c1565b601f01601f19169290920160200192915050565b6020815260006108d560208301846113e5565b60006020828403121561143657600080fd5b5035919050565b80356001600160a01b038116811461145457600080fd5b919050565b6000806040838503121561146c57600080fd5b6114758361143d565b946020939093013593505050565b60008060006060848603121561149857600080fd5b6114a18461143d565b92506114af6020850161143d565b9150604084013590509250925092565b600080604083850312156114d257600080fd5b50508035926020909101359150565b600080604083850312156114f457600080fd5b823591506115046020840161143d565b90509250929050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff8084111561153e5761153e61150d565b604051601f8501601f19908116603f011681019082821181831017156115665761156661150d565b8160405280935085815286868601111561157f57600080fd5b858560208301376000602087830101525050509392505050565b6000602082840312156115ab57600080fd5b813567ffffffffffffffff8111156115c257600080fd5b8201601f810184136115d357600080fd5b6112a184823560208401611523565b6000602082840312156115f457600080fd5b6108d58261143d565b6000806040838503121561161057600080fd5b6116198361143d565b91506020830135801515811461162e57600080fd5b809150509250929050565b6000806000806080858703121561164f57600080fd5b6116588561143d565b93506116666020860161143d565b925060408501359150606085013567ffffffffffffffff81111561168957600080fd5b8501601f8101871361169a57600080fd5b6116a987823560208401611523565b91505092959194509250565b600080604083850312156116c857600080fd5b6116d18361143d565b91506115046020840161143d565b600181811c908216806116f357607f821691505b60208210810361171357634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b80820281158282048414176103fd576103fd611719565b60008261176357634e487b7160e01b600052601260045260246000fd5b500490565b601f8211156106a2576000816000526020600020601f850160051c810160208610156117915750805b601f850160051c820191505b818110156117b05782815560010161179d565b505050505050565b815167ffffffffffffffff8111156117d2576117d261150d565b6117e6816117e084546116df565b84611768565b602080601f83116001811461181b57600084156118035750858301515b600019600386901b1c1916600185901b1785556117b0565b600085815260208120601f198616915b8281101561184a5788860151825594840194600190910190840161182b565b50858210156118685787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b808201808211156103fd576103fd611719565b6000835161189d8184602088016113c1565b8351908301906118b18183602088016113c1565b01949350505050565b60006001600160a01b038087168352808616602084015250836040830152608060608301526118ec60808301846113e5565b9695505050505050565b60006020828403121561190857600080fd5b81516108d58161138e56fea2646970667358221220cf0f2b0d423c03172db95a63efc105fe0d40d84d59bd974c604bd2a649e734f164736f6c6343000818003300000000000000000000000007698b0e54368f244376dc459a5b9eddf094c36a00000000000000000000000000000000000000000000000000000000000001f4