4 txs
124 calls
constructor
constructor(string name_, string symbol_, address _treasury, address _hats, address _discountList)
functions
adminHatToTokenId
viewfunction adminHatToTokenId(uint256) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
discount
viewfunction discount() view returns (uint256)
expiresAt
viewfunction expiresAt(uint256 tokenId) view returns (uint64)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getRenewalPrice
viewfunction getRenewalPrice(address owner, uint64 duration) view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isManager
viewfunction isManager(uint256 tokenId, address sender) view returns (bool)
isRenewable
viewfunction isRenewable(uint256 tokenId) view returns (bool)
memberPassthroughModule
viewfunction memberPassthroughModule(uint256) view returns (address)
moonDaoCreator
viewfunction moonDaoCreator() view returns (address)
moonDAOTreasury
viewfunction moonDAOTreasury() view returns (address)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pricePerSecond
viewfunction pricePerSecond() view returns (uint256)
splitContract
viewfunction splitContract(uint256) view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
teamAdminHat
viewfunction teamAdminHat(uint256) view returns (uint256)
teamManagerHat
viewfunction teamManagerHat(uint256) view returns (uint256)
teamMemberHat
viewfunction teamMemberHat(uint256) view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
approve
nonpayablefunction approve(address to, uint256 tokenId)
cancelSubscription
payablefunction cancelSubscription(uint256 tokenId) payable
mintTo
payablefunction mintTo(address to, address sender, uint256 adminHat, uint256 managerHat, uint256 memberHat, address _memberPassthroughModule, address _splitContract) payable returns (uint256)
renewSubscription
payablefunction renewSubscription(address sender, uint256 tokenId, uint64 duration) payable
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 baseURI)
setDiscount
nonpayablefunction setDiscount(uint256 _discount)
setDiscountList
nonpayablefunction setDiscountList(address _discountList)
setMaximumRenewalDuration
nonpayablefunction setMaximumRenewalDuration(uint64 duration)
setMinimumRenewalDuration
nonpayablefunction setMinimumRenewalDuration(uint64 duration)
setMoonDaoCreator
nonpayablefunction setMoonDaoCreator(address _moonDaoCreator)
setOwner
nonpayablefunction setOwner(address _newOwner)
setPricePerSecond
nonpayablefunction setPricePerSecond(uint256 _pricePerSecond)
setTreasury
nonpayablefunction setTreasury(address _newTreasury)
setURITemplate
nonpayablefunction setURITemplate(string uriTemplate)
transferFrom
nonpayablefunction transferFrom(address from, address to, uint256 tokenId)
events
Approval
event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId)
ApprovalForAll
event ApprovalForAll(address indexed owner, address indexed operator, bool approved)
BatchMetadataUpdate
event BatchMetadataUpdate(uint256 _fromTokenId, uint256 _toTokenId)
MetadataUpdate
event MetadataUpdate(uint256 _tokenId)
OwnerUpdated
event OwnerUpdated(address indexed prevOwner, address indexed newOwner)
SubscriptionUpdate
event SubscriptionUpdate(uint256 indexed tokenId, uint64 expiration)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
ApprovalToCurrentOwner
error ApprovalToCurrentOwner()
ApproveToCaller
error ApproveToCaller()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
CallerNotOwnerNorApproved
error CallerNotOwnerNorApproved()
InsufficientPayment
error InsufficientPayment()
InvalidTokenId
error InvalidTokenId()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
OwnableUnauthorized
error OwnableUnauthorized()
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
RenewalTooLong
error RenewalTooLong()
RenewalTooShort
error RenewalTooShort()
SubscriptionNotRenewable
error SubscriptionNotRenewable()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x6080604052346104ac57612eef80380380610019816104b1565b92833981019060a0818303126104ac5780516001600160401b0381116104ac57826100459183016104d6565b602082015190926001600160401b0382116104ac576100659183016104d6565b9161007260408301610541565b9161008b608061008460608401610541565b9201610541565b825190926001600160401b0382116103d45781906100aa600254610555565b601f811161045d575b50602090601f83116001146103f5576000926103ea575b50508160011b916000199060031b1c1916176002555b83516001600160401b0381116103d4576100fb600354610555565b601f811161037a575b50602094601f821160011461031357948192939495600092610308575b50508160011b916000199060031b1c1916176003555b600080556403b1068377600b556103a5600c55610155600d54610555565b601f81116102bd575b506095600d90815560009081527f68747470733a2f2f7461626c656c616e642e6e6574776f726b2f6170692f7631600080516020612ecf833981519152557f2f71756572793f756e777261703d7472756526657874726163743d74727565267fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb6556973746174656d656e743d60b01b7fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb755600a8054336001600160a01b03198216811790925560405195926001600160a01b03909116907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d769080a3601580546001600160a01b03199081166001600160a01b039384161790915560178054600160401b600160e01b03191660409490941b600160401b600160e01b03169390931790925560188054909216921691909117905561292890816105a78239f35b600d60005261030290601f0160051c600080516020612ecf833981519152017fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb861058f565b3861015e565b015190503880610121565b601f198216956003600052806000209160005b88811061036257508360019596979810610349575b505050811b01600355610137565b015160001960f88460031b161c1916905538808061033b565b91926020600181928685015181550194019201610326565b60036000526103c4907fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b601f840160051c810191602085106103ca575b601f0160051c019061058f565b38610104565b90915081906103b7565b634e487b7160e01b600052604160045260246000fd5b0151905038806100ca565b600260009081528281209350601f198516905b818110610445575090846001959493921061042c575b505050811b016002556100e0565b015160001960f88460031b161c1916905538808061041e565b92936020600181928786015181550195019301610408565b60026000526104a6907f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace601f850160051c810191602086106103ca57601f0160051c019061058f565b386100b3565b600080fd5b6040519190601f01601f191682016001600160401b038111838210176103d457604052565b81601f820112156104ac578051906001600160401b0382116103d457610505601f8301601f19166020016104b1565b92828452602083830101116104ac5760005b82811061052c57505060206000918301015290565b80602080928401015182828701015201610517565b51906001600160a01b03821682036104ac57565b90600182811c92168015610585575b602083101461056f57565b634e487b7160e01b600052602260045260246000fd5b91607f1691610564565b81811061059a575050565b6000815560010161058f56fe6080604052600436101561001257600080fd5b60003560e01c806301ffc9a7146102b757806306fdde03146102b2578063081812fc146102ad578063095ea7b3146102a857806313af4035146102a35780631637b67f1461029e57806317c957091461029957806318160ddd14610294578063212350831461028f57806323b872dd1461028a5780633804fd1f146102855780633db11d70146102805780633ee65d421461027b57806342842e0e146102765780634d2195fa1461027157806355f804b31461026c57806361730f12146102675780636352211e146102625780636b6f4a9d1461025d57806370a0823114610258578063773ed13c146102535780638717ae171461024e5780638da5cb5b146102495780639056b48d1461024457806394df9e9d1461023f57806395d89b411461023a578063a22cb46514610235578063a9e99c5414610230578063b88d4fde1461022b578063ba7a36e514610226578063bea042a014610221578063c87b56dd1461021c578063cde317af14610217578063d01db27d14610212578063dabd27191461020d578063e228fcb514610208578063e985e9c514610203578063f0f44260146101fe578063f8abc5ec146101f9578063f9882592146101f4578063fa5e1a42146101ef5763faf4cf66146101ea57600080fd5b61179c565b611752565b611726565b6116f2565b6116a1565b611639565b6115c3565b611597565b61141a565b6113ee565b6112a3565b611252565b611229565b6111c2565b611196565b6110e8565b611035565b61100c565b610fd8565b610faf565b610f5e565b610d36565b610cd8565b610cba565b610c8a565b610c32565b610b30565b610a07565b6109dd565b6109b1565b610985565b610967565b610950565b6107a5565b610782565b61072e565b610628565b61058b565b6104f1565b6104b0565b6103d2565b6102d3565b6001600160e01b03198116036102ce57565b600080fd5b346102ce5760203660031901126102ce576004356102f0816102bc565b63ffffffff60e01b1663769f532d60e11b8114908115610319575b506040519015158152602090f35b632483248360e11b811491508115610333575b503861030b565b6380ac58cd60e01b811491508115610365575b8115610354575b503861032c565b6301ffc9a760e01b1490503861034d565b635b5e139f60e01b81149150610346565b60005b8381106103895750506000910152565b8181015183820152602001610379565b906020916103b281518092818552858086019101610376565b601f01601f1916010190565b9060206103cf928181520190610399565b90565b346102ce5760003660031901126102ce5760405160006002546103f4816117c8565b808452906001811690811561048c575060011461042c575b6104288361041c81850382610a82565b604051918291826103be565b0390f35b91905060026000527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace916000905b8082106104725750909150810160200161041c61040c565b91926001816020925483858801015201910190929161045a565b60ff191660208086019190915291151560051b8401909101915061041c905061040c565b346102ce5760203660031901126102ce5760206104ce600435611802565b6040516001600160a01b039091168152f35b6001600160a01b038116036102ce57565b346102ce5760403660031901126102ce5760043561050e816104e0565b6024356001600160a01b03610522826121c4565b5116906001600160a01b038316821461057a57813303610548575b61054692611d6a565b005b600082815260076020908152604080832033845290915290205460ff1661053d576367d9dca160e11b60005260046000fd5b63250fdee360e21b60005260046000fd5b346102ce5760203660031901126102ce576004356105a8816104e0565b600a54906001600160a01b0382169033829003610601576001600160a01b03166001600160a01b0319929092168217600a557f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d76600080a3005b6316ccb9cb60e11b60005260046000fd5b600435906001600160401b03821682036102ce57565b60603660031901126102ce57600435610640816104e0565b60243590604435906001600160401b0382168083036102ce576016546106799060a01c6001600160401b03165b6001600160401b031690565b8110156106915763e3061ca960e01b60005260046000fd5b6017546001600160401b031680151591908261071b575b505061070a57816106b89161198e565b34106106f957610546916000808080346106e86106dc60155460018060a01b031690565b6001600160a01b031690565b5af1506106f3611851565b50611de8565b63cd1c886760e01b60005260046000fd5b633b44021f60e01b60005260046000fd5b6001600160401b031610905038806106a8565b346102ce5760203660031901126102ce5760043561074b81611cf4565b1561077157600052600e60205260206001600160401b0360406000205416604051908152f35b6307ed98ed60e31b60005260046000fd5b346102ce5760003660031901126102ce5760206000546001549003604051908152f35b60203660031901126102ce576040516331a9108f60e11b81526004803590820181905290602081602481305afa90811561091f576000916108f0575b50336001600160a01b038216149081156108a9575b508015610890575b155b8015610873575b6108625761083361082282600052600e602052604060002090565b805467ffffffffffffffff19169055565b604051600081527f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e890602090a2005b6327da82d560e11b60005260046000fd5b50600a54610889906001600160a01b03166106dc565b3314610807565b50610800336108a16106dc84611802565b1490506107fe565b6001600160a01b031660009081526007602052604090206108ea91506108e39033905b9060018060a01b0316600052602052604060002090565b5460ff1690565b386107f6565b610912915060203d602011610918575b61090a8183610a82565b810190611eba565b386107e1565b503d610900565b611963565b60609060031901126102ce5760043561093c816104e0565b90602435610949816104e0565b9060443590565b346102ce5761054661096136610924565b91611ecf565b346102ce5760003660031901126102ce576020600b54604051908152f35b346102ce5760203660031901126102ce5760043560005260126020526020604060002054604051908152f35b346102ce5760203660031901126102ce5760043560005260116020526020604060002054604051908152f35b346102ce576105466109ee36610924565b90604051926109fe602085610a82565b60008452611c84565b346102ce5760403660031901126102ce57600435610a24816104e0565b602435906001600160401b03821682036102ce57602091610a449161198e565b604051908152f35b634e487b7160e01b600052604160045260246000fd5b606081019081106001600160401b03821117610a7d57604052565b610a4c565b90601f801991011681019081106001600160401b03821117610a7d57604052565b6001600160401b038111610a7d57601f01601f191660200190565b929192610aca82610aa3565b91610ad86040519384610a82565b8294818452818301116102ce578281602093846000960137010152565b60206003198201126102ce57600435906001600160401b0382116102ce57806023830112156102ce578160246103cf93600401359101610abe565b346102ce57610b3e36610af5565b600a546001600160a01b031633036106015780516001600160401b038111610a7d57610b7481610b6f600d546117c8565b611a5e565b602091601f8211600114610bb457610ba49260009183610ba9575b50508160011b916000199060031b1c19161790565b600d55005b015190503880610b8f565b600d600052601f198216927fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59160005b858110610c1a57508360019510610c01575b505050811b01600d55005b015160001960f88460031b161c19169055388080610bf6565b91926020600181928685015181550194019201610be4565b346102ce5760203660031901126102ce57610c4b610612565b600a546001600160a01b03163303610601576016805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055005b346102ce5760203660031901126102ce5760206001600160a01b03610cb06004356121c4565b5116604051908152f35b346102ce5760003660031901126102ce576020600c54604051908152f35b346102ce5760203660031901126102ce57600435610cf5816104e0565b6001600160a01b03168015610d2557600052600560205260206001600160401b0360406000205416604051908152f35b6323d3ad8160e21b60005260046000fd5b346102ce5760403660031901126102ce57602435600435610d56826104e0565b610d66610d6282611cf4565b1590565b61077157601754610dcd90602090610d899060401c6001600160a01b03166106dc565b93610d9e846000526011602052604060002090565b546040516321a9204d60e11b81526001600160a01b039092166004830152602482015291829081906044820190565b0381865afa801561091f57610dea91600091610f2f575b50611ba2565b610e236020610e03836000526011602052604060002090565b546040518093819263093380bd60e31b8352600483019190602083019252565b0381865afa801561091f57610e8c93602092600092610f00575b50610e5c610e55856000526011602052604060002090565b5492611c01565b604051635d5eb5af60e01b8152600481019390935263ffffffff1660248301529093849190829081906044820190565b03915afa90811561091f57610ebf92600092610ecb575b50610eb8906000526010602052604060002090565b5414611c29565b60405160018152602090f35b610eb8919250610ef29060203d602011610ef9575b610eea8183610a82565b810190611c1a565b9190610ea3565b503d610ee0565b610f21919250833d8511610f28575b610f198183610a82565b810190611be5565b9038610e3d565b503d610f0f565b610f51915060203d602011610f57575b610f498183610a82565b81019061194e565b38610de4565b503d610f3f565b346102ce5760203660031901126102ce57600435610f7b816104e0565b600a546001600160a01b0316330361060157601880546001600160a01b0319166001600160a01b0392909216919091179055005b346102ce5760003660031901126102ce57600a546040516001600160a01b039091168152602090f35b346102ce5760203660031901126102ce576004356000526014602052602060018060a01b0360406000205416604051908152f35b346102ce5760003660031901126102ce576016546040516001600160a01b039091168152602090f35b346102ce5760003660031901126102ce576040516000600354611057816117c8565b808452906001811690811561048c575060011461107e576104288361041c81850382610a82565b91905060036000527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b916000905b8082106110c45750909150810160200161041c61040c565b9192600181602092548385880101520191019092916110ac565b801515036102ce57565b346102ce5760403660031901126102ce57600435611105816104e0565b602435611111816110de565b6001600160a01b03821691338314611185573360009081526007602090815260408083206001600160a01b039094168352929052209015159060ff1981541660ff83161790556040519081527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b63b06307db60e01b60005260046000fd5b346102ce5760203660031901126102ce57600a54600435906001600160a01b0316330361060157600b55005b346102ce5760803660031901126102ce576004356111df816104e0565b602435906111ec826104e0565b604435606435926001600160401b0384116102ce57366023850112156102ce57611223610546943690602481600401359101610abe565b92611c84565b346102ce5760003660031901126102ce576015546040516001600160a01b039091168152602090f35b346102ce5760203660031901126102ce5760043561126f816104e0565b600a546001600160a01b0316330361060157601680546001600160a01b0319166001600160a01b0392909216919091179055005b346102ce5760203660031901126102ce576004356112c081611cf4565b156113dd5760405190816000600d546112d8816117c8565b80845290600181169081156113b9575060011461135c575b50916113046113099261130e940385610a82565b6123c0565b612522565b81519091901561134a5761041c6113369161133c610428946040519485936020850190611cc7565b90611cc7565b03601f198101835282610a82565b505061042861135761183c565b61041c565b600d600090815291507fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb55b81831061139d57505081016020016113046112f0565b6020919350806001915483858901015201910190918492611387565b60ff191660208086019190915291151560051b8401909101915061130490506112f0565b630a14c4b560e41b60005260046000fd5b346102ce5760203660031901126102ce5761140a600435611cf4565b1561077157602060405160018152f35b60e03660031901126102ce57600435611432816104e0565b60243561143e816104e0565b604435606435926084359060a435611455816104e0565b60c43592611462846104e0565b6016546001600160a01b0316330361154357610428966114966114c16115339761149b61151f976000549b8c9586926125eb565b611881565b806114b0846000526010602052604060002090565b55600052600f602052604060002090565b556114d6876000526011602052604060002090565b556114eb866000526012602052604060002090565b55611500856000526013602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b611500836000526014602052604060002090565b6040519081529081906020820190565b60405162461bcd60e51b815260206004820152602660248201527f4f6e6c7920746865204d6f6f6e44414f205465616d2043726561746f722063616044820152651b881b5a5b9d60d21b6064820152608490fd5b346102ce5760203660031901126102ce57600a54600435906001600160a01b0316330361060157600c55005b346102ce576115d136610af5565b600a546001600160a01b03163303610601576040908151916115f38184610a82565b60018352601f190160005b8181106116285750508151156116235760208201528051156116235761054690612760565b611cde565b8060606020809387010152016115fe565b346102ce5760403660031901126102ce57602060ff61169560043561165d816104e0565b6024359061166a826104e0565b60018060a01b03166000526007845260406000209060018060a01b0316600052602052604060002090565b54166040519015158152f35b346102ce5760203660031901126102ce576004356116be816104e0565b600a546001600160a01b0316330361060157601580546001600160a01b0319166001600160a01b0392909216919091179055005b346102ce5760203660031901126102ce576004356000526013602052602060018060a01b0360406000205416604051908152f35b346102ce5760203660031901126102ce5760043560005260106020526020604060002054604051908152f35b346102ce5760203660031901126102ce5761176b610612565b600a546001600160a01b03163303610601576001600160401b03166001600160401b03196017541617601755600080f35b346102ce5760203660031901126102ce57600435600052600f6020526020604060002054604051908152f35b90600182811c921680156117f8575b60208310146117e257565b634e487b7160e01b600052602260045260246000fd5b91607f16916117d7565b61180b81611cf4565b1561182b576000908152600660205260409020546001600160a01b031690565b6333d1c03960e21b60005260046000fd5b6040519061184b602083610a82565b60008252565b3d1561187c573d9061186282610aa3565b916118706040519384610a82565b82523d6000602084013e565b606090565b6016546118999060a01c6001600160401b031661066d565b6301e1338010156118b55763e3061ca960e01b60005260046000fd5b6017546001600160401b03168015159081611909575b5061070a576301e133806118de9161198e565b34106106f9576301e13380611907916000808080346106e86106dc60155460018060a01b031690565b565b6001600160401b031690506301e1338011386118cb565b634e487b7160e01b600052601160045260246000fd5b8181029291811591840414171561194957565b611920565b908160209103126102ce57516103cf816110de565b6040513d6000823e3d90fd5b6103e803906103e8821161194957565b60001981019190821161194957565b9060206119aa6119ef926001600160401b03600b549116611936565b6018549093906119c2906001600160a01b03166106dc565b604051633af32abf60e01b81526001600160a01b0390921660048301529092839190829081906024820190565b03915afa90811561091f57600091611a28575b50156103cf57611a206103cf91611a1a600c5461196f565b90611936565b6103e8900490565b611a41915060203d602011610f5757610f498183610a82565b38611a02565b818110611a52575050565b60008155600101611a47565b90601f8211611a6b575050565b61190791600d6000526020600020906020601f840160051c83019310611a99575b601f0160051c0190611a47565b9091508190611a8c565b9190601f8111611ab257505050565b611907926000526020600020906020601f840160051c83019310611a9957601f0160051c0190611a47565b91909182516001600160401b038111610a7d57611b0481611afe84546117c8565b84611aa3565b6020601f8211600114611b39578190611b35939495600092610ba95750508160011b916000199060031b1c19161790565b9055565b601f19821690611b4e84600052602060002090565b9160005b818110611b8a57509583600195969710611b71575b505050811b019055565b015160001960f88460031b161c19169055388080611b67565b9192602060018192868b015181550194019201611b52565b15611ba957565b60405162461bcd60e51b81526020600482015260146024820152731b5d5cdd081dd9585c8813585b9859d95c92185d60621b6044820152606490fd5b908160209103126102ce575163ffffffff811681036102ce5790565b63ffffffff6000199116019063ffffffff821161194957565b908160209103126102ce575190565b15611c3057565b60405162461bcd60e51b815260206004820152602660248201527f4d616e61676572486174206d7573742062652061206368696c64206f662041646044820152651b5a5b92185d60d21b6064820152608490fd5b929190611c92828286611ecf565b803b611c9f575b50505050565b611ca8936122af565b15611cb65738808080611c99565b6368d2bf6b60e11b60005260046000fd5b90611cda60209282815194859201610376565b0190565b634e487b7160e01b600052603260045260246000fd5b60005481109081611d03575090565b9050600052600460205260ff60406000205460e01c161590565b600081815260066020526040812080546001600160a01b031916905590916001600160a01b03167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b9258280a4565b600082815260066020526040902080546001600160a01b0319166001600160a01b0383161790559091906001600160a01b0390811691167f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4565b906001600160401b03809116911601906001600160401b03821161194957565b90611df282611cf4565b15610771577f2ec2be2c4b90c2cf13ecb6751a24daed6bb741ae5ed3f7371aabf9402f6d62e8906001600160401b03611e3584600052600e602052604060002090565b54169081158015611eb1575b15611ea357611e5a91506001600160401b034216611dc8565b611e8d81611e7285600052600e602052604060002090565b906001600160401b03166001600160401b0319825416179055565b6040516001600160401b039091168152602090a2565b611eac91611dc8565b611e5a565b50428210611e41565b908160209103126102ce57516103cf816104e0565b611ed8836121c4565b80516001600160a01b038084169392911683900361215857823314801561212f575b801561211b575b1561210a576001600160a01b0384169384156120f95780611f256120249285612862565b611f2f8488611d1d565b6001600160a01b0384166000908152600560205260409020611f8990611f6f611f5f82546001600160401b031690565b600019016001600160401b031690565b6001600160401b03166001600160401b0319825416179055565b6001600160a01b0381166000908152600560205260409020611fc890611f6f611fb982546001600160401b031690565b6001016001600160401b031690565b611ffe611fdf886000526004602052604060002090565b80546001600160a01b0319166001600160a01b03909316929092178255565b805467ffffffffffffffff60a01b19164260a01b67ffffffffffffffff60a01b16179055565b600185019061203d826000526004602052604060002090565b8054909290612054906001600160a01b03166106dc565b15612085575b505050507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a4565b60005403612094575b8061205a565b81546001600160a01b0319166001600160a01b039093169290921781556120f1916120c990602001516001600160401b031690565b815467ffffffffffffffff60a01b191660a09190911b67ffffffffffffffff60a01b16179055565b38808061208e565b633a954ecd60e21b60005260046000fd5b632ce44b5f60e11b60005260046000fd5b50336121296106dc87611802565b14611f01565b506121536108e3336108cc8560018060a01b03166000526007602052604060002090565b611efa565b62a1148160e81b60005260046000fd5b6040519061217582610a62565b60006040838281528260208201520152565b9060405161219481610a62565b91546001600160a01b038116835260a081901c6001600160401b0316602084015260e01c60ff1615156040830152565b6121cc612168565b508060005481106121e9575b636f96cda160e11b60005260046000fd5b612200612205916000526004602052604060002090565b612187565b612215610d626040830151151590565b156121d85780516001600160a01b031661226457505b60001901612246612200826000526004602052604060002090565b805161225a906001600160a01b03166106dc565b612264575061222b565b905090565b908160209103126102ce57516103cf816102bc565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526103cf92910190610399565b9060209260006122d8959360405196879586948593630a85bd0160e11b8552336004860161227e565b03926001600160a01b03165af16000918161232f575b50612319576122fb611851565b80519081612314576368d2bf6b60e11b60005260046000fd5b602001fd5b6001600160e01b031916630a85bd0160e11b1490565b61235291925060203d602011612359575b61234a8183610a82565b810190612269565b90386122ee565b503d612340565b60001981146119495760010190565b9061237982610aa3565b6123866040519182610a82565b8281528092612397601f1991610aa3565b0190602036910137565b603001908160301161194957565b908151811015611623570160200190565b90811561245757600082805b6124385750806123dc849261236f565b915b6123e757509150565b6123f36124319161197f565b9361241c61240c612406600a84066123a1565b60ff1690565b60f81b6001600160f81b03191690565b60001a61242986856123af565b53600a900490565b92836123de565b929061244661244e91612360565b93600a900490565b809391936123cc565b9050604051612467604082610a82565b60018152600360fc1b602082015290565b6009541561162357600960009081526000805160206128d383398151915291565b60095481101561162357600960005260206000200190600090565b600092918154916124c4836117c8565b926001811690811561250f57506001146124dd57505050565b909192935060005260206000206000905b8382106124fb5750500190565b6001816020925484860152019101906124ee565b60ff191683525050811515909102019150565b60095480156125e157600181146125bc57906060916000915b8183106125485750505090565b90919283156000146125815750600161133c61257761256686612499565b5060405192839160208301906124b4565b935b01919061253b565b6125aa6125b660019261133c61259688612499565b506125b06040519586946020860190611cc7565b88611cc7565b906124b4565b93612579565b506103cf6113369161133c6125cf612478565b509160405194859360208501906124b4565b50506103cf61183c565b600054916001600160a01b038216918215612750576001600160a01b03811660009081526005602052604090206126b5919061264490611f6f600161263783546001600160401b031690565b016001600160401b031690565b6001600160a01b03811660009081526005602052604090206126a19061267a600161263783546001600160401b039060401c1690565b67ffffffffffffffff60401b82549160401b169067ffffffffffffffff60401b1916179055565b611500856000526004602052604060002090565b6127016001600160401b0342166126d6856000526004602052604060002090565b805467ffffffffffffffff60a01b191660a09290921b67ffffffffffffffff60a01b16919091179055565b6001830160015b15612740575b6000600185019484827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612708565b80841061270e5750919050600055565b622e076360e81b60005260046000fd5b805190680100000000000000008211610a7d57600954826009558083106127c8575b5060096000526020016000805160206128d38339815191526000915b8383106127ab5750505050565b60016020826127bc83945186611add565b0192019201919061279e565b60096000526000805160206128d383398151915201826000805160206128d3833981519152015b8181106127fc5750612782565b80612809600192546117c8565b80612816575b50016127ef565b601f8111831461282c5750600081555b3861280f565b6128509083601f61284285600052602060002090565b920160051c82019101611a47565b60008181526020812081835555612826565b6001600160a01b0316159081156128c0575b501561287c57565b606460405162461bcd60e51b815260206004820152602060248201527f596f75206d6179206e6f74207472616e7366657220796f757220746f6b656e216044820152fd5b6001600160a01b03161590503861287456fe6e1540171b6c0c960b71a7020d9f60077f6af931a8bbf590da0223dacf75c7afa2646970667358221220c0d1470ca1d4c9e2803f925813ed978c189cf226310021c931f3bac58f59aa9a64736f6c634300081a0033d7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb500000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000af26a002d716508b7e375f1f620338442f5470c00000000000000000000000003bc1a0ad72417f2d411118085256fc53cbddd13700000000000000000000000096e054924258e51d8e3b3ab8a6a27920f6ce53ee000000000000000000000000000000000000000000000000000000000000000b4d6f6f6e44616f5465616d00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000034d44450000000000000000000000000000000000000000000000000000000000