from typing import Tuple, Optional

def pack_data(message: str, ecc_bytes: int) -> bytes:
    """
    Упаковывает сообщение с добавлением ECC, инвертирует биты и прячет количество байтов для коррекции.

    :param message: Исходное сообщение (строка).
    :param ecc_bytes: Количество байтов для коррекции ошибок.
    :return: Упакованные данные в виде байтов.
    """
    ...

def unpack_data(data: bytes) -> Tuple[Optional[str], bool]:
    """
    Распаковывает данные, извлекает количество байтов для коррекции и восстанавливает сообщение.

    :param data: Упакованные данные в виде байтов.
    :return: Кортеж из двух элементов:
             - Восстановленное сообщение (или None, если данные невозможно восстановить).
             - Флаг ошибки (True, если данные невозможно восстановить, иначе False).
    """
    ...