12.9k txs
264.6k calls
constructor
constructor()
functions
allowMultiMint
viewfunction allowMultiMint() view returns (bool)
balanceOf
viewfunction balanceOf(address account, uint256 id) view returns (uint256)
balanceOfBatch
viewfunction balanceOfBatch(address[] accounts, uint256[] ids) view returns (uint256[])
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
disabled
viewfunction disabled() view returns (bool)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
getRoleMember
viewfunction getRoleMember(bytes32 role, uint256 index) view returns (address)
getRoleMemberCount
viewfunction getRoleMemberCount(bytes32 role) view returns (uint256)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
isApprovedForAll
viewfunction isApprovedForAll(address account, address operator) view returns (bool)
isBaseUriLocked
viewfunction isBaseUriLocked() view returns (bool)
MINTER_ROLE
viewfunction MINTER_ROLE() view returns (bytes32)
name
viewfunction name() view returns (string)
paused
viewfunction paused() view returns (bool)
PRIME
viewfunction PRIME() view returns (address)
routerEndpoints
viewfunction routerEndpoints(uint256) view returns (address nftReceiver, address ethReceiver, address primeReceiver, address verifier)
supportsInterface
viewfunction supportsInterface(bytes4 _interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenSuffix
viewfunction tokenSuffix(uint256) view returns (string)
uri
viewfunction uri(uint256 _tokenId) view returns (string)
burn
nonpayablefunction burn(address account, uint256 id, uint256 value)
burnBatch
nonpayablefunction burnBatch(address account, uint256[] ids, uint256[] values)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
invoke
payablefunction invoke(uint256 _id, uint256[] _tokenIds, uint256[] _tokenQuantities, uint256 _primeValue, bytes _data) payable
lockBaseUri
nonpayablefunction lockBaseUri()
mint
nonpayablefunction mint(address _to, uint256 _id, uint256 _amount, string _tokenUri, bytes _data)
mintBatch
nonpayablefunction mintBatch(address _to, uint256[] _ids, uint256[] _amounts, string[] _tokenUris, bytes _data)
renounceRole
nonpayablefunction renounceRole(bytes32 role, address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
safeBatchTransferFrom
nonpayablefunction safeBatchTransferFrom(address from, address to, uint256[] ids, uint256[] amounts, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 id, uint256 amount, bytes data)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setDisabled
nonpayablefunction setDisabled(bool _disabled)
setPrime
nonpayablefunction setPrime(address _prime)
setReceiver
nonpayablefunction setReceiver(uint256 _id, address _nftReceiver, address _ethReceiver, address _primeReceiver, address _verifier)
setUri
nonpayablefunction setUri(string _uri)
unpause
nonpayablefunction unpause()
events
ApprovalForAll
event ApprovalForAll(address indexed account, address indexed operator, bool approved)
HandlerInvoked
event HandlerInvoked(address userAddress, (address nftReceiver, address ethReceiver, address primeReceiver, address verifier) routerEndpoint, uint256 ethValue, uint256 primeValue, uint256[] tokenIds, uint256[] tokenQuantities, bytes data)
Paused
event Paused(address account)
ReceiverSet
event ReceiverSet(uint256 id, address nftReceiver, address ethReceiver, address primeReceiver, address verifier)
RoleAdminChanged
event RoleAdminChanged(bytes32 indexed role, bytes32 indexed previousAdminRole, bytes32 indexed newAdminRole)
RoleGranted
event RoleGranted(bytes32 indexed role, address indexed account, address indexed sender)
RoleRevoked
event RoleRevoked(bytes32 indexed role, address indexed account, address indexed sender)
TransferBatch
event TransferBatch(address indexed operator, address indexed from, address indexed to, uint256[] ids, uint256[] values)
TransferSingle
event TransferSingle(address indexed operator, address indexed from, address indexed to, uint256 id, uint256 value)
Unpaused
event Unpaused(address account)
URI
event URI(string value, uint256 indexed id)
errors
No errors.
creation bytecode
0x6080604052600680546001600160a01b03191673b23d80f5fefcddaa212212f028021b41ded428cf1790553480156200003757600080fd5b5060006040518060600160405280603c8152602001620043bc603c9139604051806040016040528060128152602001710a0c2e4c2d8d8cad84082cce8cae4dac2e8d60731b815250604051806040016040528060048152602001634c4c414d60e01b81525082620000ae816200013f60201b60201c565b5060016005556009805462ff000019166201000086151502179055600a620000d7838262000400565b50600b620000e6828262000400565b50620000f460003362000151565b620001207f9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a63362000151565b5050600c805460ff19169055506200013990506200015d565b620004cc565b60046200014d828262000400565b5050565b6200014d8282620001ba565b62000167620001fd565b600c805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586200019d3390565b6040516001600160a01b03909116815260200160405180910390a1565b620001d182826200024a60201b620019541760201c565b6000828152600160209081526040909120620001f8918390620019d8620002ea821b17901c565b505050565b600c5460ff1615620002485760405162461bcd60e51b815260206004820152601060248201526f14185d5cd8589b194e881c185d5cd95960821b604482015260640160405180910390fd5b565b6000828152602081815260408083206001600160a01b038516845290915290205460ff166200014d576000828152602081815260408083206001600160a01b03851684529091529020805460ff19166001179055620002a63390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b600062000301836001600160a01b0384166200030a565b90505b92915050565b6000818152600183016020526040812054620003535750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915562000304565b50600062000304565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200038757607f821691505b602082108103620003a857634e487b7160e01b600052602260045260246000fd5b50919050565b601f821115620001f857600081815260208120601f850160051c81016020861015620003d75750805b601f850160051c820191505b81811015620003f857828155600101620003e3565b505050505050565b81516001600160401b038111156200041c576200041c6200035c565b62000434816200042d845462000372565b84620003ae565b602080601f8311600181146200046c5760008415620004535750858301515b600019600386901b1c1916600185901b178555620003f8565b600085815260208120601f198616915b828110156200049d578886015182559484019460019091019084016200047c565b5085821015620004bc5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b613ee080620004dc6000396000f3fe6080604052600436106102185760003560e01c80639115ecf511610123578063a4b645eb116100ab578063d547741f1161006f578063d547741f1461069f578063e985e9c5146106bf578063ee07080514610708578063f242432a14610722578063f5298aca1461074257600080fd5b8063a4b645eb146105fd578063b9571e841461061d578063c9e18c6f1461063d578063ca15c8731461065d578063d53913931461067d57600080fd5b806395d89b41116100f257806395d89b41146105805780639b642de1146105955780639e5027d5146105b5578063a217fddf146105c8578063a22cb465146105dd57600080fd5b80639115ecf51461049a57806391d14854146104ba5780639409f846146104da578063959ee085146104fa57600080fd5b8063312767ca116101a65780635c975abb116101755780635c975abb146104025780636b20c4541461041a5780636c5a7d1e1461043a5780637547495f1461045a5780639010d07c1461047a57600080fd5b8063312767ca1461038b57806336568abe146103a05780633f4ba83a146103c05780634e1273f4146103d557600080fd5b80630e89341c116101ed5780630e89341c146102da5780630ef63773146102fa578063248a9ca3146103195780632eb2c2d6146103495780632f2ff15d1461036b57600080fd5b806217cd8b1461021d578062fdd58e1461025a57806301ffc9a71461028857806306fdde03146102b8575b600080fd5b34801561022957600080fd5b5060065461023d906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b34801561026657600080fd5b5061027a610275366004612c55565b610762565b604051908152602001610251565b34801561029457600080fd5b506102a86102a3366004612c95565b6107fd565b6040519015158152602001610251565b3480156102c457600080fd5b506102cd610808565b6040516102519190612d02565b3480156102e657600080fd5b506102cd6102f5366004612d15565b610896565b34801561030657600080fd5b506009546102a890610100900460ff1681565b34801561032557600080fd5b5061027a610334366004612d15565b60009081526020819052604090206001015490565b34801561035557600080fd5b50610369610364366004612e77565b610953565b005b34801561037757600080fd5b50610369610386366004612f20565b61099f565b34801561039757600080fd5b506103696109c9565b3480156103ac57600080fd5b506103696103bb366004612f20565b610a0e565b3480156103cc57600080fd5b50610369610a8c565b3480156103e157600080fd5b506103f56103f0366004612f4c565b610aca565b6040516102519190613051565b34801561040e57600080fd5b50600c5460ff166102a8565b34801561042657600080fd5b50610369610435366004613064565b610bf3565b34801561044657600080fd5b506103696104553660046130e5565b610c36565b34801561046657600080fd5b50610369610475366004613102565b610c7d565b34801561048657600080fd5b5061023d610495366004613160565b610f8a565b3480156104a657600080fd5b506102cd6104b5366004612d15565b610fa9565b3480156104c657600080fd5b506102a86104d5366004612f20565b610fc2565b3480156104e657600080fd5b506009546102a89062010000900460ff1681565b34801561050657600080fd5b5061054d610515366004612d15565b60076020526000908152604090208054600182015460028301546003909301546001600160a01b039283169391831692918216911684565b604080516001600160a01b0395861681529385166020850152918416918301919091529091166060820152608001610251565b34801561058c57600080fd5b506102cd610feb565b3480156105a157600080fd5b506103696105b03660046131ca565b610ff8565b6103696105c336600461324f565b6110cd565b3480156105d457600080fd5b5061027a600081565b3480156105e957600080fd5b506103696105f83660046132fb565b6114df565b34801561060957600080fd5b50610369610618366004613332565b6114ea565b34801561062957600080fd5b50610369610638366004613389565b611622565b34801561064957600080fd5b506103696106583660046134b6565b61183a565b34801561066957600080fd5b5061027a610678366004612d15565b611890565b34801561068957600080fd5b5061027a600080516020613e8b83398151915281565b3480156106ab57600080fd5b506103696106ba366004612f20565b6118a7565b3480156106cb57600080fd5b506102a86106da3660046134d1565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b34801561071457600080fd5b506009546102a89060ff1681565b34801561072e57600080fd5b5061036961073d3660046134fb565b6118cc565b34801561074e57600080fd5b5061036961075d36600461355f565b611911565b60006001600160a01b0383166107d25760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b5060008181526002602090815260408083206001600160a01b03861684529091529020545b92915050565b60006107f7826119ed565b600a805461081590613592565b80601f016020809104026020016040519081016040528092919081815260200182805461084190613592565b801561088e5780601f106108635761010080835404028352916020019161088e565b820191906000526020600020905b81548152906001019060200180831161087157829003601f168201915b505050505081565b606060006108a383611a2d565b905080516000036108c4575050604080516020810190915260008152919050565b604080518082019091526001808252602f60f81b6020909201829052825183916108ed916135f8565b815181106108fd576108fd6135cc565b01602001516001600160f81b031916146109175792915050565b806008600085815260200190815260200160002060405160200161093c92919061367e565b604051602081830303815290604052915050919050565b6001600160a01b03851633148061096f575061096f85336106da565b61098b5760405162461bcd60e51b81526004016107c9906136a5565b6109988585858585611ac1565b5050505050565b6000828152602081905260409020600101546109ba81611c6e565b6109c48383611c7b565b505050565b6109e1600080516020613e8b83398151915233610fc2565b6109fd5760405162461bcd60e51b81526004016107c9906136f3565b6009805461ff001916610100179055565b6001600160a01b0381163314610a7e5760405162461bcd60e51b815260206004820152602f60248201527f416363657373436f6e74726f6c3a2063616e206f6e6c792072656e6f756e636560448201526e103937b632b9903337b91039b2b63360891b60648201526084016107c9565b610a888282611c9d565b5050565b610aa4600080516020613e8b83398151915233610fc2565b610ac05760405162461bcd60e51b81526004016107c9906136f3565b610ac8611cbf565b565b60608151835114610b2f5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016107c9565b600083516001600160401b03811115610b4a57610b4a612d2e565b604051908082528060200260200182016040528015610b73578160200160208202803683370190505b50905060005b8451811015610beb57610bbe858281518110610b9757610b976135cc565b6020026020010151858381518110610bb157610bb16135cc565b6020026020010151610762565b828281518110610bd057610bd06135cc565b6020908102919091010152610be481613737565b9050610b79565b509392505050565b6001600160a01b038316331480610c0f5750610c0f83336106da565b610c2b5760405162461bcd60e51b81526004016107c9906136a5565b6109c4838383611d06565b610c4e600080516020613e8b83398151915233610fc2565b610c6a5760405162461bcd60e51b81526004016107c9906136f3565b6009805460ff1916911515919091179055565b610c95600080516020613e8b83398151915233610fc2565b610cb15760405162461bcd60e51b81526004016107c9906136f3565b6001600160a01b038416610d1f5760405162461bcd60e51b815260206004820152602f60248201527f45524331313535496e766f6b653a205f6e667452656365697665722063616e6e60448201526e6f742062652030206164647265737360881b60648201526084016107c9565b6001600160a01b038316610d8d5760405162461bcd60e51b815260206004820152602f60248201527f45524331313535496e766f6b653a205f65746852656365697665722063616e6e60448201526e6f742062652030206164647265737360881b60648201526084016107c9565b6001600160a01b038216610dfd5760405162461bcd60e51b815260206004820152603160248201527f45524331313535496e766f6b653a205f7072696d6552656365697665722063616044820152706e6e6f742062652030206164647265737360781b60648201526084016107c9565b6001600160a01b038116610e685760405162461bcd60e51b815260206004820152602c60248201527f45524331313535496e766f6b653a205f76657269666965722063616e6e6f742060448201526b62652030206164647265737360a01b60648201526084016107c9565b6040805160808101825260008082526020820181905291810182905260608101919091526001600160a01b038086168252848116602080840191825285831660408086019182528685166060870190815260008c8152600790945292819020865181549087166001600160a01b03199182161782559451600182018054918816918716919091179055915160028301805491871691861691909117905591516003909101805491909416921691909117909155517faaab0ee92c92fff156f5b310030b7210d1727b9aa2bf43e654a1f95e8d82e32b90610f7a90889088908890889088909485526001600160a01b03938416602086015291831660408501528216606084015216608082015260a00190565b60405180910390a1505050505050565b6000828152600160205260408120610fa29083611ea6565b9392505050565b6008602052600090815260409020805461081590613592565b6000918252602082815260408084206001600160a01b0393909316845291905290205460ff1690565b600b805461081590613592565b611010600080516020613e8b83398151915233610fc2565b61102c5760405162461bcd60e51b81526004016107c9906136f3565b600954610100900460ff161561108e5760405162461bcd60e51b815260206004820152602160248201527f45524331313535496e766f6b653a206261736520757269206973206c6f636b656044820152601960fa1b60648201526084016107c9565b610a8882828080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250611eb292505050565b6110d5611ebe565b60095460ff16156111285760405162461bcd60e51b815260206004820152601760248201527f45524331313535496e766f6b653a2064697361626c656400000000000000000060448201526064016107c9565b600088815260076020908152604091829020825160808101845281546001600160a01b039081168252600183015481169382019390935260028201548316938101939093526003015416606082018190526111df5760405162461bcd60e51b815260206004820152603160248201527f45524331313535496e766f6b653a20726f75746572456e64706f696e74206d756044820152701cdd081899481a5b9a5d1a585b1a5e9959607a1b60648201526084016107c9565b341561129d57600081602001516001600160a01b03163460405160006040518083038185875af1925050503d8060008114611236576040519150601f19603f3d011682016040523d82523d6000602084013e61123b565b606091505b505090508061129b5760405162461bcd60e51b815260206004820152602660248201527f45524331313535496e766f6b653a204661696c656420746f20726563656976656044820152651022ba3432b960d11b60648201526084016107c9565b505b83156113865760065460408281015190516323b872dd60e01b81523360048201526001600160a01b0391821660248201526044810187905260009291909116906323b872dd906064016020604051808303816000875af1158015611305573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906113299190613750565b9050806113845760405162461bcd60e51b815260206004820152602360248201527f45524331313535496e766f6b653a204661696c656420746f2073656e64205052604482015262494d4560e81b60648201526084016107c9565b505b861561140d5761140d3382600001518a8a8080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808e0282810182019093528d82529093508d92508c918291850190849080828437600092018290525060408051602081019091529081529250611ac1915050565b80606001516001600160a01b0316636d577866338334888d8d8d8d8c8c6040518b63ffffffff1660e01b815260040161144f9a999897969594939291906137c8565b600060405180830381600087803b15801561146957600080fd5b505af115801561147d573d6000803e3d6000fd5b505050507fb786d27d477906bffb4e8bb453995be2abdabef83e700018136fb6d867b73bd0338234878c8c8c8c8b8b6040516114c29a999897969594939291906137c8565b60405180910390a1506114d56001600555565b5050505050505050565b610a88338383611f17565b611502600080516020613e8b83398151915233610fc2565b61151e5760405162461bcd60e51b81526004016107c9906136f3565b815160000361153f5760405162461bcd60e51b81526004016107c990613863565b60095462010000900460ff16156115c55781805190602001206008600086815260200190815260200160002060405161157891906138ab565b604051809103902014806115a45750600084815260086020526040902080546115a090613592565b1590505b6115c05760405162461bcd60e51b81526004016107c9906138b7565b6115fd565b600084815260086020526040902080546115de90613592565b1590506115fd5760405162461bcd60e51b81526004016107c990613905565b6000848152600860205260409020611615838261398e565b5061099885858584611ff7565b61163a600080516020613e8b83398151915233610fc2565b6116565760405162461bcd60e51b81526004016107c9906136f3565b60005b845181101561182d57828181518110611674576116746135cc565b60200260200101515160000361169c5760405162461bcd60e51b81526004016107c990613863565b60095462010000900460ff1615611772578281815181106116bf576116bf6135cc565b602002602001015180519060200120600860008784815181106116e4576116e46135cc565b6020026020010151815260200190815260200160002060405161170791906138ab565b6040518091039020148061175157506008600086838151811061172c5761172c6135cc565b60200260200101518152602001908152602001600020805461174d90613592565b1590505b61176d5760405162461bcd60e51b81526004016107c9906138b7565b6117c8565b60086000868381518110611788576117886135cc565b6020026020010151815260200190815260200160002080546117a990613592565b1590506117c85760405162461bcd60e51b81526004016107c990613905565b8281815181106117da576117da6135cc565b6020026020010151600860008784815181106117f8576117f86135cc565b60200260200101518152602001908152602001600020908161181a919061398e565b508061182581613737565b915050611659565b50610998858585846120e2565b611852600080516020613e8b83398151915233610fc2565b61186e5760405162461bcd60e51b81526004016107c9906136f3565b600680546001600160a01b0319166001600160a01b0392909216919091179055565b60008181526001602052604081206107f79061223d565b6000828152602081905260409020600101546118c281611c6e565b6109c48383611c9d565b6001600160a01b0385163314806118e857506118e885336106da565b6119045760405162461bcd60e51b81526004016107c9906136a5565b6109988585858585612247565b6001600160a01b03831633148061192d575061192d83336106da565b6119495760405162461bcd60e51b81526004016107c9906136a5565b6109c4838383612383565b61195e8282610fc2565b610a88576000828152602081815260408083206001600160a01b03851684529091529020805460ff191660011790556119943390565b6001600160a01b0316816001600160a01b0316837f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45050565b6000610fa2836001600160a01b03841661249f565b60006001600160e01b03198216636cdb3d1360e11b1480611a1e57506001600160e01b031982166303a24d0760e21b145b806107f757506107f7826124ee565b606060048054611a3c90613592565b80601f0160208091040260200160405190810160405280929190818152602001828054611a6890613592565b8015611ab55780601f10611a8a57610100808354040283529160200191611ab5565b820191906000526020600020905b815481529060010190602001808311611a9857829003601f168201915b50505050509050919050565b8151835114611ae25760405162461bcd60e51b81526004016107c990613a4d565b6001600160a01b038416611b085760405162461bcd60e51b81526004016107c990613a95565b33611b17818787878787612513565b60005b8451811015611c00576000858281518110611b3757611b376135cc565b602002602001015190506000858381518110611b5557611b556135cc565b60209081029190910181015160008481526002835260408082206001600160a01b038e168352909352919091205490915081811015611ba65760405162461bcd60e51b81526004016107c990613ada565b60008381526002602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611be5908490613b24565b9250508190555050505080611bf990613737565b9050611b1a565b50846001600160a01b0316866001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051611c50929190613b37565b60405180910390a4611c668187878787876125bd565b505050505050565b611c788133612718565b50565b611c858282611954565b60008281526001602052604090206109c490826119d8565b611ca78282612771565b60008281526001602052604090206109c490826127d6565b611cc76127eb565b600c805460ff191690556040805133815290517f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa9181900360200190a1565b6001600160a01b038316611d2c5760405162461bcd60e51b81526004016107c990613b5c565b8051825114611d4d5760405162461bcd60e51b81526004016107c990613a4d565b6000339050611d7081856000868660405180602001604052806000815250612513565b60005b8351811015611e38576000848281518110611d9057611d906135cc565b602002602001015190506000848381518110611dae57611dae6135cc565b60209081029190910181015160008481526002835260408082206001600160a01b038c168352909352919091205490915081811015611dff5760405162461bcd60e51b81526004016107c990613b9f565b60009283526002602090815260408085206001600160a01b038b1686529091529092209103905580611e3081613737565b915050611d73565b5060006001600160a01b0316846001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8686604051611e89929190613b37565b60405180910390a460408051602081019091526000905250505050565b6000610fa28383612834565b6004610a88828261398e565b600260055403611f105760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016107c9565b6002600555565b816001600160a01b0316836001600160a01b031603611f8a5760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016107c9565b6001600160a01b03838116600081815260036020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b03841661201d5760405162461bcd60e51b81526004016107c990613be3565b3360006120298561285e565b905060006120368561285e565b905061204783600089858589612513565b60008681526002602090815260408083206001600160a01b038b16845290915281208054879290612079908490613b24565b909155505060408051878152602081018790526001600160a01b03808a1692600092918716917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46120d9836000898989896128a9565b50505050505050565b6001600160a01b0384166121085760405162461bcd60e51b81526004016107c990613be3565b81518351146121295760405162461bcd60e51b81526004016107c990613a4d565b3361213981600087878787612513565b60005b84518110156121d557838181518110612157576121576135cc565b602002602001015160026000878481518110612175576121756135cc565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546121bd9190613b24565b909155508190506121cd81613737565b91505061213c565b50846001600160a01b031660006001600160a01b0316826001600160a01b03167f4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fb8787604051612226929190613b37565b60405180910390a4610998816000878787876125bd565b60006107f7825490565b6001600160a01b03841661226d5760405162461bcd60e51b81526004016107c990613a95565b3360006122798561285e565b905060006122868561285e565b9050612296838989858589612513565b60008681526002602090815260408083206001600160a01b038c168452909152902054858110156122d95760405162461bcd60e51b81526004016107c990613ada565b60008781526002602090815260408083206001600160a01b038d8116855292528083208985039055908a16825281208054889290612318908490613b24565b909155505060408051888152602081018890526001600160a01b03808b16928c821692918816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a4612378848a8a8a8a8a6128a9565b505050505050505050565b6001600160a01b0383166123a95760405162461bcd60e51b81526004016107c990613b5c565b3360006123b58461285e565b905060006123c28461285e565b90506123e283876000858560405180602001604052806000815250612513565b60008581526002602090815260408083206001600160a01b038a168452909152902054848110156124255760405162461bcd60e51b81526004016107c990613b9f565b60008681526002602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a90529092908816917fc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62910160405180910390a46040805160208101909152600090526120d9565b60008181526001830160205260408120546124e6575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556107f7565b5060006107f7565b60006001600160e01b03198216635a05180f60e01b14806107f757506107f782612964565b600c5460ff16158061252c57506001600160a01b038516155b8061253e57506001600160a01b038416155b8061255c575061255c600080516020613e8b83398151915286610fc2565b611c665760405162461bcd60e51b815260206004820152602c60248201527f455243313135355061757361626c653a20746f6b656e207472616e736665722060448201526b1dda1a5b19481c185d5cd95960a21b60648201526084016107c9565b6001600160a01b0384163b15611c665760405163bc197c8160e01b81526001600160a01b0385169063bc197c81906126019089908990889088908890600401613c24565b6020604051808303816000875af192505050801561263c575060408051601f3d908101601f1916820190925261263991810190613c82565b60015b6126e857612648613c9f565b806308c379a003612681575061265c613cbb565b806126675750612683565b8060405162461bcd60e51b81526004016107c99190612d02565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016107c9565b6001600160e01b0319811663bc197c8160e01b146120d95760405162461bcd60e51b81526004016107c990613d44565b6127228282610fc2565b610a885761272f81612999565b61273a8360206129ab565b60405160200161274b929190613d8c565b60408051601f198184030181529082905262461bcd60e51b82526107c991600401612d02565b61277b8282610fc2565b15610a88576000828152602081815260408083206001600160a01b0385168085529252808320805460ff1916905551339285917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45050565b6000610fa2836001600160a01b038416612b46565b600c5460ff16610ac85760405162461bcd60e51b815260206004820152601460248201527314185d5cd8589b194e881b9bdd081c185d5cd95960621b60448201526064016107c9565b600082600001828154811061284b5761284b6135cc565b9060005260206000200154905092915050565b60408051600180825281830190925260609160009190602080830190803683370190505090508281600081518110612898576128986135cc565b602090810291909101015292915050565b6001600160a01b0384163b15611c665760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906128ed9089908990889088908890600401613e01565b6020604051808303816000875af1925050508015612928575060408051601f3d908101601f1916820190925261292591810190613c82565b60015b61293457612648613c9f565b6001600160e01b0319811663f23a6e6160e01b146120d95760405162461bcd60e51b81526004016107c990613d44565b60006001600160e01b03198216637965db0b60e01b14806107f757506301ffc9a760e01b6001600160e01b03198316146107f7565b60606107f76001600160a01b03831660145b606060006129ba836002613e46565b6129c5906002613b24565b6001600160401b038111156129dc576129dc612d2e565b6040519080825280601f01601f191660200182016040528015612a06576020820181803683370190505b509050600360fc1b81600081518110612a2157612a216135cc565b60200101906001600160f81b031916908160001a905350600f60fb1b81600181518110612a5057612a506135cc565b60200101906001600160f81b031916908160001a9053506000612a74846002613e46565b612a7f906001613b24565b90505b6001811115612af7576f181899199a1a9b1b9c1cb0b131b232b360811b85600f1660108110612ab357612ab36135cc565b1a60f81b828281518110612ac957612ac96135cc565b60200101906001600160f81b031916908160001a90535060049490941c93612af081613e5d565b9050612a82565b508315610fa25760405162461bcd60e51b815260206004820181905260248201527f537472696e67733a20686578206c656e67746820696e73756666696369656e7460448201526064016107c9565b60008181526001830160205260408120548015612c2f576000612b6a6001836135f8565b8554909150600090612b7e906001906135f8565b9050818114612be3576000866000018281548110612b9e57612b9e6135cc565b9060005260206000200154905080876000018481548110612bc157612bc16135cc565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080612bf457612bf4613e74565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506107f7565b60009150506107f7565b80356001600160a01b0381168114612c5057600080fd5b919050565b60008060408385031215612c6857600080fd5b612c7183612c39565b946020939093013593505050565b6001600160e01b031981168114611c7857600080fd5b600060208284031215612ca757600080fd5b8135610fa281612c7f565b60005b83811015612ccd578181015183820152602001612cb5565b50506000910152565b60008151808452612cee816020860160208601612cb2565b601f01601f19169290920160200192915050565b602081526000610fa26020830184612cd6565b600060208284031215612d2757600080fd5b5035919050565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715612d6957612d69612d2e565b6040525050565b60006001600160401b03821115612d8957612d89612d2e565b5060051b60200190565b600082601f830112612da457600080fd5b81356020612db182612d70565b604051612dbe8282612d44565b83815260059390931b8501820192828101915086841115612dde57600080fd5b8286015b84811015612df95780358352918301918301612de2565b509695505050505050565b600082601f830112612e1557600080fd5b81356001600160401b03811115612e2e57612e2e612d2e565b604051612e45601f8301601f191660200182612d44565b818152846020838601011115612e5a57600080fd5b816020850160208301376000918101602001919091529392505050565b600080600080600060a08688031215612e8f57600080fd5b612e9886612c39565b9450612ea660208701612c39565b935060408601356001600160401b0380821115612ec257600080fd5b612ece89838a01612d93565b94506060880135915080821115612ee457600080fd5b612ef089838a01612d93565b93506080880135915080821115612f0657600080fd5b50612f1388828901612e04565b9150509295509295909350565b60008060408385031215612f3357600080fd5b82359150612f4360208401612c39565b90509250929050565b60008060408385031215612f5f57600080fd5b82356001600160401b0380821115612f7657600080fd5b818501915085601f830112612f8a57600080fd5b81356020612f9782612d70565b604051612fa48282612d44565b83815260059390931b8501820192828101915089841115612fc457600080fd5b948201945b83861015612fe957612fda86612c39565b82529482019490820190612fc9565b96505086013592505080821115612fff57600080fd5b5061300c85828601612d93565b9150509250929050565b600081518084526020808501945080840160005b838110156130465781518752958201959082019060010161302a565b509495945050505050565b602081526000610fa26020830184613016565b60008060006060848603121561307957600080fd5b61308284612c39565b925060208401356001600160401b038082111561309e57600080fd5b6130aa87838801612d93565b935060408601359150808211156130c057600080fd5b506130cd86828701612d93565b9150509250925092565b8015158114611c7857600080fd5b6000602082840312156130f757600080fd5b8135610fa2816130d7565b600080600080600060a0868803121561311a57600080fd5b8535945061312a60208701612c39565b935061313860408701612c39565b925061314660608701612c39565b915061315460808701612c39565b90509295509295909350565b6000806040838503121561317357600080fd5b50508035926020909101359150565b60008083601f84011261319457600080fd5b5081356001600160401b038111156131ab57600080fd5b6020830191508360208285010111156131c357600080fd5b9250929050565b600080602083850312156131dd57600080fd5b82356001600160401b038111156131f357600080fd5b6131ff85828601613182565b90969095509350505050565b60008083601f84011261321d57600080fd5b5081356001600160401b0381111561323457600080fd5b6020830191508360208260051b85010111156131c357600080fd5b60008060008060008060008060a0898b03121561326b57600080fd5b8835975060208901356001600160401b038082111561328957600080fd5b6132958c838d0161320b565b909950975060408b01359150808211156132ae57600080fd5b6132ba8c838d0161320b565b909750955060608b0135945060808b01359150808211156132da57600080fd5b506132e78b828c01613182565b999c989b5096995094979396929594505050565b6000806040838503121561330e57600080fd5b61331783612c39565b91506020830135613327816130d7565b809150509250929050565b600080600080600060a0868803121561334a57600080fd5b61335386612c39565b9450602086013593506040860135925060608601356001600160401b038082111561337d57600080fd5b612ef089838a01612e04565b600080600080600060a086880312156133a157600080fd5b6133aa86612c39565b94506020808701356001600160401b03808211156133c757600080fd5b6133d38a838b01612d93565b965060408901359150808211156133e957600080fd5b6133f58a838b01612d93565b9550606089013591508082111561340b57600080fd5b818901915089601f83011261341f57600080fd5b813561342a81612d70565b6040516134378282612d44565b82815260059290921b840185019185810191508c83111561345757600080fd5b8585015b8381101561348f578035858111156134735760008081fd5b6134818f89838a0101612e04565b84525091860191860161345b565b509650505060808901359250808311156134a857600080fd5b5050612f1388828901612e04565b6000602082840312156134c857600080fd5b610fa282612c39565b600080604083850312156134e457600080fd5b6134ed83612c39565b9150612f4360208401612c39565b600080600080600060a0868803121561351357600080fd5b61351c86612c39565b945061352a60208701612c39565b9350604086013592506060860135915060808601356001600160401b0381111561355357600080fd5b612f1388828901612e04565b60008060006060848603121561357457600080fd5b61357d84612c39565b95602085013595506040909401359392505050565b600181811c908216806135a657607f821691505b6020821081036135c657634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156107f7576107f76135e2565b6000815461361881613592565b60018281168015613630576001811461364557613674565b60ff1984168752821515830287019450613674565b8560005260208060002060005b8581101561366b5781548a820152908401908201613652565b50505082870194505b5050505092915050565b60008351613690818460208801612cb2565b61369c8184018561360b565b95945050505050565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b60208082526024908201527f45524331313535496e766f6b653a206d7573742068617665206d696e74657220604082015263726f6c6560e01b606082015260800190565b600060018201613749576137496135e2565b5060010190565b60006020828403121561376257600080fd5b8151610fa2816130d7565b81835260006001600160fb1b0383111561378657600080fd5b8260051b80836020870137939093016020019392505050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b600061014060018060a01b03808e168452808d511660208501528060208e01511660408501528060408e01511660608501528060608e0151166080850152508a60a08401528960c08401528060e0840152613826818401898b61376d565b905082810361010084015261383c81878961376d565b905082810361012084015261385281858761379f565b9d9c50505050505050505050505050565b60208082526028908201527f45524331313535496e766f6b653a20746f6b656e207572692063616e6e6f7420604082015267626520656d70747960c01b606082015260800190565b6000610fa2828461360b565b6020808252602e908201527f45524331313535496e766f6b653a20746f6b656e206d696e746564207769746860408201526d20646966666572656e742075726960901b606082015260800190565b60208082526023908201527f45524331313535496e766f6b653a20746f6b656e20616c7265616479206d696e6040820152621d195960ea1b606082015260800190565b601f8211156109c457600081815260208120601f850160051c8101602086101561396f5750805b601f850160051c820191505b81811015611c665782815560010161397b565b81516001600160401b038111156139a7576139a7612d2e565b6139bb816139b58454613592565b84613948565b602080601f8311600181146139f057600084156139d85750858301515b600019600386901b1c1916600185901b178555611c66565b600085815260208120601f198616915b82811015613a1f57888601518255948401946001909101908401613a00565b5085821015613a3d5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156107f7576107f76135e2565b604081526000613b4a6040830185613016565b828103602084015261369c8185613016565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b606082015260800190565b6001600160a01b0386811682528516602082015260a060408201819052600090613c5090830186613016565b8281036060840152613c628186613016565b90508281036080840152613c768185612cd6565b98975050505050505050565b600060208284031215613c9457600080fd5b8151610fa281612c7f565b600060033d1115613cb85760046000803e5060005160e01c5b90565b600060443d1015613cc95790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715613cf857505050505090565b8285019150815181811115613d105750505050505090565b843d8701016020828501011115613d2a5750505050505090565b613d3960208286010187612d44565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b7f416363657373436f6e74726f6c3a206163636f756e7420000000000000000000815260008351613dc4816017850160208801612cb2565b7001034b99036b4b9b9b4b733903937b6329607d1b6017918401918201528351613df5816028840160208801612cb2565b01602801949350505050565b6001600160a01b03868116825285166020820152604081018490526060810183905260a060808201819052600090613e3b90830184612cd6565b979650505050505050565b80820281158282048414176107f7576107f76135e2565b600081613e6c57613e6c6135e2565b506000190190565b634e487b7160e01b600052603160045260246000fdfe9f2df0fed2c77648de5860a4cc508cd0818c85b8b8a1ab4ceeef8d981c8956a6a2646970667358221220536abbffc1c130beaaef589e8996be8a23d3725824b4ea81fe507c12c092999664736f6c6343000811003368747470733a2f2f6e6674646174612e706172616c6c656c6e66742e636f6d2f6170692f706172616c6c656c2d61667465726d6174682f697066732f