3.7k txs
5.3k calls
constructor
constructor((string name, string symbol, address ownerPayoutAddress, string initialBaseURI, uint256 maxSupply) _baseVariables, uint256[] _maxMintPerWallet, uint256[] _maxSupplyPerMintGroup, uint256[] _mintPrice, uint96 _royaltyPercentage, address _kingdomlyAdmin, address _kingdomlyFeeContract, bytes32 _mintRoot)
functions
activeMintGroups
viewfunction activeMintGroups(uint256) view returns (uint256)
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
canDelegateMintCheck
viewfunction canDelegateMintCheck(uint256 amount, uint256 mintId, address vault, address minterAddress) view returns (bool)
canMintCheck
viewfunction canMintCheck(uint256 amount, uint256 mintId, address minterAddress) view returns (bool)
checkPendingBalance
viewfunction checkPendingBalance() view returns (uint256)
checkPendingBalanceFor
viewfunction checkPendingBalanceFor(address user) view returns (uint256)
claimedMintCode
viewfunction claimedMintCode(bytes32) view returns (bool)
contractMintLive
viewfunction contractMintLive() view returns (bool)
contractPresaleActive
viewfunction contractPresaleActive(uint256) view returns (bool)
feeAddress
viewfunction feeAddress() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getKingdomlyFeeContract
viewfunction getKingdomlyFeeContract() view returns (address)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
kingdomlyAdmin
viewfunction kingdomlyAdmin() view returns (address)
kingdomlyFeeContract
viewfunction kingdomlyFeeContract() view returns (address)
maxMintPerWallet
viewfunction maxMintPerWallet(uint256) view returns (uint256)
maxSupply
viewfunction maxSupply() view returns (uint256)
maxSupplyPerMintGroup
viewfunction maxSupplyPerMintGroup(uint256) view returns (uint256)
mintGroupMints
viewfunction mintGroupMints(uint256) view returns (uint256)
mintLive
viewfunction mintLive() view returns (bool)
mintPrice
viewfunction mintPrice(uint256) view returns (uint256)
mintQuotas
viewfunction mintQuotas(uint256, address) view returns (uint256)
mintRoot
viewfunction mintRoot() view returns (bytes32)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
ownerPayoutAddress
viewfunction ownerPayoutAddress() view returns (address)
presaleActive
viewfunction presaleActive(uint256 mintId) view returns (bool)
presaleScheduledStartTimestamp
viewfunction presaleScheduledStartTimestamp(uint256) view returns (uint256)
quoteAirdropFees
viewfunction quoteAirdropFees(uint256 amount) view returns (uint256 totalAirdropCostWithFee)
quoteBatchMint
viewfunction quoteBatchMint(uint256 mintId, uint256 amount) view returns (uint256 totalCostWithFee, uint256 feeAmount)
royaltyInfo
viewfunction royaltyInfo(uint256 tokenId, uint256 salePrice) view returns (address receiver, uint256 amount)
scheduledMintLiveTimestamp
viewfunction scheduledMintLiveTimestamp() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
threeDollarsEth
viewfunction threeDollarsEth() view returns (uint256)
threeDollarsInCents
viewfunction threeDollarsInCents() view returns (uint256)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
airdropNFTs
payablefunction airdropNFTs(address[] recipients, uint256[] amounts) payable returns (uint256 totalCharge)
approve
payablefunction approve(address to, uint256 tokenId) payable
batchMint
payablefunction batchMint(uint256 amount, uint256 mintId, bytes32[] proof, bytes32 mintCode) payable returns (uint256 totalCostWithFee)
changeMintStatus
nonpayablefunction changeMintStatus(bool status)
changeSalePrice
nonpayablefunction changeSalePrice(uint256 newmintPrice, uint256 mintId)
delegatedMint
payablefunction delegatedMint(uint256 amount, uint256 mintId, address vault, bytes32[] proof, bytes32 mintCode) payable returns (uint256 totalCostWithFee)
renounceOwnership
nonpayablefunction renounceOwnership()
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId, bytes _data) payable
safeTransferFrom
payablefunction safeTransferFrom(address from, address to, uint256 tokenId) payable
schedulePresaleMintStart
nonpayablefunction schedulePresaleMintStart(uint256 startTimestamp, uint256 mintId)
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string newBaseURI)
setMaxMintPerWallet
nonpayablefunction setMaxMintPerWallet(uint256 newMaxMintPerWallet, uint256 mintGroupId)
setMintLiveTimestamp
nonpayablefunction setMintLiveTimestamp(uint256 timestamp)
setMintQuota
nonpayablefunction setMintQuota(address[] addressToAdd, uint256 mintId, uint256[] _mintQuotas)
setNewKingdomlyFeeContract
nonpayablefunction setNewKingdomlyFeeContract(address _kingdomlyFeeContract)
setNewMaxPerMintGroup
nonpayablefunction setNewMaxPerMintGroup(uint256 mintId, uint256 newMax)
stopOrStartpresaleMint
nonpayablefunction stopOrStartpresaleMint(bool presaleStatus, uint256 mintId)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
withdrawFeeFunds
nonpayablefunction withdrawFeeFunds()
withdrawMintFunds
nonpayablefunction withdrawMintFunds()
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 indexed fromTokenId, uint256 indexed toTokenId)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
KingdomlyFeeContractChanged
event KingdomlyFeeContractChanged(address feeContractAddress)
MaxMintPerWalletChanged
event MaxMintPerWalletChanged(uint256 newMaxMintPerWallet, uint256 mintGroupId)
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
PreSaleMintScheduledStartTimestampChanged
event PreSaleMintScheduledStartTimestampChanged(uint256 timestamp, uint256 mintGroupId)
PreSaleMintStatusChanged
event PreSaleMintStatusChanged(bool status, uint256 mintGroupId)
SalePriceChanged
event SalePriceChanged(uint256 indexed mintId, uint256 newPrice)
TokensDelegateMinted
event TokensDelegateMinted(address indexed vault, address indexed hotWallet, uint256 amount, uint256 mintId)
TokensMinted
event TokensMinted(address indexed recipient, uint256 amount, uint256 mintId)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
ArrayLengthMismatch
error ArrayLengthMismatch()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
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)
ExceedsMaxMintGroupSupply
error ExceedsMaxMintGroupSupply(uint256 requested, uint256 available)
ExceedsMaxPerWallet
error ExceedsMaxPerWallet(uint256 requested, uint256 allowed)
ExceedsMaxSupply
error ExceedsMaxSupply(uint256 requested, uint256 available)
ExceedsMintQuota
error ExceedsMintQuota(uint256 requested, uint256 allowed)
InsufficientEther
error InsufficientEther(uint256 required, uint256 provided)
InvalidKingdomlyFeeContract
error InvalidKingdomlyFeeContract()
InvalidMintCode
error InvalidMintCode()
InvalidOperation
error InvalidOperation(string reason)
MintCodeAlreadyUsed
error MintCodeAlreadyUsed()
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintGroupDoesNotExist
error MintGroupDoesNotExist(uint256 mintId)
MintGroupInactive
error MintGroupInactive(uint256 mintId)
MintInactive
error MintInactive()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
NotInPresale
error NotInPresale(address caller, uint256 mintId)
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
Unauthorized
error Unauthorized(address caller)
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x60a0604052600e805460ff191690555f600f553480156200001e575f80fd5b5060405162003f1338038062003f13833981016040819052620000419162000679565b875160208901513391906002620000598382620007f5565b506003620000688282620007f5565b5060015f5550506001600160a01b0381166200009e57604051631e4fbdf760e01b81525f60048201526024015b60405180910390fd5b620000a98162000318565b508551875114158015620000bf57508451875114155b15620000de5760405163512509d360e11b815260040160405180910390fd5b5f805b8751811015620001f457878181518110620001005762000100620008c1565b602002602001015182620001159190620008d5565b91508781815181106200012c576200012c620008c1565b602002602001015160195f8381526020019081526020015f20819055508881815181106200015e576200015e620008c1565b602002602001015160175f8381526020019081526020015f2081905550868181518110620001905762000190620008c1565b6020908102919091018101515f83815260188352604080822092909255601a9092528120819055601f805460018181018355919092527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d80790910182905501620000e1565b508860800151811115620002675760405163e066a8d760e01b815260206004820152603260248201527f4d617820737570706c7920706572206d696e742067726f7570206578636565646044820152717320746f74616c206d617820737570706c7960701b606482015260840162000095565b6080890151600d556060890151601090620002839082620007f5565b506040890151601280546001600160a01b0383166001600160a01b0319918216179091556011805490911673428deb81a93bed820068724eb1fcc7503d71e417179055620002d2908662000369565b50601380546001600160a01b039485166001600160a01b031991821617909155601480549390941692169190911790915561012c60805260165550620008fb9350505050565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6127106001600160601b038216811015620003aa57604051636f483d0960e01b81526001600160601b03831660048201526024810182905260440162000095565b6001600160a01b038316620003d557604051635b6cc80560e11b81525f600482015260240162000095565b50604080518082019091526001600160a01b039092168083526001600160601b039091166020909201829052600160a01b90910217600955565b634e487b7160e01b5f52604160045260245ffd5b60405160a081016001600160401b03811182821017156200044857620004486200040f565b60405290565b604051601f8201601f191681016001600160401b03811182821017156200047957620004796200040f565b604052919050565b5f82601f83011262000491575f80fd5b81516001600160401b03811115620004ad57620004ad6200040f565b6020620004c3601f8301601f191682016200044e565b8281528582848701011115620004d7575f80fd5b5f5b83811015620004f6578581018301518282018401528201620004d9565b505f928101909101919091529392505050565b80516001600160a01b038116811462000520575f80fd5b919050565b5f60a0828403121562000536575f80fd5b6200054062000423565b82519091506001600160401b03808211156200055a575f80fd5b620005688583860162000481565b835260208401519150808211156200057e575f80fd5b6200058c8583860162000481565b60208401526200059f6040850162000509565b60408401526060840151915080821115620005b8575f80fd5b50620005c78482850162000481565b6060830152506080820151608082015292915050565b5f82601f830112620005ed575f80fd5b815160206001600160401b038211156200060b576200060b6200040f565b8160051b6200061c8282016200044e565b928352848101820192828101908785111562000636575f80fd5b83870192505b8483101562000657578251825291830191908301906200063c565b979650505050505050565b80516001600160601b038116811462000520575f80fd5b5f805f805f805f80610100898b03121562000692575f80fd5b88516001600160401b0380821115620006a9575f80fd5b620006b78c838d0162000525565b995060208b0151915080821115620006cd575f80fd5b620006db8c838d01620005dd565b985060408b0151915080821115620006f1575f80fd5b620006ff8c838d01620005dd565b975060608b015191508082111562000715575f80fd5b50620007248b828c01620005dd565b9550506200073560808a0162000662565b93506200074560a08a0162000509565b92506200075560c08a0162000509565b915060e089015190509295985092959890939650565b600181811c908216806200078057607f821691505b6020821081036200079f57634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115620007f057805f5260205f20601f840160051c81016020851015620007cc5750805b601f840160051c820191505b81811015620007ed575f8155600101620007d8565b50505b505050565b81516001600160401b038111156200081157620008116200040f565b62000829816200082284546200076b565b84620007a5565b602080601f8311600181146200085f575f8415620008475750858301515b5f19600386901b1c1916600185901b178555620008b9565b5f85815260208120601f198616915b828110156200088f578886015182559484019460019091019084016200086e565b5085821015620008ad57878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b634e487b7160e01b5f52603260045260245ffd5b80820180821115620008f557634e487b7160e01b5f52601160045260245ffd5b92915050565b6080516135f86200091b5f395f81816104e1015261196c01526135f85ff3fe60806040526004361061039d575f3560e01c80638da5cb5b116101de578063d5abeb0111610108578063e8656fcc1161009d578063f30874ea1161006d578063f30874ea14610aea578063f34657ec14610aff578063f72171f114610b1e578063fea414b614610b3d575f80fd5b8063e8656fcc14610a79578063e985e9c514610a8d578063efe8232814610aac578063f2fde38b14610acb575f80fd5b8063e5fd1145116100d8578063e5fd1145146109df578063e6087db014610a0a578063e690f9eb14610a35578063e6a72acf14610a4e575f80fd5b8063d5abeb0114610976578063d7a0e8be1461098b578063db0dbb711461099e578063e213b5f6146109cc575f80fd5b8063ae4e49421161017e578063c82e474b1161014e578063c82e474b1461090f578063c87b56dd1461092e578063ce55c66a1461094d578063d028c20f14610961575f80fd5b8063ae4e49421461089f578063b3978a86146108be578063b80f8fb4146108dd578063b88d4fde146108fc575f80fd5b806395d89b41116101b957806395d89b4114610839578063a22cb4651461084d578063a75c3ad91461086c578063a8ddf8f614610880575f80fd5b80638da5cb5b146107eb578063905d7b331461080857806393a248411461081c575f80fd5b806331f72d77116102ca57806363691c931161025f578063715018a61161022f578063715018a61461076b57806371fa656a1461077f5780637bd4f071146107ad57806380348242146107cc575f80fd5b806363691c93146106e55780636c0360eb146107045780636e75e2e21461071857806370a082311461074c575f80fd5b80634a5bd2fd1161029a5780634a5bd2fd1461066957806355f804b314610688578063581636dd146106a75780636352211e146106c6575f80fd5b806331f72d77146105f9578063412753581461061857806342842e0e14610637578063483f0a821461064a575f80fd5b806317d791d01161034057806322644f061161031057806322644f061461056a57806323b872dd1461057d57806324a663c3146105905780632a55205a146105bb575f80fd5b806317d791d0146104d057806318160ddd146105035780631f4663421461051757806322536c0314610536575f80fd5b8063081812fc1161037b578063081812fc1461043a578063095ea7b31461047157806311f7acb91461048657806316da3bc6146104a5575f80fd5b806301d2718e146103a157806301ffc9a7146103ea57806306fdde0314610419575b5f80fd5b3480156103ac575f80fd5b506103d76103bb366004612c9c565b601c60209081525f928352604080842090915290825290205481565b6040519081526020015b60405180910390f35b3480156103f5575f80fd5b50610409610404366004612cdf565b610b5d565b60405190151581526020016103e1565b348015610424575f80fd5b5061042d610b7c565b6040516103e19190612d47565b348015610445575f80fd5b50610459610454366004612d59565b610c0c565b6040516001600160a01b0390911681526020016103e1565b61048461047f366004612d70565b610c45565b005b348015610491575f80fd5b506104846104a0366004612d9a565b610c55565b3480156104b0575f80fd5b506103d76104bf366004612d59565b60176020525f908152604090205481565b3480156104db575f80fd5b506103d77f000000000000000000000000000000000000000000000000000000000000000081565b34801561050e575f80fd5b506103d7610d79565b348015610522575f80fd5b50610484610531366004612dba565b610d85565b348015610541575f80fd5b50610555610550366004612d9a565b610e2d565b604080519283526020830191909152016103e1565b6103d7610578366004612e16565b610e96565b61048461058b366004612e83565b611119565b34801561059b575f80fd5b506103d76105aa366004612d59565b60196020525f908152604090205481565b3480156105c6575f80fd5b506105da6105d5366004612d9a565b611273565b604080516001600160a01b0390931683526020830191909152016103e1565b348015610604575f80fd5b50610484610613366004612d59565b6112f8565b348015610623575f80fd5b50601154610459906001600160a01b031681565b610484610645366004612e83565b611305565b348015610655575f80fd5b506103d7610664366004612d59565b611324565b348015610674575f80fd5b50610409610683366004612d59565b611343565b348015610693575f80fd5b506104846106a2366004612f5b565b611393565b3480156106b2575f80fd5b506104846106c1366004613094565b6113d9565b3480156106d1575f80fd5b506104596106e0366004612d59565b611471565b3480156106f0575f80fd5b50601354610459906001600160a01b031681565b34801561070f575f80fd5b5061042d61147b565b348015610723575f80fd5b506103d7610732366004612dba565b6001600160a01b03165f908152600c602052604090205490565b348015610757575f80fd5b506103d7610766366004612dba565b611507565b348015610776575f80fd5b5061048461154b565b34801561078a575f80fd5b50610409610799366004612d59565b60156020525f908152604090205460ff1681565b3480156107b8575f80fd5b506104846107c7366004612d9a565b61155e565b3480156107d7575f80fd5b506104846107e6366004612d9a565b6115b5565b3480156107f6575f80fd5b50600b546001600160a01b0316610459565b348015610813575f80fd5b5061048461162d565b348015610827575f80fd5b506014546001600160a01b0316610459565b348015610844575f80fd5b5061042d61165b565b348015610858575f80fd5b50610484610867366004613109565b61166a565b348015610877575f80fd5b506104846116d5565b34801561088b575f80fd5b5061048461089a366004613135565b6116ea565b3480156108aa575f80fd5b50601254610459906001600160a01b031681565b3480156108c9575f80fd5b506104846108d8366004613150565b611781565b3480156108e8575f80fd5b506103d76108f7366004612d59565b61181b565b61048461090a36600461316c565b611846565b34801561091a575f80fd5b50610484610929366004612d9a565b611881565b348015610939575f80fd5b5061042d610948366004612d59565b6118ef565b348015610958575f80fd5b506103d7611967565b34801561096c575f80fd5b506103d760165481565b348015610981575f80fd5b506103d7600d5481565b6103d76109993660046131e7565b6119ac565b3480156109a9575f80fd5b506104096109b8366004612d59565b601d6020525f908152604090205460ff1681565b6103d76109da36600461323d565b611b39565b3480156109ea575f80fd5b506103d76109f9366004612d59565b601a6020525f908152604090205481565b348015610a15575f80fd5b506103d7610a24366004612d59565b601e6020525f908152604090205481565b348015610a40575f80fd5b50600e546104099060ff1681565b348015610a59575f80fd5b506103d7610a68366004612d59565b60186020525f908152604090205481565b348015610a84575f80fd5b50610409611d4a565b348015610a98575f80fd5b50610409610aa736600461329d565b611d77565b348015610ab7575f80fd5b50601454610459906001600160a01b031681565b348015610ad6575f80fd5b50610484610ae5366004612dba565b611da4565b348015610af5575f80fd5b506103d7600f5481565b348015610b0a575f80fd5b50610409610b193660046132c9565b611dde565b348015610b29575f80fd5b50610409610b383660046132ff565b611f4f565b348015610b48575f80fd5b50335f908152600c60205260409020546103d7565b5f610b6782612158565b80610b765750610b76826121a5565b92915050565b606060028054610b8b90613346565b80601f0160208091040260200160405190810160405280929190818152602001828054610bb790613346565b8015610c025780601f10610bd957610100808354040283529160200191610c02565b820191905f5260205f20905b815481529060010190602001808311610be557829003601f168201915b5050505050905090565b5f610c16826121d9565b610c2a57610c2a6333d1c03960e21b612223565b505f908152600660205260409020546001600160a01b031690565b610c518282600161222b565b5050565b610c5d6122cc565b610c66826122f9565b610c7357610c7382612341565b5f805b601f54811015610cf65783601f8281548110610c9457610c94613378565b905f5260205f20015403610cb357610cac83836133a0565b9150610cee565b60195f601f8381548110610cc957610cc9613378565b905f5260205f20015481526020019081526020015f205482610ceb91906133a0565b91505b600101610c76565b50600d54811115610d675760405163e066a8d760e01b815260206004820152602f60248201527f4e657720737570706c7920706572206d696e742067726f75702065786365656460448201526e39903a37ba30b61039bab838363c9760891b60648201526084015b60405180910390fd5b505f9182526019602052604090912055565b6001545f54035f190190565b6013546001600160a01b03163314610db25760405163472511eb60e11b8152336004820152602401610d5e565b6001600160a01b038116610dd95760405163547e168960e01b815260040160405180910390fd5b601480546001600160a01b0319166001600160a01b0383169081179091556040519081527f65b193217dd691927510cfa45296799f4dc5a6b0d113a7f1863661cd57b1587f9060200160405180910390a150565b5f8281526018602052604081205481908190610e4a9085906133b3565b905083610e55611967565b610e5f91906133b3565b6064610e6c8360036133b3565b610e7691906133ca565b610e8091906133a0565b9150610e8c82826133a0565b9250509250929050565b5f8181526015602052604081205460ff1615610ec557604051632312107960e21b815260040160405180910390fd5b604051638988eea960e01b81523360048201526001600160a01b03861660248201523060448201525f60648201526c447e69651d841bd8d104bed49390638988eea990608401602060405180830381865afa158015610f26573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190610f4a91906133e9565b610f725760405163472511eb60e11b81526001600160a01b0386166004820152602401610d5e565b5f868152601760209081526040808320546001600160a01b0389168452601b83528184208a855290925290912054610faa90896133a0565b1115611009576001600160a01b0385165f908152601b602090815260408083208984528252808320546017909252909120548891610fe791613404565b6040516303e635fb60e11b815260048101929092526024820152604401610d5e565b6110498484808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505060165491508590506123a3565b611066576040516305fbe2b760e01b815260040160405180910390fd5b5f828152601560209081526040808320805460ff191660011790556001600160a01b0388168352601b8252808320898452909152812080548992906110ac9084906133a0565b909155506110bd90508588886123b8565b604080518981526020810189905291925033916001600160a01b038816917fce55cbb6a167cf85969795eda1f8d0a2e0152274849017210ca560bd3c963f7f910160405180910390a361110f81612728565b9695505050505050565b5f611123826127b0565b6001600160a01b0394851694909150811684146111495761114962a1148160e81b612223565b5f8281526006602052604090208054338082146001600160a01b0388169091141761118c576111788633611d77565b61118c5761118c632ce44b5f60e11b612223565b8015611196575f82555b6001600160a01b038681165f9081526005602052604080822080545f19019055918716808252919020805460010190554260a01b17600160e11b175f85815260046020526040812091909155600160e11b8416900361122257600184015f818152600460205260408120549003611220575f548114611220575f8181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4805f0361126a5761126a633a954ecd60e21b612223565b50505050505050565b5f828152600a6020526040812080548291906001600160a01b03811690600160a01b90046001600160601b0316816112c65750506009546001600160a01b03811690600160a01b90046001600160601b03165b5f6127106112dd6001600160601b038416896133b3565b6112e791906133ca565b9295509193505050505b9250929050565b6113006122cc565b600f55565b61131f83838360405180602001604052805f815250611846565b505050565b601f8181548110611333575f80fd5b5f91825260209091200154905081565b5f818152601d602052604081205460ff1661138b575f828152601e6020526040902054158061137f57505f828152601e60205260409020544211155b1561138b57505f919050565b506001919050565b61139b6122cc565b60106113a7828261345b565b506040515f19906001907f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c905f90a350565b6113e16122cc565b6113ea826122f9565b6113f7576113f782612341565b5f5b835181101561146b5781818151811061141457611414613378565b6020026020010151601c5f8581526020019081526020015f205f86848151811061144057611440613378565b6020908102919091018101516001600160a01b031682528101919091526040015f20556001016113f9565b50505050565b5f610b76826127b0565b6010805461148890613346565b80601f01602080910402602001604051908101604052809291908181526020018280546114b490613346565b80156114ff5780601f106114d6576101008083540402835291602001916114ff565b820191905f5260205f20905b8154815290600101906020018083116114e257829003601f168201915b505050505081565b5f6001600160a01b038216611526576115266323d3ad8160e21b612223565b506001600160a01b03165f9081526005602052604090205467ffffffffffffffff1690565b6115536122cc565b61155c5f612849565b565b6115666122cc565b5f8181526017602090815260409182902084905581518481529081018390527fd6255c9c7b77c2a54f193e4634719645ef0fbdc4816638350b099b15a4ebca7f91015b60405180910390a15050565b6115bd6122cc565b6115c6816122f9565b6115e657604051635831017d60e01b815260048101829052602401610d5e565b5f818152601e602090815260409182902084905581518481529081018390527fb024af7f651e94348c4e66cfe71f68a3f246eff857f95f105766bc15f4ea84fc91016115a9565b601254611642906001600160a01b031661289a565b50601154611658906001600160a01b031661289a565b50565b606060038054610b8b90613346565b335f8181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b601154611658906001600160a01b031661289a565b6116f26122cc565b600e5481151560ff9091161515036117605760405163e066a8d760e01b815260206004820152602a60248201527f4d696e742073746174757320697320616c726561647920746865206f6e6520796044820152691bdd48195b9d195c995960b21b6064820152608401610d5e565b8015155f0361176e575f600f555b600e805460ff1916911515919091179055565b6117896122cc565b611792816122f9565b6117b257604051635831017d60e01b815260048101829052602401610d5e565b5f818152601d60205260408120805460ff191684151590811790915590036117e3575f818152601e60205260408120555b604080518315158152602081018390527fd88af4ad8d3188d34ada8f4e850b4b6b3b2610392d5c8ffffa63b28ae831da5491016115a9565b5f606482611827611967565b61183191906133b3565b61183c90600b6133b3565b610b7691906133ca565b611851848484611119565b6001600160a01b0383163b1561146b5761186d84848484612952565b61146b5761146b6368d2bf6b60e11b612223565b6118896122cc565b611892816122f9565b61189f5761189f81612341565b5f81815260186020526040908190208390555181907fa7e52343431f792020e7cb8411a08014688ca11782fd5709fa2531b3d74ba457906118e39085815260200190565b60405180910390a25050565b60606118fa826121d9565b61190e5761190e630a14c4b560e41b612223565b5f611917612a2d565b905080515f036119355760405180602001604052805f815250611960565b8061193f84612a3c565b60405160200161195092919061351b565b6040516020818303038152906040525b9392505050565b5f60647f0000000000000000000000000000000000000000000000000000000000000000611993612a7f565b61199d91906133b3565b6119a791906133ca565b905090565b5f8181526015602052604081205460ff16156119db57604051632312107960e21b815260040160405180910390fd5b5f85815260176020908152604080832054338452601b835281842089855290925290912054611a0a90886133a0565b1115611a3e57335f908152601b602090815260408083208884528252808320546017909252909120548791610fe791613404565b611a7e8484808060200260200160405190810160405280939291908181526020018383602002808284375f920191909152505060165491508590506123a3565b611a9b576040516305fbe2b760e01b815260040160405180910390fd5b5f828152601560209081526040808320805460ff19166001179055338352601b825280832088845290915281208054889290611ad89084906133a0565b90915550611ae990503387876123b8565b604080518881526020810188905291925033917f2e8ac5177a616f2aec08c3048f5021e4e9743ece034e8d83ba5caf76688bb475910160405180910390a2611b3081612728565b95945050505050565b5f611b426122cc565b8151835114611ba45760405163e066a8d760e01b815260206004820152602760248201527f4d69736d61746368206265747765656e20726563697069656e747320616e6420604482015266616d6f756e747360c81b6064820152608401610d5e565b5f805b8351811015611bdf57838181518110611bc257611bc2613378565b602002602001015182611bd591906133a0565b9150600101611ba7565b50611be98161181b565b915081341015611c515760405163e066a8d760e01b815260206004820152602c60248201527f4e6f7420656e6f7567682045746865722073656e7420666f722074686520616960448201526b7264726f702063686172676560a01b6064820152608401610d5e565b6011546001600160a01b03165f908152600c602052604081208054849290611c7a9084906133a0565b909155505f90505b8451811015611d39575f848281518110611c9e57611c9e613378565b60200260200101519050600d5481611cb4610d79565b611cbe91906133a0565b1115611d0d5760405163e066a8d760e01b815260206004820152601a60248201527f41697264726f702065786365656473206d617820737570706c790000000000006044820152606401610d5e565b611d30868381518110611d2257611d22613378565b602002602001015182612aea565b50600101611c82565b50611d4382612728565b5092915050565b600e545f9060ff16611d7157600f541580611d675750600f544211155b15611d7157505f90565b50600190565b6001600160a01b039182165f90815260076020908152604080832093909416825291909152205460ff1690565b611dac6122cc565b6001600160a01b038116611dd557604051631e4fbdf760e01b81525f6004820152602401610d5e565b61165881612849565b5f828152601760209081526040808320546001600160a01b0385168452601b8352818420868552909252822054611e1590866133a0565b1115611e2257505f611960565b835f03611e3057505f611960565b611e38611d4a565b611e4357505f611960565b5f838152601d602052604090205460ff16611e8b575f838152601e60205260409020541580611e7f57505f838152601e60205260409020544211155b15611e8b57505f611960565b8215611ef0575f838152601c602090815260408083206001600160a01b03861684529091528120549003611ec057505f611960565b5f838152601c602090815260408083206001600160a01b0386168452909152902054841115611ef057505f611960565b5f83815260196020908152604080832054601a90925290912054611f159086906133a0565b1115611f2257505f611960565b600d5484611f2e610d79565b611f3891906133a0565b1115611f4557505f611960565b5060019392505050565b604051638988eea960e01b81526001600160a01b038083166004830152831660248201523060448201525f60648201819052906c447e69651d841bd8d104bed49390638988eea990608401602060405180830381865afa158015611fb5573d5f803e3d5ffd5b505050506040513d601f19601f82011682018060405250810190611fd991906133e9565b611fe457505f612150565b5f848152601760209081526040808320546001600160a01b0387168452601b83528184208885529092529091205461201c90876133a0565b111561202957505f612150565b845f0361203757505f612150565b61203f611d4a565b61204a57505f612150565b5f848152601d602052604090205460ff16612092575f848152601e6020526040902054158061208657505f848152601e60205260409020544211155b1561209257505f612150565b83156120f7575f848152601c602090815260408083206001600160a01b038616845290915281205490036120c757505f612150565b5f848152601c602090815260408083206001600160a01b03861684529091529020548511156120f757505f612150565b5f84815260196020908152604080832054601a9092529091205461211c9087906133a0565b111561212957505f612150565b600d5485612135610d79565b61213f91906133a0565b111561214c57505f612150565b5060015b949350505050565b5f6301ffc9a760e01b6001600160e01b03198316148061218857506380ac58cd60e01b6001600160e01b03198316145b80610b765750506001600160e01b031916635b5e139f60e01b1490565b5f6001600160e01b0319821663152a902d60e11b1480610b7657506301ffc9a760e01b6001600160e01b0319831614610b76565b5f8160011161221e575f5482101561221e575f5b505f82815260046020526040812054908190036122145761220d83613549565b92506121ed565b600160e01b161590505b919050565b805f5260045ffd5b5f61223583611471565b905081801561224d5750336001600160a01b03821614155b156122705761225c8133611d77565b612270576122706367d9dca160e11b612223565b5f8381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b600b546001600160a01b0316331461155c5760405163118cdaa760e01b8152336004820152602401610d5e565b5f805b601f548110156123395782601f828154811061231a5761231a613378565b905f5260205f200154036123315750600192915050565b6001016122fc565b505f92915050565b5f8181526018602090815260408083208390556017825280832083905560198252808320839055601a9091528120819055601f805460018101825591527fa03837a25210ee280c2113ff4b77ca23440b19d4866cca721c801278fd08d8070155565b5f826123af8584612b03565b14949350505050565b5f825f036124095760405163e066a8d760e01b815260206004820152601d60248201527f416d6f756e74206d7573742062652067726561746572207468616e20300000006044820152606401610d5e565b612411611d4a565b61242e57604051630d0ca57160e21b815260040160405180910390fd5b5f828152601d602052604090205460ff1661248b575f828152601e6020526040902054158061246a57505f828152601e60205260409020544211155b1561248b57604051632bf6312360e01b815260048101839052602401610d5e565b811561258b575f828152601c602090815260408083206001600160a01b038816845290915281205490036124e45760405163043374df60e21b81526001600160a01b038516600482015260248101839052604401610d5e565b5f828152601c602090815260408083206001600160a01b0388168452909152902054831115612554575f828152601c602090815260408083206001600160a01b03881684529091529081902054905163ed0fcc5760e01b8152610d5e918591600401918252602082015260400190565b5f828152601c602090815260408083206001600160a01b038816845290915281208054859290612585908490613404565b90915550505b5f82815260196020908152604080832054601a909252909120546125b09085906133a0565b11156125fd575f828152601a602090815260408083205460199092529091205484916125db91613404565b60405163cc3f2f1b60e01b815260048101929092526024820152604401610d5e565b600d5483612609610d79565b61261391906133a0565b11156126515782612622610d79565b600d5461262f9190613404565b60405163adc3cee560e01b815260048101929092526024820152604401610d5e565b5f8061265d8486610e2d565b915091508134101561268b5760405163c108422360e01b815260048101839052346024820152604401610d5e565b6011546001600160a01b03165f908152600c6020526040812080548392906126b49084906133a0565b909155506126c490508183613404565b6012546001600160a01b03165f908152600c6020526040812080549091906126ed9084906133a0565b90915550505f848152601a60205260408120805487929061270f9084906133a0565b9091555061271f90503386612aea565b50949350505050565b5f6127338234613404565b90508015610c51576040515f90339083908381818185875af1925050503d805f811461277a576040519150601f19603f3d011682016040523d82523d5f602084013e61277f565b606091505b505090508061131f57335f908152600c6020526040812080548492906127a69084906133a0565b9091555050505050565b5f8160011161283957505f81815260046020526040902054805f03612827575f5482106127e7576127e7636f96cda160e11b612223565b5b505f19015f8181526004602052604090205480156127e857600160e01b81165f0361281257919050565b612822636f96cda160e11b612223565b6127e8565b600160e01b81165f0361283957919050565b61221e636f96cda160e11b612223565b600b80546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0905f90a35050565b6001600160a01b0381165f818152600c6020526040808220805490839055905190929083908381818185875af1925050503d805f81146128f5576040519150601f19603f3d011682016040523d82523d5f602084013e6128fa565b606091505b505090508061294c5760405163e066a8d760e01b815260206004820152601860248201527f5769746864726177205472616e73666572204661696c656400000000000000006044820152606401610d5e565b50919050565b604051630a85bd0160e11b81525f906001600160a01b0385169063150b7a029061298690339089908890889060040161355e565b6020604051808303815f875af19250505080156129c0575060408051601f3d908101601f191682019092526129bd91810190613590565b60015b612a13573d8080156129ed576040519150601f19603f3d011682016040523d82523d5f602084013e6129f2565b606091505b5080515f03612a0b57612a0b6368d2bf6b60e11b612223565b805181602001fd5b6001600160e01b031916630a85bd0160e11b149050612150565b606060108054610b8b90613346565b606060a06040510180604052602081039150505f815280825b600183039250600a81066030018353600a900480612a555750819003601f19909101908152919050565b60145460408051635a04434360e11b815290515f926001600160a01b03169163b40886869160048083019260209291908290030181865afa158015612ac6573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906119a791906135ab565b610c51828260405180602001604052805f815250612b45565b5f81815b8451811015612b3d57612b3382868381518110612b2657612b26613378565b6020026020010151612ba5565b9150600101612b07565b509392505050565b612b4f8383612bce565b6001600160a01b0383163b1561131f575f548281035b612b775f868380600101945086612952565b612b8b57612b8b6368d2bf6b60e11b612223565b818110612b6557815f5414612b9e575f80fd5b5050505050565b5f818310612bbf575f828152602084905260409020611960565b505f9182526020526040902090565b5f805490829003612be957612be963b562e8dd60e01b612223565b5f8181526004602090815260408083206001600160a01b0387164260a01b6001881460e11b17811790915580845260059092528220805468010000000000000001860201905590819003612c4657612c46622e076360e81b612223565b818301825b80835f7fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef5f80a4818160010191508103612c4b57505f5550505050565b6001600160a01b0381168114611658575f80fd5b5f8060408385031215612cad575f80fd5b823591506020830135612cbf81612c88565b809150509250929050565b6001600160e01b031981168114611658575f80fd5b5f60208284031215612cef575f80fd5b813561196081612cca565b5f5b83811015612d14578181015183820152602001612cfc565b50505f910152565b5f8151808452612d33816020860160208601612cfa565b601f01601f19169290920160200192915050565b602081525f6119606020830184612d1c565b5f60208284031215612d69575f80fd5b5035919050565b5f8060408385031215612d81575f80fd5b8235612d8c81612c88565b946020939093013593505050565b5f8060408385031215612dab575f80fd5b50508035926020909101359150565b5f60208284031215612dca575f80fd5b813561196081612c88565b5f8083601f840112612de5575f80fd5b50813567ffffffffffffffff811115612dfc575f80fd5b6020830191508360208260051b85010111156112f1575f80fd5b5f805f805f8060a08789031215612e2b575f80fd5b86359550602087013594506040870135612e4481612c88565b9350606087013567ffffffffffffffff811115612e5f575f80fd5b612e6b89828a01612dd5565b979a9699509497949695608090950135949350505050565b5f805f60608486031215612e95575f80fd5b8335612ea081612c88565b92506020840135612eb081612c88565b929592945050506040919091013590565b634e487b7160e01b5f52604160045260245ffd5b604051601f8201601f1916810167ffffffffffffffff81118282101715612efe57612efe612ec1565b604052919050565b5f67ffffffffffffffff831115612f1f57612f1f612ec1565b612f32601f8401601f1916602001612ed5565b9050828152838383011115612f45575f80fd5b828260208301375f602084830101529392505050565b5f60208284031215612f6b575f80fd5b813567ffffffffffffffff811115612f81575f80fd5b8201601f81018413612f91575f80fd5b61215084823560208401612f06565b5f67ffffffffffffffff821115612fb957612fb9612ec1565b5060051b60200190565b5f82601f830112612fd2575f80fd5b81356020612fe7612fe283612fa0565b612ed5565b8083825260208201915060208460051b870101935086841115613008575f80fd5b602086015b8481101561302d57803561302081612c88565b835291830191830161300d565b509695505050505050565b5f82601f830112613047575f80fd5b81356020613057612fe283612fa0565b8083825260208201915060208460051b870101935086841115613078575f80fd5b602086015b8481101561302d578035835291830191830161307d565b5f805f606084860312156130a6575f80fd5b833567ffffffffffffffff808211156130bd575f80fd5b6130c987838801612fc3565b94506020860135935060408601359150808211156130e5575f80fd5b506130f286828701613038565b9150509250925092565b8015158114611658575f80fd5b5f806040838503121561311a575f80fd5b823561312581612c88565b91506020830135612cbf816130fc565b5f60208284031215613145575f80fd5b8135611960816130fc565b5f8060408385031215613161575f80fd5b8235612d8c816130fc565b5f805f806080858703121561317f575f80fd5b843561318a81612c88565b9350602085013561319a81612c88565b925060408501359150606085013567ffffffffffffffff8111156131bc575f80fd5b8501601f810187136131cc575f80fd5b6131db87823560208401612f06565b91505092959194509250565b5f805f805f608086880312156131fb575f80fd5b8535945060208601359350604086013567ffffffffffffffff81111561321f575f80fd5b61322b88828901612dd5565b96999598509660600135949350505050565b5f806040838503121561324e575f80fd5b823567ffffffffffffffff80821115613265575f80fd5b61327186838701612fc3565b93506020850135915080821115613286575f80fd5b5061329385828601613038565b9150509250929050565b5f80604083850312156132ae575f80fd5b82356132b981612c88565b91506020830135612cbf81612c88565b5f805f606084860312156132db575f80fd5b833592506020840135915060408401356132f481612c88565b809150509250925092565b5f805f8060808587031215613312575f80fd5b8435935060208501359250604085013561332b81612c88565b9150606085013561333b81612c88565b939692955090935050565b600181811c9082168061335a57607f821691505b60208210810361294c57634e487b7160e01b5f52602260045260245ffd5b634e487b7160e01b5f52603260045260245ffd5b634e487b7160e01b5f52601160045260245ffd5b80820180821115610b7657610b7661338c565b8082028115828204841417610b7657610b7661338c565b5f826133e457634e487b7160e01b5f52601260045260245ffd5b500490565b5f602082840312156133f9575f80fd5b8151611960816130fc565b81810381811115610b7657610b7661338c565b601f82111561131f57805f5260205f20601f840160051c8101602085101561343c5750805b601f840160051c820191505b81811015612b9e575f8155600101613448565b815167ffffffffffffffff81111561347557613475612ec1565b613489816134838454613346565b84613417565b602080601f8311600181146134bc575f84156134a55750858301515b5f19600386901b1c1916600185901b178555613513565b5f85815260208120601f198616915b828110156134ea578886015182559484019460019091019084016134cb565b508582101561350757878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b5f835161352c818460208801612cfa565b835190830190613540818360208801612cfa565b01949350505050565b5f816135575761355761338c565b505f190190565b6001600160a01b03858116825284166020820152604081018390526080606082018190525f9061110f90830184612d1c565b5f602082840312156135a0575f80fd5b815161196081612cca565b5f602082840312156135bb575f80fd5b505191905056fea264697066735822122015c2f441641118d6184a7589137f34fb5f66af912acda598ca5792d25533fc3764736f6c63430008180033000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000002a000000000000000000000000000000000000000000000000000000000000002e000000000000000000000000000000000000000000000000000000000000003200000000000000000000000000000000000000000000000000000000000000000000000000000000000000000428deb81a93bed820068724eb1fcc7503d71e41700000000000000000000000065db9966492c0a5ac0ef15c018c19ee383f7a8cf790ca3e9116b7874a6ac25ef6f690fab5c90e467ea7d4e48fe3068ec9241cc3d00000000000000000000000000000000000000000000000000000000000000a000000000000000000000000000000000000000000000000000000000000000e0000000000000000000000000feed75d820916ca4c41f506fd6ec01ef688b786a0000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000091d000000000000000000000000000000000000000000000000000000000000000c5061737369766520426572610000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000750415353495645000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043697066733a2f2f62616679626569656c3337666578336d786f636d726b6c70336c64686a6e716a61687865646464656c796e6d6c66346b6173697a7665676c6635712f0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000000