NFT
Overview
TokenID
4753
Total Transfers
-
Market
Onchain Market Cap
$0.00
Circulating Supply Market Cap
-
Other Info
Token Contract
Loading...
Loading
Loading...
Loading
Loading...
Loading
# | Exchange | Pair | Price | 24H Volume | % Volume |
---|
Contract Name:
MetafansCollection
Compiler Version
v0.8.9+commit.e5eed63a
Contract Source Code (Solidity Standard Json-Input format)
// SPDX-License-Identifier: MIT pragma solidity 0.8.9; import "./Authorized.sol"; import "./NFTCollectionV1.sol"; contract MetafansCollection is NFTCollectionV1, Authorized { /** @dev Immutable */ uint256 private constant _launchLimit = 10; uint256 private constant _mintCooldown = 10 minutes; uint256 private constant _presaleLimit = 3; address private immutable _partnerA; address private immutable _partnerB; uint256 private immutable _promoQuantity; /** @dev Fields */ uint256 private _launchAt; mapping(address => uint256) private _lastMintAt; uint256 private _partnerARevenue; uint256 private _partnerBRevenue; uint256 private _presaleAt; mapping(address => uint256) private _presaleClaimed; uint256 private _price; constructor( string memory baseURI_, uint256 launchAt_, address partnerA, address partnerB, uint256 presaleAt_, uint256 price, uint256 promoQuantity_, uint256 totalSupplyLimit_ ) { _admin = msg.sender; _authority = msg.sender; _owner = msg.sender; _baseURI = baseURI_; _launchAt = launchAt_; _partnerA = partnerA; _partnerB = partnerB; _presaleAt = presaleAt_; _price = price; _promoQuantity = promoQuantity_; _totalSupplyLimit = totalSupplyLimit_; _totalSupply = _promoQuantity; } /** @dev IERC721Metadata Views */ /** * @dev Returns the token collection name. */ function name() external pure override returns (string memory) { return "Metafans Collection"; } /** * @dev Returns the token collection symbol. */ function symbol() external pure override returns (string memory) { return "MFC"; } /** @dev General Views */ function lastMintAt(address wallet) external view returns (uint256) { return _lastMintAt[wallet]; } function launchAt() external view returns (uint256) { return _launchAt; } function presaleAt() external view returns (uint256) { return _presaleAt; } function presaleClaimed(address wallet) external view returns (uint256) { return _presaleClaimed[wallet]; } /** @dev Admin Mutators */ function changeLaunchAt(uint256 value) external onlyAdmin { _launchAt = value; } function changePresaleAt(uint256 value) external onlyAdmin { _presaleAt = value; } function changePrice(uint256 value) external onlyAdmin { _price = value; } /** @dev Mint Mutators */ function launchMint(uint256 quantity) external payable { require(_launchAt < block.timestamp, "launch has not begun"); require(msg.value == _price * quantity, "incorrect ETH"); require(quantity <= _launchLimit, "over limit"); require(block.timestamp - _lastMintAt[msg.sender] > _mintCooldown, "cooling down"); _partnerShare(); _mint(quantity); } function presaleMint( uint256 quantity, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) external payable authorized(msg.sender, deadline, v, r, s) { require(_presaleAt < block.timestamp, "presale has not begun"); require(block.timestamp < _launchAt, "presale has ended"); require(block.timestamp < deadline, "past deadline"); require(msg.value == _price * quantity, "incorrect ETH"); require((_presaleClaimed[msg.sender] += quantity) <= _presaleLimit, "over limit"); _partnerShare(); _mint(quantity); } function promoMint(uint256 tokenId, address to) external onlyAdmin { require(tokenId < _promoQuantity, "over promo limit"); require(_owners[tokenId] == address(0), "already minted"); _balances[to] += 1; _owners[tokenId] = to; emit Transfer(address(0), to, tokenId); } /** @dev Partner Views */ function partnerRevenue(address wallet) external view returns (uint256) { if (wallet == _partnerA) { return _partnerARevenue; } if (wallet == _partnerB) { return _partnerBRevenue; } return 0; } /** @dev Partner Mutators */ function claimRevenue() external { uint256 amount; if (msg.sender == _partnerA) { amount = _partnerARevenue; _partnerARevenue = 0; } else if (msg.sender == _partnerB) { amount = _partnerBRevenue; _partnerBRevenue = 0; } else { revert("unauthorized"); } (bool send, ) = msg.sender.call{value: amount}(""); require(send, "failed to send partner funds"); } /** @dev Helpers */ function _mint(uint256 quantity) private { require(_totalSupply + quantity <= _totalSupplyLimit, "over total supply limit"); for (uint256 i = 0; i < quantity; i++) { _owners[_totalSupply + i] = msg.sender; emit Transfer(address(0), msg.sender, _totalSupply + i); } _balances[msg.sender] += quantity; _totalSupply += quantity; _lastMintAt[msg.sender] = block.timestamp; } function _partnerShare() private { uint256 shareB = msg.value / 10; uint256 shareA = msg.value - shareB; _partnerARevenue += shareA; _partnerBRevenue += shareB; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract AccessControl { address internal _admin; address internal _owner; modifier onlyAdmin() { require(msg.sender == _admin, "unauthorized"); _; } modifier onlyOwner() { require(msg.sender == _owner, "unauthorized"); _; } function changeAdmin(address newAdmin) external onlyOwner { _admin = newAdmin; } function changeOwner(address newOwner) external onlyOwner { _owner = newOwner; } function owner() external view returns (address) { return _owner; } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "./AccessControl.sol"; import "./interfaces/IERC165.sol"; import "./interfaces/IERC721.sol"; import "./interfaces/IERC721Metadata.sol"; import "./interfaces/IERC721Receiver.sol"; abstract contract NFTCollectionV1 is AccessControl, IERC165, IERC721, IERC721Metadata { /** @dev IERC721 Fields */ mapping(address => uint256) internal _balances; mapping(address => mapping(address => bool)) internal _operatorApprovals; mapping(uint256 => address) internal _owners; mapping(uint256 => address) internal _tokenApprovals; /** @dev IERC721Enumerable */ uint256 internal _totalSupply; uint256 internal _totalSupplyLimit; string internal _baseURI; /** @dev IERC165 Views */ /** * @dev See {IERC165-supportsInterface}. */ function supportsInterface(bytes4 interfaceId) external pure override returns (bool) { return interfaceId == type(IERC721).interfaceId || interfaceId == type(IERC721Metadata).interfaceId; } /** @dev IERC721 Views */ /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner_) external view override returns (uint256 balance) { return _balances[owner_]; } /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view override returns (address operator) { return _tokenApprovals[tokenId]; } /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner_, address operator) external view override returns (bool) { return _operatorApprovals[owner_][operator]; } /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view override returns (address) { return _owners[tokenId]; } /** @dev IERC721 Mutators */ /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external override { address owner_ = _owners[tokenId]; require(to != owner_, "caller may not approve themself"); require(msg.sender == owner_ || _operatorApprovals[owner_][msg.sender], "unauthorized"); _approve(to, tokenId); } /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external override { _ensureApprovedOrOwner(msg.sender, tokenId); _transfer(from, to, tokenId); if (_isContract(to)) { IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, ""); } } /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external override { _ensureApprovedOrOwner(msg.sender, tokenId); _transfer(from, to, tokenId); if (_isContract(to)) { IERC721Receiver(to).onERC721Received(msg.sender, from, tokenId, data); } } /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool approved) external override { require(operator != msg.sender, "caller may not approve themself"); _operatorApprovals[msg.sender][operator] = approved; emit ApprovalForAll(msg.sender, operator, approved); } /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external override { _ensureApprovedOrOwner(msg.sender, tokenId); _transfer(from, to, tokenId); } /** IERC721Metadata Views */ function tokenURI(uint256 tokenId) external view override returns (string memory) { return string(abi.encodePacked(_baseURI, _toString(tokenId), ".json")); } /** Useful Methods */ function changeBaseURI(string memory newURI) external onlyAdmin { _baseURI = newURI; } function totalSupply() external view returns (uint256) { return _totalSupply; } /** Helpers */ /** * @dev Approve `to` to operate on `tokenId` * * Emits a {Approval} event. */ function _approve(address to, uint256 tokenId) private { _tokenApprovals[tokenId] = to; emit Approval(_owners[tokenId], to, tokenId); } function _ensureApprovedOrOwner(address spender, uint256 tokenId) private view { address owner_ = _owners[tokenId]; require( spender == owner_ || spender == _tokenApprovals[tokenId] || _operatorApprovals[owner_][spender], "unauthorized" ); } /** * @dev Converts a `uint256` to its ASCII `string` decimal representation. */ function _toString(uint256 value) internal pure returns (string memory) { if (value == 0) { return "0"; } uint256 temp = value; uint256 digits; while (temp != 0) { digits++; temp /= 10; } bytes memory buffer = new bytes(digits); while (value != 0) { digits -= 1; buffer[digits] = bytes1(uint8(48 + uint256(value % 10))); value /= 10; } return string(buffer); } function _isContract(address account) internal view returns (bool) { // This method relies on extcodesize, which returns 0 for contracts in // construction, since the code is only stored at the end of the // constructor execution. uint256 size; assembly { size := extcodesize(account) } return size > 0; } /** * @dev Transfers `tokenId` from `from` to `to`. * As opposed to {transferFrom}, this imposes no restrictions on msg.sender. * * Requirements: * * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * * Emits a {Transfer} event. */ function _transfer( address from, address to, uint256 tokenId ) private { require(_owners[tokenId] == from, "transfer of token that is not own"); require(to != address(0), "transfer to the zero address"); // Clear approvals from the previous owner _approve(address(0), tokenId); _balances[from] -= 1; _balances[to] += 1; _owners[tokenId] = to; emit Transfer(from, to, tokenId); } }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Interface of the ERC165 standard, as defined in the * https://eips.ethereum.org/EIPS/eip-165[EIP]. * * Implementers can declare support of contract interfaces, which can then be * queried by others ({ERC165Checker}). * * For an implementation, see {ERC165}. */ interface IERC165 { /** * @dev Returns true if this contract implements the interface defined by * `interfaceId`. See the corresponding * https://eips.ethereum.org/EIPS/eip-165#how-interfaces-are-identified[EIP section] * to learn more about how these ids are created. * * This function call must use less than 30 000 gas. */ function supportsInterface(bytes4 interfaceId) external view returns (bool); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @dev Required interface of an ERC721 compliant contract. */ interface IERC721 { /** Events */ /** * @dev Emitted when `tokenId` token is transferred from `from` to `to`. */ event Transfer(address indexed from, address indexed to, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables `approved` to manage the `tokenId` token. */ event Approval(address indexed owner, address indexed approved, uint256 indexed tokenId); /** * @dev Emitted when `owner` enables or disables (`approved`) `operator` to manage all of its assets. */ event ApprovalForAll(address indexed owner, address indexed operator, bool approved); /** Views */ /** * @dev Returns the number of tokens in ``owner``'s account. */ function balanceOf(address owner) external view returns (uint256 balance); /** * @dev Returns the account approved for `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function getApproved(uint256 tokenId) external view returns (address operator); /** * @dev Returns if the `operator` is allowed to manage all of the assets of `owner`. * * See {setApprovalForAll} */ function isApprovedForAll(address owner, address operator) external view returns (bool); /** * @dev Returns the owner of the `tokenId` token. * * Requirements: * * - `tokenId` must exist. */ function ownerOf(uint256 tokenId) external view returns (address owner); /** Mutators */ /** * @dev Gives permission to `to` to transfer `tokenId` token to another account. * The approval is cleared when the token is transferred. * * Only a single account can be approved at a time, so approving the zero address clears previous approvals. * * Requirements: * * - The caller must own the token or be an approved operator. * - `tokenId` must exist. * * Emits an {Approval} event. */ function approve(address to, uint256 tokenId) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`, checking first that contract recipients * are aware of the ERC721 protocol to prevent tokens from being forever locked. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be have been allowed to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId ) external; /** * @dev Safely transfers `tokenId` token from `from` to `to`. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must exist and be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * - If `to` refers to a smart contract, it must implement {IERC721Receiver-onERC721Received}, which is called upon a safe transfer. * * Emits a {Transfer} event. */ function safeTransferFrom( address from, address to, uint256 tokenId, bytes calldata data ) external; /** * @dev Approve or remove `operator` as an operator for the caller. * Operators can call {transferFrom} or {safeTransferFrom} for any token owned by the caller. * * Requirements: * * - The `operator` cannot be the caller. * * Emits an {ApprovalForAll} event. */ function setApprovalForAll(address operator, bool approved) external; /** * @dev Transfers `tokenId` token from `from` to `to`. * * WARNING: Usage of this method is discouraged, use {safeTransferFrom} whenever possible. * * Requirements: * * - `from` cannot be the zero address. * - `to` cannot be the zero address. * - `tokenId` token must be owned by `from`. * - If the caller is not `from`, it must be approved to move this token by either {approve} or {setApprovalForAll}. * * Emits a {Transfer} event. */ function transferFrom( address from, address to, uint256 tokenId ) external; }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @title ERC-721 Non-Fungible Token Standard, optional metadata extension * @dev See https://eips.ethereum.org/EIPS/eip-721 */ interface IERC721Metadata { /** * @dev Returns the token collection name. */ function name() external view returns (string memory); /** * @dev Returns the token collection symbol. */ function symbol() external view returns (string memory); /** * @dev Returns the Uniform Resource Identifier (URI) for `tokenId` token. */ function tokenURI(uint256 tokenId) external view returns (string memory); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; /** * @title ERC721 token receiver interface * @dev Interface for any contract that wants to support safeTransfers * from ERC721 asset contracts. */ interface IERC721Receiver { /** * @dev Whenever an {IERC721} `tokenId` token is transferred to this contract via {IERC721-safeTransferFrom} * by `operator` from `from`, this function is called. * * It must return its Solidity selector to confirm the token transfer. * If any other value is returned or the interface is not implemented by the recipient, the transfer will be reverted. * * The selector can be obtained in Solidity with `IERC721.onERC721Received.selector`. */ function onERC721Received( address operator, address from, uint256 tokenId, bytes calldata data ) external returns (bytes4); }
// SPDX-License-Identifier: MIT pragma solidity ^0.8.0; abstract contract Authorized { bytes32 internal immutable _domainSeparator; address internal _authority; constructor() { bytes32 typeHash = keccak256("EIP712Domain(string name,string version,uint256 chainId,address verifyingContract)"); _domainSeparator = keccak256( abi.encode(typeHash, keccak256(bytes("MetaFans")), keccak256(bytes("1.0.0")), block.chainid, address(this)) ); } modifier authorized( address account, uint256 deadline, uint8 v, bytes32 r, bytes32 s ) { bytes32 hash = keccak256(abi.encode(keccak256("Presale(address to,uint256 deadline)"), account, deadline)); require(verify(hash, v, r, s), "unauthorized"); _; } function verify( bytes32 hash, uint8 v, bytes32 r, bytes32 s ) internal view returns (bool) { return _authority == ecrecover(keccak256(abi.encodePacked("\x19\x01", _domainSeparator, hash)), v, r, s); } }
{ "optimizer": { "enabled": true, "runs": 10000 }, "outputSelection": { "*": { "*": [ "evm.bytecode", "evm.deployedBytecode", "abi" ] } } }
Contract Security Audit
- No Contract Security Audit Submitted- Submit Audit Here
[{"inputs":[{"internalType":"string","name":"baseURI_","type":"string"},{"internalType":"uint256","name":"launchAt_","type":"uint256"},{"internalType":"address","name":"partnerA","type":"address"},{"internalType":"address","name":"partnerB","type":"address"},{"internalType":"uint256","name":"presaleAt_","type":"uint256"},{"internalType":"uint256","name":"price","type":"uint256"},{"internalType":"uint256","name":"promoQuantity_","type":"uint256"},{"internalType":"uint256","name":"totalSupplyLimit_","type":"uint256"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"approved","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Approval","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"owner","type":"address"},{"indexed":true,"internalType":"address","name":"operator","type":"address"},{"indexed":false,"internalType":"bool","name":"approved","type":"bool"}],"name":"ApprovalForAll","type":"event"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"from","type":"address"},{"indexed":true,"internalType":"address","name":"to","type":"address"},{"indexed":true,"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"Transfer","type":"event"},{"inputs":[{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"approve","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"}],"name":"balanceOf","outputs":[{"internalType":"uint256","name":"balance","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"newAdmin","type":"address"}],"name":"changeAdmin","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"string","name":"newURI","type":"string"}],"name":"changeBaseURI","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changeLaunchAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"newOwner","type":"address"}],"name":"changeOwner","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changePresaleAt","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"value","type":"uint256"}],"name":"changePrice","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[],"name":"claimRevenue","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"getApproved","outputs":[{"internalType":"address","name":"operator","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"owner_","type":"address"},{"internalType":"address","name":"operator","type":"address"}],"name":"isApprovedForAll","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"lastMintAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"launchAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"}],"name":"launchMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[],"name":"name","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"owner","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"ownerOf","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"partnerRevenue","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"presaleAt","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"wallet","type":"address"}],"name":"presaleClaimed","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"uint256","name":"quantity","type":"uint256"},{"internalType":"uint256","name":"deadline","type":"uint256"},{"internalType":"uint8","name":"v","type":"uint8"},{"internalType":"bytes32","name":"r","type":"bytes32"},{"internalType":"bytes32","name":"s","type":"bytes32"}],"name":"presaleMint","outputs":[],"stateMutability":"payable","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"address","name":"to","type":"address"}],"name":"promoMint","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"safeTransferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"address","name":"operator","type":"address"},{"internalType":"bool","name":"approved","type":"bool"}],"name":"setApprovalForAll","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes4","name":"interfaceId","type":"bytes4"}],"name":"supportsInterface","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"pure","type":"function"},{"inputs":[],"name":"symbol","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"pure","type":"function"},{"inputs":[{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"tokenURI","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"totalSupply","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"from","type":"address"},{"internalType":"address","name":"to","type":"address"},{"internalType":"uint256","name":"tokenId","type":"uint256"}],"name":"transferFrom","outputs":[],"stateMutability":"nonpayable","type":"function"}]
Contract Creation Code
6101006040523480156200001257600080fd5b506040516200289838038062002898833981016040819052620000359162000261565b60408051808201825260088152674d65746146616e7360c01b6020918201528151808301835260058152640312e302e360dc1b9082015281517f8b73c3c69bb8fe3d512ecc4cf759cc79239f7b179b0ffacaa9a75d522b39400f9181018290527f8826067b596ce53b77e02fef640758184d29f126bb576615f8e44ae164f4c9a3928101929092527f06c015bd22b4c69690933c1058878ebdfef31f9aaae40bbe86d8a09fe1b2972c60608301524660808301523060a08301529060c00160408051808303601f19018152919052805160209182012060805260008054336001600160a01b031991821681179092556009805482168317905560018054909116909117905589516200014e92506008918b019062000188565b50600a969096556001600160a01b0394851660a0529290931660c052600e5560109190915560e081905260079190915560065550620003d3565b828054620001969062000396565b90600052602060002090601f016020900481019282620001ba576000855562000205565b82601f10620001d557805160ff191683800117855562000205565b8280016001018555821562000205579182015b8281111562000205578251825591602001919060010190620001e8565b506200021392915062000217565b5090565b5b8082111562000213576000815560010162000218565b634e487b7160e01b600052604160045260246000fd5b80516001600160a01b03811681146200025c57600080fd5b919050565b600080600080600080600080610100898b0312156200027f57600080fd5b88516001600160401b03808211156200029757600080fd5b818b0191508b601f830112620002ac57600080fd5b815181811115620002c157620002c16200022e565b604051601f8201601f19908116603f01168101908382118183101715620002ec57620002ec6200022e565b81604052828152602093508e848487010111156200030957600080fd5b600091505b828210156200032d57848201840151818301850152908301906200030e565b828211156200033f5760008484830101525b809c50505050808b0151985050506200035b60408a0162000244565b95506200036b60608a0162000244565b94506080890151935060a0890151925060c0890151915060e089015190509295985092959890939650565b600181811c90821680620003ab57607f821691505b60208210811415620003cd57634e487b7160e01b600052602260045260246000fd5b50919050565b60805160a05160c05160e05161247d6200041b60003960006112340152600081816108540152610cd70152600081816108120152610c970152600061187f015261247d6000f3fe6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063b5f30f4711610095578063c87b56dd11610064578063c87b56dd146105bd578063e985e9c5146105dd578063f2c5751314610626578063f9765bc11461063957600080fd5b8063b5f30f4714610548578063b88d4fde14610568578063c3454bcc14610588578063c79b25cf1461059d57600080fd5b8063a22cb465116100d1578063a22cb465146104d3578063a2b40d19146104f3578063a5e7034014610513578063a6f9dae11461052857600080fd5b80638da5cb5b1461044f5780638f2839701461046d57806395d89b411461048d57600080fd5b8063384c40ba1161016f578063564f4f761161013e578063564f4f76146103ae5780636352211e146103c357806370a08231146103f95780637e5898cc1461042f57600080fd5b8063384c40ba1461032557806339a0c6f91461035b57806342842e0e1461037b578063549863291461039b57600080fd5b8063095ea7b3116101ab578063095ea7b3146102a457806318160ddd146102c65780631ba9288e146102e557806323b872dd1461030557600080fd5b806301ffc9a7146101d257806306fdde0314610207578063081812fc14610256575b600080fd5b3480156101de57600080fd5b506101f26101ed366004611d13565b61066f565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5060408051808201909152601381527f4d65746166616e7320436f6c6c656374696f6e0000000000000000000000000060208201525b6040516101fe9190611d63565b34801561026257600080fd5b5061028c610271366004611db4565b6000908152600560205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101fe565b3480156102b057600080fd5b506102c46102bf366004611de9565b610708565b005b3480156102d257600080fd5b506006545b6040519081526020016101fe565b3480156102f157600080fd5b506102d7610300366004611e13565b61080e565b34801561031157600080fd5b506102c4610320366004611e2e565b61089c565b34801561033157600080fd5b506102d7610340366004611e13565b6001600160a01b03166000908152600b602052604090205490565b34801561036757600080fd5b506102c4610376366004611e99565b6108b1565b34801561038757600080fd5b506102c4610396366004611e2e565b610922565b6102c46103a9366004611f68565b6109f3565b3480156103ba57600080fd5b506102c4610c8a565b3480156103cf57600080fd5b5061028c6103de366004611db4565b6000908152600460205260409020546001600160a01b031690565b34801561040557600080fd5b506102d7610414366004611e13565b6001600160a01b031660009081526002602052604090205490565b34801561043b57600080fd5b506102c461044a366004611db4565b610dec565b34801561045b57600080fd5b506001546001600160a01b031661028c565b34801561047957600080fd5b506102c4610488366004611e13565b610e4b565b34801561049957600080fd5b5060408051808201909152600381527f4d464300000000000000000000000000000000000000000000000000000000006020820152610249565b3480156104df57600080fd5b506102c46104ee366004611fb7565b610edf565b3480156104ff57600080fd5b506102c461050e366004611db4565b610fc2565b34801561051f57600080fd5b50600a546102d7565b34801561053457600080fd5b506102c4610543366004611e13565b611021565b34801561055457600080fd5b506102c4610563366004611db4565b6110b5565b34801561057457600080fd5b506102c4610583366004611ff3565b611114565b34801561059457600080fd5b50600e546102d7565b3480156105a957600080fd5b506102c46105b836600461208e565b6111d8565b3480156105c957600080fd5b506102496105d8366004611db4565b6113a5565b3480156105e957600080fd5b506101f26105f83660046120ba565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6102c4610634366004611db4565b6113d9565b34801561064557600080fd5b506102d7610654366004611e13565b6001600160a01b03166000908152600f602052604090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061070257507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b92915050565b6000818152600460205260409020546001600160a01b039081169083168114156107795760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206d6179206e6f7420617070726f7665207468656d73656c660060448201526064015b60405180910390fd5b336001600160a01b03821614806107b357506001600160a01b038116600090815260036020908152604080832033845290915290205460ff165b6107ff5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b6108098383611556565b505050565b60007f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610852575050600c5490565b7f00000000000000000000000000000000000000000000000000000000000000006001600160a01b0316826001600160a01b03161415610894575050600d5490565b506000919050565b6108a633826115d5565b610809838383611694565b6000546001600160a01b0316331461090b5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b805161091e906008906020840190611c4c565b5050565b61092c33826115d5565b610937838383611694565b813b15610809576040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03848116602483015260448201839052608060648301526000608483015283169063150b7a029060a401602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906120e4565b50505050565b604080517f22dde5f7bdca4a28ce36eaea0a433348badd063f7698a9d4b0a2fc1b4773e0a9602082015233918101829052606081018690528590859085908590600090608001604051602081830303815290604052805190602001209050610a5d81858585611854565b610aa95760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b42600e5410610afa5760405162461bcd60e51b815260206004820152601560248201527f70726573616c6520686173206e6f7420626567756e00000000000000000000006044820152606401610770565b600a544210610b4b5760405162461bcd60e51b815260206004820152601160248201527f70726573616c652068617320656e6465640000000000000000000000000000006044820152606401610770565b894210610b9a5760405162461bcd60e51b815260206004820152600d60248201527f7061737420646561646c696e65000000000000000000000000000000000000006044820152606401610770565b8a601054610ba89190612130565b3414610bf65760405162461bcd60e51b815260206004820152600d60248201527f696e636f727265637420455448000000000000000000000000000000000000006044820152606401610770565b336000908152600f6020526040812080546003928e9291610c1890849061216d565b9250508190551115610c6c5760405162461bcd60e51b815260206004820152600a60248201527f6f766572206c696d6974000000000000000000000000000000000000000000006044820152606401610770565b610c74611972565b610c7d8b6119c3565b5050505050505050505050565b6000336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610ccc5750600c80546000909155610d54565b336001600160a01b037f0000000000000000000000000000000000000000000000000000000000000000161415610d0c5750600d80546000909155610d54565b60405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b604051600090339083908381818185875af1925050503d8060008114610d96576040519150601f19603f3d011682016040523d82523d6000602084013e610d9b565b606091505b505090508061091e5760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f2073656e6420706172746e65722066756e6473000000006044820152606401610770565b6000546001600160a01b03163314610e465760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600a55565b6001546001600160a01b03163314610ea55760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216331415610f385760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206d6179206e6f7420617070726f7665207468656d73656c66006044820152606401610770565b3360008181526003602090815260408083206001600160a01b0387168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b0316331461101c5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b601055565b6001546001600160a01b0316331461107b5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461110f5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600e55565b61111e33846115d5565b611129858585611694565b833b156111d1576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a029061117d9033908990889088908890600401612185565b602060405180830381600087803b15801561119757600080fd5b505af11580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906120e4565b505b5050505050565b6000546001600160a01b031633146112325760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b7f000000000000000000000000000000000000000000000000000000000000000082106112a15760405162461bcd60e51b815260206004820152601060248201527f6f7665722070726f6d6f206c696d6974000000000000000000000000000000006044820152606401610770565b6000828152600460205260409020546001600160a01b0316156113065760405162461bcd60e51b815260206004820152600e60248201527f616c7265616479206d696e7465640000000000000000000000000000000000006044820152606401610770565b6001600160a01b038116600090815260026020526040812080546001929061132f90849061216d565b909155505060008281526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915590518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060086113b283611b12565b6040516020016113c3929190612267565b6040516020818303038152906040529050919050565b42600a541061142a5760405162461bcd60e51b815260206004820152601460248201527f6c61756e636820686173206e6f7420626567756e0000000000000000000000006044820152606401610770565b806010546114389190612130565b34146114865760405162461bcd60e51b815260206004820152600d60248201527f696e636f727265637420455448000000000000000000000000000000000000006044820152606401610770565b600a8111156114d75760405162461bcd60e51b815260206004820152600a60248201527f6f766572206c696d6974000000000000000000000000000000000000000000006044820152606401610770565b336000908152600b6020526040902054610258906114f59042612371565b116115425760405162461bcd60e51b815260206004820152600c60248201527f636f6f6c696e6720646f776e00000000000000000000000000000000000000006044820152606401610770565b61154a611972565b611553816119c3565b50565b600081815260056020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038781169182179092556004909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600460205260409020546001600160a01b0390811690831681148061161857506000828152600560205260409020546001600160a01b038481169116145b8061164857506001600160a01b0380821660009081526003602090815260408083209387168352929052205460ff165b6108095760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b6000818152600460205260409020546001600160a01b038481169116146117235760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572206f6620746f6b656e2074686174206973206e6f74206f7760448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610770565b6001600160a01b0382166117795760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610770565b611784600082611556565b6001600160a01b03831660009081526002602052604081208054600192906117ad908490612371565b90915550506001600160a01b03821660009081526002602052604081208054600192906117db90849061216d565b909155505060008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6040517f190100000000000000000000000000000000000000000000000000000000000060208201527f0000000000000000000000000000000000000000000000000000000000000000602282015260428101859052600090600190606201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561192f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001516009546001600160a01b039182169116149695505050505050565b600061197f600a346123b7565b9050600061198d8234612371565b905080600c60008282546119a1919061216d565b9250508190555081600d60008282546119ba919061216d565b90915550505050565b600754816006546119d4919061216d565b1115611a225760405162461bcd60e51b815260206004820152601760248201527f6f76657220746f74616c20737570706c79206c696d69740000000000000000006044820152606401610770565b60005b81811015611abf57336004600083600654611a40919061216d565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600654611a80919061216d565b60405133906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a480611ab7816123cb565b915050611a25565b503360009081526002602052604081208054839290611adf90849061216d565b925050819055508060066000828254611af8919061216d565b9091555050336000908152600b6020526040902042905550565b606081611b5257505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b7c5780611b66816123cb565b9150611b759050600a836123b7565b9150611b56565b60008167ffffffffffffffff811115611b9757611b97611e6a565b6040519080825280601f01601f191660200182016040528015611bc1576020820181803683370190505b5090505b8415611c4457611bd6600183612371565b9150611be3600a86612404565b611bee90603061216d565b60f81b818381518110611c0357611c03612418565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c3d600a866123b7565b9450611bc5565b949350505050565b828054611c58906121f7565b90600052602060002090601f016020900481019282611c7a5760008555611cc0565b82601f10611c9357805160ff1916838001178555611cc0565b82800160010185558215611cc0579182015b82811115611cc0578251825591602001919060010190611ca5565b50611ccc929150611cd0565b5090565b5b80821115611ccc5760008155600101611cd1565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461155357600080fd5b600060208284031215611d2557600080fd5b8135611d3081611ce5565b9392505050565b60005b83811015611d52578181015183820152602001611d3a565b838111156109ed5750506000910152565b6020815260008251806020840152611d82816040850160208701611d37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600060208284031215611dc657600080fd5b5035919050565b80356001600160a01b0381168114611de457600080fd5b919050565b60008060408385031215611dfc57600080fd5b611e0583611dcd565b946020939093013593505050565b600060208284031215611e2557600080fd5b611d3082611dcd565b600080600060608486031215611e4357600080fd5b611e4c84611dcd565b9250611e5a60208501611dcd565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611eab57600080fd5b813567ffffffffffffffff80821115611ec357600080fd5b818401915084601f830112611ed757600080fd5b813581811115611ee957611ee9611e6a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611f2f57611f2f611e6a565b81604052828152876020848701011115611f4857600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600060a08688031215611f8057600080fd5b8535945060208601359350604086013560ff81168114611f9f57600080fd5b94979396509394606081013594506080013592915050565b60008060408385031215611fca57600080fd5b611fd383611dcd565b915060208301358015158114611fe857600080fd5b809150509250929050565b60008060008060006080868803121561200b57600080fd5b61201486611dcd565b945061202260208701611dcd565b935060408601359250606086013567ffffffffffffffff8082111561204657600080fd5b818801915088601f83011261205a57600080fd5b81358181111561206957600080fd5b89602082850101111561207b57600080fd5b9699959850939650602001949392505050565b600080604083850312156120a157600080fd5b823591506120b160208401611dcd565b90509250929050565b600080604083850312156120cd57600080fd5b6120d683611dcd565b91506120b160208401611dcd565b6000602082840312156120f657600080fd5b8151611d3081611ce5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561216857612168612101565b500290565b6000821982111561218057612180612101565b500190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b600181811c9082168061220b57607f821691505b60208210811415612245577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000815161225d818560208601611d37565b9290920192915050565b600080845481600182811c91508083168061228357607f831692505b60208084108214156122bc577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b8180156122d057600181146122ff5761232c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952848901965061232c565b60008b81526020902060005b868110156123245781548b82015290850190830161230b565b505084890196505b50505050505061236861233f828661224b565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815260050190565b95945050505050565b60008282101561238357612383612101565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826123c6576123c6612388565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156123fd576123fd612101565b5060010190565b60008261241357612413612388565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220fffe759d52f0d04878a025870c7ec36367281de4af98aef99247b1cf84339c3164736f6c6343000809003300000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000061a53f500000000000000000000000004bf75497fa89681637a3c4da9ec5d44b10585b65000000000000000000000000d68547f4b566a54dfb9f320c995a2841e03f64a20000000000000000000000000000000000000000000000000000000061a14ad0000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f7777772e6d65746166616e732e636f6d2f636f6c6c656374696f6e732f6d65746166616e732f000000000000000000000000000000000000
Deployed Bytecode
0x6080604052600436106101cd5760003560e01c80638da5cb5b116100f7578063b5f30f4711610095578063c87b56dd11610064578063c87b56dd146105bd578063e985e9c5146105dd578063f2c5751314610626578063f9765bc11461063957600080fd5b8063b5f30f4714610548578063b88d4fde14610568578063c3454bcc14610588578063c79b25cf1461059d57600080fd5b8063a22cb465116100d1578063a22cb465146104d3578063a2b40d19146104f3578063a5e7034014610513578063a6f9dae11461052857600080fd5b80638da5cb5b1461044f5780638f2839701461046d57806395d89b411461048d57600080fd5b8063384c40ba1161016f578063564f4f761161013e578063564f4f76146103ae5780636352211e146103c357806370a08231146103f95780637e5898cc1461042f57600080fd5b8063384c40ba1461032557806339a0c6f91461035b57806342842e0e1461037b578063549863291461039b57600080fd5b8063095ea7b3116101ab578063095ea7b3146102a457806318160ddd146102c65780631ba9288e146102e557806323b872dd1461030557600080fd5b806301ffc9a7146101d257806306fdde0314610207578063081812fc14610256575b600080fd5b3480156101de57600080fd5b506101f26101ed366004611d13565b61066f565b60405190151581526020015b60405180910390f35b34801561021357600080fd5b5060408051808201909152601381527f4d65746166616e7320436f6c6c656374696f6e0000000000000000000000000060208201525b6040516101fe9190611d63565b34801561026257600080fd5b5061028c610271366004611db4565b6000908152600560205260409020546001600160a01b031690565b6040516001600160a01b0390911681526020016101fe565b3480156102b057600080fd5b506102c46102bf366004611de9565b610708565b005b3480156102d257600080fd5b506006545b6040519081526020016101fe565b3480156102f157600080fd5b506102d7610300366004611e13565b61080e565b34801561031157600080fd5b506102c4610320366004611e2e565b61089c565b34801561033157600080fd5b506102d7610340366004611e13565b6001600160a01b03166000908152600b602052604090205490565b34801561036757600080fd5b506102c4610376366004611e99565b6108b1565b34801561038757600080fd5b506102c4610396366004611e2e565b610922565b6102c46103a9366004611f68565b6109f3565b3480156103ba57600080fd5b506102c4610c8a565b3480156103cf57600080fd5b5061028c6103de366004611db4565b6000908152600460205260409020546001600160a01b031690565b34801561040557600080fd5b506102d7610414366004611e13565b6001600160a01b031660009081526002602052604090205490565b34801561043b57600080fd5b506102c461044a366004611db4565b610dec565b34801561045b57600080fd5b506001546001600160a01b031661028c565b34801561047957600080fd5b506102c4610488366004611e13565b610e4b565b34801561049957600080fd5b5060408051808201909152600381527f4d464300000000000000000000000000000000000000000000000000000000006020820152610249565b3480156104df57600080fd5b506102c46104ee366004611fb7565b610edf565b3480156104ff57600080fd5b506102c461050e366004611db4565b610fc2565b34801561051f57600080fd5b50600a546102d7565b34801561053457600080fd5b506102c4610543366004611e13565b611021565b34801561055457600080fd5b506102c4610563366004611db4565b6110b5565b34801561057457600080fd5b506102c4610583366004611ff3565b611114565b34801561059457600080fd5b50600e546102d7565b3480156105a957600080fd5b506102c46105b836600461208e565b6111d8565b3480156105c957600080fd5b506102496105d8366004611db4565b6113a5565b3480156105e957600080fd5b506101f26105f83660046120ba565b6001600160a01b03918216600090815260036020908152604080832093909416825291909152205460ff1690565b6102c4610634366004611db4565b6113d9565b34801561064557600080fd5b506102d7610654366004611e13565b6001600160a01b03166000908152600f602052604090205490565b60007fffffffff0000000000000000000000000000000000000000000000000000000082167f80ac58cd00000000000000000000000000000000000000000000000000000000148061070257507fffffffff0000000000000000000000000000000000000000000000000000000082167f5b5e139f00000000000000000000000000000000000000000000000000000000145b92915050565b6000818152600460205260409020546001600160a01b039081169083168114156107795760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206d6179206e6f7420617070726f7665207468656d73656c660060448201526064015b60405180910390fd5b336001600160a01b03821614806107b357506001600160a01b038116600090815260036020908152604080832033845290915290205460ff165b6107ff5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b6108098383611556565b505050565b60007f0000000000000000000000004bf75497fa89681637a3c4da9ec5d44b10585b656001600160a01b0316826001600160a01b03161415610852575050600c5490565b7f000000000000000000000000d68547f4b566a54dfb9f320c995a2841e03f64a26001600160a01b0316826001600160a01b03161415610894575050600d5490565b506000919050565b6108a633826115d5565b610809838383611694565b6000546001600160a01b0316331461090b5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b805161091e906008906020840190611c4c565b5050565b61092c33826115d5565b610937838383611694565b813b15610809576040517f150b7a020000000000000000000000000000000000000000000000000000000081523360048201526001600160a01b03848116602483015260448201839052608060648301526000608483015283169063150b7a029060a401602060405180830381600087803b1580156109b557600080fd5b505af11580156109c9573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906109ed91906120e4565b50505050565b604080517f22dde5f7bdca4a28ce36eaea0a433348badd063f7698a9d4b0a2fc1b4773e0a9602082015233918101829052606081018690528590859085908590600090608001604051602081830303815290604052805190602001209050610a5d81858585611854565b610aa95760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b42600e5410610afa5760405162461bcd60e51b815260206004820152601560248201527f70726573616c6520686173206e6f7420626567756e00000000000000000000006044820152606401610770565b600a544210610b4b5760405162461bcd60e51b815260206004820152601160248201527f70726573616c652068617320656e6465640000000000000000000000000000006044820152606401610770565b894210610b9a5760405162461bcd60e51b815260206004820152600d60248201527f7061737420646561646c696e65000000000000000000000000000000000000006044820152606401610770565b8a601054610ba89190612130565b3414610bf65760405162461bcd60e51b815260206004820152600d60248201527f696e636f727265637420455448000000000000000000000000000000000000006044820152606401610770565b336000908152600f6020526040812080546003928e9291610c1890849061216d565b9250508190551115610c6c5760405162461bcd60e51b815260206004820152600a60248201527f6f766572206c696d6974000000000000000000000000000000000000000000006044820152606401610770565b610c74611972565b610c7d8b6119c3565b5050505050505050505050565b6000336001600160a01b037f0000000000000000000000004bf75497fa89681637a3c4da9ec5d44b10585b65161415610ccc5750600c80546000909155610d54565b336001600160a01b037f000000000000000000000000d68547f4b566a54dfb9f320c995a2841e03f64a2161415610d0c5750600d80546000909155610d54565b60405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b604051600090339083908381818185875af1925050503d8060008114610d96576040519150601f19603f3d011682016040523d82523d6000602084013e610d9b565b606091505b505090508061091e5760405162461bcd60e51b815260206004820152601c60248201527f6661696c656420746f2073656e6420706172746e65722066756e6473000000006044820152606401610770565b6000546001600160a01b03163314610e465760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600a55565b6001546001600160a01b03163314610ea55760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6001600160a01b038216331415610f385760405162461bcd60e51b815260206004820152601f60248201527f63616c6c6572206d6179206e6f7420617070726f7665207468656d73656c66006044820152606401610770565b3360008181526003602090815260408083206001600160a01b0387168085529083529281902080547fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff001686151590811790915590519081529192917f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a35050565b6000546001600160a01b0316331461101c5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b601055565b6001546001600160a01b0316331461107b5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600180547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0392909216919091179055565b6000546001600160a01b0316331461110f5760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b600e55565b61111e33846115d5565b611129858585611694565b833b156111d1576040517f150b7a020000000000000000000000000000000000000000000000000000000081526001600160a01b0385169063150b7a029061117d9033908990889088908890600401612185565b602060405180830381600087803b15801561119757600080fd5b505af11580156111ab573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906111cf91906120e4565b505b5050505050565b6000546001600160a01b031633146112325760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b7f00000000000000000000000000000000000000000000000000000000000000fa82106112a15760405162461bcd60e51b815260206004820152601060248201527f6f7665722070726f6d6f206c696d6974000000000000000000000000000000006044820152606401610770565b6000828152600460205260409020546001600160a01b0316156113065760405162461bcd60e51b815260206004820152600e60248201527f616c7265616479206d696e7465640000000000000000000000000000000000006044820152606401610770565b6001600160a01b038116600090815260026020526040812080546001929061132f90849061216d565b909155505060008281526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b03851690811790915590518492907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a45050565b606060086113b283611b12565b6040516020016113c3929190612267565b6040516020818303038152906040529050919050565b42600a541061142a5760405162461bcd60e51b815260206004820152601460248201527f6c61756e636820686173206e6f7420626567756e0000000000000000000000006044820152606401610770565b806010546114389190612130565b34146114865760405162461bcd60e51b815260206004820152600d60248201527f696e636f727265637420455448000000000000000000000000000000000000006044820152606401610770565b600a8111156114d75760405162461bcd60e51b815260206004820152600a60248201527f6f766572206c696d6974000000000000000000000000000000000000000000006044820152606401610770565b336000908152600b6020526040902054610258906114f59042612371565b116115425760405162461bcd60e51b815260206004820152600c60248201527f636f6f6c696e6720646f776e00000000000000000000000000000000000000006044820152606401610770565b61154a611972565b611553816119c3565b50565b600081815260056020908152604080832080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b038781169182179092556004909352818420549151859492909116917f8c5be1e5ebec7d5bd14f71427d1e84f3dd0314c0f7b2291e5b200ac8c7c3b92591a45050565b6000818152600460205260409020546001600160a01b0390811690831681148061161857506000828152600560205260409020546001600160a01b038481169116145b8061164857506001600160a01b0380821660009081526003602090815260408083209387168352929052205460ff165b6108095760405162461bcd60e51b815260206004820152600c60248201527f756e617574686f72697a656400000000000000000000000000000000000000006044820152606401610770565b6000818152600460205260409020546001600160a01b038481169116146117235760405162461bcd60e51b815260206004820152602160248201527f7472616e73666572206f6620746f6b656e2074686174206973206e6f74206f7760448201527f6e000000000000000000000000000000000000000000000000000000000000006064820152608401610770565b6001600160a01b0382166117795760405162461bcd60e51b815260206004820152601c60248201527f7472616e7366657220746f20746865207a65726f2061646472657373000000006044820152606401610770565b611784600082611556565b6001600160a01b03831660009081526002602052604081208054600192906117ad908490612371565b90915550506001600160a01b03821660009081526002602052604081208054600192906117db90849061216d565b909155505060008181526004602052604080822080547fffffffffffffffffffffffff0000000000000000000000000000000000000000166001600160a01b0386811691821790925591518493918716917fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef91a4505050565b6040517f190100000000000000000000000000000000000000000000000000000000000060208201527f452932d0d6b62dfac8d4800a86a783259255d389e183b976a6279b9c8b1a28c6602282015260428101859052600090600190606201604080517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe08184030181528282528051602091820120600084529083018083525260ff871690820152606081018590526080810184905260a0016020604051602081039080840390855afa15801561192f573d6000803e3d6000fd5b50506040517fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe001516009546001600160a01b039182169116149695505050505050565b600061197f600a346123b7565b9050600061198d8234612371565b905080600c60008282546119a1919061216d565b9250508190555081600d60008282546119ba919061216d565b90915550505050565b600754816006546119d4919061216d565b1115611a225760405162461bcd60e51b815260206004820152601760248201527f6f76657220746f74616c20737570706c79206c696d69740000000000000000006044820152606401610770565b60005b81811015611abf57336004600083600654611a40919061216d565b815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b0316021790555080600654611a80919061216d565b60405133906000907fddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef908290a480611ab7816123cb565b915050611a25565b503360009081526002602052604081208054839290611adf90849061216d565b925050819055508060066000828254611af8919061216d565b9091555050336000908152600b6020526040902042905550565b606081611b5257505060408051808201909152600181527f3000000000000000000000000000000000000000000000000000000000000000602082015290565b8160005b8115611b7c5780611b66816123cb565b9150611b759050600a836123b7565b9150611b56565b60008167ffffffffffffffff811115611b9757611b97611e6a565b6040519080825280601f01601f191660200182016040528015611bc1576020820181803683370190505b5090505b8415611c4457611bd6600183612371565b9150611be3600a86612404565b611bee90603061216d565b60f81b818381518110611c0357611c03612418565b60200101907effffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1916908160001a905350611c3d600a866123b7565b9450611bc5565b949350505050565b828054611c58906121f7565b90600052602060002090601f016020900481019282611c7a5760008555611cc0565b82601f10611c9357805160ff1916838001178555611cc0565b82800160010185558215611cc0579182015b82811115611cc0578251825591602001919060010190611ca5565b50611ccc929150611cd0565b5090565b5b80821115611ccc5760008155600101611cd1565b7fffffffff000000000000000000000000000000000000000000000000000000008116811461155357600080fd5b600060208284031215611d2557600080fd5b8135611d3081611ce5565b9392505050565b60005b83811015611d52578181015183820152602001611d3a565b838111156109ed5750506000910152565b6020815260008251806020840152611d82816040850160208701611d37565b601f017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0169190910160400192915050565b600060208284031215611dc657600080fd5b5035919050565b80356001600160a01b0381168114611de457600080fd5b919050565b60008060408385031215611dfc57600080fd5b611e0583611dcd565b946020939093013593505050565b600060208284031215611e2557600080fd5b611d3082611dcd565b600080600060608486031215611e4357600080fd5b611e4c84611dcd565b9250611e5a60208501611dcd565b9150604084013590509250925092565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b600060208284031215611eab57600080fd5b813567ffffffffffffffff80821115611ec357600080fd5b818401915084601f830112611ed757600080fd5b813581811115611ee957611ee9611e6a565b604051601f82017fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0908116603f01168101908382118183101715611f2f57611f2f611e6a565b81604052828152876020848701011115611f4857600080fd5b826020860160208301376000928101602001929092525095945050505050565b600080600080600060a08688031215611f8057600080fd5b8535945060208601359350604086013560ff81168114611f9f57600080fd5b94979396509394606081013594506080013592915050565b60008060408385031215611fca57600080fd5b611fd383611dcd565b915060208301358015158114611fe857600080fd5b809150509250929050565b60008060008060006080868803121561200b57600080fd5b61201486611dcd565b945061202260208701611dcd565b935060408601359250606086013567ffffffffffffffff8082111561204657600080fd5b818801915088601f83011261205a57600080fd5b81358181111561206957600080fd5b89602082850101111561207b57600080fd5b9699959850939650602001949392505050565b600080604083850312156120a157600080fd5b823591506120b160208401611dcd565b90509250929050565b600080604083850312156120cd57600080fd5b6120d683611dcd565b91506120b160208401611dcd565b6000602082840312156120f657600080fd5b8151611d3081611ce5565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b6000817fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff048311821515161561216857612168612101565b500290565b6000821982111561218057612180612101565b500190565b60006001600160a01b03808816835280871660208401525084604083015260806060830152826080830152828460a0840137600060a0848401015260a07fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe0601f85011683010190509695505050505050565b600181811c9082168061220b57607f821691505b60208210811415612245577f4e487b7100000000000000000000000000000000000000000000000000000000600052602260045260246000fd5b50919050565b6000815161225d818560208601611d37565b9290920192915050565b600080845481600182811c91508083168061228357607f831692505b60208084108214156122bc577f4e487b710000000000000000000000000000000000000000000000000000000086526022600452602486fd5b8180156122d057600181146122ff5761232c565b7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0086168952848901965061232c565b60008b81526020902060005b868110156123245781548b82015290850190830161230b565b505084890196505b50505050505061236861233f828661224b565b7f2e6a736f6e000000000000000000000000000000000000000000000000000000815260050190565b95945050505050565b60008282101561238357612383612101565b500390565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601260045260246000fd5b6000826123c6576123c6612388565b500490565b60007fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff8214156123fd576123fd612101565b5060010190565b60008261241357612413612388565b500690565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052603260045260246000fdfea2646970667358221220fffe759d52f0d04878a025870c7ec36367281de4af98aef99247b1cf84339c3164736f6c63430008090033
Constructor Arguments (ABI-Encoded and is the last bytes of the Contract Creation Code above)
00000000000000000000000000000000000000000000000000000000000001000000000000000000000000000000000000000000000000000000000061a53f500000000000000000000000004bf75497fa89681637a3c4da9ec5d44b10585b65000000000000000000000000d68547f4b566a54dfb9f320c995a2841e03f64a20000000000000000000000000000000000000000000000000000000061a14ad0000000000000000000000000000000000000000000000000011c37937e08000000000000000000000000000000000000000000000000000000000000000000fa0000000000000000000000000000000000000000000000000000000000002710000000000000000000000000000000000000000000000000000000000000002e68747470733a2f2f7777772e6d65746166616e732e636f6d2f636f6c6c656374696f6e732f6d65746166616e732f000000000000000000000000000000000000
-----Decoded View---------------
Arg [0] : baseURI_ (string): https://www.metafans.com/collections/metafans/
Arg [1] : launchAt_ (uint256): 1638219600
Arg [2] : partnerA (address): 0x4bF75497Fa89681637A3c4Da9eC5d44b10585b65
Arg [3] : partnerB (address): 0xd68547F4B566a54dFb9f320c995a2841e03f64a2
Arg [4] : presaleAt_ (uint256): 1637960400
Arg [5] : price (uint256): 80000000000000000
Arg [6] : promoQuantity_ (uint256): 250
Arg [7] : totalSupplyLimit_ (uint256): 10000
-----Encoded View---------------
11 Constructor Arguments found :
Arg [0] : 0000000000000000000000000000000000000000000000000000000000000100
Arg [1] : 0000000000000000000000000000000000000000000000000000000061a53f50
Arg [2] : 0000000000000000000000004bf75497fa89681637a3c4da9ec5d44b10585b65
Arg [3] : 000000000000000000000000d68547f4b566a54dfb9f320c995a2841e03f64a2
Arg [4] : 0000000000000000000000000000000000000000000000000000000061a14ad0
Arg [5] : 000000000000000000000000000000000000000000000000011c37937e080000
Arg [6] : 00000000000000000000000000000000000000000000000000000000000000fa
Arg [7] : 0000000000000000000000000000000000000000000000000000000000002710
Arg [8] : 000000000000000000000000000000000000000000000000000000000000002e
Arg [9] : 68747470733a2f2f7777772e6d65746166616e732e636f6d2f636f6c6c656374
Arg [10] : 696f6e732f6d65746166616e732f000000000000000000000000000000000000
Deployed Bytecode Sourcemap
124:5071:2:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;844:197:3;;;;;;;;;;-1:-1:-1;844:197:3;;;;;:::i;:::-;;:::i;:::-;;;611:14:8;;604:22;586:41;;574:2;559:18;844:197:3;;;;;;;;1484:104:2;;;;;;;;;;-1:-1:-1;1554:28:2;;;;;;;;;;;;;;;;;1484:104;;;;;;;:::i;1420:132:3:-;;;;;;;;;;-1:-1:-1;1420:132:3;;;;;:::i;:::-;1490:16;1522:24;;;:15;:24;;;;;;-1:-1:-1;;;;;1522:24:3;;1420:132;;;;-1:-1:-1;;;;;1697:55:8;;;1679:74;;1667:2;1652:18;1420:132:3;1533:226:8;2580:299:3;;;;;;;;;;-1:-1:-1;2580:299:3;;;;;:::i;:::-;;:::i;:::-;;6390:87;;;;;;;;;;-1:-1:-1;6459:12:3;;6390:87;;;2370:25:8;;;2358:2;2343:18;6390:87:3;2224:177:8;3834:239:2;;;;;;;;;;-1:-1:-1;3834:239:2;;;;;:::i;:::-;;:::i;5858:194:3:-;;;;;;;;;;-1:-1:-1;5858:194:3;;;;;:::i;:::-;;:::i;1783:107:2:-;;;;;;;;;;-1:-1:-1;1783:107:2;;;;;:::i;:::-;-1:-1:-1;;;;;1865:19:2;1842:7;1865:19;;;:11;:19;;;;;;;1783:107;6290:94:3;;;;;;;;;;-1:-1:-1;6290:94:3;;;;;:::i;:::-;;:::i;3566:311::-;;;;;;;;;;-1:-1:-1;3566:311:3;;;;;:::i;:::-;;:::i;2920:572:2:-;;;;;;:::i;:::-;;:::i;4113:432::-;;;;;;;;;;;;;:::i;1985:111:3:-;;;;;;;;;;-1:-1:-1;1985:111:3;;;;;:::i;:::-;2051:7;2074:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2074:16:3;;1985:111;1156:121;;;;;;;;;;-1:-1:-1;1156:121:3;;;;;:::i;:::-;-1:-1:-1;;;;;1254:17:3;1223:15;1254:17;;;:9;:17;;;;;;;1156:121;2225:88:2;;;;;;;;;;-1:-1:-1;2225:88:2;;;;;:::i;:::-;;:::i;531:75:0:-;;;;;;;;;;-1:-1:-1;594:6:0;;-1:-1:-1;;;;;594:6:0;531:75;;343:88;;;;;;;;;;-1:-1:-1;343:88:0;;;;;:::i;:::-;;:::i;1656:90:2:-;;;;;;;;;;-1:-1:-1;1728:12:2;;;;;;;;;;;;;;;;;1656:90;;5080:277:3;;;;;;;;;;-1:-1:-1;5080:277:3;;;;;:::i;:::-;;:::i;2415:82:2:-;;;;;;;;;;-1:-1:-1;2415:82:2;;;;;:::i;:::-;;:::i;1896:81::-;;;;;;;;;;-1:-1:-1;1962:9:2;;1896:81;;437:88:0;;;;;;;;;;-1:-1:-1;437:88:0;;;;;:::i;:::-;;:::i;2319:90:2:-;;;;;;;;;;-1:-1:-1;2319:90:2;;;;;:::i;:::-;;:::i;4431:339:3:-;;;;;;;;;;-1:-1:-1;4431:339:3;;;;;:::i;:::-;;:::i;1983:83:2:-;;;;;;;;;;-1:-1:-1;2050:10:2;;1983:83;;3498:299;;;;;;;;;;-1:-1:-1;3498:299:2;;;;;:::i;:::-;;:::i;6092:165:3:-;;;;;;;;;;-1:-1:-1;6092:165:3;;;;;:::i;:::-;;:::i;1696:154::-;;;;;;;;;;-1:-1:-1;1696:154:3;;;;;:::i;:::-;-1:-1:-1;;;;;1808:26:3;;;1788:4;1808:26;;;:18;:26;;;;;;;;:36;;;;;;;;;;;;;;;1696:154;2534:380:2;;;;;;:::i;:::-;;:::i;2072:115::-;;;;;;;;;;-1:-1:-1;2072:115:2;;;;;:::i;:::-;-1:-1:-1;;;;;2158:23:2;2135:7;2158:23;;;:15;:23;;;;;;;2072:115;844:197:3;923:4;943:40;;;958:25;943:40;;:92;;-1:-1:-1;987:48:3;;;1002:33;987:48;943:92;936:99;844:197;-1:-1:-1;;844:197:3:o;2580:299::-;2651:14;2668:16;;;:7;:16;;;;;;-1:-1:-1;;;;;2668:16:3;;;;2701:12;;;;;2693:56;;;;-1:-1:-1;;;2693:56:3;;6544:2:8;2693:56:3;;;6526:21:8;6583:2;6563:18;;;6556:30;6622:33;6602:18;;;6595:61;6673:18;;2693:56:3;;;;;;;;;2764:10;-1:-1:-1;;;;;2764:20:3;;;;:62;;-1:-1:-1;;;;;;2788:26:3;;;;;;:18;:26;;;;;;;;2815:10;2788:38;;;;;;;;;;2764:62;2756:87;;;;-1:-1:-1;;;2756:87:3;;6904:2:8;2756:87:3;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;2756:87:3;6702:336:8;2756:87:3;2852:21;2861:2;2865:7;2852:8;:21::i;:::-;2644:235;2580:299;;:::o;3834:239:2:-;3897:7;3927:9;-1:-1:-1;;;;;3917:19:2;:6;-1:-1:-1;;;;;3917:19:2;;3913:65;;;-1:-1:-1;;3954:16:2;;;3834:239::o;3913:65::-;4000:9;-1:-1:-1;;;;;3990:19:2;:6;-1:-1:-1;;;;;3990:19:2;;3986:65;;;-1:-1:-1;;4027:16:2;;;3834:239::o;3986:65::-;-1:-1:-1;4066:1:2;;3834:239;-1:-1:-1;3834:239:2:o;5858:194:3:-;5968:43;5991:10;6003:7;5968:22;:43::i;:::-;6018:28;6028:4;6034:2;6038:7;6018:9;:28::i;6290:94::-;207:6:0;;-1:-1:-1;;;;;207:6:0;193:10;:20;185:45;;;;-1:-1:-1;;;185:45:0;;6904:2:8;185:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;185:45:0;6702:336:8;185:45:0;6361:17:3;;::::1;::::0;:8:::1;::::0;:17:::1;::::0;::::1;::::0;::::1;:::i;:::-;;6290:94:::0;:::o;3566:311::-;3680:43;3703:10;3715:7;3680:22;:43::i;:::-;3730:28;3740:4;3746:2;3750:7;3730:9;:28::i;:::-;7893:20;;7935:8;3767:105;;3797:67;;;;;3834:10;3797:67;;;7371:34:8;-1:-1:-1;;;;;7441:15:8;;;7421:18;;;7414:43;7473:18;;;7466:34;;;7536:3;7516:18;;;7509:31;-1:-1:-1;7556:19:8;;;7549:30;3797:36:3;;;;;7596:19:8;;3797:67:3;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;3566:311;;;:::o;2920:572:2:-;635:80:1;;;646:49;635:80;;;8082:25:8;3066:10:2;8123:18:8;;;8116:83;;;8215:18;;;8208:34;;;3078:8:2;;3088:1;;3091;;3094;;610:12:1;;8055:18:8;;635:80:1;;;;;;;;;;;;625:91;;;;;;610:106;;733:21;740:4;746:1;749;752;733:6;:21::i;:::-;725:46;;;;-1:-1:-1;;;725:46:1;;6904:2:8;725:46:1;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;725:46:1;6702:336:8;725:46:1;3125:15:2::1;3112:10;;:28;3104:62;;;::::0;-1:-1:-1;;;3104:62:2;;8455:2:8;3104:62:2::1;::::0;::::1;8437:21:8::0;8494:2;8474:18;;;8467:30;8533:23;8513:18;;;8506:51;8574:18;;3104:62:2::1;8253:345:8::0;3104:62:2::1;3199:9;;3181:15;:27;3173:57;;;::::0;-1:-1:-1;;;3173:57:2;;8805:2:8;3173:57:2::1;::::0;::::1;8787:21:8::0;8844:2;8824:18;;;8817:30;8883:19;8863:18;;;8856:47;8920:18;;3173:57:2::1;8603:341:8::0;3173:57:2::1;3263:8;3245:15;:26;3237:52;;;::::0;-1:-1:-1;;;3237:52:2;;9151:2:8;3237:52:2::1;::::0;::::1;9133:21:8::0;9190:2;9170:18;;;9163:30;9229:15;9209:18;;;9202:43;9262:18;;3237:52:2::1;8949:337:8::0;3237:52:2::1;3326:8;3317:6;;:17;;;;:::i;:::-;3304:9;:30;3296:56;;;::::0;-1:-1:-1;;;3296:56:2;;9915:2:8;3296:56:2::1;::::0;::::1;9897:21:8::0;9954:2;9934:18;;;9927:30;9993:15;9973:18;;;9966:43;10026:18;;3296:56:2::1;9713:337:8::0;3296:56:2::1;3384:10;3368:27;::::0;;;:15:::1;:27;::::0;;;;:39;;357:1:::1;::::0;3399:8;;3368:27;:39:::1;::::0;3399:8;;3368:39:::1;:::i;:::-;;;;;;;3367:58;;3359:81;;;::::0;-1:-1:-1;;;3359:81:2;;10390:2:8;3359:81:2::1;::::0;::::1;10372:21:8::0;10429:2;10409:18;;;10402:30;10468:12;10448:18;;;10441:40;10498:18;;3359:81:2::1;10188:334:8::0;3359:81:2::1;3449:15;:13;:15::i;:::-;3471;3477:8;3471:5;:15::i;:::-;603:184:1::0;2920:572:2;;;;;;;;;;:::o;4113:432::-;4153:14;4180:10;-1:-1:-1;;;;;4194:9:2;4180:23;;4176:251;;;-1:-1:-1;4223:16:2;;;4267:1;4248:20;;;4176:251;;;4286:10;-1:-1:-1;;;;;4300:9:2;4286:23;;4282:145;;;-1:-1:-1;4329:16:2;;;4373:1;4354:20;;;4282:145;;;4397:22;;-1:-1:-1;;;4397:22:2;;6904:2:8;4397:22:2;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;4397:22:2;6702:336:8;4282:145:2;4451:34;;4436:9;;4451:10;;4474:6;;4436:9;4451:34;4436:9;4451:34;4474:6;4451:10;:34;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4435:50;;;4502:4;4494:45;;;;-1:-1:-1;;;4494:45:2;;10939:2:8;4494:45:2;;;10921:21:8;10978:2;10958:18;;;10951:30;11017;10997:18;;;10990:58;11065:18;;4494:45:2;10737:352:8;2225:88:2;207:6:0;;-1:-1:-1;;;;;207:6:0;193:10;:20;185:45;;;;-1:-1:-1;;;185:45:0;;6904:2:8;185:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;185:45:0;6702:336:8;185:45:0;2290:9:2::1;:17:::0;2225:88::o;343::0:-;300:6;;-1:-1:-1;;;;;300:6:0;286:10;:20;278:45;;;;-1:-1:-1;;;278:45:0;;6904:2:8;278:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;278:45:0;6702:336:8;278:45:0;408:6:::1;:17:::0;;;::::1;-1:-1:-1::0;;;;;408:17:0;;;::::1;::::0;;;::::1;::::0;;343:88::o;5080:277:3:-;-1:-1:-1;;;;;5173:22:3;;5185:10;5173:22;;5165:66;;;;-1:-1:-1;;;5165:66:3;;6544:2:8;5165:66:3;;;6526:21:8;6583:2;6563:18;;;6556:30;6622:33;6602:18;;;6595:61;6673:18;;5165:66:3;6342:355:8;5165:66:3;5259:10;5240:30;;;;:18;:30;;;;;;;;-1:-1:-1;;;;;5240:40:3;;;;;;;;;;;;:51;;;;;;;;;;;;;5305:46;;586:41:8;;;5240:40:3;;5259:10;5305:46;;559:18:8;5305:46:3;;;;;;;5080:277;;:::o;2415:82:2:-;207:6:0;;-1:-1:-1;;;;;207:6:0;193:10;:20;185:45;;;;-1:-1:-1;;;185:45:0;;6904:2:8;185:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;185:45:0;6702:336:8;185:45:0;2477:6:2::1;:14:::0;2415:82::o;437:88:0:-;300:6;;-1:-1:-1;;;;;300:6:0;286:10;:20;278:45;;;;-1:-1:-1;;;278:45:0;;6904:2:8;278:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;278:45:0;6702:336:8;278:45:0;502:6:::1;:17:::0;;;::::1;-1:-1:-1::0;;;;;502:17:0;;;::::1;::::0;;;::::1;::::0;;437:88::o;2319:90:2:-;207:6:0;;-1:-1:-1;;;;;207:6:0;193:10;:20;185:45;;;;-1:-1:-1;;;185:45:0;;6904:2:8;185:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;185:45:0;6702:336:8;185:45:0;2385:10:2::1;:18:::0;2319:90::o;4431:339:3:-;4571:43;4594:10;4606:7;4571:22;:43::i;:::-;4621:28;4631:4;4637:2;4641:7;4621:9;:28::i;:::-;7893:20;;7935:8;4658:107;;4688:69;;;;;-1:-1:-1;;;;;4688:36:3;;;;;:69;;4725:10;;4737:4;;4743:7;;4752:4;;;;4688:69;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;4658:107;4431:339;;;;;:::o;3498:299:2:-;207:6:0;;-1:-1:-1;;;;;207:6:0;193:10;:20;185:45;;;;-1:-1:-1;;;185:45:0;;6904:2:8;185:45:0;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;185:45:0;6702:336:8;185:45:0;3590:14:2::1;3580:7;:24;3572:53;;;::::0;-1:-1:-1;;;3572:53:2;;12045:2:8;3572:53:2::1;::::0;::::1;12027:21:8::0;12084:2;12064:18;;;12057:30;12123:18;12103;;;12096:46;12159:18;;3572:53:2::1;11843:340:8::0;3572:53:2::1;3668:1;3640:16:::0;;;:7:::1;:16;::::0;;;;;-1:-1:-1;;;;;3640:16:2::1;:30:::0;3632:57:::1;;;::::0;-1:-1:-1;;;3632:57:2;;12390:2:8;3632:57:2::1;::::0;::::1;12372:21:8::0;12429:2;12409:18;;;12402:30;12468:16;12448:18;;;12441:44;12502:18;;3632:57:2::1;12188:338:8::0;3632:57:2::1;-1:-1:-1::0;;;;;3698:13:2;::::1;;::::0;;;:9:::1;:13;::::0;;;;:18;;3715:1:::1;::::0;3698:13;:18:::1;::::0;3715:1;;3698:18:::1;:::i;:::-;::::0;;;-1:-1:-1;;3723:16:2::1;::::0;;;:7:::1;:16;::::0;;;;;:21;;;::::1;-1:-1:-1::0;;;;;3723:21:2;::::1;::::0;;::::1;::::0;;;3758:33;;3723:16;;;3758:33:::1;::::0;3723:16;;3758:33:::1;3498:299:::0;;:::o;6092:165:3:-;6159:13;6212:8;6222:18;6232:7;6222:9;:18::i;:::-;6195:55;;;;;;;;;:::i;:::-;;;;;;;;;;;;;6181:70;;6092:165;;;:::o;2534:380:2:-;2616:15;2604:9;;:27;2596:60;;;;-1:-1:-1;;;2596:60:2;;15030:2:8;2596:60:2;;;15012:21:8;15069:2;15049:18;;;15042:30;15108:22;15088:18;;;15081:50;15148:18;;2596:60:2;14828:344:8;2596:60:2;2693:8;2684:6;;:17;;;;:::i;:::-;2671:9;:30;2663:56;;;;-1:-1:-1;;;2663:56:2;;9915:2:8;2663:56:2;;;9897:21:8;9954:2;9934:18;;;9927:30;9993:15;9973:18;;;9966:43;10026:18;;2663:56:2;9713:337:8;2663:56:2;253:2;2734:8;:24;;2726:47;;;;-1:-1:-1;;;2726:47:2;;10390:2:8;2726:47:2;;;10372:21:8;10429:2;10409:18;;;10402:30;10468:12;10448:18;;;10441:40;10498:18;;2726:47:2;10188:334:8;2726:47:2;2818:10;2806:23;;;;:11;:23;;;;;;301:10;;2788:41;;:15;:41;:::i;:::-;:57;2780:82;;;;-1:-1:-1;;;2780:82:2;;15509:2:8;2780:82:2;;;15491:21:8;15548:2;15528:18;;;15521:30;15587:14;15567:18;;;15560:42;15619:18;;2780:82:2;15307:336:8;2780:82:2;2871:15;:13;:15::i;:::-;2893;2899:8;2893:5;:15::i;:::-;2534:380;:::o;6603:150:3:-;6665:24;;;;:15;:24;;;;;;;;:29;;;;-1:-1:-1;;;;;6665:29:3;;;;;;;;;6717:7;:16;;;;;;;6708:39;;6665:24;;6717:16;;;;;6708:39;;;6603:150;;:::o;6759:275::-;6845:14;6862:16;;;:7;:16;;;;;;-1:-1:-1;;;;;6862:16:3;;;;6903:17;;;;;:56;;-1:-1:-1;6935:24:3;;;;:15;:24;;;;;;-1:-1:-1;;;;;6924:35:3;;;6935:24;;6924:35;6903:56;:95;;;-1:-1:-1;;;;;;6963:26:3;;;;;;;:18;:26;;;;;;;;:35;;;;;;;;;;;;6903:95;6887:141;;;;-1:-1:-1;;;6887:141:3;;6904:2:8;6887:141:3;;;6886:21:8;6943:2;6923:18;;;6916:30;6982:14;6962:18;;;6955:42;7014:18;;6887:141:3;6702:336:8;8262:446:3;8367:16;;;;:7;:16;;;;;;-1:-1:-1;;;;;8367:24:3;;;:16;;:24;8359:70;;;;-1:-1:-1;;;8359:70:3;;15850:2:8;8359:70:3;;;15832:21:8;15889:2;15869:18;;;15862:30;15928:34;15908:18;;;15901:62;15999:3;15979:18;;;15972:31;16020:19;;8359:70:3;15648:397:8;8359:70:3;-1:-1:-1;;;;;8444:16:3;;8436:57;;;;-1:-1:-1;;;8436:57:3;;16252:2:8;8436:57:3;;;16234:21:8;16291:2;16271:18;;;16264:30;16330;16310:18;;;16303:58;16378:18;;8436:57:3;16050:352:8;8436:57:3;8550:29;8567:1;8571:7;8550:8;:29::i;:::-;-1:-1:-1;;;;;8588:15:3;;;;;;:9;:15;;;;;:20;;8607:1;;8588:15;:20;;8607:1;;8588:20;:::i;:::-;;;;-1:-1:-1;;;;;;;8615:13:3;;;;;;:9;:13;;;;;:18;;8632:1;;8615:13;:18;;8632:1;;8615:18;:::i;:::-;;;;-1:-1:-1;;8640:16:3;;;;:7;:16;;;;;;:21;;;;-1:-1:-1;;;;;8640:21:3;;;;;;;;;8675:27;;8640:16;;8675:27;;;;;;;8262:446;;;:::o;793:232:1:-;956:52;;16677:66:8;956:52:1;;;16665:79:8;985:16:1;16760:11:8;;;16753:27;16796:12;;;16789:28;;;902:4:1;;936:83;;16833:12:8;;956:52:1;;;;;;;;;;;;;946:63;;956:52;946:63;;;;936:83;;;;;;;;;17083:25:8;17156:4;17144:17;;17124:18;;;17117:45;17178:18;;;17171:34;;;17221:18;;;17214:34;;;17055:19;;936:83:1;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;936:83:1;;;;;922:10;;-1:-1:-1;;;;;922:97:1;;;:10;;:97;;793:232;-1:-1:-1;;;;;;793:232:1:o;5005:187:2:-;5045:14;5062;5074:2;5062:9;:14;:::i;:::-;5045:31;-1:-1:-1;5083:14:2;5100:18;5045:31;5100:9;:18;:::i;:::-;5083:35;;5147:6;5127:16;;:26;;;;;;;:::i;:::-;;;;;;;;5180:6;5160:16;;:26;;;;;;;:::i;:::-;;;;-1:-1:-1;;;;5005:187:2:o;4576:423::-;4659:17;;4647:8;4632:12;;:23;;;;:::i;:::-;:44;;4624:80;;;;-1:-1:-1;;;4624:80:2;;17775:2:8;4624:80:2;;;17757:21:8;17814:2;17794:18;;;17787:30;17853:25;17833:18;;;17826:53;17896:18;;4624:80:2;17573:347:8;4624:80:2;4718:9;4713:160;4737:8;4733:1;:12;4713:160;;;4789:10;4761:7;:25;4784:1;4769:12;;:16;;;;:::i;:::-;4761:25;;;;;;;;;;;;:38;;;;;-1:-1:-1;;;;;4761:38:2;;;;;-1:-1:-1;;;;;4761:38:2;;;;;;4863:1;4848:12;;:16;;;;:::i;:::-;4815:50;;4836:10;;4832:1;;4815:50;;4832:1;;4815:50;4747:3;;;;:::i;:::-;;;;4713:160;;;-1:-1:-1;4891:10:2;4881:21;;;;:9;:21;;;;;:33;;4906:8;;4881:21;:33;;4906:8;;4881:33;:::i;:::-;;;;;;;;4937:8;4921:12;;:24;;;;;;;:::i;:::-;;;;-1:-1:-1;;4964:10:2;4952:23;;;;:11;:23;;;;;4978:15;4952:41;;-1:-1:-1;4576:423:2:o;7132:455:3:-;7189:13;7215:10;7211:43;;-1:-1:-1;;7236:10:3;;;;;;;;;;;;;;;;;;7132:455::o;7211:43::-;7275:5;7260:12;7308:62;7315:9;;7308:62;;7335:8;;;;:::i;:::-;;-1:-1:-1;7352:10:3;;-1:-1:-1;7360:2:3;7352:10;;:::i;:::-;;;7308:62;;;7376:19;7408:6;7398:17;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7398:17:3;;7376:39;;7422:132;7429:10;;7422:132;;7450:11;7460:1;7450:11;;:::i;:::-;;-1:-1:-1;7513:10:3;7521:2;7513:5;:10;:::i;:::-;7500:24;;:2;:24;:::i;:::-;7487:39;;7470:6;7477;7470:14;;;;;;;;:::i;:::-;;;;:56;;;;;;;;;;-1:-1:-1;7535:11:3;7544:2;7535:11;;:::i;:::-;;;7422:132;;;7574:6;7132:455;-1:-1:-1;;;;7132:455:3:o;-1:-1:-1:-;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;14:177:8;99:66;92:5;88:78;81:5;78:89;68:117;;181:1;178;171:12;196:245;254:6;307:2;295:9;286:7;282:23;278:32;275:52;;;323:1;320;313:12;275:52;362:9;349:23;381:30;405:5;381:30;:::i;:::-;430:5;196:245;-1:-1:-1;;;196:245:8:o;638:258::-;710:1;720:113;734:6;731:1;728:13;720:113;;;810:11;;;804:18;791:11;;;784:39;756:2;749:10;720:113;;;851:6;848:1;845:13;842:48;;;-1:-1:-1;;886:1:8;868:16;;861:27;638:258::o;901:442::-;1050:2;1039:9;1032:21;1013:4;1082:6;1076:13;1125:6;1120:2;1109:9;1105:18;1098:34;1141:66;1200:6;1195:2;1184:9;1180:18;1175:2;1167:6;1163:15;1141:66;:::i;:::-;1259:2;1247:15;1264:66;1243:88;1228:104;;;;1334:2;1224:113;;901:442;-1:-1:-1;;901:442:8:o;1348:180::-;1407:6;1460:2;1448:9;1439:7;1435:23;1431:32;1428:52;;;1476:1;1473;1466:12;1428:52;-1:-1:-1;1499:23:8;;1348:180;-1:-1:-1;1348:180:8:o;1764:196::-;1832:20;;-1:-1:-1;;;;;1881:54:8;;1871:65;;1861:93;;1950:1;1947;1940:12;1861:93;1764:196;;;:::o;1965:254::-;2033:6;2041;2094:2;2082:9;2073:7;2069:23;2065:32;2062:52;;;2110:1;2107;2100:12;2062:52;2133:29;2152:9;2133:29;:::i;:::-;2123:39;2209:2;2194:18;;;;2181:32;;-1:-1:-1;;;1965:254:8:o;2406:186::-;2465:6;2518:2;2506:9;2497:7;2493:23;2489:32;2486:52;;;2534:1;2531;2524:12;2486:52;2557:29;2576:9;2557:29;:::i;2597:328::-;2674:6;2682;2690;2743:2;2731:9;2722:7;2718:23;2714:32;2711:52;;;2759:1;2756;2749:12;2711:52;2782:29;2801:9;2782:29;:::i;:::-;2772:39;;2830:38;2864:2;2853:9;2849:18;2830:38;:::i;:::-;2820:48;;2915:2;2904:9;2900:18;2887:32;2877:42;;2597:328;;;;;:::o;2930:184::-;2982:77;2979:1;2972:88;3079:4;3076:1;3069:15;3103:4;3100:1;3093:15;3119:981;3188:6;3241:2;3229:9;3220:7;3216:23;3212:32;3209:52;;;3257:1;3254;3247:12;3209:52;3297:9;3284:23;3326:18;3367:2;3359:6;3356:14;3353:34;;;3383:1;3380;3373:12;3353:34;3421:6;3410:9;3406:22;3396:32;;3466:7;3459:4;3455:2;3451:13;3447:27;3437:55;;3488:1;3485;3478:12;3437:55;3524:2;3511:16;3546:2;3542;3539:10;3536:36;;;3552:18;;:::i;:::-;3686:2;3680:9;3748:4;3740:13;;3591:66;3736:22;;;3760:2;3732:31;3728:40;3716:53;;;3784:18;;;3804:22;;;3781:46;3778:72;;;3830:18;;:::i;:::-;3870:10;3866:2;3859:22;3905:2;3897:6;3890:18;3945:7;3940:2;3935;3931;3927:11;3923:20;3920:33;3917:53;;;3966:1;3963;3956:12;3917:53;4022:2;4017;4013;4009:11;4004:2;3996:6;3992:15;3979:46;4067:1;4045:15;;;4062:2;4041:24;4034:35;;;;-1:-1:-1;4049:6:8;3119:981;-1:-1:-1;;;;;3119:981:8:o;4105:543::-;4198:6;4206;4214;4222;4230;4283:3;4271:9;4262:7;4258:23;4254:33;4251:53;;;4300:1;4297;4290:12;4251:53;4336:9;4323:23;4313:33;;4393:2;4382:9;4378:18;4365:32;4355:42;;4447:2;4436:9;4432:18;4419:32;4491:4;4484:5;4480:16;4473:5;4470:27;4460:55;;4511:1;4508;4501:12;4460:55;4105:543;;;;-1:-1:-1;4534:5:8;;4586:2;4571:18;;4558:32;;-1:-1:-1;4637:3:8;4622:19;4609:33;;4105:543;-1:-1:-1;;4105:543:8:o;4653:347::-;4718:6;4726;4779:2;4767:9;4758:7;4754:23;4750:32;4747:52;;;4795:1;4792;4785:12;4747:52;4818:29;4837:9;4818:29;:::i;:::-;4808:39;;4897:2;4886:9;4882:18;4869:32;4944:5;4937:13;4930:21;4923:5;4920:32;4910:60;;4966:1;4963;4956:12;4910:60;4989:5;4979:15;;;4653:347;;;;;:::o;5005:808::-;5102:6;5110;5118;5126;5134;5187:3;5175:9;5166:7;5162:23;5158:33;5155:53;;;5204:1;5201;5194:12;5155:53;5227:29;5246:9;5227:29;:::i;:::-;5217:39;;5275:38;5309:2;5298:9;5294:18;5275:38;:::i;:::-;5265:48;;5360:2;5349:9;5345:18;5332:32;5322:42;;5415:2;5404:9;5400:18;5387:32;5438:18;5479:2;5471:6;5468:14;5465:34;;;5495:1;5492;5485:12;5465:34;5533:6;5522:9;5518:22;5508:32;;5578:7;5571:4;5567:2;5563:13;5559:27;5549:55;;5600:1;5597;5590:12;5549:55;5640:2;5627:16;5666:2;5658:6;5655:14;5652:34;;;5682:1;5679;5672:12;5652:34;5727:7;5722:2;5713:6;5709:2;5705:15;5701:24;5698:37;5695:57;;;5748:1;5745;5738:12;5695:57;5005:808;;;;-1:-1:-1;5005:808:8;;-1:-1:-1;5779:2:8;5771:11;;5801:6;5005:808;-1:-1:-1;;;5005:808:8:o;5818:254::-;5886:6;5894;5947:2;5935:9;5926:7;5922:23;5918:32;5915:52;;;5963:1;5960;5953:12;5915:52;5999:9;5986:23;5976:33;;6028:38;6062:2;6051:9;6047:18;6028:38;:::i;:::-;6018:48;;5818:254;;;;;:::o;6077:260::-;6145:6;6153;6206:2;6194:9;6185:7;6181:23;6177:32;6174:52;;;6222:1;6219;6212:12;6174:52;6245:29;6264:9;6245:29;:::i;:::-;6235:39;;6293:38;6327:2;6316:9;6312:18;6293:38;:::i;7626:249::-;7695:6;7748:2;7736:9;7727:7;7723:23;7719:32;7716:52;;;7764:1;7761;7754:12;7716:52;7796:9;7790:16;7815:30;7839:5;7815:30;:::i;9291:184::-;9343:77;9340:1;9333:88;9440:4;9437:1;9430:15;9464:4;9461:1;9454:15;9480:228;9520:7;9646:1;9578:66;9574:74;9571:1;9568:81;9563:1;9556:9;9549:17;9545:105;9542:131;;;9653:18;;:::i;:::-;-1:-1:-1;9693:9:8;;9480:228::o;10055:128::-;10095:3;10126:1;10122:6;10119:1;10116:13;10113:39;;;10132:18;;:::i;:::-;-1:-1:-1;10168:9:8;;10055:128::o;11094:744::-;11298:4;-1:-1:-1;;;;;11408:2:8;11400:6;11396:15;11385:9;11378:34;11460:2;11452:6;11448:15;11443:2;11432:9;11428:18;11421:43;;11500:6;11495:2;11484:9;11480:18;11473:34;11543:3;11538:2;11527:9;11523:18;11516:31;11584:6;11578:3;11567:9;11563:19;11556:35;11642:6;11634;11628:3;11617:9;11613:19;11600:49;11699:1;11693:3;11684:6;11673:9;11669:22;11665:32;11658:43;11828:3;11758:66;11753:2;11745:6;11741:15;11737:88;11726:9;11722:104;11718:114;11710:122;;11094:744;;;;;;;;:::o;12531:437::-;12610:1;12606:12;;;;12653;;;12674:61;;12728:4;12720:6;12716:17;12706:27;;12674:61;12781:2;12773:6;12770:14;12750:18;12747:38;12744:218;;;12818:77;12815:1;12808:88;12919:4;12916:1;12909:15;12947:4;12944:1;12937:15;12744:218;;12531:437;;;:::o;13099:185::-;13141:3;13179:5;13173:12;13194:52;13239:6;13234:3;13227:4;13220:5;13216:16;13194:52;:::i;:::-;13262:16;;;;;13099:185;-1:-1:-1;;13099:185:8:o;13407:1416::-;13684:3;13713:1;13746:6;13740:13;13776:3;13798:1;13826:9;13822:2;13818:18;13808:28;;13886:2;13875:9;13871:18;13908;13898:61;;13952:4;13944:6;13940:17;13930:27;;13898:61;13978:2;14026;14018:6;14015:14;13995:18;13992:38;13989:222;;;14065:77;14060:3;14053:90;14166:4;14163:1;14156:15;14196:4;14191:3;14184:17;13989:222;14227:18;14254:162;;;;14430:1;14425:320;;;;14220:525;;14254:162;14302:66;14291:9;14287:82;14282:3;14275:95;14399:6;14394:3;14390:16;14383:23;;14254:162;;14425:320;13046:1;13039:14;;;13083:4;13070:18;;14520:1;14534:165;14548:6;14545:1;14542:13;14534:165;;;14626:14;;14613:11;;;14606:35;14669:16;;;;14563:10;;14534:165;;;14538:3;;14728:6;14723:3;14719:16;14712:23;;14220:525;;;;;;;14761:56;14786:30;14812:3;14804:6;14786:30;:::i;:::-;13361:7;13349:20;;13394:1;13385:11;;13289:113;14761:56;14754:63;13407:1416;-1:-1:-1;;;;;13407:1416:8:o;15177:125::-;15217:4;15245:1;15242;15239:8;15236:34;;;15250:18;;:::i;:::-;-1:-1:-1;15287:9:8;;15177:125::o;17259:184::-;17311:77;17308:1;17301:88;17408:4;17405:1;17398:15;17432:4;17429:1;17422:15;17448:120;17488:1;17514;17504:35;;17519:18;;:::i;:::-;-1:-1:-1;17553:9:8;;17448:120::o;17925:195::-;17964:3;17995:66;17988:5;17985:77;17982:103;;;18065:18;;:::i;:::-;-1:-1:-1;18112:1:8;18101:13;;17925:195::o;18125:112::-;18157:1;18183;18173:35;;18188:18;;:::i;:::-;-1:-1:-1;18222:9:8;;18125:112::o;18242:184::-;18294:77;18291:1;18284:88;18391:4;18388:1;18381:15;18415:4;18412:1;18405:15
Swarm Source
ipfs://fffe759d52f0d04878a025870c7ec36367281de4af98aef99247b1cf84339c31
Loading...
Loading
Loading...
Loading
[ Download: CSV Export ]
A token is a representation of an on-chain or off-chain asset. The token page shows information such as price, total supply, holders, transfers and social links. Learn more about this page in our Knowledge Base.