1 tx
5 calls
constructor
constructor(string name_, string symbol_, string uri_, address royaltyReceiver, uint96 royaltyFeeNumerator)
functions
ADMIN_ROLE
viewfunction ADMIN_ROLE() view returns (bytes32)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
DEFAULT_ADMIN_ROLE
viewfunction DEFAULT_ADMIN_ROLE() view returns (bytes32)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getRoleAdmin
viewfunction getRoleAdmin(bytes32 role) view returns (bytes32)
hasRole
viewfunction hasRole(bytes32 role, address account) view returns (bool)
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)
paused
viewfunction paused() view returns (bool)
royaltyFeeNumeratorLimit
viewfunction royaltyFeeNumeratorLimit() view returns (uint96)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address, uint256)
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)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
airdrop
nonpayablefunction airdrop(address to, string uri)
airdropAutoId
nonpayablefunction airdropAutoId(address to)
approve
nonpayablefunction approve(address to, uint256 tokenId)
burn
nonpayablefunction burn(uint256 tokenId)
grantAdmin
nonpayablefunction grantAdmin(address account)
grantRole
nonpayablefunction grantRole(bytes32 role, address account)
pause
nonpayablefunction pause()
renounceOwnership
nonpayablefunction renounceOwnership()
renounceRole
nonpayablefunction renounceRole(bytes32 role, address callerConfirmation)
resetTokenRoyalty
nonpayablefunction resetTokenRoyalty(uint256 tokenId)
revokeAdmin
nonpayablefunction revokeAdmin(address account)
revokeRole
nonpayablefunction revokeRole(bytes32 role, address account)
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)
setBaseURI
nonpayablefunction setBaseURI(string newuri)
setDefaultRoyalty
nonpayablefunction setDefaultRoyalty(address receiver, uint96 feeNumerator)
setTokenRoyalty
nonpayablefunction setTokenRoyalty(uint256 tokenId, address receiver, uint96 feeNumerator)
setTokenURI
nonpayablefunction setTokenURI(uint256 tokenId, string uri)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
unpause
nonpayablefunction unpause()
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
baseURIChanged
event baseURIChanged(string newuri)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
DefaultRoyaltyChanged
event DefaultRoyaltyChanged(address receiver, uint96 feeNumerator)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
Paused
event Paused(address account)
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)
TokenRoyaltyChanged
event TokenRoyaltyChanged(uint256 tokenId, address receiver, uint96 feeNumerator)
TokenRoyaltyReset
event TokenRoyaltyReset(uint256 tokenId)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unpaused
event Unpaused(address account)
errors
AccessControlBadConfirmation
error AccessControlBadConfirmation()
AccessControlUnauthorizedAccount
error AccessControlUnauthorizedAccount(address account, bytes32 neededRole)
EnforcedPause
error EnforcedPause()
ERC2981InvalidDefaultRoyalty
error ERC2981InvalidDefaultRoyalty(uint256 numerator, uint256 denominator)
ERC2981InvalidDefaultRoyaltyReceiver
error ERC2981InvalidDefaultRoyaltyReceiver(address receiver)
ERC2981InvalidTokenRoyalty
error ERC2981InvalidTokenRoyalty(uint256 tokenId, uint256 numerator, uint256 denominator)
ERC2981InvalidTokenRoyaltyReceiver
error ERC2981InvalidTokenRoyaltyReceiver(uint256 tokenId, address receiver)
ERC721EnumerableForbiddenBatchMint
error ERC721EnumerableForbiddenBatchMint()
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)
ERC721OutOfBoundsIndex
error ERC721OutOfBoundsIndex(address owner, uint256 index)
ExpectedPause
error ExpectedPause()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
creation bytecode
0x60a060405260006080908152600f906200001a908262000516565b503480156200002857600080fd5b506040516200306d3803806200306d8339810160408190526200004b9162000691565b33858560026200005c838262000516565b5060036200006b828262000516565b5050600d805460ff19169055506001600160a01b038116620000a857604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000b38162000107565b50600f620000c2848262000516565b50620000ef7fa49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c217753362000161565b50620000fc828262000214565b505050505062000767565b600d80546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b6000828152600e602090815260408083206001600160a01b038516845290915281205460ff166200020a576000838152600e602090815260408083206001600160a01b03861684529091529020805460ff19166001179055620001c13390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016200020e565b5060005b92915050565b600d54339061010090046001600160a01b03166001600160a01b031603620002ed576107d06001600160601b0382161115620002935760405162461bcd60e51b815260206004820152601d60248201527f526f79616c7479206665652077696c6c20657863656564206c696d697400000060448201526064016200009f565b6200029f8282620003ca565b604080516001600160a01b03841681526001600160601b03831660208201527fe5ed39918c4170e24337471011e1ccdeb5e4a433f53fae4eb2ad73e03cd21bda910160405180910390a15050565b3360009081527fffc6ee3e4785c143e1d4f7ff9785d2ddbd7bf0ad1148b890efdcfc74e32b5b6b602052604090205460ff166200036d5760405162461bcd60e51b815260206004820152601e60248201527f43616c6c6572206973206e6f7420616e2061646d696e6973747261746f72000060448201526064016200009f565b6107d06001600160601b0382161115620002935760405162461bcd60e51b815260206004820152601d60248201527f526f79616c7479206665652077696c6c20657863656564206c696d697400000060448201526064016200009f565b6127106001600160601b0382168110156200040b57604051636f483d0960e01b81526001600160601b0383166004820152602481018290526044016200009f565b6001600160a01b0383166200043757604051635b6cc80560e11b8152600060048201526024016200009f565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b634e487b7160e01b600052604160045260246000fd5b600181811c908216806200049c57607f821691505b602082108103620004bd57634e487b7160e01b600052602260045260246000fd5b50919050565b601f8211156200051157600081815260208120601f850160051c81016020861015620004ec5750805b601f850160051c820191505b818110156200050d57828155600101620004f8565b5050505b505050565b81516001600160401b0381111562000532576200053262000471565b6200054a8162000543845462000487565b84620004c3565b602080601f831160018114620005825760008415620005695750858301515b600019600386901b1c1916600185901b1785556200050d565b600085815260208120601f198616915b82811015620005b35788860151825594840194600190910190840162000592565b5085821015620005d25787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b600082601f830112620005f457600080fd5b81516001600160401b038082111562000611576200061162000471565b604051601f8301601f19908116603f011681019082821181831017156200063c576200063c62000471565b816040528381526020925086838588010111156200065957600080fd5b600091505b838210156200067d57858201830151818301840152908201906200065e565b600093810190920192909252949350505050565b600080600080600060a08688031215620006aa57600080fd5b85516001600160401b0380821115620006c257600080fd5b620006d089838a01620005e2565b96506020880151915080821115620006e757600080fd5b620006f589838a01620005e2565b955060408801519150808211156200070c57600080fd5b506200071b88828901620005e2565b606088015190945090506001600160a01b03811681146200073b57600080fd5b60808701519092506001600160601b03811681146200075957600080fd5b809150509295509295909350565b6128f680620007776000396000f3fe608060405234801561001057600080fd5b506004361061025e5760003560e01c80635944c753116101465780638da5cb5b116100c3578063a22cb46511610087578063a22cb46514610537578063b88d4fde1461054a578063c87b56dd1461055d578063d547741f14610570578063e985e9c514610583578063f2fde38b1461059657600080fd5b80638da5cb5b146104dd57806391d14854146104f357806395d89b4114610506578063a04faccf1461050e578063a217fddf1461052f57600080fd5b806370a082311161010a57806370a0823114610492578063715018a6146104a557806375b238fc146104ad5780638456cb59146104c25780638a616bc0146104ca57600080fd5b80635944c753146104465780635c975abb146104595780635e473128146104645780636352211e146104775780636c0360eb1461048a57600080fd5b80632a55205a116101df57806336568abe116101a357806336568abe146103df5780633f4ba83a146103f257806342842e0e146103fa57806342966c681461040d5780634f6ccce71461042057806355f804b31461043357600080fd5b80632a55205a146103615780632d345670146103935780632f2ff15d146103a65780632f745c59146103b957806335bb3e16146103cc57600080fd5b8063162094c411610226578063162094c4146102f357806318160ddd1461030657806321dbae741461031857806323b872dd1461032b578063248a9ca31461033e57600080fd5b806301ffc9a71461026357806304634d8d1461028b57806306fdde03146102a0578063081812fc146102b5578063095ea7b3146102e0575b600080fd5b6102766102713660046121ae565b6105a9565b60405190151581526020015b60405180910390f35b61029e6102993660046121fe565b6105ba565b005b6102a8610727565b6040516102829190612281565b6102c86102c3366004612294565b6107b9565b6040516001600160a01b039091168152602001610282565b61029e6102ee3660046122ad565b6107e2565b61029e610301366004612383565b6107ed565b600a545b604051908152602001610282565b61029e6103263660046123ca565b610856565b61029e6103393660046123e5565b610935565b61030a61034c366004612294565b6000908152600e602052604090206001015490565b61037461036f366004612421565b6109c0565b604080516001600160a01b039093168352602083019190915201610282565b61029e6103a13660046123ca565b610a6c565b61029e6103b4366004612443565b610a8c565b61030a6103c73660046122ad565b610ab1565b61029e6103da3660046123ca565b610b16565b61029e6103ed366004612443565b610b36565b61029e610b6e565b61029e6104083660046123e5565b610bd5565b61029e61041b366004612294565b610bf0565b61030a61042e366004612294565b610bfc565b61029e610441366004612466565b610c55565b61029e61045436600461249b565b610cfd565b600d5460ff16610276565b61029e6104723660046124d7565b610dbd565b6102c8610485366004612294565b610e8e565b6102a8610e99565b61030a6104a03660046123ca565b610ea8565b61029e610ef0565b61030a6000805160206128a183398151915281565b61029e610f02565b61029e6104d8366004612294565b610f67565b600d5461010090046001600160a01b03166102c8565b610276610501366004612443565b611010565b6102a861103b565b6105176107d081565b6040516001600160601b039091168152602001610282565b61030a600081565b61029e61054536600461250f565b61104a565b61029e61055836600461254b565b611055565b6102a861056b366004612294565b61106c565b61029e61057e366004612443565b611077565b6102766105913660046125c7565b61109c565b61029e6105a43660046123ca565b6110ca565b60006105b482611105565b92915050565b600d54339061010090046001600160a01b03166001600160a01b031603610694576107d06001600160601b038216111561063b5760405162461bcd60e51b815260206004820152601d60248201527f526f79616c7479206665652077696c6c20657863656564206c696d697400000060448201526064015b60405180910390fd5b610645828261112a565b604080516001600160a01b03841681526001600160601b03831660208201527fe5ed39918c4170e24337471011e1ccdeb5e4a433f53fae4eb2ad73e03cd21bda91015b60405180910390a15050565b6106ac6000805160206128a183398151915233611010565b6106c85760405162461bcd60e51b8152600401610632906125f1565b6107d06001600160601b038216111561063b5760405162461bcd60e51b815260206004820152601d60248201527f526f79616c7479206665652077696c6c20657863656564206c696d69740000006044820152606401610632565b5050565b60606002805461073690612628565b80601f016020809104026020016040519081016040528092919081815260200182805461076290612628565b80156107af5780601f10610784576101008083540402835291602001916107af565b820191906000526020600020905b81548152906001019060200180831161079257829003601f168201915b5050505050905090565b60006107c4826111cd565b506000828152600660205260409020546001600160a01b03166105b4565b610723828233611206565b600d54339061010090046001600160a01b03166001600160a01b031603610818576107238282611213565b6108306000805160206128a183398151915233611010565b61084c5760405162461bcd60e51b8152600401610632906125f1565b6107238282611213565b600d54339061010090046001600160a01b03166001600160a01b0316036108f457600061088161125c565b51116108c15760405162461bcd60e51b815260206004820152600f60248201526e4d697373696e67206261736555524960881b6044820152606401610632565b60108054600091826108d283612678565b9190505590506108e2828261126b565b610723816108ef83611285565b611213565b61090c6000805160206128a183398151915233611010565b6109285760405162461bcd60e51b8152600401610632906125f1565b600061088161125c565b50565b6001600160a01b03821661095f57604051633250574960e11b815260006004820152602401610632565b600061096c838333611318565b9050836001600160a01b0316816001600160a01b0316146109ba576040516364283d7b60e01b81526001600160a01b0380861660048301526024820184905282166044820152606401610632565b50505050565b60008281526001602090815260408083208151808301909252546001600160a01b038116808352600160a01b9091046001600160601b0316928201929092528291610a355750604080518082019091526000546001600160a01b0381168252600160a01b90046001600160601b031660208201525b602081015160009061271090610a54906001600160601b031687612691565b610a5e91906126a8565b915196919550909350505050565b610a746113a5565b6107236000805160206128a1833981519152826113d8565b6000828152600e6020526040902060010154610aa78161144d565b6109ba8383611457565b6000610abc83610ea8565b8210610aed5760405163295f44f760e21b81526001600160a01b038416600482015260248101839052604401610632565b506001600160a01b03919091166000908152600860209081526040808320938352929052205490565b610b1e6113a5565b6107236000805160206128a183398151915282611457565b6001600160a01b0381163314610b5f5760405163334bd91960e11b815260040160405180910390fd5b610b6982826113d8565b505050565b600d54339061010090046001600160a01b03166001600160a01b031603610b9957610b976114e3565b565b610bb16000805160206128a183398151915233611010565b610bcd5760405162461bcd60e51b8152600401610632906125f1565b610b976114e3565b610b6983838360405180602001604052806000815250611055565b61072360008233611318565b6000610c07600a5490565b8210610c305760405163295f44f760e21b81526000600482015260248101839052604401610632565b600a8281548110610c4357610c436126ca565b90600052602060002001549050919050565b600d54339061010090046001600160a01b03166001600160a01b031603610cbd57600f610c82828261272e565b507f59f1ec21eb30be64a479f79da93a3f192f54c561ee637b5f589e807eb975eb4a81604051610cb29190612281565b60405180910390a150565b610cd56000805160206128a183398151915233611010565b610cf15760405162461bcd60e51b8152600401610632906125f1565b600f610c82828261272e565b600d54339061010090046001600160a01b03166001600160a01b031603610d7e57610d29838383611535565b604080518481526001600160a01b03841660208201526001600160601b0383168183015290517f25e2a3f12d544321cece1ec262049813ecc33ed43ed9c3e93a6b0a730a37e2ec9181900360600190a1505050565b610d966000805160206128a183398151915233611010565b610db25760405162461bcd60e51b8152600401610632906125f1565b610d29838383611535565b600d54339061010090046001600160a01b03166001600160a01b031603610e5257610de661125c565b5115610e275760405162461bcd60e51b815260206004820152601060248201526f4578697374696e67206261736555524960801b6044820152606401610632565b6010805460009182610e3883612678565b919050559050610e48838261126b565b610b698183611213565b610e6a6000805160206128a183398151915233611010565b610e865760405162461bcd60e51b8152600401610632906125f1565b610de661125c565b60006105b4826111cd565b6060610ea361125c565b905090565b60006001600160a01b038216610ed4576040516322718ad960e21b815260006004820152602401610632565b506001600160a01b031660009081526005602052604090205490565b610ef86113a5565b610b9760006115f7565b600d54339061010090046001600160a01b03166001600160a01b031603610f2b57610b97611651565b610f436000805160206128a183398151915233611010565b610f5f5760405162461bcd60e51b8152600401610632906125f1565b610b97611651565b600d54339061010090046001600160a01b03166001600160a01b031603610fc8576000818152600160205260408120555b6040518181527f0e6dc85545aec6da2e4702814198336dc5e52c107d879f264e71c3c2abeee92d90602001610cb2565b610fe06000805160206128a183398151915233611010565b610ffc5760405162461bcd60e51b8152600401610632906125f1565b600081815260016020526040812055610f98565b6000918252600e602090815260408084206001600160a01b0393909316845291905290205460ff1690565b60606003805461073690612628565b61072333838361168e565b611060848484610935565b6109ba8484848461172d565b60606105b482611856565b6000828152600e60205260409020600101546110928161144d565b6109ba83836113d8565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b6110d26113a5565b6001600160a01b0381166110fc57604051631e4fbdf760e01b815260006004820152602401610632565b610932816115f7565b60006001600160e01b03198216637965db0b60e01b14806105b457506105b48261195a565b6127106001600160601b03821681101561116957604051636f483d0960e01b81526001600160601b038316600482015260248101829052604401610632565b6001600160a01b03831661119357604051635b6cc80560e11b815260006004820152602401610632565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600055565b6000818152600460205260408120546001600160a01b0316806105b457604051637e27328960e01b815260048101849052602401610632565b610b698383836001611965565b6000828152600c6020526040902061122b828261272e565b506040518281527ff8e1a15aba9398e019f0b49df1a4fde98ee17ae345cb5f6b5e2c27f5033e8ce790602001610688565b6060600f805461073690612628565b610723828260405180602001604052806000815250611a6b565b6060600061129283611a82565b600101905060008167ffffffffffffffff8111156112b2576112b26122d7565b6040519080825280601f01601f1916602001820160405280156112dc576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a85049450846112e657509392505050565b6000828152600460205260408120546001600160a01b0390811690851615611391576001600160a01b038116156113915760405162461bcd60e51b815260206004820152601960248201527f546f6b656e206973206e6f74207472616e7366657261626c65000000000000006044820152606401610632565b61139c858585611b5a565b95945050505050565b600d546001600160a01b03610100909104163314610b975760405163118cdaa760e01b8152336004820152602401610632565b60006113e48383611010565b15611445576000838152600e602090815260408083206001600160a01b0386168085529252808320805460ff1916905551339286917ff6391f5c32d9c69d2a47ea670b442974b53935d1edc7fd64eb21e047a839171b9190a45060016105b4565b5060006105b4565b6109328133611b6f565b60006114638383611010565b611445576000838152600e602090815260408083206001600160a01b03861684529091529020805460ff1916600117905561149b3390565b6001600160a01b0316826001600160a01b0316847f2f8788117e7eff1d82e926ec794901d17c78024a50270940304540a733656f0d60405160405180910390a45060016105b4565b6114eb611ba8565b600d805460ff191690557f5db9ee0a495bf2e6ff9c91a7834c1ba4fdd244a5e8aa4e537bd38aeae4b073aa335b6040516001600160a01b03909116815260200160405180910390a1565b6127106001600160601b03821681101561157b5760405163dfd1fc1b60e01b8152600481018590526001600160601b038316602482015260448101829052606401610632565b6001600160a01b0383166115ac57604051634b4f842960e11b81526004810185905260006024820152604401610632565b506040805180820182526001600160a01b0393841681526001600160601b0392831660208083019182526000968752600190529190942093519051909116600160a01b029116179055565b600d80546001600160a01b03838116610100818102610100600160a81b031985161790945560405193909204169182907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b611659611bcb565b600d805460ff191660011790557f62e78cea01bee320cd4e420270b5ea74000d11b0c9f74754ebdbfc544b05a2586115183390565b6001600160a01b0382166116c057604051630b61174360e31b81526001600160a01b0383166004820152602401610632565b6001600160a01b03838116600081815260076020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b6001600160a01b0383163b156109ba57604051630a85bd0160e11b81526001600160a01b0384169063150b7a029061176f9033908890879087906004016127ee565b6020604051808303816000875af19250505080156117aa575060408051601f3d908101601f191682019092526117a79181019061282b565b60015b611813573d8080156117d8576040519150601f19603f3d011682016040523d82523d6000602084013e6117dd565b606091505b50805160000361180b57604051633250574960e11b81526001600160a01b0385166004820152602401610632565b805181602001fd5b6001600160e01b03198116630a85bd0160e11b1461184f57604051633250574960e11b81526001600160a01b0385166004820152602401610632565b5050505050565b6060611861826111cd565b506000828152600c60205260408120805461187b90612628565b80601f01602080910402602001604051908101604052809291908181526020018280546118a790612628565b80156118f45780601f106118c9576101008083540402835291602001916118f4565b820191906000526020600020905b8154815290600101906020018083116118d757829003601f168201915b50505050509050600061190561125c565b90508051600003611917575092915050565b815115611949578082604051602001611931929190612848565b60405160208183030381529060405292505050919050565b61195284611bef565b949350505050565b60006105b482611c57565b808061197957506001600160a01b03821615155b15611a3b576000611989846111cd565b90506001600160a01b038316158015906119b55750826001600160a01b0316816001600160a01b031614155b80156119c857506119c6818461109c565b155b156119f15760405163a9fbf51f60e01b81526001600160a01b0384166004820152602401610632565b8115611a395783856001600160a01b0316826001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92560405160405180910390a45b505b5050600090815260066020526040902080546001600160a01b0319166001600160a01b0392909216919091179055565b611a758383611c7c565b610b69600084848461172d565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b8310611ac15772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6d04ee2d6d415b85acef81000000008310611aed576d04ee2d6d415b85acef8100000000830492506020015b662386f26fc100008310611b0b57662386f26fc10000830492506010015b6305f5e1008310611b23576305f5e100830492506008015b6127108310611b3757612710830492506004015b60648310611b49576064830492506002015b600a83106105b45760010192915050565b6000611b64611bcb565b611952848484611ce1565b611b798282611010565b6107235760405163e2517d3f60e01b81526001600160a01b038216600482015260248101839052604401610632565b600d5460ff16610b9757604051638dfc202b60e01b815260040160405180910390fd5b600d5460ff1615610b975760405163d93c066560e01b815260040160405180910390fd5b6060611bfa826111cd565b506000611c0561125c565b90506000815111611c255760405180602001604052806000815250611c50565b80611c2f84611285565b604051602001611c40929190612848565b6040516020818303038152906040525b9392505050565b60006001600160e01b03198216632483248360e11b14806105b457506105b482611dae565b6001600160a01b038216611ca657604051633250574960e11b815260006004820152602401610632565b6000611cb483836000611318565b90506001600160a01b03811615610b69576040516339e3563760e11b815260006004820152602401610632565b600080611cef858585611dd3565b90506001600160a01b038116611d4c57611d4784600a80546000838152600b60205260408120829055600182018355919091527fc65a7bb8d6351c1cf70c95a316cc6a92839c986682d98bc35f958f4883f9d2a80155565b611d6f565b846001600160a01b0316816001600160a01b031614611d6f57611d6f8185611ecc565b6001600160a01b038516611d8b57611d8684611f5d565b611952565b846001600160a01b0316816001600160a01b03161461195257611952858561200c565b60006001600160e01b0319821663780e9d6360e01b14806105b457506105b48261205c565b6000828152600460205260408120546001600160a01b0390811690831615611e0057611e0081848661209c565b6001600160a01b03811615611e3e57611e1d600085600080611965565b6001600160a01b038116600090815260056020526040902080546000190190555b6001600160a01b03851615611e6d576001600160a01b0385166000908152600560205260409020805460010190555b60008481526004602052604080822080546001600160a01b0319166001600160a01b0389811691821790925591518793918516917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4949350505050565b6000611ed783610ea8565b600083815260096020526040902054909150808214611f2a576001600160a01b03841660009081526008602090815260408083208584528252808320548484528184208190558352600990915290208190555b5060009182526009602090815260408084208490556001600160a01b039094168352600881528383209183525290812055565b600a54600090611f6f90600190612877565b6000838152600b6020526040812054600a8054939450909284908110611f9757611f976126ca565b9060005260206000200154905080600a8381548110611fb857611fb86126ca565b6000918252602080832090910192909255828152600b9091526040808220849055858252812055600a805480611ff057611ff061288a565b6001900381819060005260206000200160009055905550505050565b6000600161201984610ea8565b6120239190612877565b6001600160a01b039093166000908152600860209081526040808320868452825280832085905593825260099052919091209190915550565b60006001600160e01b031982166380ac58cd60e01b148061208d57506001600160e01b03198216635b5e139f60e01b145b806105b457506105b482612100565b6120a7838383612135565b610b69576001600160a01b0383166120d557604051637e27328960e01b815260048101829052602401610632565b60405163177e802f60e01b81526001600160a01b038316600482015260248101829052604401610632565b60006001600160e01b0319821663152a902d60e11b14806105b457506301ffc9a760e01b6001600160e01b03198316146105b4565b60006001600160a01b038316158015906119525750826001600160a01b0316846001600160a01b0316148061216f575061216f848461109c565b806119525750506000908152600660205260409020546001600160a01b03908116911614919050565b6001600160e01b03198116811461093257600080fd5b6000602082840312156121c057600080fd5b8135611c5081612198565b80356001600160a01b03811681146121e257600080fd5b919050565b80356001600160601b03811681146121e257600080fd5b6000806040838503121561221157600080fd5b61221a836121cb565b9150612228602084016121e7565b90509250929050565b60005b8381101561224c578181015183820152602001612234565b50506000910152565b6000815180845261226d816020860160208601612231565b601f01601f19169290920160200192915050565b602081526000611c506020830184612255565b6000602082840312156122a657600080fd5b5035919050565b600080604083850312156122c057600080fd5b6122c9836121cb565b946020939093013593505050565b634e487b7160e01b600052604160045260246000fd5b600067ffffffffffffffff80841115612308576123086122d7565b604051601f8501601f19908116603f01168101908282118183101715612330576123306122d7565b8160405280935085815286868601111561234957600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261237457600080fd5b611c50838335602085016122ed565b6000806040838503121561239657600080fd5b82359150602083013567ffffffffffffffff8111156123b457600080fd5b6123c085828601612363565b9150509250929050565b6000602082840312156123dc57600080fd5b611c50826121cb565b6000806000606084860312156123fa57600080fd5b612403846121cb565b9250612411602085016121cb565b9150604084013590509250925092565b6000806040838503121561243457600080fd5b50508035926020909101359150565b6000806040838503121561245657600080fd5b82359150612228602084016121cb565b60006020828403121561247857600080fd5b813567ffffffffffffffff81111561248f57600080fd5b61195284828501612363565b6000806000606084860312156124b057600080fd5b833592506124c0602085016121cb565b91506124ce604085016121e7565b90509250925092565b600080604083850312156124ea57600080fd5b6124f3836121cb565b9150602083013567ffffffffffffffff8111156123b457600080fd5b6000806040838503121561252257600080fd5b61252b836121cb565b91506020830135801515811461254057600080fd5b809150509250929050565b6000806000806080858703121561256157600080fd5b61256a856121cb565b9350612578602086016121cb565b925060408501359150606085013567ffffffffffffffff81111561259b57600080fd5b8501601f810187136125ac57600080fd5b6125bb878235602084016122ed565b91505092959194509250565b600080604083850312156125da57600080fd5b6125e3836121cb565b9150612228602084016121cb565b6020808252601e908201527f43616c6c6572206973206e6f7420616e2061646d696e6973747261746f720000604082015260600190565b600181811c9082168061263c57607f821691505b60208210810361265c57634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052601160045260246000fd5b60006001820161268a5761268a612662565b5060010190565b80820281158282048414176105b4576105b4612662565b6000826126c557634e487b7160e01b600052601260045260246000fd5b500490565b634e487b7160e01b600052603260045260246000fd5b601f821115610b6957600081815260208120601f850160051c810160208610156127075750805b601f850160051c820191505b8181101561272657828155600101612713565b505050505050565b815167ffffffffffffffff811115612748576127486122d7565b61275c816127568454612628565b846126e0565b602080601f83116001811461279157600084156127795750858301515b600019600386901b1c1916600185901b178555612726565b600085815260208120601f198616915b828110156127c0578886015182559484019460019091019084016127a1565b50858210156127de5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061282190830184612255565b9695505050505050565b60006020828403121561283d57600080fd5b8151611c5081612198565b6000835161285a818460208801612231565b83519083019061286e818360208801612231565b01949350505050565b818103818111156105b4576105b4612662565b634e487b7160e01b600052603160045260246000fdfea49807205ce4d355092ef5a8a18f56e8913cf4a201fbe287825b095693c21775a26469706673582212202e6a510bc4e8b40d33bb2e0d2b7c5f8a48bfc4d6814bde2eb9c340aa5c4b196164736f6c6343000815003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e000000000000000000000000000000000000000000000000000000000000001200000000000000000000000003376a9132afa0d2f2c3c339fbcbe7f240d28e0d30000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001457656c636f6d6520546f20596f757220537461790000000000000000000000000000000000000000000000000000000000000000000000000000000000000004494c484e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000