contract Cgt is ERC20PresetMinterPauser, Ownable {
    using SafeMath for uint256;
    
    uint256 public constant MAX_SUPPLY = 100000 ether;

    // ------------------------
    // CONSTRUCTOR
    // ------------------------

    constructor () ERC20PresetMinterPauser('Cage Governance Token', 'CGT') {
        // Silence
    }


    // ------------------------
    // INTERNAL
    // ------------------------

    function _mint(address account, uint256 amount) internal virtual override {
        require(ERC20.totalSupply() + amount <= MAX_SUPPLY, '_mint: Cap exceeded!');

        super._mint(account, amount);
    }

}
function _mint(address account, uint256 amount) internal virtual override {
    require(ERC20.totalSupply() + amount <= MAX_SUPPLY, '_mint: Cap exceeded!');

    super._mint(account, amount);
}

// ------------------------
// INTERNAL
// ------------------------