text: product_name = 'BitTornado'
  version_short = 'T-0.3.17'
  
  version = version_short+' ('+product_name+')'
  report_email = version_short+'@degreez.net'
  
  from types import StringType
  from hashlib import sha1 as sha
  from time import time, clock
  try:
      from os import getpid
  except ImportError:
      def getpid():
          return 1
  
  mapbase64 = '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.-'
  
  _idprefix = version_short[0]
  for subver in version_short[2:].split('.'):
      try:
          subver = int(subver)
      except:
          subver = 0
      _idprefix += mapbase64[subver]
  _idprefix += ('-' * (6-len(_idprefix)))
  _idrandom = [None]
  
  def resetPeerIDs():
      try:
          f = open('/dev/urandom','rb')
          x = f.read(20)
          f.close()
      except:
          x = ''
  
      l1 = 0
      t = clock()
      while t == clock():
          l1 += 1
      l2 = 0
      t = long(time()*100)
      while t == long(time()*100):
          l2 += 1
      l3 = 0
      if l2 < 1000:
          t = long(time()*10)
          while t == long(clock()*10):
              l3 += 1
      x += ( repr(time()) + '/' + str(time()) + '/'
             + str(l1) + '/' + str(l2) + '/' + str(l3) + '/'
             + str(getpid()) )
  
      s = ''
      for i in sha(x).digest()[-11:]:
          s += mapbase64[ord(i) & 0x3F]
      _idrandom[0] = s
          
  resetPeerIDs()
  
  def createPeerID(ins = '---'):
      assert type(ins) is StringType
      assert len(ins) == 3
      return _idprefix + ins + _idrandom[0]
  