docs: def symbols(self):
          """List of the coded symbols as strings, with special characters included."""
          def _iter_symbols(symbol_values):
              # The initial charset doesn't matter, as the start codes have the same symbol values in all charsets.
              charset = 'A'
  
              shift_charset = None
              for symbol_value in symbol_values:
                  if shift_charset:
                      symbol = self._val2sym[shift_charset][symbol_value]
                      shift_charset = None
                  else:
                      symbol = self._val2sym[charset][symbol_value]
  
                  if symbol in (self.Special.START_A, self.Special.CODE_A):
                      charset = 'A'
                  elif symbol in (self.Special.START_B, self.Special.CODE_B):
                      charset = 'B'
                  elif symbol in (self.Special.START_C, self.Special.CODE_C):
                      charset = 'C'
                  elif symbol in (self.Special.SHIFT_A,):
                      shift_charset = 'A'
                  elif symbol in (self.Special.SHIFT_B,):
                      shift_charset = 'B'
  
                  yield symbol
  
          return list(_iter_symbols(self.symbol_values))