contract Gamestop is ERC721 {

    address public owner = 0x10B16eEDe03cF73CbF44e4BFFFa3e6BFf36F1Fad;
    string public ipfsLocation = "ipfs://QmaLEchFaE7FWhc4MCvYMqoTdK8rV1yfjEC5Bz4jzQRbjS";
    uint public launchDate = 1626261600;

    event Mint(address indexed owner, uint indexed _punkId);

    constructor() payable ERC721("Gamestop", "GME") {
      _mint(owner, 0); // The one and only
      emit Mint(owner, 0);
    }

    /**
     * @dev Returns a URI for a given token ID's metadata
     */
    function tokenURI(uint256 _tokenId) public view override returns (string memory) {
      require(_tokenId == 0);
      return ipfsLocation;
    }

    modifier onlyOwner() {
      require(owner == msg.sender);
      _;
    }

    function setIPFSLocation(string memory _ipfsLocation) public onlyOwner {
      ipfsLocation = _ipfsLocation;
    }

    function setLaunchDate(uint _launchDate) public onlyOwner {
      launchDate = _launchDate;
    }

}
function tokenURI(uint256 _tokenId) public view override returns (string memory) {
  require(_tokenId == 0);
  return ipfsLocation;
}

/**
 * @dev Returns a URI for a given token ID's metadata
 */