7.7k txs
11.8k calls
constructor
constructor(address _owner, address _treasury, string _contractURI, address _E280, string[] _baseURIs)
functions
balanceOf
viewfunction balanceOf(address owner) view returns (uint256)
baseURIs
viewfunction baseURIs(uint8 tier) view returns (string)
calculateAllocation
viewfunction calculateAllocation(uint256[] tokenIds) view returns (uint256)
contractURI
viewfunction contractURI() view returns (string)
E280
viewfunction E280() view returns (address)
getApproved
viewfunction getApproved(uint256 tokenId) view returns (address)
getBatchedTokensData
viewfunction getBatchedTokensData(uint256[] tokenIds, address nftOwner) view returns (uint256[] timestamps, uint16[] multipliers)
getMultiplier
viewfunction getMultiplier(uint256 tokenId) view returns (uint64)
getNftTier
viewfunction getNftTier(uint256 tokenId) view returns (uint8)
getTimestamp
viewfunction getTimestamp(uint256 tokenId) view returns (uint64)
getTotalNftsPerTiers
viewfunction getTotalNftsPerTiers() view returns (uint256[] total)
getTotalPrice
viewfunction getTotalPrice(uint8[] tieredNfts) view returns (uint256 titanXPool)
isApprovedForAll
viewfunction isApprovedForAll(address owner, address operator) 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)
presaleEnd
viewfunction presaleEnd() view returns (uint256)
supportsInterface
viewfunction supportsInterface(bytes4 interfaceId) view returns (bool)
symbol
viewfunction symbol() view returns (string)
tierAllocations
viewfunction tierAllocations(uint8 tier) view returns (uint256)
tierMultipliers
viewfunction tierMultipliers(uint8 tier) view returns (uint16)
tokenIdsOf
viewfunction tokenIdsOf(address account) 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)
treasury
viewfunction treasury() view returns (address)
approve
payablefunction approve(address to, uint256 tokenId) payable
mintWithEth
payablefunction mintWithEth(uint8[] tieredNfts, uint256 deadline) payable
mintWithTitanX
nonpayablefunction mintWithTitanX(uint8[] tieredNfts)
redeemNFTs
nonpayablefunction redeemNFTs(uint256[] tokenIds)
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(uint8 tier, string _uri)
setContractURI
nonpayablefunction setContractURI(string _uri)
startPresale
nonpayablefunction startPresale(uint256 _presaleEnd)
transferFrom
payablefunction transferFrom(address from, address to, uint256 tokenId) payable
transferOwnership
nonpayablefunction transferOwnership(address newOwner)
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)
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()
FailedInnerCall
error FailedInnerCall()
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()
SafeERC20FailedOperation
error SafeERC20FailedOperation(address token)
SequentialMintExceedsLimit
error SequentialMintExceedsLimit()
SequentialUpToTooSmall
error SequentialUpToTooSmall()
SpotMintTokenIdTooSmall
error SpotMintTokenIdTooSmall()
TokenAlreadyExists
error TokenAlreadyExists()
TransferCallerNotOwnerNorApproved
error TransferCallerNotOwnerNorApproved()
TransferFromIncorrectOwner
error TransferFromIncorrectOwner()
TransferToNonERC721ReceiverImplementer
error TransferToNonERC721ReceiverImplementer()
TransferToZeroAddress
error TransferToZeroAddress()
URIQueryForNonexistentToken
error URIQueryForNonexistentToken()
creation bytecode
0x60a06040523480156200001157600080fd5b50604051620037ae380380620037ae83398101604081905262000034916200064a565b846040518060400160405280600b81526020016a0456c656d656e74203238360ac1b81525060405180604001604052806005815260200164115313539560da1b81525081600290816200008891906200080e565b5060036200009782826200080e565b50600160005550506001600160a01b038116620000cf57604051631e4fbdf760e01b8152600060048201526024015b60405180910390fd5b620000da8162000505565b506001600160a01b038516620001335760405162461bcd60e51b815260206004820152601a60248201527f4f776e65722061646472657373206e6f742070726f76696465640000000000006044820152606401620000c6565b6001600160a01b0384166200018b5760405162461bcd60e51b815260206004820152601d60248201527f54726561737572792061646472657373206e6f742070726f76696465640000006044820152606401620000c6565b6001600160a01b038216620001e35760405162461bcd60e51b815260206004820152601960248201527f453238302061646472657373206e6f742070726f7669646564000000000000006044820152606401620000c6565b8051600614620002415760405162461bcd60e51b815260206004820152602260248201527f496e636f7272656374206e756d626572206f66206261736520555249732073656044820152611b9d60f21b6064820152608401620000c6565b600d6200024f84826200080e565b506001600160a01b03808316608052600a80549186166001600160a01b03199092169190911781557f169f97de0d9a84d840042b17d3c6b9638b3d6fd9024c9eb0c7a306a17b49f88f805461ffff1990811690921790557fa74ba3945261e09fde15ba3db55005b205e61eeb4ad811ac0faa2b315bffeead80548216600c1790557f45f76dafbbad695564362934e24d72eedc57f9fc1a65f39bca62176cc82968288054821660641790557f367ccd2d0ac16bf7110a5dffe0801fdc9452a95a1adb7e1a12fe97dd3e9a4edd8054821660781790557f6bda57492eba051cb4a12a1e19df47c9755d78165341d4009b1d09b3f3616204805482166103e81790557fb5a1e7cda73b1608e93d4d50ab796c3d35aa6216cb006a1f920df154d13ff61880549091166104b017905560106020526a52b7d2dcc80cd2e40000007f8c6065603763fec3f5742441d3833f3f43b982453612d76adb39a885e3006b5f8190557f853b2fefe141400fef543280f93d98bd49996069f632d0d20236afeeed8e46a2556b033b2e3c9fd0803ce80000007fb3edd0d534d647cffdae9f1294f11ad21f3fcf2814bea44c92bbb8d384a57d9e8190557f1588ac671d87f82adc0e6ae8ab009c0de98f92a20243897597e566bc59b9c126556b204fce5e3e250261100000007f61a7346ab5ebdac457db2a901eaf1b805239b6049a1b2f34bab85e2e274f39cb819055600660009081527f20edfb71820f6f00f6a84ccfefb91587cd9f849f8349b0a3182a4795899d9cd9919091555b81518160ff161015620004f957818160ff1681518110620004a857620004a8620008da565b6020026020010151600e6000836001620004c3919062000906565b60ff168152602081019190915260400160002090620004e390826200080e565b5080620004f08162000928565b91505062000483565b5050505050506200094a565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b80516001600160a01b03811681146200056f57600080fd5b919050565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715620005b557620005b562000574565b604052919050565b600082601f830112620005cf57600080fd5b81516001600160401b03811115620005eb57620005eb62000574565b602062000601601f8301601f191682016200058a565b82815285828487010111156200061657600080fd5b60005b838110156200063657858101830151828201840152820162000619565b506000928101909101919091529392505050565b600080600080600060a086880312156200066357600080fd5b6200066e8662000557565b945060206200067f81880162000557565b60408801519095506001600160401b03808211156200069d57600080fd5b620006ab8a838b01620005bd565b9550620006bb60608a0162000557565b94506080890151915080821115620006d257600080fd5b818901915089601f830112620006e757600080fd5b815181811115620006fc57620006fc62000574565b8060051b6200070d8582016200058a565b918252838101850191858101908d8411156200072857600080fd5b86860192505b838310156200076957825185811115620007485760008081fd5b620007588f89838a0101620005bd565b83525091860191908601906200072e565b809750505050505050509295509295909350565b600181811c908216806200079257607f821691505b602082108103620007b357634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111562000809576000816000526020600020601f850160051c81016020861015620007e45750805b601f850160051c820191505b818110156200080557828155600101620007f0565b5050505b505050565b81516001600160401b038111156200082a576200082a62000574565b62000842816200083b84546200077d565b84620007b9565b602080601f8311600181146200087a5760008415620008615750858301515b600019600386901b1c1916600185901b17855562000805565b600085815260208120601f198616915b82811015620008ab578886015182559484019460019091019084016200088a565b5085821015620008ca5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b60ff8181168382160190811115620009225762000922620008f0565b92915050565b600060ff821660ff8103620009415762000941620008f0565b60010192915050565b608051612e2c620009826000396000818161034b01528181610cbe015281816113d50152818161161a01526118610152612e2c6000f3fe60806040526004361061023b5760003560e01c8063938e3d7b1161012e578063c03e60a6116100ab578063d89135cd1161006f578063d89135cd146106ef578063e33f33fb14610704578063e8a3d48514610724578063e985e9c514610739578063f2fde38b1461078257600080fd5b8063c03e60a61461064e578063c1d064401461066e578063c467366a1461069c578063c87b56dd146106af578063cb0a4433146106cf57600080fd5b8063aa6b8aaf116100f2578063aa6b8aaf146105ae578063adf8252d146105c3578063b633620c146105fb578063b88d4fde1461061b578063bdc9cacd1461062e57600080fd5b8063938e3d7b1461050c57806395d89b411461052c578063a132aad114610541578063a22cb46514610561578063a3b261f21461058157600080fd5b806342842e0e116101bc5780636352211e116101805780636352211e14610483578063651c5434146104a357806370a08231146104b9578063715018a6146104d95780638da5cb5b146104ee57600080fd5b806342842e0e146103ba578063493d5dfe146103cd5780634cdcd8d3146103ff578063574c91ca1461044357806361d027b31461046357600080fd5b8063229f3e2911610203578063229f3e291461031057806323b872dd146103265780632e7ab312146103395780633a6089cf1461036d5780633e4cc7321461039a57600080fd5b806301ffc9a71461024057806306fdde0314610275578063081812fc14610297578063095ea7b3146102cf57806318160ddd146102e4575b600080fd5b34801561024c57600080fd5b5061026061025b3660046125f0565b6107a2565b60405190151581526020015b60405180910390f35b34801561028157600080fd5b5061028a610803565b60405161026c919061265d565b3480156102a357600080fd5b506102b76102b2366004612670565b610895565b6040516001600160a01b03909116815260200161026c565b6102e26102dd3660046126a0565b6108d0565b005b3480156102f057600080fd5b50610302600154600054036000190190565b60405190815260200161026c565b34801561031c57600080fd5b50610302600c5481565b6102e26103343660046126ca565b6108e0565b34801561034557600080fd5b506102b77f000000000000000000000000000000000000000000000000000000000000000081565b34801561037957600080fd5b50610302610388366004612717565b60106020526000908152604090205481565b3480156103a657600080fd5b5061028a6103b5366004612717565b610a4f565b6102e26103c83660046126ca565b610ae9565b3480156103d957600080fd5b506103ed6103e8366004612670565b610b09565b60405160ff909116815260200161026c565b34801561040b57600080fd5b5061043061041a366004612717565b600f6020526000908152604090205461ffff1681565b60405161ffff909116815260200161026c565b34801561044f57600080fd5b5061030261045e36600461277d565b610b24565b34801561046f57600080fd5b50600a546102b7906001600160a01b031681565b34801561048f57600080fd5b506102b761049e366004612670565b610bff565b3480156104af57600080fd5b50610302600b5481565b3480156104c557600080fd5b506103026104d43660046127be565b610c0a565b3480156104e557600080fd5b506102e2610c4f565b3480156104fa57600080fd5b506009546001600160a01b03166102b7565b34801561051857600080fd5b506102e2610527366004612884565b610c63565b34801561053857600080fd5b5061028a610ca4565b34801561054d57600080fd5b506102e261055c366004612670565b610cb3565b34801561056d57600080fd5b506102e261057c3660046128c6565b610d1f565b34801561058d57600080fd5b506105a161059c3660046127be565b610d8b565b60405161026c9190612939565b3480156105ba57600080fd5b506105a1610e86565b3480156105cf57600080fd5b506105e36105de366004612670565b610f28565b6040516001600160401b03909116815260200161026c565b34801561060757600080fd5b506105e3610616366004612670565b610f50565b6102e261062936600461294c565b610f72565b34801561063a57600080fd5b506102e26106493660046129c7565b610fb3565b34801561065a57600080fd5b5061030261066936600461277d565b611017565b34801561067a57600080fd5b5061068e610689366004612a14565b6111b7565b60405161026c929190612a67565b6102e26106aa366004612ac2565b611351565b3480156106bb57600080fd5b5061028a6106ca366004612670565b611455565b3480156106db57600080fd5b506102e26106ea36600461277d565b6115a6565b3480156106fb57600080fd5b50610302611672565b34801561071057600080fd5b506102e261071f36600461277d565b611682565b34801561073057600080fd5b5061028a6118b9565b34801561074557600080fd5b50610260610754366004612b0d565b6001600160a01b03918216600090815260076020908152604080832093909416825291909152205460ff1690565b34801561078e57600080fd5b506102e261079d3660046127be565b6118c6565b60006001600160e01b031982166301ffc9a760e01b14806107d357506001600160e01b031982166380ac58cd60e01b145b806107ee57506001600160e01b03198216635b5e139f60e01b145b806107fd57506107fd82611904565b92915050565b60606002805461081290612b40565b80601f016020809104026020016040519081016040528092919081815260200182805461083e90612b40565b801561088b5780601f106108605761010080835404028352916020019161088b565b820191906000526020600020905b81548152906001019060200180831161086e57829003601f168201915b5050505050905090565b60006108a082611952565b6108b4576108b46333d1c03960e21b6119a0565b506000908152600660205260409020546001600160a01b031690565b6108dc828260016119aa565b5050565b60006108eb82611a4d565b6001600160a01b0394851694909150811684146109115761091162a1148160e81b6119a0565b6000828152600660205260409020805461093d8187335b6001600160a01b039081169116811491141790565b61095f5761094b8633610754565b61095f5761095f632ce44b5f60e11b6119a0565b801561096a57600082555b6001600160a01b038681166000908152600560205260408082208054600019019055918716808252919020805460010190554260a01b17600160e11b17600085815260046020526040812091909155600160e11b841690036109fc576001840160008181526004602052604081205490036109fa5760005481146109fa5760008181526004602052604090208490555b505b6001600160a01b0385168481887fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a480600003610a4657610a46633a954ecd60e21b6119a0565b50505050505050565b600e6020526000908152604090208054610a6890612b40565b80601f0160208091040260200160405190810160405280929190818152602001828054610a9490612b40565b8015610ae15780601f10610ab657610100808354040283529160200191610ae1565b820191906000526020600020905b815481529060010190602001808311610ac457829003601f168201915b505050505081565b610b0483838360405180602001604052806000815250610f72565b505050565b60008181526011602052604081205460ff81165b9392505050565b6000805b82811015610bf8576000848483818110610b4457610b44612b7a565b9050602002016020810190610b599190612717565b9050600080610b6783611aee565b9150915081610bb05760405162461bcd60e51b815260206004820152601060248201526f2737ba1030903b30b634b2103a34b2b960811b60448201526064015b60405180910390fd5b60ff831660009081526010602052604090205494909401938015610bed5760ff8316600090815260106020526040902054606490600a0204850194505b505050600101610b28565b5092915050565b60006107fd82611a4d565b60006001600160a01b038216610c2a57610c2a6323d3ad8160e21b6119a0565b506001600160a01b03166000908152600560205260409020546001600160401b031690565b610c57611b21565b610c616000611b4e565b565b610c6b611b21565b600d610c778282612be0565b506040517fa5d4097edda6d87cb9329af83fb3712ef77eeb13738ffe43cc35a4ce305ad96290600090a150565b60606003805461081290612b40565b336001600160a01b037f00000000000000000000000000000000000000000000000000000000000000001614610d1a5760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610ba7565b600c55565b3360008181526007602090815260408083206001600160a01b03871680855290835292819020805460ff191686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b60606000610d9860005490565b90506000610da584610c0a565b9050806001600160401b03811115610dbf57610dbf6127d9565b604051908082528060200260200182016040528015610de8578160200160208202803683370190505b50925080600003610dfa575050919050565b600060015b83811015610e7d57610e1081611952565b8015610e355750856001600160a01b0316610e2a82610bff565b6001600160a01b0316145b15610e755780858381518110610e4d57610e4d612b7a565b602090810291909101015281610e6281612cb5565b925050828203610e755750505050919050565b600101610dff565b50505050919050565b60606000610e9360005490565b60408051600680825260e082019092529192506020820160c08036833701905050915060015b81811015610f2357610eca81611952565b15610f1b576000818152601160205260409020548390610eef9060019060ff16612cce565b60ff1681518110610f0257610f02612b7a565b602002602001018051809190610f1790612cb5565b9052505b600101610eb9565b505090565b600081815260116020526040812054610f458160481c61ffff1690565b61ffff169392505050565b600081815260116020526040812054610b1d8160081c6001600160401b031690565b610f7d8484846108e0565b6001600160a01b0383163b15610fad57610f9984848484611ba0565b610fad57610fad6368d2bf6b60e11b6119a0565b50505050565b610fbb611b21565b60ff82166000908152600e60205260409020610fd78282612be0565b50604080516001815260001960208201527f6bd5c950a8d8df17f772f5af37cb3655737899cbf903264b9795592da439661c910160405180910390a15050565b60008161105b5760405162461bcd60e51b8152602060048201526012602482015271139bc81d1bdad95b9cc81c1c9bdd9a59195960721b6044820152606401610ba7565b6000805b838110156111af576000611074826001612ce7565b90505b848110156110fb5785858281811061109157611091612b7a565b905060200201358686848181106110aa576110aa612b7a565b90506020020135036110f35760405162461bcd60e51b8152602060048201526012602482015271111d5c1b1a58d85d19481d1bdad95b88125160721b6044820152606401610ba7565b600101611077565b5061111d85858381811061111157611111612b7a565b90506020020135611952565b6111695760405162461bcd60e51b815260206004820152601760248201527f546f6b656e20494420646f6573206e6f742065786973740000000000000000006044820152606401610ba7565b6010600061118e87878581811061118257611182612b7a565b90506020020135610b09565b60ff168152602081019190915260400160002054919091019060010161105f565b509392505050565b606080836001600160401b038111156111d2576111d26127d9565b6040519080825280602002602001820160405280156111fb578160200160208202803683370190505b509150836001600160401b03811115611216576112166127d9565b60405190808252806020026020018201604052801561123f578160200160208202803683370190505b50905060005b8481101561134857600086868381811061126157611261612b7a565b905060200201359050846001600160a01b031661127d82610bff565b6001600160a01b0316146112c25760405162461bcd60e51b815260206004820152600c60248201526b155b985d5d1a1bdc9a5e995960a21b6044820152606401610ba7565b6000818152601160205260409020546112e48160081c6001600160401b031690565b6001600160401b03168584815181106112ff576112ff612b7a565b6020026020010181815250506113198160481c61ffff1690565b84848151811061132b5761132b612b7a565b61ffff909216602092830291909101909101525050600101611245565b50935093915050565b42600c54116113975760405162461bcd60e51b815260206004820152601260248201527150726573616c65206e6f742061637469766560701b6044820152606401610ba7565b6000806113a48585611c83565b909250905081810160006113b88286611e1b565b905073f19308f923582a6f7c465e5ce7a9dc1bec6665b16113fa817f000000000000000000000000000000000000000000000000000000000000000087611ff2565b831561141a57600a5461141a906001600160a01b03838116911686611ff2565b6114243388612051565b8282111561144b5761144b3361143a8585612cfa565b6001600160a01b0384169190611ff2565b5050505050505050565b606061146082611952565b6114ac5760405162461bcd60e51b815260206004820152601f60248201527f55524920717565727920666f72206e6f6e6578697374656e7420746f6b656e006044820152606401610ba7565b600e60006114b984610b09565b60ff1660ff16815260200190815260200160002080546114d890612b40565b90506000036114f657604051806020016040528060008152506107fd565b600e600061150384610b09565b60ff1660ff168152602001908152602001600020805461152290612b40565b80601f016020809104026020016040519081016040528092919081815260200182805461154e90612b40565b801561159b5780601f106115705761010080835404028352916020019161159b565b820191906000526020600020905b81548152906001019060200180831161157e57829003601f168201915b505050505092915050565b42600c54116115ec5760405162461bcd60e51b815260206004820152601260248201527150726573616c65206e6f742061637469766560701b6044820152606401610ba7565b6000806115f98484611c83565b909250905073f19308f923582a6f7c465e5ce7a9dc1bec6665b161163f81337f000000000000000000000000000000000000000000000000000000000000000086612110565b811561166157600a54611661906001600160a01b038381169133911685612110565b61166b3385612051565b5050505050565b600061167d60015490565b905090565b6000816116bf5760405162461bcd60e51b815260206004820152600b60248201526a456d70747920617272617960a81b6044820152606401610ba7565b60006116e3848460008181106116d7576116d7612b7a565b90506020020135610bff565b905060005b8381101561183a57600085858381811061170457611704612b7a565b9050602002013590506000601160008381526020019081526020016000205490506202a30061173c8260081c6001600160401b031690565b6001600160401b031661174f9190612ce7565b42116117925760405162461bcd60e51b8152602060048201526012602482015271436f6f6c646f776e2069732061637469766560701b6044820152606401610ba7565b60ff8116600081815260106020526040902054600b8054604885901c61ffff169003905595909501946117c483610bff565b6001600160a01b0316856001600160a01b0316146118245760405162461bcd60e51b815260206004820152601a60248201527f4e4654206e6f74206f776e65642062792073616d6520757365720000000000006044820152606401610ba7565b61182f836001612149565b5050506001016116e8565b50604051630d761bc960e01b8152600481018390526001600160a01b0382811660248301527f00000000000000000000000000000000000000000000000000000000000000001690630d761bc990604401600060405180830381600087803b1580156118a557600080fd5b505af115801561144b573d6000803e3d6000fd5b600d8054610a6890612b40565b6118ce611b21565b6001600160a01b0381166118f857604051631e4fbdf760e01b815260006004820152602401610ba7565b61190181611b4e565b50565b60006301ffc9a760e01b6001600160e01b03198316148061193557506380ac58cd60e01b6001600160e01b03198316145b806107fd5750506001600160e01b031916635b5e139f60e01b1490565b60008160011161199b5760005482101561199b5760005b50600082815260046020526040812054908190036119915761198a83612d0d565b9250611969565b600160e01b161590505b919050565b8060005260046000fd5b60006119b583610bff565b90508180156119cd5750336001600160a01b03821614155b156119f0576119dc8133610754565b6119f0576119f06367d9dca160e11b6119a0565b60008381526006602052604080822080546001600160a01b0319166001600160a01b0388811691821790925591518693918516917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a450505050565b600081600111611ade575060008181526004602052604090205480600003611acb576000548210611a8857611a88636f96cda160e11b6119a0565b5b50600019016000818152600460205260409020548015611a8957600160e01b8116600003611ab657919050565b611ac6636f96cda160e11b6119a0565b611a89565b600160e01b8116600003611ade57919050565b61199b636f96cda160e11b6119a0565b60008060008360ff16118015611b07575060078360ff16105b611b12600285612d24565b60ff1660001491509150915091565b6009546001600160a01b03163314610c615760405163118cdaa760e01b8152336004820152602401610ba7565b600980546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b604051630a85bd0160e11b81526000906001600160a01b0385169063150b7a0290611bd5903390899088908890600401612d54565b6020604051808303816000875af1925050508015611c10575060408051601f3d908101601f19168201909252611c0d91810190612d87565b60015b611c65573d808015611c3e576040519150601f19603f3d011682016040523d82523d6000602084013e611c43565b606091505b508051600003611c5d57611c5d6368d2bf6b60e11b6119a0565b805181602001fd5b6001600160e01b031916630a85bd0160e11b1490505b949350505050565b60008082611cd35760405162461bcd60e51b815260206004820152601b60248201527f4e65656420746f206d696e74206174206c656173742031204e465400000000006044820152606401610ba7565b60008054905b84811015611e12576000868683818110611cf557611cf5612b7a565b9050602002016020810190611d0a9190612717565b9050600080611d1883611aee565b9150915081611d5c5760405162461bcd60e51b815260206004820152601060248201526f2737ba1030903b30b634b2103a34b2b960811b6044820152606401610ba7565b60ff83166000908152600f602052604090205461ffff16611db9611d808688612ce7565b600090815260116020526040902060ff861668ffffffffffffffff004260081b16176affff000000000000000000604885901b16179055565b600b805461ffff831601905560ff841660009081526010602052604090205497909701968115611e025760ff8416600090815260106020526040902054606490600a0204870196505b505060019092019150611cd99050565b50509250929050565b600073c02aaa39b223fe8d0a0e5c4f27ead9083c756cc26001600160a01b031663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b158015611e6c57600080fd5b505af1158015611e80573d6000803e3d6000fd5b5050604080516101008101825273c02aaa39b223fe8d0a0e5c4f27ead9083c756cc280825273f19308f923582a6f7c465e5ce7a9dc1bec6665b1602083015261271092820192909252306060820152608081018790523460a0820181905260c08201899052600060e0830152909450611f12935090915073e592427a0aece92de3edee1f18e0157c058615649061228a565b6040805163414bf38960e01b815282516001600160a01b0390811660048301526020840151811660248301529183015162ffffff1660448201526060830151821660648201526080830151608482015260a083015160a482015260c083015160c482015260e083015190911660e482015260009073e592427a0aece92de3edee1f18e0157c058615649063414bf38990610104016020604051808303816000875af1158015611fc5573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190611fe99190612da4565b95945050505050565b6040516001600160a01b03838116602483015260448201839052610b0491859182169063a9059cbb906064015b604051602081830303815290604052915060e01b6020820180516001600160e01b038381831617835250505050612314565b600080549082900361206d5761206d63b562e8dd60e01b6119a0565b60008181526004602090815260408083206001600160a01b0387164260a01b6001881460e11b178117909155808452600590925282208054680100000000000000018602019055908190036120cb576120cb622e076360e81b6119a0565b818301825b808360007fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef600080a48181600101915081036120d0575060005550505050565b6040516001600160a01b038481166024830152838116604483015260648201839052610fad9186918216906323b872dd9060840161201f565b600061215483611a4d565b90508060008061217286600090815260066020526040902080549091565b9150915084156121a957612187818433610928565b6121a9576121958333610754565b6121a9576121a9632ce44b5f60e11b6119a0565b80156121b457600082555b6001600160a01b038316600081815260056020526040902080546fffffffffffffffffffffffffffffffff0190554260a01b17600360e01b17600087815260046020526040812091909155600160e11b85169003612242576001860160008181526004602052604081205490036122405760005481146122405760008181526004602052604090208590555b505b60405186906000906001600160a01b038616907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908390a45050600180548101905550505050565b604051636eb1769f60e11b81523060048201526001600160a01b0383811660248301526000919085169063dd62ed3e90604401602060405180830381865afa1580156122da573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906122fe9190612da4565b9050610fad848461230f8585612ce7565b612377565b60006123296001600160a01b03841683612407565b9050805160001415801561234e57508080602001905181019061234c9190612dbd565b155b15610b0457604051635274afe760e01b81526001600160a01b0384166004820152602401610ba7565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663095ea7b360e01b1790526123c88482612415565b610fad576040516001600160a01b038481166024830152600060448301526123fd91869182169063095ea7b39060640161201f565b610fad8482612314565b6060610b1d838360006124b8565b6000806000846001600160a01b0316846040516124329190612dda565b6000604051808303816000865af19150503d806000811461246f576040519150601f19603f3d011682016040523d82523d6000602084013e612474565b606091505b509150915081801561249e57508051158061249e57508080602001905181019061249e9190612dbd565b8015611fe95750505050506001600160a01b03163b151590565b6060814710156124dd5760405163cd78605960e01b8152306004820152602401610ba7565b600080856001600160a01b031684866040516124f99190612dda565b60006040518083038185875af1925050503d8060008114612536576040519150601f19603f3d011682016040523d82523d6000602084013e61253b565b606091505b509150915061254b868383612555565b9695505050505050565b60608261256a57612565826125b1565b610b1d565b815115801561258157506001600160a01b0384163b155b156125aa57604051639996b31560e01b81526001600160a01b0385166004820152602401610ba7565b5080610b1d565b8051156125c15780518082602001fd5b604051630a12f52160e11b815260040160405180910390fd5b6001600160e01b03198116811461190157600080fd5b60006020828403121561260257600080fd5b8135610b1d816125da565b60005b83811015612628578181015183820152602001612610565b50506000910152565b6000815180845261264981602086016020860161260d565b601f01601f19169290920160200192915050565b602081526000610b1d6020830184612631565b60006020828403121561268257600080fd5b5035919050565b80356001600160a01b038116811461199b57600080fd5b600080604083850312156126b357600080fd5b6126bc83612689565b946020939093013593505050565b6000806000606084860312156126df57600080fd5b6126e884612689565b92506126f660208501612689565b9150604084013590509250925092565b803560ff8116811461199b57600080fd5b60006020828403121561272957600080fd5b610b1d82612706565b60008083601f84011261274457600080fd5b5081356001600160401b0381111561275b57600080fd5b6020830191508360208260051b850101111561277657600080fd5b9250929050565b6000806020838503121561279057600080fd5b82356001600160401b038111156127a657600080fd5b6127b285828601612732565b90969095509350505050565b6000602082840312156127d057600080fd5b610b1d82612689565b634e487b7160e01b600052604160045260246000fd5b60006001600160401b0380841115612809576128096127d9565b604051601f8501601f19908116603f01168101908282118183101715612831576128316127d9565b8160405280935085815286868601111561284a57600080fd5b858560208301376000602087830101525050509392505050565b600082601f83011261287557600080fd5b610b1d838335602085016127ef565b60006020828403121561289657600080fd5b81356001600160401b038111156128ac57600080fd5b611c7b84828501612864565b801515811461190157600080fd5b600080604083850312156128d957600080fd5b6128e283612689565b915060208301356128f2816128b8565b809150509250929050565b60008151808452602080850194506020840160005b8381101561292e57815187529582019590820190600101612912565b509495945050505050565b602081526000610b1d60208301846128fd565b6000806000806080858703121561296257600080fd5b61296b85612689565b935061297960208601612689565b92506040850135915060608501356001600160401b0381111561299b57600080fd5b8501601f810187136129ac57600080fd5b6129bb878235602084016127ef565b91505092959194509250565b600080604083850312156129da57600080fd5b6129e383612706565b915060208301356001600160401b038111156129fe57600080fd5b612a0a85828601612864565b9150509250929050565b600080600060408486031215612a2957600080fd5b83356001600160401b03811115612a3f57600080fd5b612a4b86828701612732565b9094509250612a5e905060208501612689565b90509250925092565b604081526000612a7a60408301856128fd565b82810360208481019190915284518083528582019282019060005b81811015612ab557845161ffff1683529383019391830191600101612a95565b5090979650505050505050565b600080600060408486031215612ad757600080fd5b83356001600160401b03811115612aed57600080fd5b612af986828701612732565b909790965060209590950135949350505050565b60008060408385031215612b2057600080fd5b612b2983612689565b9150612b3760208401612689565b90509250929050565b600181811c90821680612b5457607f821691505b602082108103612b7457634e487b7160e01b600052602260045260246000fd5b50919050565b634e487b7160e01b600052603260045260246000fd5b601f821115610b04576000816000526020600020601f850160051c81016020861015612bb95750805b601f850160051c820191505b81811015612bd857828155600101612bc5565b505050505050565b81516001600160401b03811115612bf957612bf96127d9565b612c0d81612c078454612b40565b84612b90565b602080601f831160018114612c425760008415612c2a5750858301515b600019600386901b1c1916600185901b178555612bd8565b600085815260208120601f198616915b82811015612c7157888601518255948401946001909101908401612c52565b5085821015612c8f5787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b634e487b7160e01b600052601160045260246000fd5b600060018201612cc757612cc7612c9f565b5060010190565b60ff82811682821603908111156107fd576107fd612c9f565b808201808211156107fd576107fd612c9f565b818103818111156107fd576107fd612c9f565b600081612d1c57612d1c612c9f565b506000190190565b600060ff831680612d4557634e487b7160e01b600052601260045260246000fd5b8060ff84160691505092915050565b6001600160a01b038581168252841660208201526040810183905260806060820181905260009061254b90830184612631565b600060208284031215612d9957600080fd5b8151610b1d816125da565b600060208284031215612db657600080fd5b5051919050565b600060208284031215612dcf57600080fd5b8151610b1d816128b8565b60008251612dec81846020870161260d565b919091019291505056fea2646970667358221220099e50e773fe27f5d64dec1c7efb14bb9061d9c31278c8212b3cbb26e1d7cffa64736f6c63430008180033000000000000000000000000cb9ecf72ea9dbc0a5bbc1061335f7ec12a33416100000000000000000000000015e5b9b9adf208cc7ca3ae1e6a49506eb5f397dd00000000000000000000000000000000000000000000000000000000000000a0000000000000000000000000e9a53c43a0b58706e67341c4055de861e29ee94300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d59523538545170566b4c79386d48397a4e64535168393142573155314b6432447461356232723763765a5a520000000000000000000000000000000000000000000000000000000000000000000000000000000000000600000000000000000000000000000000000000000000000000000000000000c00000000000000000000000000000000000000000000000000000000000000120000000000000000000000000000000000000000000000000000000000000018000000000000000000000000000000000000000000000000000000000000001e0000000000000000000000000000000000000000000000000000000000000024000000000000000000000000000000000000000000000000000000000000002a00000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d6369774670544a454b50634c466f43464b64676d314a324233503269615559534c6a794d396973544276477900000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d536f416346527067684b67745a66666f4c416b4444526551665a593346426153736f636f513456533271396300000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5644446a6a454b795061764253384a67645171596a3853677175446a454274573171346943766d3672464a4c00000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d627464643648756d56456a4358334561715776786f41485765613836625358463558644d665a63733377717000000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d546754697152755750646470414677337561596234476e4a41364a6d7253504b5a6164574a784c447646586700000000000000000000000000000000000000000000000000000000000000000000000000000000000035697066733a2f2f516d5865324750396f336b446f4a38647979456e73526d67587375696946346269504372363774633669654851660000000000000000000000