ó
    „ñ:i¢i  ã                   ó<	  • S r 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  SSK	J
r  SSKJr  SSKJr  SSKJrJrJrJr  SSKJr  SSKJr  SS	KJrJr  SS
KJrJrJrJr  \R@                  RB                  r"\#" \S\"-  5      r$\#" \S\"-  5      r%\R@                  RL                  r'\R@                  RP                  r)\%" \R@                  RT                  5      r+\RX                  RZ                  S:X  a  SOSr.Sr/\/r0\Rb                  Rd                  r3\R@                  Rh                  r5\R@                  Rl                  r7S r8\" \85      S 5       r9\" \:5      S 5       r;\S 5       r<\" \%\%\Rz                  \R|                  \R|                  \%\R|                  S.S9S 5       r?\S 5       r@\S 5       rA\" \%\%\%\%\%\%\R„                  \R„                  S.S9S 5       rC\" \Rˆ                  S5      \" \RŠ                  S5      S 5       5       rF\" \RŽ                  S5      S 5       rH\" \R’                  S5      S 5       rJ\%RZ                  S -  S!:”  a1  \%" S"5      rK\%" S#5      rL\%" S$5      rM\" S%\Rœ                  0S9S& 5       rOO0\%" S'5      rK\%" S(5      rL\%" S)5      rM\" S%\Rœ                  0S9S* 5       rO\" \%\%\%\%\%S+.S9S, 5       rP\" \R¢                  S5      S- 5       rRSS.KJSrSJTrTJUrUJVrVJWrWJXrX   " S/ S0\W5      rY " S1 S2\W5      rZ " S3 S4\W5      r[ " S5 S6\W5      r\ " S7 S8\X5      r]\" S9S:S;/5      r^S< r_\_" 5       r`\7S=;   Ga  \7S>:X  a  S?ra\RÄ                  " \a5        \" \Rœ                  \Rœ                  S@.S9SA 5       rc\" \Rœ                  \Rœ                  \Rœ                  \Rœ                  \Rœ                  \Rœ                  SB.S9SC 5       rd\" \Rœ                  \Rœ                  \Rœ                  \Rœ                  SD.S9SE 5       re\" \Rœ                  \Rœ                  \Rœ                  \Rœ                  SD.S9SF 5       rfSG rg\g" SH5      rh\g" SI5      ri\7SH:X  a  \hO\irjOSJ\7-  ra\k" \a5      e\SK 5       rlSL rm\" \m5      SM 5       rn\" SN\%0S9SO 5       ro\" \Rà                  S5      SP 5       rqg)Qz&
Hash implementations for Numba types
é    N)Ú
namedtuple)Úir)Úliteral_unroll)ÚoverloadÚoverload_methodÚ	intrinsicÚregister_jitable)Úerrors)Útypes)Ú	grab_byteÚgrab_uint64_t)Ú	const_intÚget_next_intÚget_next_int32Úget_state_ptrzint%szuint%sé    é   é=   iCB c                 ó   • g ©N© )Ú	hash_funcs    ÚX/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cpython/hashing.pyÚ_defer_hashr   /   s   € Øó    c                 ó    ^• SU  S3mU4S jnU$ )Nzunhashable type: 'Ú'c                 ó.   >• Uc  [        T5      eU" 5       $ r   )Ú	TypeError)Úobjr   Úerr_msgs     €r   ÚimplÚol_defer_hash.<locals>.impl7   s   ø€ ØÑÜ˜GÓ$Ð$á“;Ðr   r   )r    r   r"   r!   s      @r   Úol_defer_hashr$   3   s   ø€ à" 3 % qÐ)€Gõð
 €Kr   c                 ó    ^• SU  S3mU4S jnU$ )Nz+No __hash__ is defined for object of type 'zn' and a generic hash() cannot be performed as there is no suitable object represention in Numba compiled code!c                 óh   >• [        U S5      (       a  [        U [        U S5      5      $ [        T5      e)NÚ__hash__)Úhasattrr   Úgetattrr   )r    Úattempt_generic_msgs    €r   r"   Úhash_overload.<locals>.implG   s0   ø€ Ü�3˜
×#Ñ#Ü˜s¤G¨C°Ó$<Ó=Ð=äÐ/Ó0Ð0r   r   )r    r"   r*   s     @r   Úhash_overloadr,   @   s(   ø€ ðØ"˜eð $BðBÐõ
1ð
 €Kr   c                 óP   • [        U 5      nU[        S5      :X  a  [        S5      nU$ )Néÿÿÿÿéþÿÿÿ)Ú
_Py_hash_tÚint)ÚvalÚasints     r   Úprocess_returnr4   O   s%   € ä�s‹O€EØ”�R“ÓÜ�B“ˆØ€Lr   )ÚxÚyÚmÚeÚsignÚ_PyHASH_MODULUSÚ_PyHASH_BITS©Úlocalsc                 óX  • [         R                  " U 5      (       dC  [         R                  " U 5      (       a  U S:”  a  [        $ [        * $ [	        5       n[        U5      $ [        R                  " U 5      u  p#SnUS:  a  SnU* nSnU(       aR  US-  [        -  U[        S-
  -	  -  nUS-  nUS-  n[        U5      nX%-  nX-  nU[        :¼  a	  U[        -  nU(       a  MR  US:¼  a
  U[        -  nO[        S-
  SU-
  [        -  -
  nX-  [        -  U[        U-
  -	  -  nX-  n[        U5      $ )Nr   é   r.   é   g      °A)ÚnpÚisfiniteÚisinfÚ_PyHASH_INFÚ_prng_random_hashr4   ÚmathÚfrexpr:   r;   r1   )Úvr5   r7   r8   r9   r6   s         r   Ú_Py_HashDoublerI   ^   s1  € ô �;Š;�q�>‰>Ü�HŠH�Q�K‰KØ�A“Ü"Ð"ä#�|Ð#ô "Ó#ˆAÜ! !Ó$Ð$ä�:Š:�a‹=�D€Aà€DØ	ˆA‹ØˆØˆBˆð 	
€AÞØ�2‰gœÑ(¨A´,ÀÑ2CÑ,DÑDˆØ	ˆ[ÑˆØ	ˆR‰ˆÜ�‹FˆØ	‰ˆØ	‰ˆØ”ÓØ”Ñ ˆA÷ ˆ1ð 	ˆAƒvØ”Ñ‰ä˜1Ñ  a¡¬<Ñ 7Ñ8ˆà
‰&”OÑ	# q¬\¸AÑ-=Ñ'>Ñ>€Aà	‰€AÜ˜!ÓÐr   c                 óV   • S n[         R                  " [         R                  5      nX24$ )Nc                 óV   • US   nUR                  U[        R                  " 5       5      $ )Nr   )Úfpextr   Ú
DoubleType)ÚcgctxÚbuilderÚ	signatureÚargsr2   s        r   r"   Ú_fpext.<locals>.impl•   s"   € Ø�1‰gˆØ�}‰}˜S¤"§-¢-£/Ó2Ð2r   )r   Úfloat64Úfloat32)Útyctxr2   r"   Úsigs       r   Ú_fpextrW   “   s#   € ò3ô �-Š-œŸ™Ó
&€CØˆ9Ðr   c                 ó"   • S n[        5       nX!4$ )Nc                 ó†   • [        XS5      n[        [        5      n[        S:X  a  [        XU5      nU$ [	        XXES5      nU$ )NÚinternalr   F)r   r   Ú_hash_widthr   r   )rN   rO   rP   rQ   Ú	state_ptrÚbitsÚvalues          r   r"   Ú_prng_random_hash.<locals>.implŸ   sJ   € Ü! %°*Ó=ˆ	ÜœÓ%ˆô ˜"ÓÜ" 5°9Ó=ˆEð ˆô ! °À%ÓHˆEàˆr   )r0   )rU   r"   rV   s      r   rE   rE   œ   s   € òô$ ‹,€CØˆ9Ðr   )r5   Úp1Úp2Úp3Úp4r:   r;   Ú_PyLong_SHIFTc                 ój  • S[         -
  n[        R                  " S5      ) U-	  nS[         -  S-   nSn[        [         -
  n[	        US-
  SS5       HW  nU[         -  nU[
        -  nXE-	  n	X‰-  nU[        R                  " X[         -  -	  U-  5      -  nU[
        :¼  d  MN  U[
        -  nMY     [        U5      $ )Nr   r   é@   r?   r.   )rd   r   Úuint32r;   Úranger:   r0   )
r2   Ú
_tmp_shiftÚ
mask_shiftÚir5   rb   Úidxr`   ra   rc   s
             r   Ú
_long_implrm   ¼   s½   € ð ”mÑ#€JÜ—<’< Ó$Ð$¨Ñ3€Jð 
Œ}Ñ	 Ñ!€Að 	
€AÜ
œÑ
&€BÜ�Q˜‘U˜B Ö#ˆØ”-ÑˆØ”/Ñ!ˆØ‰WˆØ‰Gˆà	ŒU�\Š\˜3¬Ñ"5Ñ5¸ÑCÓDÑDˆØ”ÕØ”Ñ ŠAñ $ô �a‹=Ðr   r'   c                 óÜ   ^^^• [         R                  S::  a  SOSm[        R                  " S5      m[	        U SS5      (       a  [        R                  O[        R
                  mUUU4S jnU$ )Nl        r/   éüÿÿÿlûÿÿÿ         ÚsignedFc                 óæ   >• T" U 5      n [        U 5      nU[        :  a'  U S:X  a  SnO@U T:X  a  [        T5      nO.[        U 5      nO"SnU S:  a  U * n Sn[        U 5      nU(       a  U* n[	        U5      $ )Nr   FT)Úabsr:   r0   rm   r4   )r2   ÚmagÚretÚneeds_negateÚ_BIGÚ_HASH_I64_MINÚ_SIGNED_MINs       €€€r   r"   Úint_hash.<locals>.implí   s|   ø€ ñ �3‹iˆÜ�#‹hˆØ”Ó Ø�a‹xØ‘Ø˜Ó#Ü  Ó/‘ä  “o‘à ˆLØ�Q‹wØ�d�Ø#�Ü˜S“/ˆCÞØ�d�Ü˜cÓ"Ð"r   )ÚsysÚmaxsizer   Úint64r)   Úuint64)r2   r"   rv   rw   rx   s     @@@r   Úint_hashr~   á   sQ   ú€ ô Ÿ+™+¨Ó0‘B°b€MÜ—+’+Ð1Ó2€Kô " # x°×7Ñ7Œ5�;Š;¼U¿\¹\€D÷#ð8 €Kr   c                 ó6   • U R                   S:X  a  S nU$ S nU$ )Nrf   c                 ó   • [        U 5      nU$ r   )rI   )r2   Úhasheds     r   r"   Úfloat_hash.<locals>.impl  s   € Ü# CÓ(ˆFØˆMr   c                 óZ   • [         R                  " [        U 5      5      n[        U5      nU$ r   )rA   rS   rW   rI   )r2   Ú
fpextendedr�   s      r   r"   r‚     s#   € äŸš¤F¨3£KÓ0ˆJÜ# JÓ/ˆFØˆMr   )Úbitwidth©r2   r"   s     r   Ú
float_hashr‡     s&   € à
‡|�|�rÓò	ð €Kò	ð
 €Kr   c                 ó   • S nU$ )Nc                 ó„   • [        U R                  5      n[        U R                  5      nU[        U-  -   n[	        U5      $ r   )ÚhashÚrealÚimagÚ_PyHASH_IMAGr4   )r2   ÚhashrealÚhashimagÚcombineds       r   r"   Úcomplex_hash.<locals>.impl#  s8   € Ü˜Ÿ™“>ˆÜ˜Ÿ™“>ˆð œl¨XÑ5Ñ5ˆÜ˜hÓ'Ð'r   r   r†   s     r   Úcomplex_hashr’   !  s   € ò	(ð €Kr   é   é   l   ‡J×Æf»q	 l   Ok©Oô8• l   Åg¬,¼,§> r5   c                 óh   • U [         R                  " S5      -  U [         R                  " S5      -	  -  $ )Nr   é!   ©r   r}   ©r5   s    r   Ú_PyHASH_XXROTATEr™   ;  ó+   € ð ”e—l’l 2Ó&Ñ&¨1´·²¸RÓ0@Ñ+@ÑAÐBr   l   ±yn< l   wJ× i±gVc                 óh   • U [         R                  " S5      -  U [         R                  " S5      -	  -  $ )Né   é   r—   r˜   s    r   r™   r™   D  rš   r   )ÚaccÚlaneÚ_PyHASH_XXPRIME_5Ú_PyHASH_XXPRIME_1Útlc                 ó6  • [        U 5      n[        n[        U 5       H>  n[        U5      nU[	        S5      :X  a    gX$[
        -  -  n[        U5      nU[        -  nM@     X![        [	        S5      -  -  -  nU[	        S5      :X  a  [        S5      $ [        U5      $ )Nr.   isÓ5 iÔK*\)	Úlenr    r   rŠ   Ú_Py_uhash_tÚ_PyHASH_XXPRIME_2r™   r¡   r4   )Útupr¢   rž   r5   rŸ   s        r   Ú_tuple_hashr¨   J  s˜   € ô
 
ˆS‹€BÜ
€CÜ˜CÖ ˆÜ�A‹wˆØ”;˜r“?Ó"ÙØÔ'Ñ'Ñ'ˆÜ˜sÓ#ˆØÔ Ñ Šñ !ð Ô"¤[°Ó%9Ñ9Ñ:Ñ:€Cà
Œk˜"‹oÓÜ˜jÓ)Ð)ä˜#ÓÐr   c                 ó   • S nU$ )Nc                 ó   • [        U 5      $ r   )r¨   )r2   s    r   r"   Útuple_hash.<locals>.implc  s   € Ü˜3ÓÐr   r   r†   s     r   Ú
tuple_hashr¬   a  s   € ò à€Kr   )Úc_size_tÚc_ubyteÚc_uint64Ú	pythonapiÚ	StructureÚUnionc                   ó$   • \ rS rSrS\4S\4/rSrg)ÚFNVi€  ÚprefixÚsuffixr   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r­   Ú_fields_Ú__static_attributes__r   r   r   r´   r´   €  s   † à	�8ÐØ	�8ÐðƒHr   r´   c                   ó$   • \ rS rSrS\4S\4/rSrg)ÚSIPHASHi‡  Úk0Úk1r   N)r·   r¸   r¹   rº   r¯   r»   r¼   r   r   r   r¾   r¾   ‡  s   † à	ˆxÐØ	ˆxÐðƒHr   r¾   c                   ó*   • \ rS rSrS\S-  4S\4/rSrg)ÚDJBX33AiŽ  Úpaddingé   r¶   r   N©r·   r¸   r¹   rº   r®   r­   r»   r¼   r   r   r   rÂ   rÂ   Ž  s   † à	�G˜b‘LÐ!Ø	�8ÐðƒHr   rÂ   c                   ó*   • \ rS rSrS\S-  4S\4/rSrg)ÚEXPATi•  rÃ   rÄ   Úhashsaltr   NrÅ   r   r   r   rÇ   rÇ   •  s   † à	�G˜b‘LÐ!Ø	�XÐðƒHr   rÇ   c                   ó<   • \ rS rSrS\S-  4S\4S\4S\4S\4/r	Sr
g	)
Ú_Py_HashSecret_tiœ  Úucé   ÚfnvÚsiphashÚdjbx33aÚexpatr   N)r·   r¸   r¹   rº   r®   r´   r¾   rÂ   rÇ   r»   r¼   r   r   r   rÊ   rÊ   œ  s6   † ð 
ˆw˜‰|Ðà	�ˆà	�GÐà	�GÐØ	�%Ðð
ƒHr   rÊ   Ú_hashsecret_entryÚsymbolr^   c                  óú   ^• [         R                  [        S5      n 0 mU4S jnU" SU R                  R                  5        U" SU R
                  R                  5        U" SU R
                  R                  5        T$ )z¹Read hash secret from the Python process

Returns
-------
info : dict
    - keys are "djbx33a_suffix", "siphash_k0", siphash_k1".
    - values are the namedtuple[symbol:str, value:int]
Ú_Py_HashSecretc                 óÄ   >• SR                  U 5      n[        R                  " U5      n[        R                  " U5      n[        R
                  " X#5        [        X!S9TU '   g )Nz_numba_hashsecret_{})rÒ   r^   )ÚformatÚctypesr¯   Ú	addressofÚllÚ
add_symbolrÑ   )Únamer2   Úsymbol_nameÚaddrÚinfos       €r   ÚinjectÚ!_build_hashsecret.<locals>.inject¼  sK   ø€ Ø,×3Ñ3°DÓ9ˆÜ�oŠo˜cÓ"ˆÜ×Ò Ó$ˆÜ
�Š�kÔ(Ü&¨kÑEˆˆTŠ
r   Údjbx33a_suffixÚ
siphash_k0Ú
siphash_k1)rÊ   Úin_dllr°   rÏ   r¶   rÎ   r¿   rÀ   )Úpyhashsecretrß   rÞ   s     @r   Ú_build_hashsecretræ   ®  sm   ø€ ô $×*Ñ*¬9Ð6FÓG€LØ€DõFñ Ð˜\×1Ñ1×8Ñ8Ô9Ù
ˆ<˜×-Ñ-×0Ñ0Ô1Ù
ˆ<˜×-Ñ-×0Ñ0Ô1Ø€Kr   )Ú	siphash13Ú	siphash24rÍ   rÍ   až  FNV hashing is not implemented in Numba. See PEP 456 https://www.python.org/dev/peps/pep-0456/ for rationale over not using FNV. Numba will continue to work, but hashes for built in types will be computed using siphash24. This will permit e.g. dictionaries to continue to behave as expected, however anything relying on the value of the hash opposed to hash as a derived property is likely to not work as expected.©r5   Úbc                 ól   • [         R                  " X-  U [         R                  " S5      U-
  -	  -  5      $ )Nrf   r—   ré   s     r   Ú_ROTATErì     s-   € ô �|Š|˜a™Z¨Q´E·L²LÀÓ4DÈÑ4JÑ,KÑLÓMÐMr   ©Úarê   ÚcÚdÚsÚtc                 ój   • X-  n X#-  n[        X5      U -  n[        X55      U-  n[        U S5      n XX#4$ )Nr   )rì   rí   s         r   Ú_HALF_ROUNDrô     sC   € ð 	
‰ˆØ	‰ˆÜ�A‹M˜AÑˆÜ�A‹M˜AÑˆÜ�A�r‹NˆØ�QˆzÐr   ©Úv0Úv1Úv2Úv3c                 óN   • [        XX#SS5      u  pp#[        X!XSS5      u  p!pXX#4$ )Nrœ   rÄ   é   é   )rô   rõ   s       r   Ú_SINGLE_ROUNDrý     s6   € ô
 % R¨R°R¸Ó<‰ˆ�Ü$ R¨R°R¸Ó<‰ˆ�Ø�rˆ~Ðr   c                 óF   • [        XX#5      u  pp#[        XX#5      u  pp#XX#4$ r   )rý   rõ   s       r   Ú_DOUBLE_ROUNDrÿ   (  s.   € ô
 ' r¨rÓ6‰ˆ�Ü& r¨rÓ6‰ˆ�Ø�rˆ~Ðr   c                 ó¨  ^^• U S:X  a	  [         mSmOU S:X  a	  [        mSmO S5       e[        [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  [        R                  S.
S9UU4S j5       nU$ )	Nrç   Trè   FÚunreachable)
rö   r÷   rø   rù   rê   Úmirò   ÚmaskÚjmpÚohexefefr<   c           	      ó¶  >• [         R                  " U5      S-  nU [         R                  " S5      -  nU[         R                  " S5      -  nU [         R                  " S5      -  nU[         R                  " S5      -  nSn	US:¼  a1  [        X)5      n
U	S-  n	US-  nXŠ-  nT" XVXx5      u  pVpxXZ-  nUS:¼  a  M1  [         R                  " S5      nU	S-  n[         R                  " S	5      nUS
:¼  aE  Sn[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,S-   5      5      U-  -  nUS:¼  aE  Sn[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,S-   5      5      U-  -  nUS:¼  aE  Sn[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,S-   5      5      U-  -  nUS:¼  as  U[         R                  " S5      -  n[	        S5       HK  nUS-  n[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,U-   5      5      U-  -  nMM     US:¼  aE  Sn[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,S-   5      5      U-  -  nUS:¼  aE  Sn[         R                  " XÞ-  5      ) nX¿-  [         R                  " [        X,S-   5      5      U-  -  nUS:¼  a*  U) nX¿-  [         R                  " [        X,S-   5      5      -  nXK-  nX„-  nT" XVXx5      u  pVpxXT-  nX}-  nT" XVXx5      u  pVpxT" XVXx5      u  pVpxT(       a  T" XVXx5      u  pVpxXV-  Xx-  -  nU$ )Né8   l   ueæ`•5{ l   moÈ\…I{# l   arÊ\•Ëc l   seèr‰+# r   r“   r?   éÿ   é   é0   é   é(   é   r   r”   l       üÿ é   rÄ   é   )r   r}   r   r   rh   )r¿   rÀ   ÚsrcÚsrc_szrê   rö   r÷   rø   rù   rl   r  rò   Úboffsetr  r  r  rk   Ú_EXTRA_ROUNDÚ_ROUNDERs                    €€r   Ú_siphashÚ_gen_siphash.<locals>._siphash;  sN  ø€ ô —’˜VÓ$¨Ñ*ˆAØ”e—l’lÐ#5Ó6Ñ6ˆBØ”e—l’lÐ#5Ó6Ñ6ˆBØ”e—l’lÐ#5Ó6Ñ6ˆBØ”e—l’lÐ#5Ó6Ñ6ˆBàˆCØ˜Q“;Ü" 3Ó,�Ø�q‘�Ø˜!‘�Ø‘�Ù!)¨"°"Ó!9‘�˜Ø‘�ð ˜Q•;ô —’˜SÓ!ˆAØ˜A‘gˆGÜ—|’| DÓ)ˆHØ˜‹{Ø�ÜŸš X¡_Ó5Ð5�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KØ%(ñ#)ñ *�à˜‹{Ø�ÜŸš X¡_Ó5Ð5�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KØ%(ñ#)ñ *�à˜‹{Ø�ÜŸš X¡_Ó5Ð5�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KØ%(ñ#)ñ *�à˜‹{Ø”U—\’\Ð"4Ó5Ñ5�Ü˜qž�AØ˜a™%�CÜ!ŸLšL¨©Ó9Ð9�DØ™¤e§l¢l´9¸SÈAÁ+Ó3NÓ&OØ),ñ'-ñ .’Añ "ð
 ˜‹{Ø�ÜŸš X¡_Ó5Ð5�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KØ%(ñ#)ñ *�à˜‹{Ø�ÜŸš X¡_Ó5Ð5�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KØ%(ñ#)ñ *�à˜‹{Ø!�{�Ø‘X¤%§,¢,¬y¸È¹kÓ/JÓ"KÑL�à‰FˆAØ‰GˆBÙ% b¨bÓ5‰NˆB�BØ‰GˆBØ‰NˆBÙ% b¨bÓ5‰NˆB�BÙ% b¨bÓ5‰NˆB�BÞÙ!)¨"°"Ó!9‘�˜Ø‘˜R™WÑ%ˆAØˆHr   )rý   rÿ   r	   r   r}   )Úalgr  r  r  s     @@r   Ú_gen_siphashr  1  sœ   ù€ Ø�+ÓÜ$ˆHØ‰LØ�KÓÜ$ˆHØ ‰Là#�mÓ#�1ä	¬¯©Ü(-¯©Ü(-¯©Ü(-¯©Ü',§|¡|Ü(-¯©Ü',§|¡|Ü*/¯,©,Ü).¯©Ü.3¯l©lñ	"<ñ 	
=õC	ó	
=ðC	ðJ ˆr   rç   rè   z'Unsupported hashing algorithm in use %sc                 óê   ^• [        U[        R                  5      (       d  [        R                  " S5      e[
        UR                     R                  m[        R                  nU" U5      nU4S jnX44$ )z&Emit code to load the hashsecret.
    zrequires literal stringc                 óÚ   >• UR                   n UR                  T5      nUR                  U5      nU$ ! [         a-    [        R                  " U[        R
                  " S5      TS9n NIf = f)Nrf   ©rÛ   )ÚmoduleÚ
get_globalÚKeyErrorr   ÚGlobalVariableÚIntTypeÚload)rN   rO   rV   rQ   ÚmodÚgvrH   Úsyms          €r   r"   Ú%_inject_hashsecret_read.<locals>.impl¡  sd   ø€ Ø�n‰nˆð	Bà—‘ Ó$ˆBð �L‰L˜ÓˆØˆøô	 ó 	Bä×"Ò" 3¬¯
ª
°2«¸SÑAŠBð	Bús   �3 ³4A*Á)A*)	Ú
isinstancer   ÚStringLiteralr
   ÚTypingErrorÚ_hashsecretÚliteral_valuerÒ   r}   )rU   rÛ   ÚrestyrV   r"   r$  s        @r   Ú_inject_hashsecret_readr,  –  sa   ø€ ô �dœE×/Ñ/×0Ñ0Ü× Ò Ð!:Ó;Ð;ä
�d×(Ñ(Ñ
)×
0Ñ
0€CÜ�L‰L€EÙ
�‹+€Cõ	ð ˆ9Ðr   c                 ó(   • [         U    R                  $ r   )r)  r^   r  s    r   Ú_load_hashsecretr.  ¯  s   € Ü�tÑ×"Ñ"Ð"r   c                 ó   • S nU$ )Nc                 ó   • [        U 5      $ r   )r,  r  s    r   ÚimpÚ"_impl_load_hashsecret.<locals>.impµ  s   € Ü& tÓ,Ð,r   r   )rÛ   r1  s     r   Ú_impl_load_hashsecretr3  ³  s   € ò-à€Jr   Ú_hashc                 ó¢  • US:X  a  [        S5      $ U[        :  aX  [        S5      n[        U5       H+  nUS-  U-   [        R
                  " [        X5      5      -   nM-     X!-  nU[        S5      -  nOR[        [        R                  " [        S5      5      [        R                  " [        S5      5      X5      n[        U5      n[        U5      $ )Nr   i  r  rá   râ   rã   )r4   Ú_Py_HASH_CUTOFFr¥   rh   rA   Úuint8r   r.  Ú
_siphasherr   r}   )r2   Ú_lenr4  rl   Útmps        r   Ú_Py_HashBytesr;  ¾  s¸   € à�‹	Ü˜aÓ Ð àŒÓô ˜DÓ!ˆÜ˜–;ˆCØ˜q‘j EÑ)¬R¯XªX´iÀÓ6IÓ-JÑJŠEñ ð 	‰ˆØÔ!Ð"2Ó3Ñ3‰äœŸšÔ&6°|Ó&DÓEÜŸšÔ&6°|Ó&DÓEØó$ˆô ˜sÓ#ˆÜ˜%Ó Ð r   c                 ó    ^• SSK Jm  U4S jnU$ )Nr   )Ú_kind_to_byte_widthc                 ó–   >• T" U R                   5      n[        U 5      nU R                  nUS:w  a  U$ [        U R                  X-  5      $ )Nr.   )Ú_kindr¤   r4  r;  Ú_data)r2   Ú	kindwidthr9  Úcurrent_hashr=  s       €r   r"   Úunicode_hash.<locals>.implÛ  sG   ø€ Ù'¨¯	©	Ó2ˆ	Ü�3‹xˆà—y‘yˆØ˜2ÓØÐô ! §¡¨IÑ,<Ó=Ð=r   )Únumba.cpython.unicoder=  )r2   r"   r=  s     @r   Úunicode_hashrE  ×  s   ø€ å9õ
>ð €Kr   )rÚ__doc__rF   ÚnumpyrA   rz   r×   ÚwarningsÚcollectionsr   Úllvmlite.bindingÚbindingrÙ   Úllvmliter   Únumbar   Únumba.core.extendingr   r   r   r	   Ú
numba.corer
   r   Únumba.core.unsafe.bytesr   r   Únumba.cpython.randomimplr   r   r   r   Ú	hash_infoÚwidthr[   r)   r0   r¥   ÚinfrD   ÚnanÚ_PyHASH_NANÚmodulusr:   Úintpr…   r;   Ú_PyHASH_MULTIPLIERr�   Úint_infoÚbits_per_digitrd   Úcutoffr6  Ú	algorithmÚ_Py_hashfunc_namer   r$   rŠ   r,   r4   ÚdoubleÚintcrI   rW   rE   Úint32rm   ÚIntegerÚBooleanr~   ÚFloatr‡   ÚComplexr’   r¡   r¦   r    r}   r™   r¨   Ú	BaseTupler¬   r­   r®   r¯   r°   r±   r²   r´   r¾   rÂ   rÇ   rÊ   rÑ   ræ   r)  ÚmsgÚwarnrì   rô   rý   rÿ   r  Ú
_siphash13Ú
_siphash24r8  Ú
ValueErrorr,  r.  r3  r;  ÚUnicodeTyperE  r   r   r   Ú<module>rm     sx  ðñó Û Û 
Û Û Ý "å Ý å  ÷<ó <å Ý ß <÷5ó 5ð
 �m‰m×!Ñ!€Ù�U˜G kÑ1Ó2€
Ù�e˜X¨Ñ3Ó4€ð �m‰m×Ñ€Ø�m‰m×Ñ€Ù˜cŸm™m×3Ñ3Ó4€Ø—Z‘Z×(Ñ(¨BÓ.‰r°B€ØÐ Ø!€Ø—‘×+Ñ+€Ø—-‘-×&Ñ&€Ø—M‘M×+Ñ+Ð ò	ñ 
ˆ+Óñó ðñ 
ˆ$ƒñó ðð ñó ðñ ˜{Ø*Ø$Ÿ|™|Ø$Ÿz™zØ"'§*¡*Ø-8Ø*/¯*©*ñ6ñ 7ñ+ó7ð+ð\ ñó ðð ñó ðñ> ˜{Ø +Ø +Ø +Ø +Ø-8Ø*/¯+©+Ø+0¯;©;ñ9ñ :ñó:ðñ: �—‘ 
Ó+Ù�—‘ 
Ó+ñ&ó ,ó ,ð&ñX �—‘˜jÓ)ñó *ðñ" �—‘ 
Ó+ñó ,ðð( ×Ñ˜1Ñ˜qÓ Ù#Ð$8Ó9ÐÙ#Ð$8Ó9ÐÙ#Ð$7Ó8Ðá˜c 5§<¡<Ð0Ñ1ñCó 2ñCñ $ JÓ/ÐÙ# JÓ/ÐÙ# IÓ.Ðá˜c 5§<¡<Ð0Ñ1ñCó 2ðCñ
  °kØ/:Ø/:Ø +ñ-ñ .ñó	.ðñ& �—‘ *Ó-ñó .ð÷(÷ ôˆ)ô ôˆiô ôˆiô ôˆIô ô�uô ñ Ð2°X¸wÐ4GÓHÐ òñ6  Ó!€ð Ð9Ô9ð
 ˜EÓ!ð'ˆð 	�Š�cÔñ^  5§<¡<Ø#(§<¡<ñ3ñ 4ñNó4ðNñ  5§<¡<Ø#(§<¡<Ø#(§<¡<Ø#(§<¡<Ø#(§<¡<Ø#(§<¡<ñ3ñ 4ñó4ðñ  E§L¡LØ$)§L¡LØ$)§L¡LØ$)§L¡Lñ4ñ 5ñó	5ðñ
  E§L¡LØ$)§L¡LØ$)§L¡LØ$)§L¡Lñ4ñ 5ñó	5ðò
Yñv ˜kÓ*€JÙ˜kÓ*€Jà0°KÓ?‘ÀZ�Jð 4Ð6GÑ
G€CÙ
�S‹/Ðð ñó ðò0#ñ 
Ð
Óñó ðñ ˜' ;Ð/Ñ0ñ!ó 1ð!ñ0 �×"Ñ" JÓ/ñó 0ñr   