275 txs
459 calls
constructor
constructor(address _owner, string _contractURI, string __baseURI, address _stax)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURI
viewfunction baseURI() view returns (string)
batchGetPackedTokenData
viewfunction batchGetPackedTokenData(uint256[] tokenIds, address account) view returns (uint256[] data, uint32)
batchGetTokenData
viewfunction batchGetTokenData(uint256[] tokenIds) view returns (uint8[] tiers, uint16[] multipliers, uint32[] mintCycles, uint32[] burnCycles, address[] burnAddresses)
contractURI
viewfunction contractURI() view returns (string)
currentCycle
viewfunction currentCycle() view returns (uint32)
directTransfer
viewfunction directTransfer() view returns (bool)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getBurnAddress
viewfunction getBurnAddress(uint256 tokenId) view returns (address)
getBurnCycle
viewfunction getBurnCycle(uint256 tokenId) view returns (uint64)
getMintCycle
viewfunction getMintCycle(uint256 tokenId) view returns (uint64)
getMultiplier
viewfunction getMultiplier(uint256 tokenId) view returns (uint64)
getNftTier
viewfunction getNftTier(uint256 tokenId) view returns (uint8)
getPackedTokenData
viewfunction getPackedTokenData(uint256 tokenId, address account) view returns (uint256, uint32)
getTotalNftsPerTiers
viewfunction getTotalNftsPerTiers(uint256 start, uint256 end) view returns (uint256[] total)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) view returns (bool)
isSaleActive
viewfunction isSaleActive() view returns (bool)
multiplierPool
viewfunction multiplierPool() view returns (uint256)
name
viewfunction name() view returns (string)
owner
viewfunction owner() view returns (address)
ownerOf
viewfunction ownerOf(uint256 tokenId) view returns (address)
pendingOwner
viewfunction pendingOwner() view returns (address)
presaleEnd
viewfunction presaleEnd() view returns (uint256)
STAX_BANK
viewfunction STAX_BANK() view returns (address)
STAX_VAULT
viewfunction STAX_VAULT() view returns (address)
STAX
viewfunction STAX() view returns (address)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tokenIdsOf
viewfunction tokenIdsOf(address account, uint256 start, uint256 end) view returns (uint256[] tokenIds)
tokenURI
viewfunction tokenURI(uint256 tokenId) view returns (string)
totalBurned
viewfunction totalBurned() view returns (uint256)
totalSupply
viewfunction totalSupply() view returns (uint256 result)
acceptOwnership
nonpayablefunction acceptOwnership()
approve
payablefunction approve(address to, uint256 tokenId) payable
batchBurn
nonpayablefunction batchBurn(uint256[] tokenIds)
burn
nonpayablefunction burn(uint256 tokenId)
mintWithEth
payablefunction mintWithEth(uint8[] tieredNfts, uint256 deadline) payable
mintWithTitanX
nonpayablefunction mintWithTitanX(uint8[] tieredNfts)
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
setApprovalForAll
nonpayablefunction setApprovalForAll(address operator, bool approved)
setBaseURI
nonpayablefunction setBaseURI(string _uri)
setContractURI
nonpayablefunction setContractURI(string _uri)
setDirectTransfer
nonpayablefunction setDirectTransfer()
setProtocolAddresses
nonpayablefunction setProtocolAddresses(address _staxVault, address _staxBank)
startMint
nonpayablefunction startMint(uint256 _presaleEnd)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
updateCycle
nonpayablefunction updateCycle() returns (uint32 cycle, uint256 totalMultipliers)
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)
ConsecutiveTransfer
event ConsecutiveTransfer(uint256 indexed fromTokenId, uint256 toTokenId, address indexed from, address indexed to)
ContractURIUpdated
event ContractURIUpdated()
OwnershipTransferred
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner)
OwnershipTransferStarted
event OwnershipTransferStarted(address indexed previousOwner, address indexed newOwner)
Transfer
event Transfer(address indexed from, address indexed to, uint256 indexed tokenId)
errors
AddressEmptyCode
error AddressEmptyCode(address target)
AddressInsufficientBalance
error AddressInsufficientBalance(address account)
ApprovalCallerNotOwnerNorApproved
error ApprovalCallerNotOwnerNorApproved()
ApprovalQueryForNonexistentToken
error ApprovalQueryForNonexistentToken()
BalanceQueryForZeroAddress
error BalanceQueryForZeroAddress()
Cooldown
error Cooldown()
DataQueryForNonexistentToken
error DataQueryForNonexistentToken()
FailedInnerCall
error FailedInnerCall()
IncorrectTier
error IncorrectTier()
MintERC2309QuantityExceedsLimit
error MintERC2309QuantityExceedsLimit()
MintToZeroAddress
error MintToZeroAddress()
MintZeroQuantity
error MintZeroQuantity()
NotCompatibleWithSpotMints
error NotCompatibleWithSpotMints()
OwnableInvalidOwner
error OwnableInvalidOwner(address owner)
OwnableUnauthorizedAccount
error OwnableUnauthorizedAccount(address account)
OwnerQueryForNonexistentToken
error OwnerQueryForNonexistentToken()
OwnershipNotInitializedForExtraData
error OwnershipNotInitializedForExtraData()
Prohibited
error Prohibited()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SaleInactive
error SaleInactive()
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
TWAP
error TWAP()
Unauthorized
error Unauthorized()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
ZeroAddress
error ZeroAddress()
ZeroInput
error ZeroInput()
creation bytecode
0x60a0604052346100d15761391680380380610019816100ec565b9283398101906080818303126100d15761003281610116565b60208201519091906001600160401b0381116100d1578361005491830161012a565b60408201516001600160401b0381116100d157606061007b6100889661008293860161012a565b9301610116565b9261051a565b6040516131ce908161074882396080518181816108b80152818161121901528181611472015281816116140152818161188801528181611c0501528181611d9d01526120860152f35b600080fd5b634e487b7160e01b600052604160045260246000fd5b6040519190601f01601f191682016001600160401b0381118382101761011157604052565b6100d6565b51906001600160a01b03821682036100d157565b81601f820112156100d1578051906001600160401b03821161011157610159601f8301601f19166020016100ec565b92828452602083830101116100d15760005b82811061018057505060206000918301015290565b8060208092840101518282870101520161016b565b90600182811c921680156101c5575b60208310146101af57565b634e487b7160e01b600052602260045260246000fd5b91607f16916101a4565b601f81116101db575050565b60026000526020600020906020601f840160051c83019310610218575b601f0160051c01905b81811061020c575050565b60008155600101610201565b90915081906101f8565b601f821161022f57505050565b6000526020600020906020601f840160051c8301931061026a575b601f0160051c01905b81811061025e575050565b60008155600101610253565b909150819061024a565b80519091906001600160401b0381116101115761029d81610296600d54610195565b600d610222565b602092601f82116001146102df576102cf929382916000926102d4575b50508160011b916000199060031b1c19161790565b600d55565b0151905038806102ba565b600d600052601f198216937fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59160005b868110610346575083600195961061032d575b505050811b01600d55565b015160001960f88460031b161c19169055388080610322565b9192602060018192868501518155019401920161030f565b80519091906001600160401b0381116101115761038781610380600e54610195565b600e610222565b602092601f82116001146103bd576103b8929382916000926102d45750508160011b916000199060031b1c19161790565b600e55565b600e600052601f198216937fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9160005b868110610424575083600195961061040b575b505050811b01600e55565b015160001960f88460031b161c19169055388080610400565b919260206001819286850151815501940192016103ed565b80519091906001600160401b038111610111576104658161045e600354610195565b6003610222565b602092601f821160011461049b57610496929382916000926102d45750508160011b916000199060031b1c19161790565b600355565b6003600052601f198216937fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b9160005b86811061050257508360019596106104e9575b505050811b01600355565b015160001960f88460031b161c191690553880806104de565b919260206001819286850151815501940192016104cb565b61055d90929192604061054661052f826100ec565b9160048352630a6e8c2f60e31b60208401526100ec565b9160048352630a6a882b60e31b60208401526105c9565b61057461010064ffffffff00196011541617601155565b6001600160a01b038316156105b8578151156105a7578051156105a75761059d6105a292610274565b61035e565b608052565b63af458c0760e01b60005260046000fd5b63d92e233d60e01b60005260046000fd5b815191939290916001600160401b038111610111576105f2816105ed600254610195565b6101cf565b6020601f82116001146106695790806106279261062f9596976000926102d45750508160011b916000199060031b1c19161790565b60025561043c565b6106396001600055565b6001600160a01b0381161561065357610651906106f3565b565b631e4fbdf760e01b600090815260045260246000fd5b6002600052601f198216957f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace9660005b8181106106db57509161062f959697918460019594106106c2575b505050811b0160025561043c565b015160001960f88460031b161c191690553880806106b4565b83830151895560019098019760209384019301610699565b600a80546001600160a01b0319908116909155600980549182166001600160a01b0393841690811790915591167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a356fe6080604052600436101561001257600080fd5b60003560e01c8062be36561461033657806301ffc9a71461033157806306fdde031461032c578063081812fc14610327578063095ea7b314610322578063179397f71461031d57806318160ddd14610318578063229f3e291461031357806323b872dd1461030e57806326a24575146103095780632c9b72a71461030457806342842e0e146102ff57806342966c68146102fa578063493d5dfe146102f55780634beb7797146102f057806355f804b3146102eb578063564566a8146102e65780636173b4ed146102e15780636352211e146102dc578063651c5434146102d75780636c0360eb146102d257806370a08231146102cd578063715018a6146102c857806379ba5097146102c35780638da5cb5b146102be57806390f73d3c146102b9578063938e3d7b146102b457806395d89b41146102af5780639bfcbd6f146102aa5780639d77126d146102a5578063a22cb465146102a0578063adf8252d1461029b578063b88d4fde14610296578063bab2f55214610291578063c465a8dc1461028c578063c467366a14610287578063c65af62214610282578063c87b56dd1461027d578063cb0a443314610278578063d89135cd14610273578063d9e146001461026e578063dc8e92ea14610269578063de96cd1c14610264578063e30c39781461025f578063e8a3d4851461025a578063e985e9c514610255578063ebb7868714610250578063f1bf9a371461024b578063f2fde38b146102465763fa7272141461024157600080fd5b612126565b6120b9565b612070565b612033565b611fd6565b611f2e565b611f05565b611e47565b611d76565b611c6b565b611c29565b611b95565b61198d565b61191b565b611673565b6115fe565b6115d7565b61157d565b61154a565b6114b9565b61145f565b61143c565b611394565b611278565b6111f5565b6111cc565b611142565b6110db565b6110b0565b611008565b610fb0565b610f81565b610ed2565b610eb2565b610d6a565b610b74565b610949565b610863565b61083e565b6107ff565b610785565b610771565b610719565b6106f2565b6106c9565b6105fc565b61057d565b6104a4565b610386565b61034b565b600091031261034657565b600080fd5b3461034657600036600319011261034657600c546040516001600160a01b039091168152602090f35b6001600160e01b031981160361034657565b34610346576020366003190112610346576103e86004356103a681610374565b6001600160e01b0319166301ffc9a760e01b8114908115908282610437575b8315610426575b83156103ec575b50506040519115158252509081906020820190565b0390f35b925090610415575b8115610404575b503880806103d3565b635b5e139f60e01b149050386103fb565b6380ac58cd60e01b811491506103f4565b635b5e139f60e01b821493506103cc565b6380ac58cd60e01b821493506103c5565b60005b83811061045b5750506000910152565b818101518382015260200161044b565b9060209161048481518092818552858086019101610448565b601f01601f1916010190565b9060206104a192818152019061046b565b90565b346103465760003660031901126103465760405160006002546104c681610fce565b808452906001811690811561055957506001146104fa575b6103e8836104ee8185038261098e565b60405191829182610490565b600260009081527f405787fa12a823e0f2b7631cc41b3ba8828b3321ca811111fa75cd3aa3bb5ace939250905b80821061053f575090915081016020016104ee6104de565b919260018160209254838588010152019101909291610527565b60ff191660208086019190915291151560051b840190910191506104ee90506104de565b346103465760203660031901126103465760043561059a816126ab565b156105bf576000526006602052602060018060a01b0360406000205416604051908152f35b6333d1c03960e21b60005260046000fd5b600435906001600160a01b038216820361034657565b602435906001600160a01b038216820361034657565b6040366003190112610346576106106105d0565b602435906001600160a01b036106258361274e565b1690813303610697575b61066681610647856000526006602052604060002090565b80546001600160a01b0319166001600160a01b03909216919091179055565b6001600160a01b0316907f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b925600080a4005b600082815260076020908152604080832033845290915290205460ff1661062f576367d9dca160e11b60005260046000fd5b3461034657600036600319011261034657600b546040516001600160a01b039091168152602090f35b34610346576000366003190112610346576000546001546040519103600019018152602090f35b34610346576000366003190112610346576020601054604051908152f35b6060906003190112610346576004356001600160a01b038116810361034657906024356001600160a01b0381168103610346579060443590565b61078361077d36610737565b9161215b565b005b34610346576020366003190112610346576004356000526012602052602063ffffffff60406000205460381c16604051908152f35b906020808351928381520192019060005b8181106107d85750505090565b82518452602093840193909201916001016107cb565b9060206104a19281815201906107ba565b34610346576060366003190112610346576103e861082a61081e6105d0565b602435604435916123d4565b6040519182916020835260208301906107ba565b61078361084a36610737565b906040519261085a60208561098e565b600084526125ac565b34610346576020366003190112610346576004356108926108866108868361274e565b6001600160a01b031690565b336001600160a01b0390911603610939576108b66108b033836127e3565b91612db9565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156103465760405163c55bf03960e01b815260048101839052336024820152906000908290818381604481015b03925af180156109345761091f57005b8061092e60006107839361098e565b8061033b565b6124c0565b6282b42960e81b60005260046000fd5b34610346576020366003190112610346576004356000526012602052602060ff60406000205416604051908152f35b634e487b7160e01b600052604160045260246000fd5b90601f801991011681019081106001600160401b038211176109af57604052565b610978565b604051906109c46101008361098e565b565b6001600160401b0381116109af5760051b60200190565b9080601f830112156103465781356109f4816109c6565b92610a02604051948561098e565b81845260208085019260051b82010192831161034657602001905b828210610a2a5750505090565b8135815260209182019101610a1d565b906020808351928381520192019060005b818110610a585750505090565b825161ffff16845260209384019390920191600101610a4b565b906020808351928381520192019060005b818110610a905750505090565b825163ffffffff16845260209384019390920191600101610a83565b906020808351928381520192019060005b818110610aca5750505090565b82516001600160a01b0316845260209384019390920191600101610abd565b9391959492909560a0850160a086528751809152602060c0870198019060005b818110610b5b57505050610b4d9291610b3188610b3f93886104a19a9b0360208a0152610a3a565b908682036040880152610a72565b908482036060860152610a72565b916080818403910152610aac565b825160ff168a526020998a019990920191600101610b09565b34610346576020366003190112610346576004356001600160401b03811161034657610ba49036906004016109dd565b610bae8151612331565b90610bb98151612331565b91610bc48251612331565b92610bcf8351612331565b610bd98451612331565b9160005b8551811015610cc957610c04610bf38288612379565b516000526012602052604060002090565b5490610c1f60ff8316610c178389612379565b9060ff169052565b610c3e600883901c61ffff16610c358386612379565b9061ffff169052565b63ffffffff601883901c16918215610cb857610c99610cb291610c72600195610c67868e612379565b9063ffffffff169052565b610c8a603882901c63ffffffff16610c67868a612379565b60581c6001600160a01b031690565b610ca38388612379565b6001600160a01b039091169052565b01610bdd565b6377dfd02960e11b60005260046000fd5b50946103e893945060405195869586610ae9565b6001600160401b0381116109af57601f01601f191660200190565b929192610d0482610cdd565b91610d12604051938461098e565b829481845281830111610346578281602093846000960137010152565b602060031982011261034657600435906001600160401b0382116103465780602383011215610346578160246104a193600401359101610cf8565b3461034657610d7836610d2f565b610d806128be565b805115610ea15780516001600160401b0381116109af57610dab81610da6600e54610fce565b6124cc565b602091601f8211600114610e2057610ddb9260009183610e15575b50508160011b916000199060031b1c19161790565b600e555b604080516001815260001960208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c9190a1005b015190503880610dc6565b600e600052601f198216927fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd9160005b858110610e8957508360019510610e70575b505050811b01600e55610ddf565b015160001960f88460031b161c19169055388080610e62565b91926020600181928685015181550194019201610e50565b63af458c0760e01b60005260046000fd5b346103465760003660031901126103465760206010546040519042108152f35b3461034657604036600319011261034657600435602435600054808211610f79575b50610efd61230e565b915b818110610f1457604051806103e885826107ee565b610f1d816126ab565b610f2a575b600101610eff565b80600052601260205260001960ff60406000205416019060ff8211610f745760019160ff16610f6c610f65610f5f8388612379565b516123a8565b9186612379565b529050610f22565b612392565b905038610ef4565b346103465760203660031901126103465760206001600160a01b03610fa760043561274e565b16604051908152f35b34610346576000366003190112610346576020600f54604051908152f35b90600182811c92168015610ffe575b6020831014610fe857565b634e487b7160e01b600052602260045260246000fd5b91607f1691610fdd565b34610346576000366003190112610346576040516000600e5461102a81610fce565b80845290600181169081156105595750600114611051576103e8836104ee8185038261098e565b600e60009081527fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd939250905b808210611096575090915081016020016104ee6104de565b91926001816020925483858801015201910190929161107e565b346103465760203660031901126103465760206110d36110ce6105d0565b612572565b604051908152f35b34610346576000366003190112610346576110f46128be565b600a80546001600160a01b03199081169091556009805491821690556000906001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e08280a3005b3461034657600036600319011261034657600a54336001600160a01b03909116036111b757600a80546001600160a01b0319908116909155600980543392811683179091556001600160a01b03167f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e0600080a3005b63118cdaa760e01b6000523360045260246000fd5b34610346576000366003190112610346576009546040516001600160a01b039091168152602090f35b346103465760403660031901126103465761120e6105d0565b6112166105e6565b907f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361093957600c80546001600160a01b039283166001600160a01b031991821617909155600b8054939092169216919091179055005b346103465761128636610d2f565b61128e6128be565b805115610ea15780516001600160401b0381116109af576112b9816112b4600d54610fce565b61251f565b602091601f8211600114611313576112e89260009183610e155750508160011b916000199060031b1c19161790565b600d555b7fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad962600080a1005b600d600052601f198216927fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb59160005b85811061137c57508360019510611363575b505050811b01600d556112ec565b015160001960f88460031b161c19169055388080611355565b91926020600181928685015181550194019201611343565b346103465760003660031901126103465760405160006003546113b681610fce565b808452906001811690811561055957506001146113dd576103e8836104ee8185038261098e565b600360009081527fc2575a0e9e593c00f959f8c92f12db2869c3395a3b0502d05e2516446f71f85b939250905b808210611422575090915081016020016104ee6104de565b91926001816020925483858801015201910190929161140a565b3461034657600036600319011261034657602060ff601154166040519015158152f35b34610346576000366003190112610346577f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03163303610939576011805460ff19166001179055005b8015150361034657565b34610346576040366003190112610346576114d26105d0565b602435906114df826114af565b3360009081526007602090815260408083206001600160a01b038516845290915290209115159160ff1981541660ff841617905560405191825260018060a01b0316907f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c3160203392a3005b34610346576020366003190112610346576004356000526012602052602061ffff60406000205460081c16604051908152f35b6080366003190112610346576115916105d0565b6115996105e6565b90604435606435926001600160401b0384116103465736602385011215610346576115d1610783943690602481600401359101610cf8565b926125ac565b3461034657600036600319011261034657602063ffffffff60115460081c16604051908152f35b34610346576000366003190112610346576040517f00000000000000000000000000000000000000000000000000000000000000006001600160a01b03168152602090f35b9181601f84011215610346578235916001600160401b038311610346576020808501948460051b01011161034657565b6040366003190112610346576004356001600160401b0381116103465761169e903690600401611643565b6024359160105442101561190a5781806116b7926129ef565b909281840193848111610f745773c02aaa39b223fe8d0a0e5c4f27ead9083c756cc23b1561034657604051630d0e30db60e41b8152916000836004813473c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25af190811561093457611804936020926118f5575b506117276109b4565b73c02aaa39b223fe8d0a0e5c4f27ead9083c756cc281529073f19308f923582a6f7c465e5ce7a9dc1bec6665b182840152612710604083015230606083015260808201523460a08201528660c0820152600060e082015261178734612f17565b6040805163414bf38960e01b815282516001600160a01b0390811660048301526020840151811660248301529183015162ffffff1660448201526060830151821660648201526080830151608482015260a083015160a482015260c083015160c482015260e0909201511660e48201529283908190610104820190565b0381600073e592427a0aece92de3edee1f18e0157c058615645af1948515610934576107839561185d936000916118c6575b508181116118ac575b505060115460ff161561188657600b546001600160a01b0316612bed565b8061186a575b5033612c40565b600c5461188091906001600160a01b0316612bed565b38611863565b7f0000000000000000000000000000000000000000000000000000000000000000612bed565b6118bf916118b9916127d6565b33612bed565b388061183f565b6118e8915060203d6020116118ee575b6118e0818361098e565b810190612bde565b38611836565b503d6118d6565b8061092e60006119049361098e565b3861171e565b630fe219dd60e21b60005260046000fd5b3461034657600036600319011261034657600c546001600160a01b031633036109395760115463ffffffff8160081c169063ffffffff8214610f745764ffffffff0019166001820160081b64ffffffff001617601155600f546040805163ffffffff9093168352602083019190915290f35b34610346576020366003190112610346576004356119aa816126ab565b15611b5657600052601260205260ff604060002054168060009172184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b821015611b33575b806d04ee2d6d415b85acef8100000000600a921015611b17575b662386f26fc10000811015611b02575b6305f5e100811015611af0575b612710811015611ae0575b6064811015611ad1575b1015611ac6575b611a736021611a4760018501612d0b565b938401015b60001901916f181899199a1a9b1b9c1cb0b131b232b360811b600a82061a8353600a900490565b908115611a8357611a7390611a4c565b6040516103e8906104ee81611ab8611aa788611aa1602085016125fb565b90612684565b64173539b7b760d91b815260050190565b03601f19810183528261098e565b600190910190611a36565b60029060649004930192611a2f565b6004906127109004930192611a25565b6008906305f5e1009004930192611a1a565b601090662386f26fc100009004930192611a0d565b6020906d04ee2d6d415b85acef810000000090049301926119fd565b506040915072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b81046119e3565b630a14c4b560e41b60005260046000fd5b602060031982011261034657600435906001600160401b03821161034657611b9191600401611643565b9091565b3461034657611ba336611b67565b60105442101561190a57611be0611bbe8280610783956129ef565b919060ff60115416600014611c0357600b546001600160a01b03165b33612d33565b80611bec575033612c40565b600c5461188091906001600160a01b031633612d33565b7f0000000000000000000000000000000000000000000000000000000000000000611bda565b34610346576000366003190112610346576020600154604051908152f35b9063ffffffff611c646020929594956040855260408501906107ba565b9416910152565b34610346576040366003190112610346576004356001600160401b03811161034657611c9b9036906004016109dd565b611ca36105e6565b90611cae8151612331565b9160005b8251811015611d5857611cc58184612379565b5190611cdb826000526012602052604060002090565b5491611cf5603884901c63ffffffff165b63ffffffff1690565b611d2f57610886610886611d089261274e565b6001600160a01b03848116911603610939576001915b611d288287612379565b5201611cb2565b50605882901c6001600160a01b03166001600160a01b0384811691160361093957600191611d1e565b601154849060081c63ffffffff16906103e860405192839283611c47565b3461034657611d8436611b67565b908115610ea157906000916000915b808310611df857837f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316803b156103465760405163c55bf03960e01b8152600481018390523360248201529060009082908183816044810161090f565b909192611e0684838561269b565b359333611e1b6108866108866108868961274e565b0361093957611e3f611e39600193611e3333896127e3565b906125ee565b95612db9565b019190611d93565b3461034657604036600319011261034657600435611e636105e6565b8160005260126020526040600020549163ffffffff611e898463ffffffff9060381c1690565b16611ed457610886610886611e9d9261274e565b6001600160a01b03918216911603610939575b60115460081c63ffffffff166040805192835263ffffffff91909116602083015290f35b50605882901c6001600160a01b03166001600160a01b03908116911614611eb0576282b42960e81b60005260046000fd5b3461034657600036600319011261034657600a546040516001600160a01b039091168152602090f35b34610346576000366003190112610346576040516000600d54611f5081610fce565b80845290600181169081156105595750600114611f77576103e8836104ee8185038261098e565b600d60009081527fd7b6990105719101dabeb77144f2a3385c8033acd3af97e9423a695e81ad1eb5939250905b808210611fbc575090915081016020016104ee6104de565b919260018160209254838588010152019101909291611fa4565b3461034657604036600319011261034657602060ff612027611ff66105d0565b611ffe6105e6565b6001600160a01b0391821660009081526007865260408082209290931681526020919091522090565b54166040519015158152f35b346103465760203660031901126103465760043560009081526012602090815260409182902054915160589290921c6001600160a01b0316825290f35b34610346576020366003190112610346576004357f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316330361093957601055005b34610346576020366003190112610346576120d26105d0565b6120da6128be565b600a80546001600160a01b0319166001600160a01b039283169081179091556009549091167f38d16b8cac22d99fc7c124b9cd0de2d3fa1faef420bfe791d8c362d765e22700600080a3005b34610346576020366003190112610346576004356000526012602052602063ffffffff60406000205460181c16604051908152f35b91906121668261274e565b6001600160a01b0393841693811684900361230957600083815260066020526040902080546121a86001600160a01b03871633908114908314171590565b1590565b6122bb575b6122b1575b506001600160a01b038416600090815260056020526040902080546000190190556001600160a01b0382166000908152600560205260409020805460010190556001600160a01b0382164260a01b17600160e11b1761221b846000526004602052604060002090565b55600160e11b811615612267575b506001600160a01b03169182907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a41561226257565b61271c565b6001830161227f816000526004602052604060002090565b541561228c575b50612229565b6000548114612286576122a9906000526004602052604060002090565b553880612286565b60009055386121b2565b6122ff6121a46122f8336122e18a60018060a01b03166000526007602052604060002090565b9060018060a01b0316600052602052604060002090565b5460ff1690565b156121ad5761270b565b6126fb565b6040516101a09190612320838261098e565b600c815291601f1901366020840137565b9061233b826109c6565b612348604051918261098e565b8281528092612359601f19916109c6565b0190602036910137565b634e487b7160e01b600052603260045260246000fd5b805182101561238d5760209160051b010190565b612363565b634e487b7160e01b600052601160045260246000fd5b6000198114610f745760010190565b6001600160401b03166001600160401b038114610f745760010190565b92916000548082116124b8575b506123eb84612572565b6123f481612331565b94811561244e576000935b838110612454575050505061241381612331565b9260005b6001600160401b038116908382101561244e578161244361243b6124499486612379565b519188612379565b526123b7565b612417565b50505050565b61245d816126ab565b80612495575b612470575b6001016123ff565b938085612480612486938a612379565b526123a8565b93828503612468575050505050565b506124a56108866108868361274e565b6001600160a01b03838116911614612463565b9050386123e1565b6040513d6000823e3d90fd5b601f81116124d8575050565b600e6000526020600020906020601f840160051c83019310612515575b601f0160051c01905b818110612509575050565b600081556001016124fe565b90915081906124f5565b601f811161252b575050565b600d6000526020600020906020601f840160051c83019310612568575b601f0160051c01905b81811061255c575050565b60008155600101612551565b9091508190612548565b6001600160a01b0316801561259b5760005260056020526001600160401b036040600020541690565b6323d3ad8160e21b60005260046000fd5b9291906125ba82828661215b565b803b6125c65750505050565b6125cf93612948565b156125dd573880808061244e565b6368d2bf6b60e11b60005260046000fd5b91908201809211610f7457565b600e546000929161260b82610fce565b91600181169081156126725750600114612623575050565b600e600090815292935090917fbb7b4a454dc3493923482f07822329ed19e8244eff582cc204f8554c3620c3fd5b83821061265e5750500190565b600181602092548486015201910190612651565b60ff1916825250811515909102019150565b9061269760209282815194859201610448565b0190565b919081101561238d5760051b0190565b9060009180600111156126bb5750565b60005481106126c75750565b9091505b806000526004602052604060002054806126ef57508015610f7457600019016126cb565b600160e01b1615919050565b62a1148160e81b60005260046000fd5b632ce44b5f60e11b60005260046000fd5b633a954ecd60e21b60005260046000fd5b636f96cda160e11b60005260046000fd5b622e076360e81b60005260046000fd5b8060011161272d5761276a816000526004602052604060002090565b549081156127815750600160e01b811661272d5790565b905060005481101561272d575b600019016000818152600460205260409020549081156127b75750600160e01b811661272d5790565b905061278e565b63ffffffff60029116019063ffffffff8211610f7457565b91908203918211610f7457565b9190916127fa816000526012602052604060002090565b549261280e63ffffffff8560181c166127be565b63ffffffff612829611cec60115463ffffffff9060081c1690565b9116116128ad576128aa9061285061284b61ffff600888901c16600f546127d6565b600f55565b61285c60ff8616612d75565b94612873611cec60115463ffffffff9060081c1690565b60381b9066ffffffffffffff60ff60f81b01161790600160581b600160f81b039060581b1617916000526012602052604060002090565b55565b63b0782df760e01b60005260046000fd5b6009546001600160a01b031633036111b757565b9081602091031261034657516104a181610374565b6001600160a01b0391821681529116602082015260408101919091526080606082018190526104a19291019061046b565b3d15612943573d9061292982610cdd565b91612937604051938461098e565b82523d6000602084013e565b606090565b906020926000612971959360405196879586948593630a85bd0160e11b855233600486016128e7565b03926001600160a01b03165af1600091816129be575b506129a857612994612918565b8051156129a357805190602001fd5b6125dd565b6001600160e01b031916630a85bd0160e11b1490565b6129e191925060203d6020116129e8575b6129d9818361098e565b8101906128d2565b9038612987565b503d6129cf565b9290916000936000938215610ea157600092919254906000935b838510612a17575050505050565b909192939596612a2887848461269b565b359060ff821691828103610346576000928381158015612bd4575b612bc557509160019391836005899510600014612b8e57508a6a52b7d2dcc80cd2e400000093600a905b6003841680612afe575050612ae6612af09361ffff93612a8f612aa294612f00565b938491612a9c8a60011c90565b9a6125ee565b91612ab660115463ffffffff9060081c1690565b9266ffffffff00000060ff92939462ffff0092600052601260205260181b169360081b1691161717604060002055565b16600f5401600f55565b019801960193929190612a09565b60038103612b39575050612ae6612af09361ffff93612b2d612b22612aa295612ee9565b61ffff600a91160490565b93849160058a04612a9c565b90969193929190600214612b5e575b61ffff9284612aa2612af09694612ae6946125ee565b9550612ae661ffff92612aa292612b7a612b22612af097612ed2565b600a89049990965091945092509050612b48565b60091115612bad578a6b033b2e3c9fd0803ce800000093606490612a6d565b8a6b204fce5e3e25026110000000936103e890612a6d565b63f8e309e360e01b8152600490fd5b50600c8211612a43565b90816020910312610346575190565b60405163a9059cbb60e01b60208201526001600160a01b03909116602482015260448101919091526109c490612c268160648101611ab8565b73f19308f923582a6f7c465e5ce7a9dc1bec6665b16130c9565b600054908215612cfa576001600160a01b0381164260a01b6001851460e11b1717612c75836000526004602052604060002090565b556001600160a01b031660008181526005602052604090208054680100000000000000018502019055918215612cf5578101909260015b15612ce0575b60008484827fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8180a4612cac565b9260010192818403612cb25792509050600055565b61273e565b63b562e8dd60e01b60005260046000fd5b90612d1582610cdd565b612d22604051918261098e565b8281528092612359601f1991610cdd565b6040516323b872dd60e01b60208201526001600160a01b039182166024820152911660448201526064808201929092529081526109c490612c2660848261098e565b60ff166005811015612d9157506a52b7d2dcc80cd2e400000090565b60091115612da9576b033b2e3c9fd0803ce800000090565b6b204fce5e3e2502611000000090565b6000612dc48261274e565b600083815260066020526040902080546001600160a01b038316929190612ec9575b506001600160a01b038216600090815260056020526040902080546fffffffffffffffffffffffffffffffff01905560008481526004602052604090206001600160a01b0383164260a01b17600360e01b179055600160e11b811615612e80575b507fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef8280a46109c4612e7b60015460010190565b600155565b60018401612e98816000526004602052604060002090565b5415612ea5575b50612e47565b83548114612e9f57612ec1906000526004602052604060002090565b553880612e9f565b83905538612de6565b61ffff600c9116029061ffff8216918203610f7457565b61ffff600e9116029061ffff8216918203610f7457565b60011b906201fffe61fffe831692168203610f7457565b604051636eb1769f60e11b815230600482015273e592427a0aece92de3edee1f18e0157c0586156460248201529060208260448173c02aaa39b223fe8d0a0e5c4f27ead9083c756cc25afa91821561093457600092613093575b508101809111610f745760405163095ea7b360e01b6020820190815273e592427a0aece92de3edee1f18e0157c058615646024830181905260448084019490945292825273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc29061300a90612fda60648561098e565b83516001600160a01b03841691600091829182855af190612ff9612918565b82613061575b508161305a57501590565b61301357505050565b60405163095ea7b360e01b60208201526001600160a01b039093166024840152600060448401526109c4926130559061304f8160648101611ab8565b826130c9565b6130c9565b3b15919050565b80519192508115918215613079575b50509038612fff565b61308c92506020809183010191016130b4565b3880613070565b6130ad91925060203d6020116118ee576118e0818361098e565b9038612f71565b9081602091031261034657516104a1816114af565b6000806130f29260018060a01b03169360208151910182865af16130eb612918565b9083613137565b805190811515918261311c575b50506131085750565b635274afe760e01b60005260045260246000fd5b61312f92506020809183010191016130b4565b1538806130ff565b9061315d575080511561314c57805190602001fd5b630a12f52160e11b60005260046000fd5b8151158061318f575b61316e575090565b639996b31560e01b60009081526001600160a01b0391909116600452602490fd5b50803b1561316656fea2646970667358221220218e869d9d942885dbda6142bdbb51f355143799f4ec6b14bff640d3371bce4c64736f6c634300081a0033000000000000000000000000eb430c15ff72fec66f382e6905e2dcb88a805c51000000000000000000000000000000000000000000000000000000000000008000000000000000000000000000000000000000000000000000000000000001000000000000000000000000004bd0f1886010253a18bbb401a788d8972c155b9d0000000000000000000000000000000000000000000000000000000000000042697066733a2f2f6261666b7265696473676574716f6c706b64626f746a6a666670746c683479347977786c726379756d346a6f786e6f6f7173707879656f663261340000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000043697066733a2f2f6261667962656964346637763667726a7a37736371747a6e6a616f366461616e6468796f6761687663686a3468676274616874726b3578767370342f0000000000000000000000000000000000000000000000000000000000