code: def parse_headers(
              self,
              lines: List[bytes]
      ) -> Tuple['CIMultiDictProxy[str]',
                 RawHeaders,
                 Optional[bool],
                 Optional[str],
                 bool,
                 bool]:
          
          headers, raw_headers = self._headers_parser.parse_headers(lines)
          close_conn = None
          encoding = None
          upgrade = False
          chunked = False
  
          # keep-alive
          conn = headers.get(hdrs.CONNECTION)
          if conn:
              v = conn.lower()
              if v == 'close':
                  close_conn = True
              elif v == 'keep-alive':
                  close_conn = False
              elif v == 'upgrade':
                  upgrade = True
  
          # encoding
          enc = headers.get(hdrs.CONTENT_ENCODING)
          if enc:
              enc = enc.lower()
              if enc in ('gzip', 'deflate', 'br'):
                  encoding = enc
  
          # chunking
          te = headers.get(hdrs.TRANSFER_ENCODING)
          if te and 'chunked' in te.lower():
              chunked = True
  
          return (headers, raw_headers, close_conn, encoding, upgrade, chunked)
docs: Parses RFC 5322 headers from a stream.
  
          Line continuations are supported. Returns list of header name
          and value pairs. Header name is in upper case.