abstract contract ERC20Burnable is Context, ERC20BurnableMaxSupply {
    /**
     * @dev Destroys `amount` tokens from the caller. CANNOT BE USED TO BURN OTHER PEOPLES TOKENS
     * ONLY BBRA AND ONLY FROM THE PERSON CALLING THE FUNCTION
     *
     * See {ERC20-_burn}.
     */
    function burn(uint256 amount) public virtual {
        _burn(_msgSender(), amount);
    }
}
/**
 * @dev Extension of {ERC20} that allows token holders to destroy both their own
 * tokens and those that they have an allowance for, in a way that can be
 * recognized off-chain (via event analysis).
 */
function burn(uint256 amount) public virtual {
    _burn(_msgSender(), amount);
}

/**
 * @dev Destroys `amount` tokens from the caller. CANNOT BE USED TO BURN OTHER PEOPLES TOKENS
 * ONLY BBRA AND ONLY FROM THE PERSON CALLING THE FUNCTION
 *
 * See {ERC20-_burn}.
 */