0 txs
16 calls
constructor
constructor()
functions
ADDRESS_UPDATE_DELAY
viewfunction ADDRESS_UPDATE_DELAY() view returns (uint256)
admin1
viewfunction admin1() view returns (address)
admin2
viewfunction admin2() view returns (address)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
getAdminAddresses
viewfunction getAdminAddresses() view returns (address _owner, address _admin1, address _admin2)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getMarketplaceContract
viewfunction getMarketplaceContract() view returns (address _marketplaceContract)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
licenseInfos
viewfunction licenseInfos(uint256) view returns (address originalNftContract, uint256 originalTokenId, string originalTokenURI, address owner, string termsURI, uint256 price)
marketplaceContract
viewfunction marketplaceContract() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pendingMarketplaceUpdate
viewfunction pendingMarketplaceUpdate() view returns (address newAddress, uint256 timestamp)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenByIndex
viewfunction tokenByIndex(uint256 index) view returns (uint256)
tokenOfOwnerByIndex
viewfunction tokenOfOwnerByIndex(address owner, uint256 index) view returns (uint256)
tokensOfOwner
viewfunction tokensOfOwner(address _owner) view returns (uint256[])
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burnLicense
nonpayablefunction burnLicense(uint256 tokenId)
cancelMarketplaceContractUpdate
nonpayablefunction cancelMarketplaceContractUpdate()
confirmMarketplaceContractUpdate
nonpayablefunction confirmMarketplaceContractUpdate()
createLicense
nonpayablefunction createLicense(address walletAddress, address nftContract, uint256 tokenId, uint256 price, string _tokenURI, string _termsURI, uint256 itemId) returns (uint256)
initialize
nonpayablefunction initialize(address _admin1, address _admin2, address _marketplaceContract)
mintLicenseCopy
nonpayablefunction mintLicenseCopy(uint256 licenseTokenId, uint256 itemId, address seller, address buyer) returns (uint256)
proposeMarketplaceContractUpdate
nonpayablefunction proposeMarketplaceContractUpdate(address _newMarketplace)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
setAdmin
nonpayablefunction setAdmin(uint256 adminNumber, address newAdmin)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateLicensePrice
nonpayablefunction updateLicensePrice(uint256 licenseTokenId, uint256 newPrice, address caller) returns (bool)
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)
Initialized
event Initialized(uint8 version)
LicenseBurned
event LicenseBurned(uint256 indexed licenseTokenId, address indexed originalNftContract, uint256 originalTokenId, address indexed owner, address caller)
LicenseCreated
event LicenseCreated(uint256 itemId, uint256 indexed licenseTokenId, address indexed owner, address indexed originalNftContract, uint256 originalTokenId, string termsURI, uint256 price, address caller)
LicenseMinted
event LicenseMinted(uint256 itemId, uint256 indexed licenseTokenId, address indexed originalNftContract, uint256 indexed originalTokenId, string termsURI, address seller, address buyer, address caller)
MarketplaceContractUpdateCancelled
event MarketplaceContractUpdateCancelled(address indexed caller)
MarketplaceContractUpdated
event MarketplaceContractUpdated(address indexed oldMarketplace, address indexed newMarketplace, address caller)
MarketplaceContractUpdateProposed
event MarketplaceContractUpdateProposed(address indexed currentMarketplace, address indexed proposedMarketplace, address caller)
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
No errors.
creation bytecode
0x608080604052346100c2576000549060ff8260081c16610070575060ff80821603610035575b6040516132259081620000c88239f35b60ff90811916176000557f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb3847402498602060405160ff8152a138610025565b62461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b6064820152608490fd5b600080fdfe608080604052600436101561001357600080fd5b60003560e01c908162eeeb461461218b5750806301ffc9a7146120e957806306a8f8a2146120bf57806306fdde031461202e578063081812fc14612010578063095ea7b314611e96578063115976c414611e6c578063142e8e2514611da857806318160ddd14611d8a57806323b872dd14611d66578063273a7ed814611d485780632f745c5914611d2157806331310ad614611c8657806342842e0e14611c535780634f6ccce714611bc25780635d1c360e146117335780635e53677c146116ea5780636352211e146116ba57806364ddfa291461167b5780636b10dc6f1461111557806370a08231146110ea578063715018a61461108d5780638462151c14610fb15780638da5cb5b14610f8857806395d89b4114610ec2578063a22cb46514610df4578063aff465721461070c578063b88d4fde14610d6f578063bbe689f414610cd8578063c0c53b8b146108a7578063c38d76471461079a578063c87b56dd14610736578063d1bb5cf11461070c578063dd0784b714610634578063e8789ffa1461029f578063e985e9c5146102495763f2fde38b146101b557600080fd5b34610244576020366003190112610244576101ce6121fb565b6101d6612850565b6001600160a01b038116156101f0576101ee90612ebc565b005b60405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b6064820152608490fd5b600080fd5b34610244576040366003190112610244576102626121fb565b61026a612211565b9060018060a01b03809116600052606a60205260406000209116600052602052602060ff604060002054166040519015158152f35b3461024457602080600319360112610244576004356102be81336128a8565b156105f1576102cc816126b7565b9080600052610131808452604060002092604051906102ea826122ac565b60018060a01b039081865416835260056001870154968885019788526103126002820161231e565b604086015283600382015416606086015261032f6004820161231e565b6080860152015460a0840152610344856126b7565b808316908161055557505060995485600052609a885280604060002055600160401b81101561053f578561038182600161039a9401609955612588565b90919082549060031b91821b91600019901b1916179055565b60995460001993908481019081116105295786600052609a89526103c360406000205491612588565b90549060031b1c6103d78161038184612588565b600052609a89526040600020558560005260006040812055609954908115610513577f5cf6b897860a717fa18b7e6108372f84ac052222cab0ddd73bf4dc14ac4381db958760008760409888960161042e81612588565b8382549160031b1b191690556099558c6067610449856126b7565b858552606983528b852080546001600160a01b0319908116909155908916808652606884528c862080549095019094558585529152898320805490911690556000805160206131d08339815191528280a460c98a526104ab8660002054612272565b6104fa575b876000528952600060058682208281558260018201556104d260028201612807565b8260038201556104e460048201612807565b01555116955196835197885233908801521694a4005b8760005260c98a5261050e86600020612807565b6104b0565b634e487b7160e01b600052603160045260246000fd5b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fd5b61055e906126da565b6000198101919082116105295786600052609889526040600020548281036105ab575b5086600052600060408120556000526097885260406000209060005287526000604081205561039a565b8160005260978a526040600020836000528a526040600020548260005260978b526040600020826000528b528060406000205560005260988a5260406000205589610581565b6064826040519062461bcd60e51b825280600483015260248201527f43616c6c6572206973206e6f74206f776e6572206e6f7220617070726f7665646044820152fd5b346102445760203660031901126102445761064d6121fb565b60fb546001600160a01b039182918216331480156106fe575b80156106f0575b61067690612768565b169061068382151561245a565b604051604081018181106001600160401b0382111761053f576040528281526020429101526101328260018060a01b0319825416179055426101335561013054167fdcb308d238b49e975c75aeb7d8a0102fabe57acd96e90484c5926e737e4425d56020604051338152a3005b5061012f548216331461066d565b508161012e54163314610666565b3461024457600036600319011261024457610130546040516001600160a01b039091168152602090f35b346102445760203660031901126102445760043561075b61075682612e9f565b612670565b60005260c9602052610796610773604060002061231e565b6000604051610781816122c7565b526040519182916020835260208301906121bb565b0390f35b346102445760003660031901126102445760fb546001600160a01b0390811633148015610899575b801561088b575b6107d290612768565b61013281815416916107e58315156127c7565b61013380546202a300810180911161052957421061084c5761013080546001600160a01b0319811686179091556000938490559290556040513381529116907fff2a9e8d8a00b309ddf89307647545f74b559d6d22dda482e4e7289a49d7225e90602090a3005b60405162461bcd60e51b8152602060048201526017602482015276155c19185d194819195b185e481b9bdd081c185cdcd959604a1b6044820152606490fd5b5061012f54811633146107c9565b508061012e541633146107c2565b34610244576060366003190112610244576108c06121fb565b6108c8612211565b906108d1612227565b916000549260ff8460081c161591828093610ccb575b8015610cb4575b15610c5857600194838660ff19831617600055610c46575b5060405193610914856122e2565b601f948581526020957f44756e6261636b4d6561646f7720436f6e74656e74204c6963656e73696e67008783015260405161094e816122e2565b6004815263111350d360e21b8882015261097860ff60005460081c1661097381612f7c565b612f7c565b82516001600160401b039384821161053f57610995606554612272565b8a858211610c16575b50508990848311600114610ba7576109cf929160009183610b9c575b50508160011b916000199060031b1c19161790565b6065555b805192831161053f576109e7606654612272565b828111610b63575b5087918311600114610aff57610a1d929160009183610af45750508160011b916000199060031b1c19161790565b6066555b610a4860ff60005460081c16610a3681612f7c565b610a3f81612f7c565b61097381612f7c565b610a5133612ebc565b6001600160a01b039081169182151580610ae9575b80610ade575b610a759061245a565b60018060a01b03199261012e90848254161790558161012f911683825416179055610130921690825416179055610aa857005b7f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989161ff001960005416600055604051908152a1005b508382161515610a6c565b508181161515610a66565b0151905089806109ba565b889291601f198316916066600052896000209260005b8b828210610b4d5750508411610b34575b505050811b01606655610a21565b015160001960f88460031b161c19169055888080610b26565b8385015186558d97909501949384019301610b15565b610b8d906066600052896000208480870160051c8201928c8810610b93575b0160051c0190612608565b896109ef565b92508192610b82565b015190508c806109ba565b8b9291601f1983169160656000528c600020928d6000905b828210610bf65750508411610bdd575b505050811b016065556109d3565b015160001960f88460031b161c191690558b8080610bcf565b91929395968291958786015181550195019301908e95949392918e610bbf565b610c3f91606560005286826000209181870160051c8301938710610b93570160051c0190612608565b8b8a61099e565b61ffff19166101011760005585610906565b60405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b6064820152608490fd5b50303b1580156108ee5750600160ff8616146108ee565b50600160ff8616106108e7565b346102445760003660031901126102445760fb546000906001600160a01b0390811633148015610d61575b8015610d53575b610d1390612768565b610d246101329182541615156127c7565b55600061013355337fa3ab222df599045947410c10f9e25f605533eabb7e4cb9379b9197a80a9ee44d600080a2005b5061012f5481163314610d0a565b508061012e54163314610d03565b3461024457608036600319011261024457610d886121fb565b610d90612211565b90606435906044356001600160401b0383116102445736602384011215610244576101ee93610dcc610def9436906024816004013591016123de565b92610ddf610dda84336128a8565b612498565b610dea838383612970565b6130fa565b612f58565b3461024457604036600319011261024457610e0d6121fb565b60243590811515809203610244576001600160a01b031690338214610e815733600052606a602052604060002082600052602052604060002060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b60405162461bcd60e51b815260206004820152601960248201527822a9219b99189d1030b8383937bb32903a379031b0b63632b960391b6044820152606490fd5b3461024457600036600319011261024457604051606654600082610ee583612272565b9182825260209360019085600182169182600014610f68575050600114610f28575b50610f14925003836122fd565b6107966040519282849384528301906121bb565b849150606660005281600020906000915b858310610f50575050610f14935082010185610f07565b80548389018501528794508693909201918101610f39565b60ff191685820152610f1495151560051b8501019250879150610f079050565b346102445760003660031901126102445760fb546040516001600160a01b039091168152602090f35b346102445760208060031936011261024457610fcb6121fb565b610fd4816126da565b610fdd81612751565b90610feb60405192836122fd565b808252610ff781612751565b8285019390601f190136853760005b8281106110515750505090604051928392818401908285525180915260408401929160005b82811061103a57505050500390f35b83518552869550938101939281019260010161102b565b61105b81836124fa565b90845181101561107757600191878260051b8701015201611006565b634e487b7160e01b600052603260045260246000fd5b34610244576000366003190112610244576110a6612850565b60fb80546001600160a01b031981169091556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461024457602036600319011261024457602061110d6111086121fb565b6126da565b604051908152f35b346102445760e03660031901126102445761112e6121fb565b611136612211565b906084356001600160401b03811161024457611156903690600401612415565b9060a4356001600160401b03811161024457611176903690600401612415565b9261118d60018060a01b03610130541633146125a3565b6040516331a9108f60e11b815260443560048201526020816024816001600160a01b0386165afa90811561166f5760009161162d575b506001600160a01b038381169116036115d3576001600160a01b038116301461157d57600161012d5401928361012d5560405194611200866122ac565b6001600160a01b03838116875260443560208089019182526040808a0186815288851660608c015260808b0186905260643560a08c015260008a81526101319093529120895181546001600160a01b031916941693909317835590516001830155518051919391906001600160401b03821161053f576112836002860154612272565b601f8111611548575b50602090601f83116001146114da576112bd9291600091836114cf5750508160011b916000199060031b1c19161790565b60028401555b60608701516003840180546001600160a01b0319166001600160a01b039290921691909117905560808701518051979093906001600160401b03891161053f5760209888956113156004850154612272565b601f8111611491575b508a90601f83116001146113f15760a06113999461137e856113bc99967f8a4495318b80415e1a52027c1ed3436a4b638420283e7e6e2d7563a502f0499f9b99966005966000926113e65750508160011b916000199060031b1c19161790565b60048501555b01519101556113938689612b87565b85612cd8565b60405191829160c43583526044358a84015260a0604084015260a08301906121bb565b60643560608301526001600160a01b039687166080830181905295909616950390a4604051908152f35b0151905038806109ba565b90600485016000528b6000209160005b601f19851681106114775750611399946001857f8a4495318b80415e1a52027c1ed3436a4b638420283e7e6e2d7563a502f0499f9a989560059560a0956113bc9c99601f1981161061145e575b505050811b016004850155611384565b015160001960f88460031b161c1916905538808061144e565b8183015184558c9950600190930192918d01918d01611401565b6114bf90600486016000528c600020601f850160051c8101918e86106114c5575b601f0160051c0190612608565b8b61131e565b90915081906114b2565b015190508a806109ba565b90601f198316916002870160005260206000209260005b8181106115305750908460019594939210611517575b505050811b0160028401556112c3565b015160001960f88460031b161c19169055898080611507565b929360206001819287860151815501950193016114f1565b61157790600287016000526020600020601f850160051c810191602086106114c557601f0160051c0190612608565b8961128c565b60405162461bcd60e51b815260206004820152602860248201527f43616e6e6f74206c6963656e736520616e204e46542066726f6d20746869732060448201526718dbdb9d1c9858dd60c21b6064820152608490fd5b60405162461bcd60e51b815260206004820152602c60248201527f57616c6c6574206164647265737320646f6573206e6f74206f776e207468652060448201526b1bdc9a59da5b985b0813919560a21b6064820152608490fd5b90506020813d602011611667575b81611648602093836122fd565b8101031261024457516001600160a01b038116810361024457856111c3565b3d915061163b565b6040513d6000823e3d90fd5b3461024457600036600319011261024457606060018060a01b038060fb5416908061012e54169061012f54169060405192835260208301526040820152f35b346102445760203660031901126102445760206116d86004356126b7565b6040516001600160a01b039091168152f35b34610244576060366003190112610244576020611729611708612227565b61171e60018060a01b03610130541633146125a3565b60243560043561261f565b6040519015158152f35b346102445760803660031901126102445761174c612227565b6064356001600160a01b03811690036102445761177560018060a01b03610130541633146125a3565b600435600052610131602052604060002060405190611793826122ac565b80546001600160a01b03168252600181015460208301526117b66002820161231e565b604083015260038101546001600160a01b031660608301908152906005906117e06004820161231e565b6080850152015460a0830152516001600160a01b031615611b8457600161012d5401908161012d5560018060a01b038151169260208201516040830151608084015160a08501519060405197611835896122ac565b8852602088019384526040880192835260018060a01b03606435166060890152608088015260a08701528460005261013160205260406000209160018060a01b0387511660018060a01b0319845416178355516001830155518051906001600160401b03821161053f576118ac6002840154612272565b601f8111611b4f575b50602090601f8311600114611add576118e6929160009183611ad25750508160011b916000199060031b1c19161790565b60028201555b60608501516003820180546001600160a01b0319166001600160a01b0392909216919091179055608085015180519095906001600160401b03811161053f5760209661193b6004850154612272565b601f8111611a9f575b508790601f8311600114611a2c578260a0936005959361197a93600092611a215750508160011b916000199060031b1c19161790565b60048501555b015191015561199183606435612b87565b61199f604083015184612cd8565b827f224fd7bc84aade295b7f0439878b7534c9365d0623c6714581b3a6a7f3dc6e796119f460018060a01b038551169360808887015196015190604051928392602435845260a08b85015260a08401906121bb565b6001600160a01b0391821660408401526064359091166060830181905260808301520390a4604051908152f35b015190508b806109ba565b9060048501600052886000209160005b601f1985168110611a885750926005949260019260a09583601f19811610611a6f575b505050811b016004850155611980565b015160001960f88460031b161c191690558a8080611a5f565b91928a600181928685015181550194019201611a3c565b611acc906004860160005289600020601f850160051c8101918b86106114c557601f0160051c0190612608565b88611944565b0151905088806109ba565b9190600284016000526020600020906000935b601f1984168510611b34576001945083601f19811610611b1b575b505050811b0160028201556118ec565b015160001960f88460031b161c19169055878080611b0b565b81810151835560209485019460019093019290910190611af0565b611b7e90600285016000526020600020601f850160051c810191602086106114c557601f0160051c0190612608565b876118b5565b60405162461bcd60e51b8152602060048201526016602482015275131a58d95b9cd948191bd95cc81b9bdd08195e1a5cdd60521b6044820152606490fd5b3461024457602036600319011261024457600435609954811015611bf957611beb602091612588565b90546040519160031b1c8152f35b60405162461bcd60e51b815260206004820152602c60248201527f455243373231456e756d657261626c653a20676c6f62616c20696e646578206f60448201526b7574206f6620626f756e647360a01b6064820152608490fd5b34610244576101ee610def611c673661223d565b9060405192611c75846122c7565b60008452610ddf610dda84336128a8565b3461024457602036600319011261024457600435600052610131602052604060002060018060a01b038082541690611d17600184015493611cc96002820161231e565b9260038201541690611d046005611ce26004840161231e565b920154946040519788978852602088015260c0604088015260c08701906121bb565b91606086015284820360808601526121bb565b9060a08301520390f35b3461024457604036600319011261024457602061110d611d3f6121fb565b602435906124fa565b346102445760003660031901126102445760206040516202a3008152f35b34610244576101ee611d773661223d565b91611d85610dda84336128a8565b612970565b34610244576000366003190112610244576020609954604051908152f35b3461024457604036600319011261024457600435611dc4612211565b611dcc612850565b6001600160a01b031690611de182151561245a565b6001811480918115611e61575b5015611e255715611e0f5761012e80546001600160a01b0319169091179055005b61012f80546001600160a01b0319169091179055005b60405162461bcd60e51b815260206004820152601460248201527324b73b30b634b21030b236b4b710373ab6b132b960611b6044820152606490fd5b600291501483611dee565b346102445760003660031901126102445761012e546040516001600160a01b039091168152602090f35b3461024457604036600319011261024457611eaf6121fb565b602435906001600160a01b038080611ec6856126b7565b16921691808314611fc157803314908115611f9c575b5015611f3157600083815260696020526040902080546001600160a01b03191683179055611f09836126b7565b167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b60405162461bcd60e51b815260206004820152603d60248201527f4552433732313a20617070726f76652063616c6c6572206973206e6f7420746f60448201527f6b656e206f776e6572206f7220617070726f76656420666f7220616c6c0000006064820152608490fd5b9050600052606a60205260406000203360005260205260ff6040600020541684611edc565b60405162461bcd60e51b815260206004820152602160248201527f4552433732313a20617070726f76616c20746f2063757272656e74206f776e656044820152603960f91b6064820152608490fd5b346102445760203660031901126102445760206116d8600435612433565b346102445760003660031901126102445760405160655460008261205183612272565b9182825260209360019085600182169182600014610f6857505060011461207f5750610f14925003836122fd565b849150606560005281600020906000915b8583106120a7575050610f14935082010185610f07565b80548389018501528794508693909201918101612090565b346102445760003660031901126102445761012f546040516001600160a01b039091168152602090f35b346102445760203660031901126102445760043563ffffffff60e01b811680910361024457602090632483248360e11b811490811561212e575b506040519015158152f35b63780e9d6360e01b811491508115612148575b5082612123565b6380ac58cd60e01b81149150811561217a575b8115612169575b5082612141565b6301ffc9a760e01b14905082612162565b635b5e139f60e01b8114915061215b565b346102445760003660031901126102445761013254610133546001600160a01b0390911682526020820152604090f35b919082519283825260005b8481106121e7575050826000602080949584010152601f8019910116010190565b6020818301810151848301820152016121c6565b600435906001600160a01b038216820361024457565b602435906001600160a01b038216820361024457565b604435906001600160a01b038216820361024457565b6060906003190112610244576001600160a01b0390600435828116810361024457916024359081168103610244579060443590565b90600182811c921680156122a2575b602083101461228c57565b634e487b7160e01b600052602260045260246000fd5b91607f1691612281565b60c081019081106001600160401b0382111761053f57604052565b602081019081106001600160401b0382111761053f57604052565b604081019081106001600160401b0382111761053f57604052565b90601f801991011681019081106001600160401b0382111761053f57604052565b9060405191826000825461233181612272565b908184526020946001916001811690816000146123a15750600114612362575b505050612360925003836122fd565b565b600090815285812095935091905b8183106123895750506123609350820101388080612351565b85548884018501529485019487945091830191612370565b9250505061236094925060ff191682840152151560051b820101388080612351565b6001600160401b03811161053f57601f01601f191660200190565b9291926123ea826123c3565b916123f860405193846122fd565b829481845281830111610244578281602093846000960137010152565b9080601f8301121561024457816020612430933591016123de565b90565b61243f61075682612e9f565b6000908152606960205260409020546001600160a01b031690565b1561246157565b60405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b6044820152606490fd5b1561249f57565b60405162461bcd60e51b815260206004820152602d60248201527f4552433732313a2063616c6c6572206973206e6f7420746f6b656e206f776e6560448201526c1c881bdc88185c1c1c9bdd9959609a1b6064820152608490fd5b612503816126da565b82101561252f5760018060a01b0316600052609760205260406000209060005260205260406000205490565b60405162461bcd60e51b815260206004820152602b60248201527f455243373231456e756d657261626c653a206f776e657220696e646578206f7560448201526a74206f6620626f756e647360a81b6064820152608490fd5b60995481101561107757609960005260206000200190600090565b156125aa57565b60405162461bcd60e51b815260206004820152603060248201527f4f6e6c79206d61726b6574706c61636520636f6e74726163742063616e20636160448201526f3636103a3434b990333ab731ba34b7b760811b6064820152608490fd5b818110612613575050565b60008155600101612608565b909161262a82612e9f565b1561266857612638826126b7565b6001600160a01b0391821691160361266157600052610131602052600560406000200155600190565b5050600090565b505050600090565b1561267757565b60405162461bcd60e51b8152602060048201526018602482015277115490cdcc8c4e881a5b9d985b1a59081d1bdad95b88125160421b6044820152606490fd5b6000908152606760205260409020546001600160a01b0316612430811515612670565b6001600160a01b031680156126fa57600052606860205260406000205490565b60405162461bcd60e51b815260206004820152602960248201527f4552433732313a2061646472657373207a65726f206973206e6f7420612076616044820152683634b21037bbb732b960b91b6064820152608490fd5b6001600160401b03811161053f5760051b60200190565b1561276f57565b60405162461bcd60e51b815260206004820152602a60248201527f4f6e6c79206f776e6572206f722061646d696e2063616e2063616c6c207468696044820152693990333ab731ba34b7b760b11b6064820152608490fd5b156127ce57565b60405162461bcd60e51b81526020600482015260116024820152704e6f2070656e64696e672075706461746560781b6044820152606490fd5b6128118154612272565b908161281b575050565b81601f6000931160011461282d575055565b90808391825261284c601f60208420940160051c840160018501612608565b5555565b60fb546001600160a01b0316330361286457565b606460405162461bcd60e51b815260206004820152602060248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e65726044820152fd5b906001600160a01b0380806128bc846126b7565b169316918383149384156128ef575b5083156128d9575b50505090565b6128e591929350612433565b16143880806128d3565b909350600052606a60205260406000208260005260205260ff6040600020541692386128cb565b1561291d57565b60405162461bcd60e51b815260206004820152602560248201527f4552433732313a207472616e736665722066726f6d20696e636f72726563742060448201526437bbb732b960d91b6064820152608490fd5b6129949161297d846126b7565b6001600160a01b0393848416939185168414612916565b838216938415612b3657839182612a9357506099546000878152609a602052604090208190559150600160401b82101561053f576129fa926129e187610381856001899701609955612588565b828603612a60575b506129f3866126b7565b1614612916565b6000805160206131d0833981519152600084815260696020526040812060018060a01b03199081815416905583825260686020526040822060001981540190558482526040822060018154019055858252606760205284604083209182541617905580a4565b612a69906126da565b604060008781526097602052818120838252602052888282205588815260986020522055386129e9565b858303612aa5575b506129fa926129e1565b612ab09192506126da565b600019810191908211610529576129fa9284926000908882526020906098825260409182842054828103612aff575b508a84528383812055868452609781528284209184525281205592612a9b565b8785526097825283852083865282528385205488865260978352848620828752835280858720558552609882528385205538612adf565b60405162461bcd60e51b8152602060048201526024808201527f4552433732313a207472616e7366657220746f20746865207a65726f206164646044820152637265737360e01b6064820152608490fd5b90604091825192612b97846122c7565b60008085526001600160a01b03831691821580612c9557612bc0612bba87612e9f565b15613183565b60995490868452602091609a83528084862055600160401b811015612c81579260678896936123609a989693612c0489610381896001610def9f9b01609955612588565b15612c54575b612c16612bba87612e9f565b848452606881528284208054600101905585845252812080546001600160a01b031916831790556000805160206131d08339815191528180a4612fdc565b612c5d876126da565b85855260978252838520818652825286848620558685526098825283852055612c0a565b634e487b7160e01b85526041600452602485fd5b6064825162461bcd60e51b815260206004820152602060248201527f4552433732313a206d696e7420746f20746865207a65726f20616464726573736044820152fd5b919091612ce481612e9f565b15612e435760009080825260209160c9835260408120908551956001600160401b038711612e2f57612d168354612272565b601f8111612e01575b508491601f8811600114612d7d5796612d719281927ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce79899926113e65750508160011b916000199060031b1c19161790565b90555b604051908152a1565b9190601f198816848452868420935b818110612dea57509160019391897ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce7999a9410612dd1575b505050811b019055612d74565b015160001960f88460031b161c19169055388080612dc4565b929387600181928786015181550195019301612d8c565b612e2990848452868420601f8a0160051c810191888b106114c557601f0160051c0190612608565b38612d1f565b634e487b7160e01b82526041600452602482fd5b60405162461bcd60e51b815260206004820152602e60248201527f45524337323155524953746f726167653a2055524920736574206f66206e6f6e60448201526d32bc34b9ba32b73a103a37b5b2b760911b6064820152608490fd5b6000908152606760205260409020546001600160a01b0316151590565b60fb80546001600160a01b039283166001600160a01b0319821681179092559091167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3565b60809060208152603260208201527f4552433732313a207472616e7366657220746f206e6f6e20455243373231526560408201527131b2b4bb32b91034b6b83632b6b2b73a32b960711b60608201520190565b15612f5f57565b60405162461bcd60e51b815280612f7860048201612f05565b0390fd5b15612f8357565b60405162461bcd60e51b815260206004820152602b60248201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960448201526a6e697469616c697a696e6760a81b6064820152608490fd5b91929091803b156130f157613029936040519081630a85bd0160e11b9384825233600483015260009687602484015260448301526080606483015281878160209a8b9660848301906121bb565b03926001600160a01b03165af18491816130ad575b5061309c575050503d600014613094573d613058816123c3565b9061306660405192836122fd565b81528091833d92013e5b805191826130915760405162461bcd60e51b815280612f7860048201612f05565b01fd5b506060613070565b6001600160e01b0319161492509050565b9091508581813d83116130ea575b6130c581836122fd565b810103126130e657516001600160e01b0319811681036130e657903861303e565b8480fd5b503d6130bb565b50915050600190565b9293919290803b156131795761314e9460018060a01b039460405192839187630a85bd0160e11b9687855233600486015216602484015260448301526080606483015281806020998a9560848301906121bb565b03916000988991165af18491816130ad575061309c575050503d600014613094573d613058816123c3565b5050915050600190565b1561318a57565b60405162461bcd60e51b815260206004820152601c60248201527f4552433732313a20746f6b656e20616c7265616479206d696e746564000000006044820152606490fdfeddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220c36c6d1cf0b0b45f7f008740ab55f607a9402288af286a4c1f8676e8ebc3009d64736f6c63430008180033