code: def dump(self):
          
  
          for i in range(0, len(self.TA)):
              if self.TA[i] is not None:
                  print("TA%d: %x" % (i + 1, self.TA[i]))
              if self.TB[i] is not None:
                  print("TB%d: %x" % (i + 1, self.TB[i]))
              if self.TC[i] is not None:
                  print("TC%d: %x" % (i + 1, self.TC[i]))
              if self.TD[i] is not None:
                  print("TD%d: %x" % (i + 1, self.TD[i]))
  
          print('supported protocols ' + ','.join(self.getSupportedProtocols()))
          print('T=0 supported: ' + str(self.isT0Supported()))
          print('T=1 supported: ' + str(self.isT1Supported()))
  
          if self.getChecksum():
              print('checksum: %d' % self.getChecksum())
  
          print('\tclock rate conversion factor: ' +
                str(self.getClockRateConversion()))
          print('\tbit rate adjustment factor: ' + str(self.getBitRateFactor()))
  
          print('\tmaximum programming current: ' +
                str(self.getProgrammingCurrent()))
          print('\tprogramming voltage: ' + str(self.getProgrammingVoltage()))
  
          print('\tguard time: ' + str(self.getGuardTime()))
  
          print('nb of interface bytes: %d' % self.getInterfaceBytesCount())
          print('nb of historical bytes: %d' % self.getHistoricalBytesCount())
docs: Dump the details of an ATR.