ó
    ÌÅLg’  ã                   óÔ   • % S SK r S SKrS SKrS SKrS SKrS SKJrJr   " S S5      r\" 5       r	\\   \
S'    \R                  " 5       rS\4S jrS\S	\S\4S
 jrg! \ a    Sr Nf = f)é    N)ÚAnyÚOptionalc                   óš   • \ rS rSrSS\\   4S jjrS\SS4S jrS\SS4S jrSS	 jr	S\
4S
 jrS\
4S jrS\
4S jrS\
S\
S\
4S jrSrg)ÚEntropyPoolé   NÚseedc                 óf  • SU l         S U l        SU l        [        R                  " 5       U l        [        R                  " 5       U l        SU l	        [        SU R                  -  5      U l        Ub3  U R                  U5        SU l        [        R                  " 5       U l        g SU l        SU l        g )Nr   é   ó    TF)Ú
pool_indexÚdigestÚ	next_byteÚ	threadingÚLockÚlockÚhashlibÚsha1ÚhashÚhash_lenÚ	bytearrayÚpoolÚ_stirÚseededÚosÚgetpidÚseed_pid)Úselfr   s     Ú-/usr/lib/python3/dist-packages/dns/entropy.pyÚ__init__ÚEntropyPool.__init__    s‚   € ØˆŒØ+/ˆŒØˆŒÜ—N’NÓ$ˆŒ	Ü—L’L“NˆŒ	ØˆŒÜ˜e d§m¡mÑ3Ó4ˆŒ	ØÑØ�J‰J�tÔØˆDŒKÜŸIšI›KˆD�MàˆDŒKØˆD�Mó    ÚentropyÚreturnc                 óÎ   • U H_  nU R                   U R                  :X  a  SU l         US-  nU R                  U R                   ==   U-  ss'   U =R                   S-  sl         Ma     g )Nr   éÿ   é   )r   r   r   )r   r"   ÚcÚbs       r   r   ÚEntropyPool._stir0   sR   € ÛˆAØ�‰ $§-¡-Ó/Ø"#�”Ø�D‘ˆAØ�I‰I�d—o‘oÓ&¨!Ñ+Ó&Ø�OŠO˜qÑ �Oò r!   c                 ór   • U R                      U R                  U5        S S S 5        g ! , (       d  f       g = f©N)r   r   )r   r"   s     r   ÚstirÚEntropyPool.stir8   s   € Ø�Y‹YØ�J‰J�wÔ÷ �YŽYús   �(¨
6c                 ó4  • U R                   (       a#  U R                  [        R                  " 5       :w  a\   [        R                  " S5      nSU l         [        R                  " 5       U l        S U l        [        W5      nU R                  U5        g g ! [
         a{     [        SSS5       nUR                  S5      nS S S 5         M{  ! , (       d  f        NŠ= f! [
         a0    [        [        R                  " 5       5      R                  5       n  NÆf = ff = f)Né   z/dev/urandomÚrbr   T)r   r   r   r   ÚurandomÚ	ExceptionÚopenÚreadÚstrÚtimeÚencoder   r   r   )r   r   Úrs      r   Ú_maybe_seedÚEntropyPool._maybe_seed<   sÊ   € Ø�{�{˜dŸm™m¬r¯yªy«{Ó:ð5Ü—z’z "“~�ð ˆDŒKÜŸIšI›KˆDŒMØˆDŒKÜ˜T“?ˆDØ�J‰J�tÕð ;øô ó 5ð5Ü˜n¨d°AÔ6¸!Ø Ÿv™v b›z˜÷ 7×6×6Ñ6ûä ó 5ÜœtŸyšy›{Ó+×2Ñ2Ó4“Dð5úð	5úsG   ¶B Â
DÂCÂ*CÂ<CÃ
C	ÃCÃCÃ6DÄDÄDÄDc                 ó  • U R                      U R                  5         U R                  b  U R                  U R                  :X  ax  U R
                  R                  [        U R                  5      5        [        U R
                  R                  5       5      U l        U R                  U R                  5        SU l        U R                  U R                     nU =R                  S-  sl        S S S 5        U$ ! , (       d  f       W$ = f)Nr   r&   )r   r9   r   r   r   r   ÚupdateÚbytesr   r   r   )r   Úvalues     r   Úrandom_8ÚEntropyPool.random_8L   s´   € Ø�Y‹YØ×ÑÔØ�{‰{Ñ" d§n¡n¸¿¹Ó&EØ—	‘	× Ñ ¤ t§y¡yÓ!1Ô2Ü'¨¯	©	×(8Ñ(8Ó(:Ó;�”Ø—
‘
˜4Ÿ;™;Ô'Ø!"�”Ø—K‘K §¡Ñ/ˆEØ�NŠN˜aÑ�N÷ ð ˆ÷ ŒYð ˆús   �CC5Ã5
Dc                 óJ   • U R                  5       S-  U R                  5       -   $ )Né   )r?   ©r   s    r   Ú	random_16ÚEntropyPool.random_16X   s   € Ø�}‰}‹ Ñ$ t§}¡}£Ñ6Ð6r!   c                 óJ   • U R                  5       S-  U R                  5       -   $ )Né   )rD   rC   s    r   Ú	random_32ÚEntropyPool.random_32[   s    € Ø�~‰~Ó %Ñ'¨$¯.©.Ó*:Ñ:Ð:r!   ÚfirstÚlastc                 óÆ   • X!-
  S-   nUS:”  a  [        S5      eUS:”  a  U R                  nSnO#US:”  a  U R                  nSnOU R                  nSnXU" 5       -  US-   -  -   $ )	Nr&   l        ztoo bigrG   l   ÿÿ rB   iÿÿ  r%   )Ú
ValueErrorrH   rD   r?   )r   rJ   rK   ÚsizeÚrandÚmaxs         r   Úrandom_betweenÚEntropyPool.random_between^   sq   € Ø‰|˜aÑˆØ�*ÓÜ˜YÓ'Ð'Ø�%‹<Ø—>‘>ˆDØ‰CØ�C‹ZØ—>‘>ˆDØ‰Cà—=‘=ˆDØˆCØ™d›f‘}¨¨q©Ñ1Ñ1Ð1r!   )	r   r   r   r   r   r   r   r   r   r+   )r#   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   r=   r   r   r,   r9   Úintr?   rD   rH   rQ   Ú__static_attributes__© r!   r   r   r      s{   † ñ˜X e™_õ ð !˜Uð ! tô !ð ˜Eð   dô  ôð 
˜#ô 
ð7˜3ô 7ð;˜3ô ;ð2 Cð 2¨sð 2°s÷ 2r!   r   Úsystem_randomr#   c                  ód   • [         b  [         R                  SS5      $ [        R                  5       $ )Nr   rG   )rZ   Ú	randranger   rD   rY   r!   r   rD   rD   w   s(   € ÜÑ Ü×&Ñ& q¨%Ó0Ð0ä�~‰~ÓÐr!   rJ   rK   c                 ój   • [         b  [         R                  XS-   5      $ [        R                  X5      $ )Nr&   )rZ   r\   r   rQ   )rJ   rK   s     r   Úbetweenr^   ~   s.   € ÜÑ Ü×&Ñ& u°Q©hÓ7Ð7ä×"Ñ" 5Ó/Ð/r!   )r   r   Úrandomr   r6   Útypingr   r   r   r   Ú__annotations__ÚSystemRandomrZ   r2   rW   rD   r^   rY   r!   r   Ú<module>rc      sˆ   ðô$ Û 	Û Û Û ß  ÷Q2ñ Q2ñh ƒ}€à˜‰}Ó ðØ×'Ò'Ó)€Mð
 �3ô  ð0�3ð 0˜cð 0 cõ 0øð ó Ø‚Mðús   ¸A ÁA'Á&A'