'Read and merge host files.
Args:
byte_io: The BytesIO object of the completed download.
Return:
A set of the merged hosts.'

def _merge_file(self, byte_io):

    error_count = 0
    line_count = 0
    try:
        f = get_fileobj(byte_io)
    except (OSError, zipfile.BadZipFile, zipfile.LargeZipFile, LookupError) as e:
        message.error('adblock:    Error    while    reading    {}:    {}    -    {}'.format(byte_io.name, e.__class__.__name__, e))
        return
    for line in f:
        line_count += 1
        ok = self._parse_line(line)
        if (not ok):
            error_count += 1
    log.misc.debug('{}:    read    {}    lines'.format(byte_io.name, line_count))
    if (error_count > 0):
        message.error('adblock:    {}    read    errors    for    {}'.format(error_count, byte_io.name))
