docs: def determine_extended_chord5(chord, shorthand=False, no_inversions=False,
          no_polychords=False):
      """Determine the names of an extended chord."""
      if len(chord) != 5:
          # warning raise exeption: not an extended chord
          return False
  
      def inversion_exhauster(chord, shorthand, tries, result, polychords):
          """Recursive helper function."""
          def add_result(short):
              result.append((short, tries, chord[0]))
  
          triads = determine_triad(chord[:3], True, True)
          sevenths = determine_seventh(chord[:4], True, True, True)
  
          # Determine polychords
          if tries == 1 and not no_polychords:
              polychords += determine_polychords(chord, shorthand)
  
          intval4 = intervals.determine(chord[0], chord[4])
          for seventh in sevenths:
              seventh = seventh[len(chord[0]):]
              if seventh == 'M7':
                  if intval4 == 'major second':
                      add_result('M9')
              elif seventh == 'm7':
                  if intval4 == 'major second':
                      add_result('m9')
                  elif intval4 == 'perfect fourth':
                      add_result('m11')
              elif seventh == '7':
                  if intval4 == 'major second':
                      add_result('9')
                  elif intval4 == 'minor second':
                      add_result('7b9')
                  elif intval4 == 'augmented second':
                      add_result('7#9')
                  elif intval4 == 'minor third':
                      add_result('7b12')
                  elif intval4 == 'augmented fourth':
                      add_result('7#11')
                  elif intval4 == 'major sixth':
                      add_result('13')
              elif seventh == 'M6':
                  if intval4 == 'major second':
                      add_result('6/9')
                  elif intval4 == 'minor seventh':
                      add_result('6/7')
          if tries != 5 and not no_inversions:
              return inversion_exhauster([chord[-1]] + chord[:-1], shorthand,
                      tries + 1, result, polychords)
          else:
              res = []
              for r in result:
                  if shorthand:
                      res.append(r[2] + r[0])
                  else:
                      res.append(r[2] + chord_shorthand_meaning[r[0]]
                                  + int_desc(r[1]))
              return res + polychords
  
      return inversion_exhauster(chord, shorthand, 1, [], [])