code: def _guess_type(mrz_lines):
          
          try:
              if len(mrz_lines) == 3:
                  return 'TD1'
              elif len(mrz_lines) == 2 and len(mrz_lines[0]) < 40 and len(mrz_lines[1]) < 40:
                  return 'MRVB' if mrz_lines[0][0].upper() == 'V' else 'TD2'
              elif len(mrz_lines) == 2:
                  return 'MRVA' if mrz_lines[0][0].upper() == 'V' else 'TD3'
              else:
                  return None
          except Exception: #pylint: disable=broad-except
              return None
docs: Guesses the type of the MRZ from given lines. Returns 'TD1', 'TD2', 'TD3', 'MRVA', 'MRVB' or None.
          The algorithm is basically just counting lines, looking at their length and checking whether the first character is a 'V'
  
          >>> MRZ._guess_type([]) is None
          True
          >>> MRZ._guess_type([1]) is None
          True
          >>> MRZ._guess_type([1,2]) is None  # No len() for numbers
          True
          >>> MRZ._guess_type(['a','b'])  # This way passes
          'TD2'
          >>> MRZ._guess_type(['*'*40, '*'*40])
          'TD3'
          >>> MRZ._guess_type([1,2,3])
          'TD1'
          >>> MRZ._guess_type(['V'*40, '*'*40])
          'MRVA'
          >>> MRZ._guess_type(['V'*36, '*'*36])
          'MRVB'