
    Ef                         d Z ddlZdZ ee      D  ci c]  \  } }|| 
 c}} Z ed      D cg c]  }d|z  	 c}ddd   Zd Zd Zyc c}} w c c}w )	zPython implementation of Z85 85-bit encoding

Z85 encoding is a plaintext encoding for a bytestring interpreted as 32bit integers.
Since the chunks are 32bit, a bytestring must be a multiple of 4 bytes.
See ZMQ RFC 32 for details.


    NsU   0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ.-:+=^!/*?&<>()[]{}@%$#   U   c                    t        |       dz  rt        dt        |       z        t        |       dz  }t        j                  d|z  |       }g }|D ]+  }t        D ]   }|j                  t        ||z  dz            " - t        |      S )zencode raw bytes into Z85   z$length must be multiple of 4, not %i>%dIr   )len
ValueErrorstructunpack_85sappendZ85CHARSbytes)rawbytesnvaluesvaluesencodedvoffsets         //usr/lib/python3/dist-packages/zmq/utils/z85.pyencoder      s     8}q?#h-OPP(maG]]6G+X6FG 9 	9FNN8Q&[B$678	99 >    c                    t        | t              r	 | j                  d      } t        |       dz  rt	        dt        |       z        t        |       dz  }g }t        dt        |       d      D ]A  }d}t        t              D ]  \  }}|t        | ||z         |z  z  } |j                  |       C t        j                  d|z  g| S # t        $ r t	        d      w xY w)z3decode Z85 bytes to raw bytes, accepts ASCII stringasciiz4string argument should contain only ASCII charactersr   z(Z85 length must be multiple of 5, not %ir   r   )
isinstancestrr   UnicodeEncodeErrorr
   r	   range	enumerater   Z85MAPr   r   pack)z85bytesr   r   ivaluejr   s          r   decoder'   (   s    (C 	Uw/H 8}qCc(mSTT(maGF1c(mQ' "4 	6IAvVHQUO,v55E	6e	
 ;;v'1&11 " 	USTT	Us   C C )	__doc__r   r   r    r!   r   r   r   r'   )idxcr$   s   000r   <module>r+      sg     d(2	3VS!!S&	3Qx !A 2&"2- 
4 s
   AA