contract CicadaCryptographersNFT is ERC721Enumerable, Ownable {

    string private constant INIT__NFT_NAME = 'Cryptographers';
    string private constant INIT__NFT_SYMBOL = 'CRYPTO';

    string private _tokenEvenBaseURI = 'ipfs://QmWr3ZmmJG9f8oww6W3TWq6qCkyQXqYW3cmqK6dAQwpdq1';
    string private _tokenOddBaseURI = 'ipfs://QmUgpLoRDLWFbKu7yEZniBn4sascmEwEMbbfiKVZypSMUe';

    constructor(
    ) ERC721(
        INIT__NFT_NAME,
        INIT__NFT_SYMBOL
    ) {
        for (uint256 i = 0; i < 100; i++) {
            _safeMint(_msgSender(), i);
        }
    }

    /**
     * @dev See {IERC721Metadata-tokenURI}.
     */
    function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
        require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

        if(tokenId % 2 == 0) {
            return _tokenEvenBaseURI;
        }

        return _tokenOddBaseURI;
    }

}
function tokenURI(uint256 tokenId) public view virtual override returns (string memory) {
    require(_exists(tokenId), "ERC721Metadata: URI query for nonexistent token");

    if(tokenId % 2 == 0) {
        return _tokenEvenBaseURI;
    }

    return _tokenOddBaseURI;
}

/**
 * @dev See {IERC721Metadata-tokenURI}.
 */