+
    Œvjh  ã            
       ór  € R t RP                  4       tRt^ RIHt  ! R R4      tRRRRR	R
/RRRRR	R/RRRRR	R/RRRRR	R/RRRRR	R/.tR tR t	]
R8X  da   ^ t] FV  t]! ]R,          4      P                  ]R,          4      t]! ]R,          4      P                  ]R	,          4      t]^,          tKX  	  R# R# )z
Arciv Stream  ciphering
zArcIV encode decodez1.0)Ú	isUnicodec                   ó<   a € ] tR t^	t o RtR tR tR tR tRt	V t
R# )ÚArcIVzÝ
performs 'ArcIV' Stream Encryption of S using key
Based on what is widely thought to be RSA's ArcIV algorithm.
It produces output streams that are identical.

NB there is no separate decoder arciv(arciv(s,key),key) == s
c                ó2   € Wn         V P                  4        R # )N)Ú_keyÚreset)ÚselfÚkeys   &&ÚW/var/www/html/daimler-pipeline/venv/lib/python3.14/site-packages/reportlab/lib/arciv.pyÚ__init__ÚArcIV.__init__   s   € Ø„)Ø‡*�*†,ó    c                óÎ  € V P                   p\        V4      '       d   VP                  R4      p\        \	        R4      4      p\        \	        R4      4      p\        V4      pV F  pWV,          ,          R,          W5&   K  	  ^ p\	        R4       F;  pWbV,          ,           W5,          ,           R,          pW&,          W%,          uW%&   W&&   K=  	  V^ ^ uV n        V n        V n        R# )z&restore the cipher to it's start stateÚutf8é   N)	r   r   ÚencodeÚlistÚrangeÚlenÚ_sboxÚ_iÚ_j)r   r	   ÚsboxÚkÚlkÚiÚjs   &      r
   r   ÚArcIV.reset   s»   € ð 	�	‰	€#Üˆs‡^‚^˜3Ÿ:™: fÓ-�SÜ	Œe�C‹jÓ	€$Ü
Œ5�‹:Ó€!Ü
ˆ3ƒx€"Û€aØ
�"�f�+˜Õ
€1ƒ4ñ ð €!Ü�Ž:€aØ	ˆq�'�	�!•$�˜#Õ€1Ø•g˜t�wÐ€4�7ˆD‹Gñ ð "& q¨!Ð€$„*ˆdŒg�t–wr   c                ó2  € V P                   V P                  V P                  rCp\        V\        4      '       d   \        VP                  R4      4      M)\        V\        4      '       d   \        V4      MVR,          p\        V4      p^ pWv8  d‡   V^,           R,          ;V n        pWBV,          ,           R,          ;V n        pW$,          W#,          uW#&   W$&   WW,          W"V,          W$,          ,           R,          ,          ,          WW&   V^,          pKŒ  V# )zh
return the list of encoded bytes of B, B might be a string or a
list of integers between 0 <= i <= 255
r   :NNNr   )	r   r   r   Ú
isinstanceÚstrr   r   Úbytesr   )r   ÚBr   r   r   ÚCÚnÚps   &&      r
   Ú_encodeÚArcIV._encode*   s×   € ð
 �z‰z˜4Ÿ7™7 D§G¡Gˆ1€$ä *¨1¬S× 1Ò 1„dˆ1�8‰8�FÓÔÄ:ÈaÔPU×CVÒCV¼¸Q¼Ð\]Ð^_Õ\`€!Ü	ˆ!ƒf€!Ø€!Ø	Œà�a•%˜3•Ð€4„7ˆQØ˜1•g•+ Õ$Ð$€4„7ˆQà•g˜t�wÐ€4�7ˆD‰Gà
�$�˜A•w ¥Õ(¨CÕ/Õ0Õ
0€1�4Øˆ…6‚1Ø	
€(r   c                ó6   € \        V P                  V4      4      # )zArcIV encode string S)r!   r&   )r   ÚSs   &&r
   r   ÚArcIV.encode?   s   € ä	ˆt�|‰|˜A‹Ó	Ðr   )r   r   r   r   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r&   r   Ú__static_attributes__Ú__classdictcell__)Ú__classdict__s   @r
   r   r   	   s#   ø‡ € ñòò,ò*÷* ð  r   r   r	   s   #Eg‰«ÍïÚinputÚoutputs   u·‡€™àÅ–s           s   t”ÂçKys   Þ‰A£7]:s   ï#Es
             s
   Ö¡A§ì<8ß½as   s   u•ÃæJ	xJÔR3ŽýšéI��=vS4I¶w�ÊØÇŠ�+©¬f]SÕœ&ÂÑÄ�Áë¾æmk¶¹¸GÂZ‘Dz•ç^NñgyÍè¿
•…2¯–‰DOÓw�˜ýËÔç&Vu ™Ì~£Äª££‡Ò;�»ÍB¡½1zCÝ¥«ˆ–®€Á‹
ömÿ1–ëxNIZÒÎ�×÷r¨G¶_b	;¹åºS/¯ìGPƒ#æq2}ùDD2ËsgÎÈ/]DÀÐgÖP uÍKpÞÝwë›#k[tG9mb‰t!Ô=ù´.Dn5Žœ©²NËïØç¨wï–��ì›=5¥X\°	)/ÍçµìfÙKä@U¦ÙÝÃo”‡÷Ë')BdE™…Á]S¡Œ†Lã¢·UW“˜�&R¬òãn#‘¾äÝSõý³[Ùœs]=›Ã5îžö›8g¿-{Ñê¥•Ø¿ÀoøÓ	ëlª l€zb>øL=3Á•Ò>ã ÄàU�WÈ"Ô¸ÅiØI®Õ�N×óyXkKö„íjŸt†Ô›œK­›¢K–«ù$7,Š�ÿ±U5I §z=µòá¹ŸÍ†`†:šÔ«ä¤‰4=ÝåB¦XU@ýh<¿ØÀš(MêÌLÞþX¾q7Tq&ÈÔž'U«·é@°Àc                ó6   € \        V4      P                  V 4      # )z.One-line shortcut for making an encoder object©r   r   ©Útextr	   s   &&r
   r   r   È   s   € äˆc‹
×Ñ˜$ÓÐr   c                ó6   € \        V4      P                  V 4      # )zOne-line shortcut for decodingr6   r7   s   &&r
   Údecoder:   Ì   s   € ô 	ˆc‹
×Ñ˜$ÓÐr   Ú__main__N)r/   ÚsplitÚ__all__Ú__version__Úreportlab.lib.utilsr   r   Ú_TESTSr   r:   r+   r   ÚtÚo© r   r
   Ú<module>rD      s%  ðñð 	"×'Ñ'Ó)€Ø€Ý )÷8 ñ 8 ðv Ð	,Ø	Ð.Ø
Ð/ð	ð Ð	,Ø	Ð.Ø
Ð/ðð Ð	,Ø	Ð.Ø
Ð/ðð Ð	Ø	Ð6Ø
Ð7ðð Ð	,Ø	ð 3ðh 
ð 3ðmjð1C€òJ ò ð
 ˆZÔØ€Û
€QÙˆAˆe�Hƒo×Ñ˜Q˜w�ZÓ(€!ÙˆAˆe�Hƒo×Ñ˜Q˜x�[Ó)€!Ø€q…&‚!ó ñ r   