29 txs
38 calls
constructor
constructor(string _name, string _symbol, address _royaltyRecipient, uint128 _royaltyBps, address _primarySaleRecipient)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
claimCondition
viewfunction claimCondition() view returns (uint256 startTimestamp, uint256 maxClaimableSupply, uint256 supplyClaimed, uint256 quantityLimitPerWallet, bytes32 merkleRoot, uint256 pricePerToken, address currency, string metadata)
contractURI
viewfunction contractURI() view returns (string)
encryptDecrypt
purefunction encryptDecrypt(bytes data, bytes key) pure returns (bytes result)
encryptedData
viewfunction encryptedData(uint256) view returns (bytes)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getBaseURICount
viewfunction getBaseURICount() view returns (uint256)
getBatchIdAtIndex
viewfunction getBatchIdAtIndex(uint256 _index) view returns (uint256)
getDefaultRoyaltyInfo
viewfunction getDefaultRoyaltyInfo() view returns (address, uint16)
getRevealURI
viewfunction getRevealURI(uint256 _batchId, bytes _key) view returns (string revealedURI)
getRoyaltyInfoForToken
viewfunction getRoyaltyInfoForToken(uint256 _tokenId) view returns (address, uint16)
getSupplyClaimedByWallet
viewfunction getSupplyClaimedByWallet(address _claimer) view returns (uint256)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isEncryptedBatch
viewfunction isEncryptedBatch(uint256 _batchId) view returns (bool)
lodgingOpen
viewfunction lodgingOpen() view returns (bool)
lodgingPeriod
viewfunction lodgingPeriod(uint256 tokenId) view returns (bool lodging, uint256 current, uint256 total)
name
viewfunction name() view returns (string)
nextTokenIdToClaim
viewfunction nextTokenIdToClaim() view returns (uint256)
nextTokenIdToMint
viewfunction nextTokenIdToMint() view returns (uint256)
OPERATOR_FILTER_REGISTRY
viewfunction OPERATOR_FILTER_REGISTRY() view returns (address)
operatorRestriction
viewfunction operatorRestriction() view returns (bool)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
primarySaleRecipient
viewfunction primarySaleRecipient() view returns (address)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 royaltyAmount)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenURI
viewfunction tokenURI(uint256 _tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256)
verifyClaim
viewfunction verifyClaim(address _claimer, uint256 _quantity, address _currency, uint256 _pricePerToken, tuple _allowlistProof) view returns (bool isOverride)
approve
nonpayablefunction approve(address operator, uint256 tokenId)
burn
nonpayablefunction burn(uint256 _tokenId)
claim
payablefunction claim(address _receiver, uint256 _quantity, address _currency, uint256 _pricePerToken, tuple _allowlistProof, bytes _data) payable
lazyMint
nonpayablefunction lazyMint(uint256 _amount, string _baseURIForTokens, bytes _data) returns (uint256 batchId)
multicall
nonpayablefunction multicall(bytes[] data) returns (bytes[] results)
reveal
nonpayablefunction reveal(uint256 _index, bytes _key) returns (string revealedURI)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes data)
safeTransferFrom
nonpayablefunction safeTransferFrom(address from, address to, uint256 tokenId)
safeTransferWhileLodging
nonpayablefunction safeTransferWhileLodging(address from, address to, uint256 tokenId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setClaimConditions
nonpayablefunction setClaimConditions(tuple _condition, bool _resetClaimEligibility)
setContractURI
nonpayablefunction setContractURI(string _uri)
setDefaultRoyaltyInfo
nonpayablefunction setDefaultRoyaltyInfo(address _royaltyRecipient, uint256 _royaltyBps)
setLodgingOpen
nonpayablefunction setLodgingOpen(bool open)
setOperatorRestriction
nonpayablefunction setOperatorRestriction(bool _restriction)
setOwner
nonpayablefunction setOwner(address _newOwner)
setPrimarySaleRecipient
nonpayablefunction setPrimarySaleRecipient(address _saleRecipient)
setRoyaltyInfoForToken
nonpayablefunction setRoyaltyInfoForToken(uint256 _tokenId, address _recipient, uint256 _bps)
toggleLodging
nonpayablefunction toggleLodging(uint256[] tokenIds)
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)
ClaimConditionUpdated
event ClaimConditionUpdated((uint256 startTimestamp, uint256 maxClaimableSupply, uint256 supplyClaimed, uint256 quantityLimitPerWallet, bytes32 merkleRoot, uint256 pricePerToken, address currency, string metadata) condition, bool resetEligibility)
ContractURIUpdated
event ContractURIUpdated(string prevURI, string newURI)
DefaultRoyalty
event DefaultRoyalty(address indexed newRoyaltyRecipient, uint256 newRoyaltyBps)
Lodged
event Lodged(uint256 indexed tokenId)
OperatorRestriction
event OperatorRestriction(bool restriction)
OwnerUpdated
event OwnerUpdated(address indexed prevOwner, address indexed newOwner)
PrimarySaleRecipientUpdated
event PrimarySaleRecipientUpdated(address indexed recipient)
RoyaltyForToken
event RoyaltyForToken(uint256 indexed tokenId, address indexed royaltyRecipient, uint256 royaltyBps)
TokensClaimed
event TokensClaimed(address indexed claimer, address indexed receiver, uint256 indexed startTokenId, uint256 quantityClaimed)
TokensLazyMinted
event TokensLazyMinted(uint256 indexed startTokenId, uint256 endTokenId, string baseURI, bytes encryptedBaseURI)
TokenURIRevealed
event TokenURIRevealed(uint256 indexed index, string revealedURI)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
Unlodged
event Unlodged(uint256 indexed tokenId)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
ApprovalToCurrentOwner
error ApprovalToCurrentOwner()
ApproveToCaller
error ApproveToCaller()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
OperatorNotAllowed
error OperatorNotAllowed(address operator)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x60806040526001601e55601f805460ff191690553480156200002057600080fd5b5060405162004b9438038062004b948339810160408190526200004391620004ed565b84848484848484733cc6cdda760b79bafa08df41ecfa224f810dceb660016daaeb6d7670e522a718067333cd4e3b15620001a6578015620000f457604051633e9f1edf60e11b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e90637d3e3dbe906044015b600060405180830381600087803b158015620000d557600080fd5b505af1158015620000ea573d6000803e3d6000fd5b50505050620001a6565b6001600160a01b03821615620001455760405163a0af290360e01b81523060048201526001600160a01b03831660248201526daaeb6d7670e522a718067333cd4e9063a0af290390604401620000ba565b604051632210724360e11b81523060048201526daaeb6d7670e522a718067333cd4e90634420e48690602401600060405180830381600087803b1580156200018c57600080fd5b505af1158015620001a1573d6000803e3d6000fd5b505050505b50508151620001bd9060039060208501906200035d565b508051620001d39060049060208401906200035d565b5050600060015550620001e63362000216565b620001fb836001600160801b03841662000268565b620002068162000313565b50505050505050505050620005da565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b612710811115620002b15760405162461bcd60e51b815260206004820152600f60248201526e45786365656473206d61782062707360881b604482015260640160405180910390fd5b600b80546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9060200160405180910390a25050565b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b8280546200036b906200059d565b90600052602060002090601f0160209004810192826200038f5760008555620003da565b82601f10620003aa57805160ff1916838001178555620003da565b82800160010185558215620003da579182015b82811115620003da578251825591602001919060010190620003bd565b50620003e8929150620003ec565b5090565b5b80821115620003e85760008155600101620003ed565b634e487b7160e01b600052604160045260246000fd5b600082601f8301126200042b57600080fd5b81516001600160401b038082111562000448576200044862000403565b604051601f8301601f19908116603f0116810190828211818310171562000473576200047362000403565b816040528381526020925086838588010111156200049057600080fd5b600091505b83821015620004b4578582018301518183018401529082019062000495565b83821115620004c65760008385830101525b9695505050505050565b80516001600160a01b0381168114620004e857600080fd5b919050565b600080600080600060a086880312156200050657600080fd5b85516001600160401b03808211156200051e57600080fd5b6200052c89838a0162000419565b965060208801519150808211156200054357600080fd5b50620005528882890162000419565b9450506200056360408701620004d0565b60608701519093506001600160801b03811681146200058157600080fd5b91506200059160808701620004d0565b90509295509295909350565b600181811c90821680620005b257607f821691505b60208210811415620005d457634e487b7160e01b600052602260045260246000fd5b50919050565b6145aa80620005ea6000396000f3fe6080604052600436106102c95760003560e01c806363b45e2d11610175578063acd083f8116100dc578063d37c353b11610095578063e8a3d4851161006f578063e8a3d485146108fd578063e985e9c514610912578063eec8897c1461095b578063f2050d991461097b57600080fd5b8063d37c353b14610894578063d637ed59146108b4578063e7150322146108dd57600080fd5b8063acd083f8146107d4578063b24f2d39146107e9578063b88d4fde14610814578063c3705b6214610834578063c87b56dd14610854578063ce8056421461087457600080fd5b806395d89b411161012e57806395d89b41146107125780639bcf7a15146107275780639fc4d68f14610747578063a05112fc14610767578063a22cb46514610787578063ac9650d8146107a757600080fd5b806363b45e2d1461066c5780636f4f28371461068157806370a08231146106a157806384bb1e42146106c15780638da5cb5b146106d4578063938e3d7b146106f257600080fd5b806332f0cd641161023457806342842e0e116101ed5780634cc157df116101c75780634cc157df146105d0578063504c6e0114610612578063600dd5ea1461062c5780636352211e1461064c57600080fd5b806342842e0e1461057057806342966c6814610590578063492e224b146105b057600080fd5b806332f0cd641461049557806335b65e1f146104b557806335c189f2146104f95780633b1475a71461051957806341f434341461052e578063426cfaf31461055057600080fd5b806313af40351161028657806313af4035146103b957806318160ddd146103d957806323b872dd146103fc5780632419f51b1461041c57806329c9bb821461043c5780632a55205a1461045657600080fd5b806301ffc9a7146102ce57806306fdde0314610303578063079fe40e14610325578063081812fc14610357578063095ea7b3146103775780630bbbe4ec14610399575b600080fd5b3480156102da57600080fd5b506102ee6102e93660046138a4565b6109b8565b60405190151581526020015b60405180910390f35b34801561030f57600080fd5b50610318610a25565b6040516102fa9190613919565b34801561033157600080fd5b50600f546001600160a01b03165b6040516001600160a01b0390911681526020016102fa565b34801561036357600080fd5b5061033f61037236600461392c565b610ab7565b34801561038357600080fd5b50610397610392366004613961565b610afb565b005b3480156103a557600080fd5b506103976103b43660046139d6565b610b14565b3480156103c557600080fd5b506103976103d4366004613a17565b610b57565b3480156103e557600080fd5b50600254600154035b6040519081526020016102fa565b34801561040857600080fd5b50610397610417366004613a32565b610b90565b34801561042857600080fd5b506103ee61043736600461392c565b610bb5565b34801561044857600080fd5b50601f546102ee9060ff1681565b34801561046257600080fd5b50610476610471366004613a6e565b610c23565b604080516001600160a01b0390931683526020830191909152016102fa565b3480156104a157600080fd5b506103976104b0366004613a9e565b610c60565b3480156104c157600080fd5b506103ee6104d0366004613a17565b601a546000908152601b602090815260408083206001600160a01b039094168352929052205490565b34801561050557600080fd5b50610397610514366004613a32565b610cbc565b34801561052557600080fd5b506010546103ee565b34801561053a57600080fd5b5061033f6daaeb6d7670e522a718067333cd4e81565b34801561055c57600080fd5b5061039761056b366004613abb565b610d36565b34801561057c57600080fd5b5061039761058b366004613a32565b610f4b565b34801561059c57600080fd5b506103976105ab36600461392c565b610f70565b3480156105bc57600080fd5b506102ee6105cb36600461392c565b610f7b565b3480156105dc57600080fd5b506105f06105eb36600461392c565b610fa1565b604080516001600160a01b03909316835261ffff9091166020830152016102fa565b34801561061e57600080fd5b506000546102ee9060ff1681565b34801561063857600080fd5b50610397610647366004613961565b61100c565b34801561065857600080fd5b5061033f61066736600461392c565b61103e565b34801561067857600080fd5b50600d546103ee565b34801561068d57600080fd5b5061039761069c366004613a17565b611050565b3480156106ad57600080fd5b506103ee6106bc366004613a17565b61107d565b6103976106cf366004613bf5565b6110cb565b3480156106e057600080fd5b50600a546001600160a01b031661033f565b3480156106fe57600080fd5b5061039761070d366004613c8b565b6111a6565b34801561071e57600080fd5b506103186111d3565b34801561073357600080fd5b50610397610742366004613cd3565b6111e2565b34801561075357600080fd5b50610318610762366004613d39565b611211565b34801561077357600080fd5b5061031861078236600461392c565b611392565b34801561079357600080fd5b506103976107a2366004613d84565b61142c565b3480156107b357600080fd5b506107c76107c23660046139d6565b611440565b6040516102fa9190613da0565b3480156107e057600080fd5b506001546103ee565b3480156107f557600080fd5b50600b546001600160a01b03811690600160a01b900461ffff166105f0565b34801561082057600080fd5b5061039761082f366004613e02565b611534565b34801561084057600080fd5b5061039761084f366004613a9e565b611561565b34801561086057600080fd5b5061031861086f36600461392c565b61159e565b34801561088057600080fd5b5061031861088f366004613d39565b61160d565b3480156108a057600080fd5b506103ee6108af366004613e69565b6116b0565b3480156108c057600080fd5b506108c9611748565b6040516102fa989796959493929190613ee2565b3480156108e957600080fd5b506103186108f8366004613f37565b611807565b34801561090957600080fd5b5061031861187c565b34801561091e57600080fd5b506102ee61092d366004613f92565b6001600160a01b03918216600090815260086020908152604080832093909416825291909152205460ff1690565b34801561096757600080fd5b506102ee610976366004613fc5565b611889565b34801561098757600080fd5b5061099b61099636600461392c565b611c39565b6040805193151584526020840192909252908201526060016102fa565b60006301ffc9a760e01b6001600160e01b0319831614806109e957506380ac58cd60e01b6001600160e01b03198316145b80610a045750635b5e139f60e01b6001600160e01b03198316145b80610a1f57506001600160e01b0319821663152a902d60e11b145b92915050565b606060038054610a3490614036565b80601f0160208091040260200160405190810160405280929190818152602001828054610a6090614036565b8015610aad5780601f10610a8257610100808354040283529160200191610aad565b820191906000526020600020905b815481529060010190602001808311610a9057829003601f168201915b5050505050905090565b6000610ac282611c85565b610adf576040516333d1c03960e21b815260040160405180910390fd5b506000908152600760205260409020546001600160a01b031690565b81610b0581611cb1565b610b0f8383611d84565b505050565b8060005b81811015610b5157610b41848483818110610b3557610b3561406b565b90506020020135611e06565b610b4a81614097565b9050610b18565b50505050565b610b5f611f9e565b610b845760405162461bcd60e51b8152600401610b7b906140b2565b60405180910390fd5b610b8d81611fcb565b50565b826001600160a01b0381163314610baa57610baa33611cb1565b610b5184848461201d565b6000610bc0600d5490565b8210610bfe5760405162461bcd60e51b815260206004820152600d60248201526c092dcecc2d8d2c840d2dcc8caf609b1b6044820152606401610b7b565b600d8281548110610c1157610c1161406b565b90600052602060002001549050919050565b600080600080610c3286610fa1565b90945084925061ffff169050612710610c4b82876140da565b610c55919061410f565b925050509250929050565b60405162461bcd60e51b815260206004820152602b60248201527f4e6f7420617574686f72697a656420746f20736574206f70657261746f72207260448201526a32b9ba3934b1ba34b7b71760a91b6064820152608401610b7b565b33610cc68261103e565b6001600160a01b031614610d1c5760405162461bcd60e51b815260206004820152601c60248201527f536872656464696e672053617373793a204f6e6c79204f776e657221000000006044820152606401610b7b565b6002601e55610d2c838383610f4b565b50506001601e5550565b610d3e611f9e565b610d5a5760405162461bcd60e51b8152600401610b7b906140b2565b601a546014548215610da9575060003360405160609190911b6bffffffffffffffffffffffff191660208201524360348201526054016040516020818303038152906040528051906020012091505b8360200135811115610df25760405162461bcd60e51b81526020600482015260126024820152711b585e081cdd5c1c1b1e4818db185a5b595960721b6044820152606401610b7b565b604051806101000160405280856000013581526020018560200135815260200182815260200185606001358152602001856080013581526020018560a0013581526020018560c0016020810190610e499190613a17565b6001600160a01b03168152602001610e6460e0870187614123565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525050509152508051601290815560208083015160135560408301516014556060830151601555608083015160165560a083015160175560c0830151601880546001600160a01b0319166001600160a01b0390921691909117905560e08301518051610f039260199201906137f5565b505050601a8290556040517f6dab9d7d05d468100139089b2516cb8ff286c3972ff070d3b509e371f0d0d4b890610f3d9086908690614192565b60405180910390a150505050565b826001600160a01b0381163314610f6557610f6533611cb1565b610b51848484612028565b610b8d816001612043565b60008181526011602052604081208054829190610f9790614036565b9050119050919050565b6000818152600c60209081526040808320815180830190925280546001600160a01b031680835260019091015492820192909252829115610fe85780516020820151611002565b600b546001600160a01b03811690600160a01b900461ffff165b9250925050915091565b611014611f9e565b6110305760405162461bcd60e51b8152600401610b7b906140b2565b61103a8282612205565b5050565b6000611049826122ab565b5192915050565b611058611f9e565b6110745760405162461bcd60e51b8152600401610b7b906140b2565b610b8d816123c5565b60006001600160a01b0382166110a6576040516323d3ad8160e21b815260040160405180910390fd5b506001600160a01b03166000908152600660205260409020546001600160401b031690565b6110d986868686868661240f565b601a546110e93387878787611889565b5085601260020160008282546110ff919061425e565b90915550506000818152601b602090815260408083203384529091528120805488929061112d90849061425e565b9091555061114090506000878787612476565b600061114c888861252c565b9050806001600160a01b038916336001600160a01b03167fff097c7d8b1957a4ff09ef1361b5fb54dcede3941ba836d0beb9d10bec725de68a60405161119491815260200190565b60405180910390a45050505050505050565b6111ae611f9e565b6111ca5760405162461bcd60e51b8152600401610b7b906140b2565b610b8d81612539565b606060048054610a3490614036565b6111ea611f9e565b6112065760405162461bcd60e51b8152600401610b7b906140b2565b610b0f83838361261b565b60008381526011602052604081208054606092919061122f90614036565b80601f016020809104026020016040519081016040528092919081815260200182805461125b90614036565b80156112a85780601f1061127d576101008083540402835291602001916112a8565b820191906000526020600020905b81548152906001019060200180831161128b57829003601f168201915b505050505090508051600014156112f55760405162461bcd60e51b8152602060048201526011602482015270139bdd1a1a5b99c81d1bc81c995d99585b607a1b6044820152606401610b7b565b6000808280602001905181019061130c9190614276565b9150915061131b828787611807565b9350808487874660405160200161133594939291906142f6565b60405160208183030381529060405280519060200120146113885760405162461bcd60e51b815260206004820152600d60248201526c496e636f7272656374206b657960981b6044820152606401610b7b565b5050509392505050565b601160205260009081526040902080546113ab90614036565b80601f01602080910402602001604051908101604052809291908181526020018280546113d790614036565b80156114245780601f106113f957610100808354040283529160200191611424565b820191906000526020600020905b81548152906001019060200180831161140757829003601f168201915b505050505081565b8161143681611cb1565b610b0f83836126e4565b6060816001600160401b0381111561145a5761145a613b2a565b60405190808252806020026020018201604052801561148d57816020015b60608152602001906001900390816114785790505b50905060005b8281101561152d576114fd308585848181106114b1576114b161406b565b90506020028101906114c39190614123565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061277a92505050565b82828151811061150f5761150f61406b565b6020026020010181905250808061152590614097565b915050611493565b5092915050565b836001600160a01b038116331461154e5761154e33611cb1565b61155a858585856127a6565b5050505050565b600a546001600160a01b0316331461158b5760405162461bcd60e51b8152600401610b7b906140b2565b601f805460ff1916911515919091179055565b606060006115ab836127ea565b50905060006115b9846128ef565b90506115c482610f7b565b156115f257806040516020016115da919061431f565b60405160208183030381529060405292505050919050565b806115fc85612a50565b6040516020016115da929190614344565b6060611617611f9e565b6116335760405162461bcd60e51b8152600401610b7b906140b2565b600061163e85610bb5565b905061164b818585611211565b91506116668160405180602001604052806000815250612b55565b6116708183612b74565b847f6df1d8db2a036436ffe0b2d1833f2c5f1e624818dfce2578c0faa4b83ef9998d836040516116a09190613919565b60405180910390a2509392505050565b60008115611731576000806116c784860186614373565b9150915081516000141580156116dc57508015155b1561172e5761172e886010546116f2919061425e565b86868080601f016020809104026020016040519081016040528093929190818152602001838380828437600092019190915250612b5592505050565b50505b61173e8686868686612b93565b9695505050505050565b60128054601354601454601554601654601754601854601980549798969795969495939492936001600160a01b03909216929161178490614036565b80601f01602080910402602001604051908101604052809291908181526020018280546117b090614036565b80156117fd5780601f106117d2576101008083540402835291602001916117fd565b820191906000526020600020905b8154815290600101906020018083116117e057829003601f168201915b5050505050905088565b8251604080518083016020019091528181529060005b8181101561187357600085858360405160200161183c939291906143b7565b60408051601f1981840301815291905280516020918201208884018201511885840182015261186c91508261425e565b905061181d565b50509392505050565b600980546113ab90614036565b60408051610100810182526012805482526013546020830152601454928201929092526015546060820152601654608082015260175460a08201526018546001600160a01b031660c082015260198054600093849392909160e0840191906118f090614036565b80601f016020809104026020016040519081016040528092919081815260200182805461191c90614036565b80156119695780601f1061193e57610100808354040283529160200191611969565b820191906000526020600020905b81548152906001019060200180831161194c57829003601f168201915b50505091909252505050606081015160a082015160c08301516080840151939450919290919015611a4e57611a4a6119a187806143c9565b80806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250505060808088015191508d9060208b01359060408c0135906119f6908d0160608e01613a17565b6040516bffffffffffffffffffffffff19606095861b811660208301526034820194909452605481019290925290921b16607482015260880160405160208183030381529060405280519060200120612c9d565b5094505b8415611ad3576020860135611a635782611a69565b85602001355b925060001986604001351415611a7f5781611a85565b85604001355b9150600019866040013514158015611ab657506000611aaa6080880160608901613a17565b6001600160a01b031614155b611ac05780611ad0565b611ad06080870160608801613a17565b90505b601a546000908152601b602090815260408083206001600160a01b03808f16855292529091205490898116908316141580611b0e5750828814155b15611b4e5760405162461bcd60e51b815260206004820152601060248201526f2150726963654f7243757272656e637960801b6044820152606401610b7b565b891580611b63575083611b61828c61425e565b115b15611b995760405162461bcd60e51b8152600401610b7b906020808252600490820152632151747960e01b604082015260600190565b84602001518a8660400151611bae919061425e565b1115611be95760405162461bcd60e51b815260206004820152600a602482015269214d6178537570706c7960b01b6044820152606401610b7b565b8451421015611c2b5760405162461bcd60e51b815260206004820152600e60248201526d18d85b9d0818db185a5b481e595d60921b6044820152606401610b7b565b505050505095945050505050565b6000818152601c6020526040812054819081908015611c635760019350611c608142614412565b92505b6000858152601d6020526040902054611c7c908461425e565b93959294505050565b600060015482108015610a1f575050600090815260056020526040902054600160e01b900460ff161590565b60005460ff1615610b8d576daaeb6d7670e522a718067333cd4e3b15610b8d57604051633185c44d60e21b81523060048201526001600160a01b03821660248201526daaeb6d7670e522a718067333cd4e9063c61711349060440160206040518083038186803b158015611d2457600080fd5b505afa158015611d38573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611d5c9190614429565b610b8d57604051633b79c77360e21b81526001600160a01b0382166004820152602401610b7b565b6000611d8f8261103e565b9050806001600160a01b0316836001600160a01b03161415611dc45760405163250fdee360e21b815260040160405180910390fd5b336001600160a01b03821614611dfb57611dde813361092d565b611dfb576040516367d9dca160e11b815260040160405180910390fd5b610b0f838383612d6b565b8033611e11826122ab565b516001600160a01b03161480611e37575033611e2c82610ab7565b6001600160a01b0316145b611e985760405162461bcd60e51b815260206004820152602c60248201527f596f7520617265206e6f7420617070726f7665642c206e6f722061726520796f60448201526b7520746865206f776e65722160a01b6064820152608401610b7b565b6000828152601c602052604090205480611f3457601f5460ff16611ef75760405162461bcd60e51b815260206004820152601660248201527553617373793a204c6f6467696e6720436c6f7365642160501b6044820152606401610b7b565b6000838152601c60205260408082204290555184917f1e6b7b410fd4243e5b472457671a559e6b60fc247631a40174f69f6bc37560db91a2505050565b611f3e8142614412565b6000848152601d602052604081208054909190611f5c90849061425e565b90915550506000838152601c60205260408082208290555184917f1ca526bb9fb2cce3dd915414f4844546ff774648d2ce80918c09563302c5027291a2505050565b6000611fb2600a546001600160a01b031690565b6001600160a01b0316336001600160a01b031614905090565b600a80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8292fce18fa69edf4db7b94ea2e58241df0ae57f97e0a6c9b29067028bf92d7690600090a35050565b610b0f838383612dc7565b610b0f83838360405180602001604052806000815250611534565b600061204e836122ab565b805190915082156120b4576000336001600160a01b03831614806120775750612077823361092d565b8061209257503361208786610ab7565b6001600160a01b0316145b9050806120b257604051632ce44b5f60e11b815260040160405180910390fd5b505b6120c2816000866001612fad565b6120ce60008583612d6b565b6001600160a01b0380821660008181526006602090815260408083208054600160801b6000196001600160401b0380841691909101811667ffffffffffffffff198416811783900482166001908101831690930277ffffffffffffffff0000000000000000ffffffffffffffff19909416179290921783558b86526005909452828520805460ff60e01b1942909316600160a01b026001600160e01b03199091169097179690961716600160e01b1785559189018084529220805491949091166121cc5760015482146121cc57805460208701516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038716171781555b5050604051869250600091506001600160a01b03841690600080516020614555833981519152908390a450506002805460010190555050565b6127108111156122495760405162461bcd60e51b815260206004820152600f60248201526e45786365656473206d61782062707360881b6044820152606401610b7b565b600b80546001600160a01b0384166001600160b01b03199091168117600160a01b61ffff851602179091556040518281527f90d7ec04bcb8978719414f82e52e4cb651db41d0e6f8cea6118c2191e6183adb9060200160405180910390a25050565b6040805160608101825260008082526020820181905291810191909152816001548110156123ac57600081815260056020908152604091829020825160608101845290546001600160a01b0381168252600160a01b81046001600160401b031692820192909252600160e01b90910460ff161515918101829052906123aa5780516001600160a01b031615612341579392505050565b5060001901600081815260056020908152604091829020825160608101845290546001600160a01b038116808352600160a01b82046001600160401b031693830193909352600160e01b900460ff16151592810192909252156123a5579392505050565b612341565b505b604051636f96cda160e11b815260040160405180910390fd5b600f80546001600160a01b0319166001600160a01b0383169081179091556040517f299d17e95023f496e0ffc4909cff1a61f74bb5eb18de6f900f4155bfa1b3b33390600090a250565b60105485600154612420919061425e565b111561246e5760405162461bcd60e51b815260206004820152601860248201527f4e6f7420656e6f756768206d696e74656420746f6b656e7300000000000000006044820152606401610b7b565b505050505050565b8061248057610b51565b600061248c82856140da565b90506001600160a01b03831673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee14156124fa578034146124fa5760405162461bcd60e51b81526020600482015260156024820152744d7573742073656e6420746f74616c20707269636560581b6044820152606401610b7b565b60006001600160a01b03861615612511578561251e565b600f546001600160a01b03165b905061246e84338385613031565b600154610a1f838361307b565b60006009805461254890614036565b80601f016020809104026020016040519081016040528092919081815260200182805461257490614036565b80156125c15780601f10612596576101008083540402835291602001916125c1565b820191906000526020600020905b8154815290600101906020018083116125a457829003601f168201915b505085519394506125dd936009935060208701925090506137f5565b507fc9c7c3fe08b88b4df9d4d47ef47d2c43d55c025a0ba88ca442580ed9e7348a16818360405161260f929190614446565b60405180910390a15050565b61271081111561265f5760405162461bcd60e51b815260206004820152600f60248201526e45786365656473206d61782062707360881b6044820152606401610b7b565b6040805180820182526001600160a01b0384811680835260208084018681526000898152600c8352869020945185546001600160a01b031916941693909317845591516001909301929092559151838152909185917f7365cf4122f072a3365c20d54eff9b38d73c096c28e1892ec8f5b0e403a0f12d910160405180910390a3505050565b6001600160a01b03821633141561270e5760405163b06307db60e01b815260040160405180910390fd5b3360008181526008602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b606061279f838360405180606001604052806027815260200161452e60279139613095565b9392505050565b6127b1848484612dc7565b6001600160a01b0383163b15610b51576127cd84848484613168565b610b51576040516368d2bf6b60e11b815260040160405180910390fd5b60008060006127f8600d5490565b90506000600d80548060200260200160405190810160405280929190818152602001828054801561284857602002820191906000526020600020905b815481526020019060010190808311612834575b5050505050905060005b828110156128b45781818151811061286c5761286c61406b565b60200260200101518610156128a2578093508181815181106128905761289061406b565b60200260200101519450505050915091565b6128ad60018261425e565b9050612852565b5060405162461bcd60e51b815260206004820152600f60248201526e125b9d985b1a59081d1bdad95b9259608a1b6044820152606401610b7b565b606060006128fc600d5490565b90506000600d80548060200260200160405190810160405280929190818152602001828054801561294c57602002820191906000526020600020905b815481526020019060010190808311612938575b5050505050905060005b828110156128b4578181815181106129705761297061406b565b6020026020010151851015612a3e57600e60008383815181106129955761299561406b565b6020026020010151815260200190815260200160002080546129b690614036565b80601f01602080910402602001604051908101604052809291908181526020018280546129e290614036565b8015612a2f5780601f10612a0457610100808354040283529160200191612a2f565b820191906000526020600020905b815481529060010190602001808311612a1257829003601f168201915b50505050509350505050919050565b612a4960018261425e565b9050612956565b606081612a745750506040805180820190915260018152600360fc1b602082015290565b8160005b8115612a9e5780612a8881614097565b9150612a979050600a8361410f565b9150612a78565b6000816001600160401b03811115612ab857612ab8613b2a565b6040519080825280601f01601f191660200182016040528015612ae2576020820181803683370190505b5090505b8415612b4d57612af7600183614412565b9150612b04600a86614474565b612b0f90603061425e565b60f81b818381518110612b2457612b2461406b565b60200101906001600160f81b031916908160001a905350612b46600a8661410f565b9450612ae6565b949350505050565b60008281526011602090815260409091208251610b0f928401906137f5565b6000828152600e602090815260409091208251610b0f928401906137f5565b6000612b9d611f9e565b612bb95760405162461bcd60e51b8152600401610b7b906140b2565b85612bee5760405162461bcd60e51b81526020600482015260056024820152640c08185b5d60da1b6044820152606401610b7b565b60006010549050612c36818888888080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061325f92505050565b6010919091559150807f2a0365091ef1a40953c670dce28177e37520648a6fdc91506bffac0ab045570d6001612c6c8a8461425e565b612c769190614412565b88888888604051612c8b959493929190614488565b60405180910390a25095945050505050565b6000808281805b8751811015612d5f57612cb86002836140da565b91506000888281518110612cce57612cce61406b565b60200260200101519050808411612d10576040805160208101869052908101829052606001604051602081830303815290604052805190602001209350612d4c565b6040805160208101839052908101859052606001604051602081830303815290604052805190602001209350600183612d49919061425e565b92505b5080612d5781614097565b915050612ca4565b50941495939450505050565b60008281526007602052604080822080546001600160a01b0319166001600160a01b0387811691821790925591518593918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a4505050565b6000612dd2826122ab565b9050836001600160a01b031681600001516001600160a01b031614612e095760405162a1148160e81b815260040160405180910390fd5b6000336001600160a01b0386161480612e275750612e27853361092d565b80612e42575033612e3784610ab7565b6001600160a01b0316145b905080612e6257604051632ce44b5f60e11b815260040160405180910390fd5b6001600160a01b038416612e8957604051633a954ecd60e21b815260040160405180910390fd5b612e968585856001612fad565b612ea260008487612d6b565b6001600160a01b038581166000908152600660209081526040808320805467ffffffffffffffff198082166001600160401b0392831660001901831617909255898616808652838620805493841693831660019081018416949094179055898652600590945282852080546001600160e01b031916909417600160a01b42909216919091021783558701808452922080549193909116612f76576001548214612f7657805460208601516001600160401b0316600160a01b026001600160e01b03199091166001600160a01b038a16171781555b50505082846001600160a01b0316866001600160a01b031660008051602061455583398151915260405160405180910390a461155a565b816000612fba838361425e565b90505b8082101561246e576000828152601c60205260409020541580612fe25750601e546002145b6130215760405162461bcd60e51b815260206004820152601060248201526f5361737379206973204c6f646765642160801b6044820152606401610b7b565b61302a82614097565b9150612fbd565b8061303b57610b51565b6001600160a01b03841673eeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee141561306f5761306a82826132cc565b610b51565b610b518484848461336f565b61103a8282604051806020016040528060008152506133c8565b60606001600160a01b0384163b6130fd5760405162461bcd60e51b815260206004820152602660248201527f416464726573733a2064656c65676174652063616c6c20746f206e6f6e2d636f6044820152651b9d1c9858dd60d21b6064820152608401610b7b565b600080856001600160a01b03168560405161311891906144c1565b600060405180830381855af49150503d8060008114613153576040519150601f19603f3d011682016040523d82523d6000602084013e613158565b606091505b509150915061173e828286613574565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a029061319d9033908990889088906004016144dd565b602060405180830381600087803b1580156131b757600080fd5b505af19250505080156131e7575060408051601f3d908101601f191682019092526131e491810190614510565b60015b613242573d808015613215576040519150601f19603f3d011682016040523d82523d6000602084013e61321a565b606091505b50805161323a576040516368d2bf6b60e11b815260040160405180910390fd5b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050949350505050565b60008061326c848661425e565b600d8054600181019091557fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5018190556000818152600e6020908152604090912085519294508493506132c39290918601906137f5565b50935093915050565b6000826001600160a01b03168260405160006040518083038185875af1925050503d8060008114613319576040519150601f19603f3d011682016040523d82523d6000602084013e61331e565b606091505b5050905080610b0f5760405162461bcd60e51b815260206004820152601c60248201527f6e617469766520746f6b656e207472616e73666572206661696c6564000000006044820152606401610b7b565b816001600160a01b0316836001600160a01b0316141561338e57610b51565b6001600160a01b0383163014156133b35761306a6001600160a01b03851683836135ad565b610b516001600160a01b038516848484613610565b6001546001600160a01b0384166133f157604051622e076360e81b815260040160405180910390fd5b8261340f5760405163b562e8dd60e01b815260040160405180910390fd5b61341c6000858386612fad565b6001600160a01b038416600081815260066020908152604080832080546fffffffffffffffffffffffffffffffff1981166001600160401b038083168b0181169182176801000000000000000067ffffffffffffffff1990941690921783900481168b01811690920217909155858452600590925290912080546001600160e01b0319168317600160a01b42909316929092029190911790558190818501903b15613532575b60405182906001600160a01b03881690600090600080516020614555833981519152908290a46134fb6000878480600101955087613168565b613518576040516368d2bf6b60e11b815260040160405180910390fd5b8082106134c257826001541461352d57600080fd5b613565565b5b6040516001830192906001600160a01b03881690600090600080516020614555833981519152908290a4808210613533575b50600155610b51600085838684565b6060831561358357508161279f565b8251156135935782518084602001fd5b8160405162461bcd60e51b8152600401610b7b9190613919565b6040516001600160a01b038316602482015260448101829052610b0f90849063a9059cbb60e01b906064015b60408051601f198184030181529190526020810180516001600160e01b03166001600160e01b031990931692909217909152613648565b6040516001600160a01b0380851660248301528316604482015260648101829052610b519085906323b872dd60e01b906084016135d9565b600061369d826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661371a9092919063ffffffff16565b805190915015610b0f57808060200190518101906136bb9190614429565b610b0f5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e6044820152691bdd081cdd58d8d9595960b21b6064820152608401610b7b565b6060612b4d8484600085856001600160a01b0385163b61377c5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610b7b565b600080866001600160a01b0316858760405161379891906144c1565b60006040518083038185875af1925050503d80600081146137d5576040519150601f19603f3d011682016040523d82523d6000602084013e6137da565b606091505b50915091506137ea828286613574565b979650505050505050565b82805461380190614036565b90600052602060002090601f0160209004810192826138235760008555613869565b82601f1061383c57805160ff1916838001178555613869565b82800160010185558215613869579182015b8281111561386957825182559160200191906001019061384e565b50613875929150613879565b5090565b5b80821115613875576000815560010161387a565b6001600160e01b031981168114610b8d57600080fd5b6000602082840312156138b657600080fd5b813561279f8161388e565b60005b838110156138dc5781810151838201526020016138c4565b83811115610b515750506000910152565b600081518084526139058160208601602086016138c1565b601f01601f19169290920160200192915050565b60208152600061279f60208301846138ed565b60006020828403121561393e57600080fd5b5035919050565b80356001600160a01b038116811461395c57600080fd5b919050565b6000806040838503121561397457600080fd5b61397d83613945565b946020939093013593505050565b60008083601f84011261399d57600080fd5b5081356001600160401b038111156139b457600080fd5b6020830191508360208260051b85010111156139cf57600080fd5b9250929050565b600080602083850312156139e957600080fd5b82356001600160401b038111156139ff57600080fd5b613a0b8582860161398b565b90969095509350505050565b600060208284031215613a2957600080fd5b61279f82613945565b600080600060608486031215613a4757600080fd5b613a5084613945565b9250613a5e60208501613945565b9150604084013590509250925092565b60008060408385031215613a8157600080fd5b50508035926020909101359150565b8015158114610b8d57600080fd5b600060208284031215613ab057600080fd5b813561279f81613a90565b60008060408385031215613ace57600080fd5b82356001600160401b03811115613ae457600080fd5b83016101008186031215613af757600080fd5b91506020830135613b0781613a90565b809150509250929050565b600060808284031215613b2457600080fd5b50919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715613b6857613b68613b2a565b604052919050565b60006001600160401b03821115613b8957613b89613b2a565b50601f01601f191660200190565b6000613baa613ba584613b70565b613b40565b9050828152838383011115613bbe57600080fd5b828260208301376000602084830101529392505050565b600082601f830112613be657600080fd5b61279f83833560208501613b97565b60008060008060008060c08789031215613c0e57600080fd5b613c1787613945565b955060208701359450613c2c60408801613945565b93506060870135925060808701356001600160401b0380821115613c4f57600080fd5b613c5b8a838b01613b12565b935060a0890135915080821115613c7157600080fd5b50613c7e89828a01613bd5565b9150509295509295509295565b600060208284031215613c9d57600080fd5b81356001600160401b03811115613cb357600080fd5b8201601f81018413613cc457600080fd5b612b4d84823560208401613b97565b600080600060608486031215613ce857600080fd5b83359250613a5e60208501613945565b60008083601f840112613d0a57600080fd5b5081356001600160401b03811115613d2157600080fd5b6020830191508360208285010111156139cf57600080fd5b600080600060408486031215613d4e57600080fd5b8335925060208401356001600160401b03811115613d6b57600080fd5b613d7786828701613cf8565b9497909650939450505050565b60008060408385031215613d9757600080fd5b613af783613945565b6000602080830181845280855180835260408601915060408160051b870101925083870160005b82811015613df557603f19888603018452613de38583516138ed565b94509285019290850190600101613dc7565b5092979650505050505050565b60008060008060808587031215613e1857600080fd5b613e2185613945565b9350613e2f60208601613945565b92506040850135915060608501356001600160401b03811115613e5157600080fd5b613e5d87828801613bd5565b91505092959194509250565b600080600080600060608688031215613e8157600080fd5b8535945060208601356001600160401b0380821115613e9f57600080fd5b613eab89838a01613cf8565b90965094506040880135915080821115613ec457600080fd5b50613ed188828901613cf8565b969995985093965092949392505050565b60006101008a83528960208401528860408401528760608401528660808401528560a084015260018060a01b03851660c08401528060e0840152613f28818401856138ed565b9b9a5050505050505050505050565b600080600060408486031215613f4c57600080fd5b83356001600160401b0380821115613f6357600080fd5b613f6f87838801613bd5565b94506020860135915080821115613f8557600080fd5b50613d7786828701613cf8565b60008060408385031215613fa557600080fd5b613fae83613945565b9150613fbc60208401613945565b90509250929050565b600080600080600060a08688031215613fdd57600080fd5b613fe686613945565b945060208601359350613ffb60408701613945565b92506060860135915060808601356001600160401b0381111561401d57600080fd5b61402988828901613b12565b9150509295509295909350565b600181811c9082168061404a57607f821691505b60208210811415613b2457634e487b7160e01b600052602260045260246000fd5b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60006000198214156140ab576140ab614081565b5060010190565b6020808252600e908201526d139bdd08185d5d1a1bdc9a5e995960921b604082015260600190565b60008160001904831182151516156140f4576140f4614081565b500290565b634e487b7160e01b600052601260045260246000fd5b60008261411e5761411e6140f9565b500490565b6000808335601e1984360301811261413a57600080fd5b8301803591506001600160401b0382111561415457600080fd5b6020019150368190038213156139cf57600080fd5b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b60408152823560408201526020830135606082015260408301356080820152606083013560a0820152608083013560c082015260a083013560e082015260006141dd60c08501613945565b6001600160a01b03166101008381019190915260e08501359036869003601e1901821261420957600080fd5b9085019081356001600160401b0381111561422357600080fd5b80360387131561423257600080fd5b8161012086015261424b61014086018260208601614169565b935050505061279f602083018415159052565b6000821982111561427157614271614081565b500190565b6000806040838503121561428957600080fd5b82516001600160401b0381111561429f57600080fd5b8301601f810185136142b057600080fd5b80516142be613ba582613b70565b8181528660208385010111156142d357600080fd5b6142e48260208301602086016138c1565b60209590950151949694955050505050565b60008551614308818460208a016138c1565b820184868237909301918252506020019392505050565b600082516143318184602087016138c1565b600360fc1b920191825250600101919050565b600083516143568184602088016138c1565b83519083019061436a8183602088016138c1565b01949350505050565b6000806040838503121561438657600080fd5b82356001600160401b0381111561439c57600080fd5b6143a885828601613bd5565b95602094909401359450505050565b82848237909101908152602001919050565b6000808335601e198436030181126143e057600080fd5b8301803591506001600160401b038211156143fa57600080fd5b6020019150600581901b36038213156139cf57600080fd5b60008282101561442457614424614081565b500390565b60006020828403121561443b57600080fd5b815161279f81613a90565b60408152600061445960408301856138ed565b828103602084015261446b81856138ed565b95945050505050565b600082614483576144836140f9565b500690565b8581526060602082015260006144a2606083018688614169565b82810360408401526144b5818587614169565b98975050505050505050565b600082516144d38184602087016138c1565b9190910192915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061173e908301846138ed565b60006020828403121561452257600080fd5b815161279f8161388e56fe416464726573733a206c6f772d6c6576656c2064656c65676174652063616c6c206661696c6564ddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3efa2646970667358221220270619aa18b18dfa86a3bc5f27f1e2ac91c201b0bc9236b72ddbc82089a44bb964736f6c6343000809003300000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e00000000000000000000000006bfa74a4dd1877abe1fc44393eaa6aaae1e30a3e00000000000000000000000000000000000000000000000000000000000002ee000000000000000000000000ceb79a4fa262b8183a5adec1a49f4e3b27036fab000000000000000000000000000000000000000000000000000000000000000f536872656464696e67205361737379000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000055341535359000000000000000000000000000000000000000000000000000000