docs: def in6_ctop(addr):
      """
      Convert an IPv6 address in Compact Representation Notation 
      (RFC 1924) to printable representation ;-)
      Returns None on error.
      """
      #if len(addr) != 20 or not reduce(lambda x,y: x and y, map(lambda x: x in _rfc1924map, addr)):
      if len(addr) != 20 or not all(map(lambda x: x in _rfc1924map, addr)):
          return None
      i = 0
      for c in addr:
          j = _rfc1924map.index(c)
          i = 85*i + j
      res = []
      for j in range(4):
          res.append(struct.pack("!I", i%2**32))
          i = i//(2**32)
      res.reverse()
      return inet_ntop(socket.AF_INET6, b"".join(res))