Getting error using unedited contract from the wizard

Hi
I am trying to deploy a contract from the OpenZeppelin Wizard.
I downloaded the zip and then today unzipped it and loaded it into remix.

I am getting the following error when trying to compile it.

TypeError: Contract "gToken" should be marked as abstract.
--> gToken.sol:13:1:
|
13 | contract gToken is Initializable, E ... VotesUpgradeable, UUPSUpgradeable {
| ^ (Relevant source part starts here and spans across multiple lines).
Note: Missing implementation:
--> @openzeppelin/contracts-upgradeable@4.2.0/proxy/utils/UUPSUpgradeable.sol:63:5:
|
63 | function _authorizeUpgrade(address newImplementation) internal virtual;
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

The dependancies are loaded

:1234: Code to reproduce

// SPDX-License-Identifier: abstract
pragma solidity ^0.8.2;

import "@openzeppelin/contracts-upgradeable@4.2.0/token/ERC20/ERC20Upgradeable.sol";
import "@openzeppelin/contracts-upgradeable@4.2.0/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable@4.2.0/security/PausableUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable@4.2.0/access/AccessControlUpgradeable.sol";

import "@openzeppelin/contracts-upgradeable@4.2.0/token/ERC20/extensions/ERC20VotesUpgradeable.sol";
import "@openzeppelin/contracts-upgradeable@4.2.0/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts-upgradeable@4.2.0/proxy/utils/UUPSUpgradeable.sol";

contract gToken is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, PausableUpgradeable, AccessControlUpgradeable, ERC20VotesUpgradeable, UUPSUpgradeable {
    bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");
    bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");


    function initialize() initializer public {
        __ERC20_init("GOOGLIETH_DAO", "dGGL");
        __ERC20Burnable_init();
        __Pausable_init();
        __AccessControl_init();
        __ERC20Permit_init("GOOGLIETH_DAO");
        __UUPSUpgradeable_init();

        _setupRole(DEFAULT_ADMIN_ROLE, msg.sender);
        _setupRole(PAUSER_ROLE, msg.sender);
        _mint(msg.sender, 1000 * 10 ** decimals());
        _setupRole(MINTER_ROLE, msg.sender);

    }

    function pause() public onlyRole(PAUSER_ROLE) {
        _pause();
    }

    function unpause() public onlyRole(PAUSER_ROLE) {
        _unpause();
    }

    function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) {
        _mint(to, amount);
    }

    function _beforeTokenTransfer(address from, address to, uint256 amount)
        internal
        whenNotPaused
        override
    {
        super._beforeTokenTransfer(from, to, amount);
    }


    function _afterTokenTransfer(address from, address to, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._afterTokenTransfer(from, to, amount);
    }

    function _mint(address to, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._mint(to, amount);
    }

    function _burn(address account, uint256 amount)
        internal
        override(ERC20Upgradeable, ERC20VotesUpgradeable)
    {
        super._burn(account, amount);
    }
}

:computer: Environment

Remix on Windows10 64, OpenZeppelin wizard, deploying to Matic Mumbai.

Any and all help is appreciated.
Have a good day.

Hi, welcome! :wave:

I am not sure how did you use the UUPS pattern, but I just had a try, and it re-write the function _authorizeUpgrade, and there is also a comment for this function The {_authorizeUpgrade} function must be overridden to include access restriction to the upgrade mechanism

I can't reproduce this. Selecting the same features, _authorizeUpgrade is included in the output. Are you sure you didn't edit the code?