7 txs
8 calls
constructor
constructor(address initialOwner)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getNFTsByOwner
viewfunction getNFTsByOwner(address ownerOfNFT) view returns (uint256[])
getOwnerOfNFT
viewfunction getOwnerOfNFT(uint256 tokenId) view returns (address)
getPowerOfNFT
viewfunction getPowerOfNFT(uint256 _id) view returns (uint256 power)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(uint256 tokenId)
mint
nonpayablefunction mint(uint256 tokenId, string _tokenURI, address to, uint256 power)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setURI
nonpayablefunction setURI(uint256 tokenId, string newURI)
transfer
nonpayablefunction transfer(address from, address to, uint256 tokenId)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ERC721IncorrectOwner
error ERC721IncorrectOwner(address sender, uint256 tokenId, address owner)
ERC721InsufficientApproval
error ERC721InsufficientApproval(address operator, uint256 tokenId)
ERC721InvalidApprover
error ERC721InvalidApprover(address approver)
ERC721InvalidOperator
error ERC721InvalidOperator(address operator)
ERC721InvalidOwner
error ERC721InvalidOwner(address owner)
ERC721InvalidReceiver
error ERC721InvalidReceiver(address receiver)
ERC721InvalidSender
error ERC721InvalidSender(address sender)
ERC721NonexistentToken
error ERC721NonexistentToken(uint256 tokenId)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60806040526000600a553480156200001657600080fd5b50604051620036183803806200361883398181016040528101906200003c91906200028d565b806040518060400160405280600681526020017f4d696e696e6700000000000000000000000000000000000000000000000000008152506040518060400160405280600381526020017f4d4e4700000000000000000000000000000000000000000000000000000000008152508160009081620000ba919062000539565b508060019081620000cc919062000539565b505050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603620001445760006040517f1e4fbdf70000000000000000000000000000000000000000000000000000000081526004016200013b919062000631565b60405180910390fd5b62000155816200015d60201b60201c565b50506200064e565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600080fd5b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000620002558262000228565b9050919050565b620002678162000248565b81146200027357600080fd5b50565b60008151905062000287816200025c565b92915050565b600060208284031215620002a657620002a562000223565b5b6000620002b68482850162000276565b91505092915050565b600081519050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806200034157607f821691505b602082108103620003575762000356620002f9565b5b50919050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302620003c17fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8262000382565b620003cd868362000382565b95508019841693508086168417925050509392505050565b6000819050919050565b6000819050919050565b60006200041a620004146200040e84620003e5565b620003ef565b620003e5565b9050919050565b6000819050919050565b6200043683620003f9565b6200044e620004458262000421565b8484546200038f565b825550505050565b600090565b6200046562000456565b620004728184846200042b565b505050565b5b818110156200049a576200048e6000826200045b565b60018101905062000478565b5050565b601f821115620004e957620004b3816200035d565b620004be8462000372565b81016020851015620004ce578190505b620004e6620004dd8562000372565b83018262000477565b50505b505050565b600082821c905092915050565b60006200050e60001984600802620004ee565b1980831691505092915050565b6000620005298383620004fb565b9150826002028217905092915050565b6200054482620002bf565b67ffffffffffffffff81111562000560576200055f620002ca565b5b6200056c825462000328565b620005798282856200049e565b600060209050601f831160018114620005b157600084156200059c578287015190505b620005a885826200051b565b86555062000618565b601f198416620005c1866200035d565b60005b82811015620005eb57848901518255600182019150602085019450602081019050620005c4565b868310156200060b578489015162000607601f891682620004fb565b8355505b6001600288020188555050505b505050505050565b6200062b8162000248565b82525050565b600060208201905062000648600083018462000620565b92915050565b612fba806200065e6000396000f3fe608060405234801561001057600080fd5b506004361061014d5760003560e01c80637b71b671116100c3578063beabacc81161007c578063beabacc814610386578063c87b56dd146103a2578063e2afe8b3146103d2578063e985e9c514610402578063ea01ea2214610432578063f2fde38b146104625761014d565b80637b71b671146102da578063862440e2146102f65780638da5cb5b1461031257806395d89b4114610330578063a22cb4651461034e578063b88d4fde1461036a5761014d565b806323b872dd1161011557806323b872dd1461021c57806342842e0e1461023857806342966c68146102545780636352211e1461027057806370a08231146102a0578063715018a6146102d05761014d565b806301ffc9a71461015257806306fdde0314610182578063081812fc146101a0578063095ea7b3146101d057806309a32e1c146101ec575b600080fd5b61016c600480360381019061016791906120f9565b61047e565b6040516101799190612141565b60405180910390f35b61018a6104df565b60405161019791906121ec565b60405180910390f35b6101ba60048036038101906101b59190612244565b610571565b6040516101c791906122b2565b60405180910390f35b6101ea60048036038101906101e591906122f9565b61058d565b005b61020660048036038101906102019190612244565b6105a3565b6040516102139190612348565b60405180910390f35b61023660048036038101906102319190612363565b6105c0565b005b610252600480360381019061024d9190612363565b6106c2565b005b61026e60048036038101906102699190612244565b6106e2565b005b61028a60048036038101906102859190612244565b610815565b60405161029791906122b2565b60405180910390f35b6102ba60048036038101906102b591906123b6565b610827565b6040516102c79190612348565b60405180910390f35b6102d86108e1565b005b6102f460048036038101906102ef9190612518565b6108f5565b005b610310600480360381019061030b919061259b565b61099f565b005b61031a6109ad565b60405161032791906122b2565b60405180910390f35b6103386109d7565b60405161034591906121ec565b60405180910390f35b61036860048036038101906103639190612623565b610a69565b005b610384600480360381019061037f9190612704565b610a7f565b005b6103a0600480360381019061039b9190612363565b610a9c565b005b6103bc60048036038101906103b79190612244565b610ce0565b6040516103c991906121ec565b60405180910390f35b6103ec60048036038101906103e791906123b6565b610df3565b6040516103f99190612845565b60405180910390f35b61041c60048036038101906104179190612867565b610e8a565b6040516104299190612141565b60405180910390f35b61044c60048036038101906104479190612244565b610f1e565b60405161045991906122b2565b60405180910390f35b61047c600480360381019061047791906123b6565b610f30565b005b6000634906490660e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff191614806104d857506104d782610fb6565b5b9050919050565b6060600080546104ee906128d6565b80601f016020809104026020016040519081016040528092919081815260200182805461051a906128d6565b80156105675780601f1061053c57610100808354040283529160200191610567565b820191906000526020600020905b81548152906001019060200180831161054a57829003601f168201915b5050505050905090565b600061057c82611098565b5061058682611120565b9050919050565b61059f828261059a61115d565b611165565b5050565b600060096000838152602001908152602001600020549050919050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036106325760006040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161062991906122b2565b60405180910390fd5b6000610646838361064161115d565b611177565b90508373ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146106bc578382826040517f64283d7b0000000000000000000000000000000000000000000000000000000081526004016106b393929190612907565b60405180910390fd5b50505050565b6106dd83838360405180602001604052806000815250610a7f565b505050565b6106ea611391565b60006106f582610815565b905061070082611418565b61070b82600061149e565b6000600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b818054905081101561080f57838282815481106107715761077061293e565b5b9060005260206000200154036107fc578160018380549050610793919061299c565b815481106107a4576107a361293e565b5b90600052602060002001548282815481106107c2576107c161293e565b5b9060005260206000200181905550818054806107e1576107e06129d0565b5b6001900381819060005260206000200160009055905561080f565b8080610807906129ff565b915050610751565b50505050565b600061082082611098565b9050919050565b60008073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361089a5760006040517f89c62b6400000000000000000000000000000000000000000000000000000000815260040161089191906122b2565b60405180910390fd5b600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020549050919050565b6108e9611391565b6108f360006114ba565b565b6108fd611391565b610907848261149e565b6109118285611580565b61091b8484611679565b600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020849080600181540180825580915050600190039060005260206000200160009091909190915055600a6000815480929190610994906129ff565b919050555050505050565b6109a98282611679565b5050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6060600180546109e6906128d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610a12906128d6565b8015610a5f5780601f10610a3457610100808354040283529160200191610a5f565b820191906000526020600020905b815481529060010190602001808311610a4257829003601f168201915b5050505050905090565b610a7b610a7461115d565b83836116d5565b5050565b610a8a8484846105c0565b610a9684848484611844565b50505050565b610aaf610aa882610815565b33836119fb565b610aee576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610ae590612ab9565b60405180910390fd5b8273ffffffffffffffffffffffffffffffffffffffff16610b0e82610815565b73ffffffffffffffffffffffffffffffffffffffff1614610b64576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401610b5b90612b4b565b60405180910390fd5b610b6f8383836105c0565b6000600860008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020905060005b8180549050811015610c735782828281548110610bd557610bd461293e565b5b906000526020600020015403610c60578160018380549050610bf7919061299c565b81548110610c0857610c0761293e565b5b9060005260206000200154828281548110610c2657610c2561293e565b5b906000526020600020018190555081805480610c4557610c446129d0565b5b60019003818190600052602060002001600090559055610c73565b8080610c6b906129ff565b915050610bb5565b50600860008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002082908060018154018082558091505060019003906000526020600020016000909190919091505550505050565b6060610ceb82611098565b506000600660008481526020019081526020016000208054610d0c906128d6565b80601f0160208091040260200160405190810160405280929190818152602001828054610d38906128d6565b8015610d855780601f10610d5a57610100808354040283529160200191610d85565b820191906000526020600020905b815481529060010190602001808311610d6857829003601f168201915b505050505090506000610d96611abc565b90506000815103610dab578192505050610dee565b600082511115610de0578082604051602001610dc8929190612ba7565b60405160208183030381529060405292505050610dee565b610de984611ad3565b925050505b919050565b6060600860008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020805480602002602001604051908101604052809291908181526020018280548015610e7e57602002820191906000526020600020905b815481526020019060010190808311610e6a575b50505050509050919050565b6000600560008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060009054906101000a900460ff16905092915050565b6000610f2982610815565b9050919050565b610f38611391565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1603610faa5760006040517f1e4fbdf7000000000000000000000000000000000000000000000000000000008152600401610fa191906122b2565b60405180910390fd5b610fb3816114ba565b50565b60007f80ac58cd000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916148061108157507f5b5e139f000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916145b80611091575061109082611b3c565b5b9050919050565b6000806110a483611ba6565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361111757826040517f7e27328900000000000000000000000000000000000000000000000000000000815260040161110e9190612348565b60405180910390fd5b80915050919050565b60006004600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b600033905090565b6111728383836001611be3565b505050565b60008061118384611ba6565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff16146111c5576111c4818486611da8565b5b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161461125657611207600085600080611be3565b6001600360008373ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825403925050819055505b600073ffffffffffffffffffffffffffffffffffffffff168573ffffffffffffffffffffffffffffffffffffffff16146112d9576001600360008773ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff168152602001908152602001600020600082825401925050819055505b846002600086815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff160217905550838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef60405160405180910390a4809150509392505050565b61139961115d565b73ffffffffffffffffffffffffffffffffffffffff166113b76109ad565b73ffffffffffffffffffffffffffffffffffffffff1614611416576113da61115d565b6040517f118cdaa700000000000000000000000000000000000000000000000000000000815260040161140d91906122b2565b60405180910390fd5b565b60006114276000836000611177565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff160361149a57816040517f7e2732890000000000000000000000000000000000000000000000000000000081526004016114919190612348565b60405180910390fd5b5050565b8060096000848152602001908152602001600020819055505050565b6000600760009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905081600760006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508173ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e060405160405180910390a35050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff16036115f25760006040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016115e991906122b2565b60405180910390fd5b600061160083836000611177565b9050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16146116745760006040517f73c6ac6e00000000000000000000000000000000000000000000000000000000815260040161166b91906122b2565b60405180910390fd5b505050565b806006600084815260200190815260200160002090816116999190612d77565b507ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7826040516116c99190612348565b60405180910390a15050565b600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff160361174657816040517f5b08ba1800000000000000000000000000000000000000000000000000000000815260040161173d91906122b2565b60405180910390fd5b80600560008573ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060008473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200190815260200160002060006101000a81548160ff0219169083151502179055508173ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff167f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31836040516118379190612141565b60405180910390a3505050565b60008373ffffffffffffffffffffffffffffffffffffffff163b11156119f5578273ffffffffffffffffffffffffffffffffffffffff1663150b7a0261188861115d565b8685856040518563ffffffff1660e01b81526004016118aa9493929190612e9e565b6020604051808303816000875af19250505080156118e657506040513d601f19601f820116820180604052508101906118e39190612eff565b60015b61196a573d8060008114611916576040519150601f19603f3d011682016040523d82523d6000602084013e61191b565b606091505b50600081510361196257836040517f64a0ae9200000000000000000000000000000000000000000000000000000000815260040161195991906122b2565b60405180910390fd5b805181602001fd5b63150b7a0260e01b7bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916817bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916146119f357836040517f64a0ae920000000000000000000000000000000000000000000000000000000081526004016119ea91906122b2565b60405180910390fd5b505b50505050565b60008073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611ab357508273ffffffffffffffffffffffffffffffffffffffff168473ffffffffffffffffffffffffffffffffffffffff161480611a745750611a738484610e8a565b5b80611ab257508273ffffffffffffffffffffffffffffffffffffffff16611a9a83611120565b73ffffffffffffffffffffffffffffffffffffffff16145b5b90509392505050565b606060405180602001604052806000815250905090565b6060611ade82611098565b506000611ae9611abc565b90506000815111611b095760405180602001604052806000815250611b34565b80611b1384611e6c565b604051602001611b24929190612ba7565b6040516020818303038152906040525b915050919050565b60007f01ffc9a7000000000000000000000000000000000000000000000000000000007bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916827bffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916149050919050565b60006002600083815260200190815260200160002060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff169050919050565b8080611c1c5750600073ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff1614155b15611d50576000611c2c84611098565b9050600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1614158015611c9757508273ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff1614155b8015611caa5750611ca88184610e8a565b155b15611cec57826040517fa9fbf51f000000000000000000000000000000000000000000000000000000008152600401611ce391906122b2565b60405180910390fd5b8115611d4e57838573ffffffffffffffffffffffffffffffffffffffff168273ffffffffffffffffffffffffffffffffffffffff167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b836004600085815260200190815260200160002060006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff16021790555050505050565b611db38383836119fb565b611e6757600073ffffffffffffffffffffffffffffffffffffffff168373ffffffffffffffffffffffffffffffffffffffff1603611e2857806040517f7e273289000000000000000000000000000000000000000000000000000000008152600401611e1f9190612348565b60405180910390fd5b81816040517f177e802f000000000000000000000000000000000000000000000000000000008152600401611e5e929190612f2c565b60405180910390fd5b505050565b606060006001611e7b84611f3a565b01905060008167ffffffffffffffff811115611e9a57611e996123ed565b5b6040519080825280601f01601f191660200182016040528015611ecc5781602001600182028036833780820191505090505b509050600082602001820190505b600115611f2f578080600190039150507f3031323334353637383961626364656600000000000000000000000000000000600a86061a8153600a8581611f2357611f22612f55565b5b04945060008503611eda575b819350505050919050565b600080600090507a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008310611f98577a184f03e93ff9f4daa797ed6e38ed64bf6a1f0100000000000000008381611f8e57611f8d612f55565b5b0492506040810190505b6d04ee2d6d415b85acef81000000008310611fd5576d04ee2d6d415b85acef81000000008381611fcb57611fca612f55565b5b0492506020810190505b662386f26fc10000831061200457662386f26fc100008381611ffa57611ff9612f55565b5b0492506010810190505b6305f5e100831061202d576305f5e100838161202357612022612f55565b5b0492506008810190505b612710831061205257612710838161204857612047612f55565b5b0492506004810190505b60648310612075576064838161206b5761206a612f55565b5b0492506002810190505b600a8310612084576001810190505b80915050919050565b6000604051905090565b600080fd5b600080fd5b60007fffffffff0000000000000000000000000000000000000000000000000000000082169050919050565b6120d6816120a1565b81146120e157600080fd5b50565b6000813590506120f3816120cd565b92915050565b60006020828403121561210f5761210e612097565b5b600061211d848285016120e4565b91505092915050565b60008115159050919050565b61213b81612126565b82525050565b60006020820190506121566000830184612132565b92915050565b600081519050919050565b600082825260208201905092915050565b60005b8381101561219657808201518184015260208101905061217b565b60008484015250505050565b6000601f19601f8301169050919050565b60006121be8261215c565b6121c88185612167565b93506121d8818560208601612178565b6121e1816121a2565b840191505092915050565b6000602082019050818103600083015261220681846121b3565b905092915050565b6000819050919050565b6122218161220e565b811461222c57600080fd5b50565b60008135905061223e81612218565b92915050565b60006020828403121561225a57612259612097565b5b60006122688482850161222f565b91505092915050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b600061229c82612271565b9050919050565b6122ac81612291565b82525050565b60006020820190506122c760008301846122a3565b92915050565b6122d681612291565b81146122e157600080fd5b50565b6000813590506122f3816122cd565b92915050565b600080604083850312156123105761230f612097565b5b600061231e858286016122e4565b925050602061232f8582860161222f565b9150509250929050565b6123428161220e565b82525050565b600060208201905061235d6000830184612339565b92915050565b60008060006060848603121561237c5761237b612097565b5b600061238a868287016122e4565b935050602061239b868287016122e4565b92505060406123ac8682870161222f565b9150509250925092565b6000602082840312156123cc576123cb612097565b5b60006123da848285016122e4565b91505092915050565b600080fd5b600080fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b612425826121a2565b810181811067ffffffffffffffff82111715612444576124436123ed565b5b80604052505050565b600061245761208d565b9050612463828261241c565b919050565b600067ffffffffffffffff821115612483576124826123ed565b5b61248c826121a2565b9050602081019050919050565b82818337600083830152505050565b60006124bb6124b684612468565b61244d565b9050828152602081018484840111156124d7576124d66123e8565b5b6124e2848285612499565b509392505050565b600082601f8301126124ff576124fe6123e3565b5b813561250f8482602086016124a8565b91505092915050565b6000806000806080858703121561253257612531612097565b5b60006125408782880161222f565b945050602085013567ffffffffffffffff8111156125615761256061209c565b5b61256d878288016124ea565b935050604061257e878288016122e4565b925050606061258f8782880161222f565b91505092959194509250565b600080604083850312156125b2576125b1612097565b5b60006125c08582860161222f565b925050602083013567ffffffffffffffff8111156125e1576125e061209c565b5b6125ed858286016124ea565b9150509250929050565b61260081612126565b811461260b57600080fd5b50565b60008135905061261d816125f7565b92915050565b6000806040838503121561263a57612639612097565b5b6000612648858286016122e4565b92505060206126598582860161260e565b9150509250929050565b600067ffffffffffffffff82111561267e5761267d6123ed565b5b612687826121a2565b9050602081019050919050565b60006126a76126a284612663565b61244d565b9050828152602081018484840111156126c3576126c26123e8565b5b6126ce848285612499565b509392505050565b600082601f8301126126eb576126ea6123e3565b5b81356126fb848260208601612694565b91505092915050565b6000806000806080858703121561271e5761271d612097565b5b600061272c878288016122e4565b945050602061273d878288016122e4565b935050604061274e8782880161222f565b925050606085013567ffffffffffffffff81111561276f5761276e61209c565b5b61277b878288016126d6565b91505092959194509250565b600081519050919050565b600082825260208201905092915050565b6000819050602082019050919050565b6127bc8161220e565b82525050565b60006127ce83836127b3565b60208301905092915050565b6000602082019050919050565b60006127f282612787565b6127fc8185612792565b9350612807836127a3565b8060005b8381101561283857815161281f88826127c2565b975061282a836127da565b92505060018101905061280b565b5085935050505092915050565b6000602082019050818103600083015261285f81846127e7565b905092915050565b6000806040838503121561287e5761287d612097565b5b600061288c858286016122e4565b925050602061289d858286016122e4565b9150509250929050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b600060028204905060018216806128ee57607f821691505b602082108103612901576129006128a7565b5b50919050565b600060608201905061291c60008301866122a3565b6129296020830185612339565b61293660408301846122a3565b949350505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b60006129a78261220e565b91506129b28361220e565b92508282039050818111156129ca576129c961296d565b5b92915050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603160045260246000fd5b6000612a0a8261220e565b91507fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8203612a3c57612a3b61296d565b5b600182019050919050565b7f43616c6c6572206973206e6f7420617574686f72697a656420746f207472616e60008201527f73666572207468697320746f6b656e0000000000000000000000000000000000602082015250565b6000612aa3602f83612167565b9150612aae82612a47565b604082019050919050565b60006020820190508181036000830152612ad281612a96565b9050919050565b7f546f6b656e206973206e6f74206f776e6564206279202766726f6d272061646460008201527f7265737300000000000000000000000000000000000000000000000000000000602082015250565b6000612b35602483612167565b9150612b4082612ad9565b604082019050919050565b60006020820190508181036000830152612b6481612b28565b9050919050565b600081905092915050565b6000612b818261215c565b612b8b8185612b6b565b9350612b9b818560208601612178565b80840191505092915050565b6000612bb38285612b76565b9150612bbf8284612b76565b91508190509392505050565b60008190508160005260206000209050919050565b60006020601f8301049050919050565b600082821b905092915050565b600060088302612c2d7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff82612bf0565b612c378683612bf0565b95508019841693508086168417925050509392505050565b6000819050919050565b6000612c74612c6f612c6a8461220e565b612c4f565b61220e565b9050919050565b6000819050919050565b612c8e83612c59565b612ca2612c9a82612c7b565b848454612bfd565b825550505050565b600090565b612cb7612caa565b612cc2818484612c85565b505050565b5b81811015612ce657612cdb600082612caf565b600181019050612cc8565b5050565b601f821115612d2b57612cfc81612bcb565b612d0584612be0565b81016020851015612d14578190505b612d28612d2085612be0565b830182612cc7565b50505b505050565b600082821c905092915050565b6000612d4e60001984600802612d30565b1980831691505092915050565b6000612d678383612d3d565b9150826002028217905092915050565b612d808261215c565b67ffffffffffffffff811115612d9957612d986123ed565b5b612da382546128d6565b612dae828285612cea565b600060209050601f831160018114612de15760008415612dcf578287015190505b612dd98582612d5b565b865550612e41565b601f198416612def86612bcb565b60005b82811015612e1757848901518255600182019150602085019450602081019050612df2565b86831015612e345784890151612e30601f891682612d3d565b8355505b6001600288020188555050505b505050505050565b600081519050919050565b600082825260208201905092915050565b6000612e7082612e49565b612e7a8185612e54565b9350612e8a818560208601612178565b612e93816121a2565b840191505092915050565b6000608082019050612eb360008301876122a3565b612ec060208301866122a3565b612ecd6040830185612339565b8181036060830152612edf8184612e65565b905095945050505050565b600081519050612ef9816120cd565b92915050565b600060208284031215612f1557612f14612097565b5b6000612f2384828501612eea565b91505092915050565b6000604082019050612f4160008301856122a3565b612f4e6020830184612339565b9392505050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fdfea2646970667358221220b9a00fee3d32e927e515922790f5e4fb66ccc9a3b1dfc0478b321645febeeb4b64736f6c6343000814003300000000000000000000000082503946e026e9f3c82a5a494e6f27fbfd3f7350