def METHOD_NAME(self, lines):
    source_unit = None
    comment = ""
    if not isinstance(lines, list):
        lines = lines.split(b"\n")
    for lineoffset, line in enumerate(lines):
        if line.endswith(b"\r"):
            self.eol = "\r\n"
        line = line.decode(self.encoding).rstrip("\n").rstrip("\r")
        if lineoffset == 0 and line == "## active ##":
            self.is_active = True
            continue
        header_meta_data = (
            line.startswith("## ")
            and not line.startswith("## TAG")
            and not line.startswith("## MAX_LENGTH")
        )
        if header_meta_data:
            self._headers.append(line)
            continue
        if len(line) == 0 and not source_unit:
            if len(self.units) == 0:
                self._headers.append(line)  # Append blank lines to header
            # else skip blank lines
            continue
        if source_unit:
            # If we have a source_unit get the target
            source_unit.rawtarget = line
            if line != source_unit.source:
                source_unit.target = strip_ok(line)
            else:
                source_unit.target = ""
            source_unit = None
            continue
        is_comment = line.startswith("#") and (
            not line.startswith("##")
            or line.startswith("## TAG")
            or line.startswith("## MAX_LENGTH")
        )
        if is_comment:
            # Read comments, *including* meta tags (e.g. '## TAG')
            comment += line[1:].strip() + "\n"
        if line.startswith(";"):
            source_unit = self.addsourceunit(line[1:])
            source_unit.eol = self.eol
            source_unit.addlocation(
                "%s:%d" % (self.filename[len(self.location_root) :], lineoffset + 1)
            )
            if comment is not None:
                source_unit.addnote(comment[:-1], "developer")
                comment = ""