ó
    „ñ:iä–  ã                   óÜ2  • S SK Jr  S SKrS SKrS SKJr  S SKJr  S SK	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  S S	KJr  S
SKJr  S SKJr  S SKJrJrJr  S SKJ r J!r!  \
" 5       r"\"RF                  r#\"RH                  r%\"RL                  r&S r'\%" \RP                  " \5      S5      S 5       r)\%" \RP                  " \5      S5      S 5       r*\%" \RP                  " \5      S5      S 5       r+\%" \RP                  " \5      S5      S 5       r,\%" \RP                  " \5      S5      S 5       r-\%" \ S5      S 5       r.\%" \ S5      S 5       r/\%" \ S5      S 5       r0\#" \Rb                  Rd                  \Rf                  5      S  5       r4S q5S! r6\#" \Rn                  Rp                  \Rr                  \Rt                  5      S" 5       r;\#" \Rn                  Rp                  \Rx                  \Rt                  5      \#" \Rn                  Rp                  \Rz                  \Rt                  5      S# 5       5       r>\#" \R~                  Rp                  \Rr                  \Rt                  5      S$ 5       r@\#" \R~                  Rp                  \Rx                  \Rt                  5      \#" \R~                  Rp                  \Rz                  \Rt                  5      S% 5       5       rA\#" \R„                  5      S& 5       rC\#" \Rˆ                  5      S' 5       rE\#" \RŒ                  5      S( 5       rG\#" \R�                  5      S) 5       rI\#" \R�                  \R”                  5      S* 5       rK\#" \R˜                  \R”                  \R”                  \R”                  \R”                  \R”                  5      \#" \R˜                  \R”                  \R”                  \Rš                  \R”                  \R”                  5      \#" \R˜                  \R”                  \R”                  \Rœ                  \R”                  \R”                  5      \#" \R˜                  \R”                  \R”                  \Rž                  \R”                  \R”                  5      S+ 5       5       5       5       rP\#" \R¢                  \R”                  \R”                  \R¤                  5      S, 5       rS\#" \R¨                  \R”                  \R”                  5      \#" \R¨                  \R”                  \Rš                  5      \#" \R¨                  \R”                  \Rœ                  5      \#" \R¨                  \R”                  \Rž                  5      S- 5       5       5       5       rU\#" \R¬                  \R”                  \R”                  5      \#" \R¬                  \R”                  \Rš                  5      \#" \R¬                  \R”                  \Rœ                  5      \#" \R¬                  \R”                  \Rž                  5      S. 5       5       5       5       rW\#" \R°                  5      S/ 5       rY\#" \R´                  5      S0 5       r[\#" \R¸                  \Rt                  5      S1 5       r]\#" \R¼                  \Rt                  \Rt                  \Rt                  5      S2 5       r_S3 r`\" \RÂ                  \RÄ                  5      S4 5       rc\" \RÄ                  \RÂ                  5      S5 5       rdS6 re\" \RÂ                  \RÌ                  5      S7 5       rg\" \RÌ                  \RÂ                  5      \" \Rr                  \RÂ                  5      S8 5       5       rhS9 ri\i" \RÔ                  RÖ                  S:5        \i" \RØ                  S:5        \i" \RÚ                  S:5        \i" \RÔ                  RÜ                  S;5        \i" \RÞ                  S;5        \i" \Rà                  S;5        \i" \RÔ                  Râ                  S<5        \i" \Rä                  S<5        \i" \Ræ                  S<5        \#" \RÔ                  Rè                  \RÂ                  5      S= 5       ru\#" \Rì                  \RÂ                  5      S> 5       rw\#" \RÔ                  Rð                  \RÂ                  5      S? 5       ry\#" \z\RÂ                  5      S@ 5       r{\#" \RÔ                  Rø                  \RÂ                  \RÂ                  \RÂ                  5      SA 5       r}\#" \Rü                  \RÂ                  \RÂ                  5      \#" \Rþ                  \RÂ                  \RÂ                  5      SB 5       5       r€SCr�SD r‚\#" \RÔ                  GR                  \RÂ                  \RÂ                  5      " \‚" SE5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SE5      5        \#" \RÔ                  GR
                  \RÂ                  \RÂ                  5      " \‚" SF5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SF5      5        \#" \RÔ                  GR                  \RÂ                  \RÂ                  5      " \‚" SG5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SG5      5        \#" \RÔ                  GR                  \RÂ                  \RÂ                  5      " \‚" SH5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SH5      5        \#" \RÔ                  GR                  \RÂ                  \RÂ                  5      " \‚" SI5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SI5      5        \#" \RÔ                  GR                  \RÂ                  \RÂ                  5      " \‚" SJ5      5        \#" \GR                  \RÂ                  \RÂ                  5      " \‚" SJ5      5        SK r�\�" \RÔ                  GR                   SLSH5        \�" \RÔ                  GR"                  SMSJ5        \GR$                  SN\GR&                  SO0r”\#" \GR*                  \GR$                  5      \#" \GR*                  \GR&                  5      SP 5       5       r–\#" \GR.                  \GR0                  5      SQ 5       r™\#" \GR.                  \GR4                  5      SR 5       r›\#" \GR8                  \Rt                  5      SS 5       r�\#" \GR<                  \R”                  5      \#" \GR<                  \GR0                  5      ST 5       5       rŸ\#" \GR<                  \Rš                  5      \#" \GR<                  \GR4                  5      SU 5       5       r \#" \GRB                  \Rt                  \Rt                  \Rt                  5      SV 5       r¢\#" \£\Rœ                  \Rœ                  5      SW 5       r¤\#" \£\Rž                  \Rœ                  5      \#" \£\Rœ                  \Rž                  5      \#" \£\Rž                  \Rž                  5      SX 5       5       5       r¥\#" \¦\Rœ                  \Rœ                  5      SY 5       r§\#" \¦\Rž                  \Rœ                  5      \#" \¦\Rœ                  \Rž                  5      \#" \¦\Rž                  \Rž                  5      SZ 5       5       5       r¨\#" \©\Rœ                  5      \#" \©\Rž                  5      S[ 5       5       rª\#" \©\Rœ                  \RÌ                  5      \#" \©\Rž                  \RÌ                  5      S\ 5       5       r«S] r¬\GRZ                  S^-  r®S^\GRZ                  -  r¯\#" \GR`                  \Rœ                  5      " \¬" \®5      5        \#" \GR`                  \Rž                  5      " \¬" \®5      5        \#" \GRb                  \Rœ                  5      " \¬" \¯5      5        \#" \GRb                  \Rž                  5      " \¬" \¯5      5        S_ r²S` r³\#" \GRh                  RØ                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  RØ                  \Rf                  \Rz                  \Rt                  5      \#" \GRh                  RØ                  \Rf                  \Rx                  \Rt                  5      \³Sa 5       5       5       5       r¶\#" \GRh                  RÞ                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  RÞ                  \Rf                  \Rz                  \Rt                  5      \#" \GRh                  RÞ                  \Rf                  \Rx                  \Rt                  5      \³Sb 5       5       5       5       r·\#" \GRh                  GRp                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRp                  \Rf                  \Rz                  \Rt                  5      \#" \GRh                  GRp                  \Rf                  \Rx                  \Rt                  5      \³Sc 5       5       5       5       r¹\#" \GRh                  GRt                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRt                  \Rf                  \Rz                  \Rt                  5      \#" \GRh                  GRt                  \Rf                  \Rx                  \Rt                  5      \³Sd 5       5       5       5       r»Se r¼\¼" \GRh                  GRz                  Sf5        \¼" \GRh                  GR|                  Sg5        \¼" \GRh                  GR~                  Sh5        \#" \GRh                  GR€                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GR€                  \Rf                  \Rz                  \Rt                  5      \#" \GRh                  GR€                  \Rf                  \Rx                  \Rt                  5      \³Si 5       5       5       5       rÁ\#" \GRh                  GRF                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRF                  \Rf                  \Rx                  \Rt                  5      \#" \GRh                  GRF                  \Rf                  \Rz                  \Rt                  5      \³Sj 5       5       5       5       rÂ\#" \GRh                  GRL                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRL                  \Rf                  \Rx                  \Rt                  5      \#" \GRh                  GRL                  \Rf                  \Rz                  \Rt                  5      \³Sk 5       5       5       5       rÃ\#" \GRh                  GRˆ                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRˆ                  \Rf                  \Rx                  \Rt                  5      \#" \GRh                  GRˆ                  \Rf                  \Rz                  \Rt                  5      \³Sl 5       5       5       5       rÅ\#" \GRh                  GRŒ                  \Rf                  \GRj                  \Rt                  5      \#" \GRh                  GRŒ                  \Rf                  \Rx                  \Rt                  5      \#" \GRh                  GRŒ                  \Rf                  \Rz                  \Rt                  5      \³Sm 5       5       5       5       rÇ\#" \GRh                  GR�                  \Rf                  \Rt                  \Rt                  5      Sn 5       rÉ\#" \GRh                  GR”                  \Rf                  \GRj                  \Rt                  \Rt                  5      \#" \GRh                  GR”                  \Rf                  \Rx                  \Rt                  \Rt                  5      \#" \GRh                  GR”                  \Rf                  \Rz                  \Rt                  \Rt                  5      So 5       5       5       rË\#" \GR˜                  \GRš                  5      Sp 5       rÎ SsSq jrÏ\&" \!5      Sr 5       rÐ\" \GR¢                  " 5       \#5        g)té    )ÚreduceN)Úir)ÚRegistryÚ
lower_cast)Úparse_dtype)Úmodels)ÚtypesÚcgutils)Úufunc_db)Úregister_ufuncsé   )Únvvm)Úcuda)Ú	nvvmutilsÚstubsÚerrors)Údim3ÚCUDADispatcherc                 óÎ   • [         R                  " U SU-  5      n[         R                  " U SU-  5      n[         R                  " U SU-  5      n[        R                  " XX445      $ )Nz%s.xz%s.yz%s.z)r   Ú	call_sregr
   Úpack_struct)ÚbuilderÚprefixÚxÚyÚzs        ÚV/srv/projetos/modelo_ml_acdoc/venv/lib/python3.13/site-packages/numba/cuda/cudaimpl.pyÚinitialize_dim3r      sY   € Ü×Ò˜G V¨f¡_Ó5€AÜ×Ò˜G V¨f¡_Ó5€AÜ×Ò˜G V¨f¡_Ó5€AÜ×Ò˜w¨A¨	Ó2Ð2ó    Ú	threadIdxc                 ó   • [        US5      $ )NÚtid©r   ©Úcontextr   ÚsigÚargss       r   Úcuda_threadIdxr(       s   € ä˜7 EÓ*Ð*r   ÚblockDimc                 ó   • [        US5      $ )NÚntidr#   r$   s       r   Úcuda_blockDimr,   %   s   € ä˜7 FÓ+Ð+r   ÚblockIdxc                 ó   • [        US5      $ )NÚctaidr#   r$   s       r   Úcuda_blockIdxr0   *   s   € ä˜7 GÓ,Ð,r   ÚgridDimc                 ó   • [        US5      $ )NÚnctaidr#   r$   s       r   Úcuda_gridDimr4   /   s   € ä˜7 HÓ-Ð-r   Úlaneidc                 ó0   • [         R                  " US5      $ )Nr5   )r   r   r$   s       r   Úcuda_laneidr7   4   s   € ä×Ò˜w¨Ó1Ð1r   r   c                 ó&   • UR                  US5      $ ©Nr   ©Úextract_valuer$   s       r   Údim3_xr<   9   ó   € à× Ñ   qÓ)Ð)r   r   c                 ó&   • UR                  US5      $ )Nr   r:   r$   s       r   Údim3_yr?   >   r=   r   r   c                 ó&   • UR                  US5      $ )Né   r:   r$   s       r   Údim3_zrB   C   r=   r   c                 ó   • US   $ r9   © r$   s       r   Úcuda_const_array_likerE   J   s   € ð �‰7€Nr   c                 ó@   • [         S-  q SR                  U [         5      $ )zÁDue to bug with NVVM invalid internalizing of shared memory in the
PTX output.  We can't mark shared memory to be internal. We have to
ensure unique name is generated for shared memory symbol.
r   z{0}_{1})Ú_unique_smem_idÚformat©Únames    r   Ú_get_unique_smem_idrK   T   s!   € ô �qÑ€OØ×Ñ˜D¤/Ó2Ð2r   c           
      ó°   • UR                   S   R                  n[        UR                   S   5      n[        XU4U[	        S5      [
        R                  SS9$ ©Nr   r   Ú_cudapy_smemT©ÚshapeÚdtypeÚsymbol_nameÚ	addrspaceÚcan_dynsized©r'   Úliteral_valuer   Ú_generic_arrayrK   r   ÚADDRSPACE_SHARED©r%   r   r&   r'   ÚlengthrQ   s         r   Úcuda_shared_array_integerr[   ^   sP   € à�X‰X�a‰[×&Ñ&€FÜ˜Ÿ™ ™Ó$€EÜ˜'°6°)À5Ü&9¸.Ó&IÜ$(×$9Ñ$9Ø'+ñ-ð -r   c           
      óÔ   • UR                   S    Vs/ s H  oDR                  PM     nn[        UR                   S   5      n[        XXV[	        S5      [
        R                  SS9$ s  snf rM   rU   ©r%   r   r&   r'   ÚsrP   rQ   s          r   Úcuda_shared_array_tupler_   h   s^   € ð (+§x¡x°¢{Ó4¢{ !�oŒo¡{€EÐ4Ü˜Ÿ™ ™Ó$€EÜ˜'°%Ü&9¸.Ó&IÜ$(×$9Ñ$9Ø'+ñ-ð -ùò 5s   ’A%c           
      óž   • UR                   S   R                  n[        UR                   S   5      n[        XU4US[        R
                  SS9$ ©Nr   r   Ú_cudapy_lmemFrO   ©r'   rV   r   rW   r   ÚADDRSPACE_LOCALrY   s         r   Úcuda_local_array_integerre   s   sK   € à�X‰X�a‰[×&Ñ&€FÜ˜Ÿ™ ™Ó$€EÜ˜'°6°)À5Ø&4Ü$(×$8Ñ$8Ø',ñ.ð .r   c           
      óÂ   • UR                   S    Vs/ s H  oDR                  PM     nn[        UR                   S   5      n[        XXVS[        R
                  SS9$ s  snf ra   rc   r]   s          r   Úptx_lmem_alloc_arrayrg   }   sY   € ð (+§x¡x°¢{Ó4¢{ !�oŒo¡{€EÐ4Ü˜Ÿ™ ™Ó$€EÜ˜'°%Ø&4Ü$(×$8Ñ$8Ø',ñ.ð .ùò 5s   ’Ac                 óö   • U(       a   eSnUR                   n[        R                  " [        R                  " 5       S5      n[        R
                  " XVU5      nUR                  US5        U R                  5       $ )Nzllvm.nvvm.membar.ctarD   ©Úmoduler   ÚFunctionTypeÚVoidTyper
   Úget_or_insert_functionÚcallÚget_dummy_value©r%   r   r&   r'   ÚfnameÚlmodÚfntyÚsyncs           r   Úptx_threadfence_blockru   ˆ   ó\   € æ€Oˆ8Ø"€EØ�>‰>€DÜ�?Š?œ2Ÿ;š;›=¨"Ó-€DÜ×)Ò)¨$°eÓ<€DØ‡L�L��rÔØ×"Ñ"Ó$Ð$r   c                 óö   • U(       a   eSnUR                   n[        R                  " [        R                  " 5       S5      n[        R
                  " XVU5      nUR                  US5        U R                  5       $ )Nzllvm.nvvm.membar.sysrD   ri   rp   s           r   Úptx_threadfence_systemrx   “   rv   r   c                 óö   • U(       a   eSnUR                   n[        R                  " [        R                  " 5       S5      n[        R
                  " XVU5      nUR                  US5        U R                  5       $ )Nzllvm.nvvm.membar.glrD   ri   rp   s           r   Úptx_threadfence_devicerz   ž   s\   € æ€Oˆ8Ø!€EØ�>‰>€DÜ�?Š?œ2Ÿ;š;›=¨"Ó-€DÜ×)Ò)¨$°eÓ<€DØ‡L�L��rÔØ×"Ñ"Ó$Ð$r   c                 ó¤   • U R                  [        R                  S5      n[        R                  " [        R                  5      n[	        XXT/5      $ )Nl   ÿÿ )Úget_constantr	   Úint32ÚnoneÚptx_syncwarp_mask)r%   r   r&   r'   ÚmaskÚmask_sigs         r   Úptx_syncwarpr‚   ©   s9   € à×Ñ¤§¡¨ZÓ8€DÜ�zŠzœ%Ÿ+™+Ó&€HÜ˜W¨x¸Ó@Ð@r   c                 ó  • SnUR                   n[        R                  " [        R                  " 5       [        R                  " S5      45      n[
        R                  " XVU5      nUR                  Xs5        U R                  5       $ )Nzllvm.nvvm.bar.warp.syncé    )	rj   r   rk   rl   ÚIntTyper
   rm   rn   ro   rp   s           r   r   r   °   s^   € à%€EØ�>‰>€DÜ�?Š?œ2Ÿ;š;›=¬2¯:ª:°b«>Ð*;Ó<€DÜ×)Ò)¨$°eÓ<€DØ‡L�L�ÔØ×"Ñ"Ó$Ð$r   c           
      ó*  • Uu  pEpgnUR                   S   n	U	[        R                  ;   a0  UR                  U[        R
                  " U	R                  5      5      nSn
UR                  n[        R                  " [        R                  " [        R
                  " S5      [        R
                  " S5      45      [        R
                  " S5      [        R
                  " S5      [        R
                  " S5      [        R
                  " S5      [        R
                  " S5      45      n[        R                  " X¼U
5      nU	R                  S:X  aŒ  UR                  XÔXVXx45      nU	[        R                  :X  ab  UR                  US5      nUR                  US5      nUR                  U[        R                  " 5       5      n[        R                   " UUU45      nU$ UR#                  U[        R
                  " S5      5      nUR%                  X`R'                  [        R(                  S5      5      nUR#                  U[        R
                  " S5      5      nUR                  XÔUUXx45      nUR                  XÔUUXx45      nUR                  US5      nUR                  US5      nUR                  US5      nUR+                  U[        R
                  " S5      5      nUR+                  U[        R
                  " S5      5      nUR-                  UU R'                  [        R(                  S5      5      nUR/                  UU5      nU	[        R0                  :X  a%  UR                  U[        R2                  " 5       5      n[        R                   " XU45      nU$ )aw  
The NVVM intrinsic for shfl only supports i32, but the cuda intrinsic
function supports both 32 and 64 bit ints and floats, so for feature parity,
i64, f32, and f64 are implemented. Floats by way of bitcasting the float to
an int, then shuffling, then bitcasting back. And 64-bit values by packing
them into 2 32bit values, shuffling thoose, and then packing back together.
rA   zllvm.nvvm.shfl.sync.i32r„   r   r   é@   )r'   r	   Úreal_domainÚbitcastr   r…   Úbitwidthrj   rk   ÚLiteralStructTyper
   rm   rn   Úfloat32r;   Ú	FloatTypeÚmake_anonymous_structÚtruncÚlshrr|   Úi8ÚzextÚshlÚor_Úfloat64Ú
DoubleType)r%   r   r&   r'   r€   ÚmodeÚvalueÚindexÚclampÚ
value_typerq   rr   rs   ÚfuncÚretÚrvÚpredÚfvÚvalue1Ú
value_lshrÚvalue2Úret1Úret2Úrv1Úrv2Úrv1_64Úrv2_64Úrv_shls                               r   Úptx_shfl_sync_i32r«   º   s­  € ð  '+Ñ#€D�˜eØ—‘˜!‘€JØ”U×&Ñ&Ó&Ø—‘ ¤r§z¢z°*×2EÑ2EÓ'FÓGˆØ%€EØ�>‰>€DÜ�?Š?Ü
×ÒœbŸjšj¨›n¬b¯jªj¸«mÐ<Ó=ÜŸZšZ¨›^¬R¯ZªZ¸«^¼R¿ZºZÈ»^ÜŸZšZ¨›^¬R¯ZªZ¸«^ð=ó€Dô
 ×)Ò)¨$°eÓ<€DØ×Ñ˜bÓ Ø�l‰l˜4¨°UÐ!BÓCˆØœŸ™Ó&Ø×&Ñ& s¨AÓ.ˆBØ×(Ñ(¨¨aÓ0ˆDØ—‘ ¤R§\¢\£^Ó4ˆBÜ×/Ò/°¸"¸d¸ÓDˆCð" €Jð —‘˜u¤b§j¢j°£nÓ5ˆØ—\‘\ %×)=Ñ)=¼e¿h¹hÈÓ)KÓLˆ
Ø—‘˜z¬2¯:ª:°b«>Ó:ˆØ�|‰|˜D¨¨v°uÐ"DÓEˆØ�|‰|˜D¨¨v°uÐ"DÓEˆØ×#Ñ# D¨!Ó,ˆØ×#Ñ# D¨!Ó,ˆØ×$Ñ$ T¨1Ó-ˆØ—‘˜c¤2§:¢:¨b£>Ó2ˆØ—‘˜c¤2§:¢:¨b£>Ó2ˆØ—‘˜V W×%9Ñ%9¼%¿(¹(ÀBÓ%GÓHˆØ�[‰[˜ Ó(ˆØœŸ™Ó&Ø—‘ ¤R§]¢]£_Ó5ˆBÜ×+Ò+¨G¸$°ZÓ@ˆØ€Jr   c                 ó–  • SnUR                   n[        R                  " [        R                  " [        R                  " S5      [        R                  " S5      45      [        R                  " S5      [        R                  " S5      [        R                  " S5      45      n[
        R                  " XVU5      nUR                  Xs5      $ )Nzllvm.nvvm.vote.syncr„   r   )rj   r   rk   r‹   r…   r
   rm   rn   )r%   r   r&   r'   rq   rr   rs   rœ   s           r   Úptx_vote_syncr­   ð   s�   € à!€EØ�>‰>€DÜ�?Š?œ2×/Ò/´·²¸B³Ü13·²¸A³ð1@ó AäŸJšJ r›N¬B¯JªJ°r«N¼B¿JºJÀq»MÐJóL€Dô ×)Ò)¨$°eÓ<€DØ�<‰<˜Ó#Ð#r   c                 ó  • Uu  pEUR                   S   R                  nUR                   S   [        R                  ;   a&  UR	                  U[
        R                  " U5      5      nSR                  U5      nUR                  n[
        R                  " [
        R                  " S5      [
        R                  " S5      [
        R                  " U5      45      n	[        R                  " X‰U5      n
UR                  X¤U45      $ )Nr   zllvm.nvvm.match.any.sync.i{}r„   )r'   rŠ   r	   rˆ   r‰   r   r…   rH   rj   rk   r
   rm   rn   ©r%   r   r&   r'   r€   r˜   Úwidthrq   rr   rs   rœ   s              r   Úptx_match_any_syncr±   û   s¹   € ð
 �K€DØ�H‰H�Q‰K× Ñ €EØ
‡x�x��{”e×'Ñ'Ó'Ø—‘ ¤r§z¢z°%Ó'8Ó9ˆØ*×1Ñ1°%Ó8€EØ�>‰>€DÜ�?Š?œ2Ÿ:š: b›>¬B¯JªJ°r«N¼B¿JºJÀuÓ<MÐ+NÓO€DÜ×)Ò)¨$°eÓ<€DØ�<‰<˜ U˜mÓ,Ð,r   c                 óV  • Uu  pEUR                   S   R                  nUR                   S   [        R                  ;   a&  UR	                  U[
        R                  " U5      5      nSR                  U5      nUR                  n[
        R                  " [
        R                  " [
        R                  " S5      [
        R                  " S5      45      [
        R                  " S5      [
        R                  " U5      45      n	[        R                  " X‰U5      n
UR                  X¤U45      $ )Nr   zllvm.nvvm.match.all.sync.i{}r„   )r'   rŠ   r	   rˆ   r‰   r   r…   rH   rj   rk   r‹   r
   rm   rn   r¯   s              r   Úptx_match_all_syncr³     sÞ   € ð
 �K€DØ�H‰H�Q‰K× Ñ €EØ
‡x�x��{”e×'Ñ'Ó'Ø—‘ ¤r§z¢z°%Ó'8Ó9ˆØ*×1Ñ1°%Ó8€EØ�>‰>€DÜ�?Š?œ2×/Ò/´·²¸B³Ü13·²¸A³ð1@ó AäŸJšJ r›N¬B¯JªJ°uÓ,=Ð>ó@€Dô ×)Ò)¨$°eÓ<€DØ�<‰<˜ U˜mÓ,Ð,r   c                 ó¦   • [         R                  " [         R                  " [         R                  " S5      / 5      SSSS9nUR	                  U/ 5      $ )Nr„   zactivemask.b32 $0;ú=rT©Úside_effect©r   Ú	InlineAsmrk   r…   rn   ©r%   r   r&   r'   Ú
activemasks        r   Úptx_activemaskr¼     s>   € ä—’œbŸošo¬b¯jªj¸«n¸bÓAØ2°DÀdñL€Jà�<‰<˜
 BÓ'Ð'r   c                 ó¦   • [         R                  " [         R                  " [         R                  " S5      / 5      SSSS9nUR	                  U/ 5      $ )Nr„   zmov.u32 $0, %lanemask_lt;rµ   Tr¶   r¸   rº   s        r   Úptx_lanemask_ltr¾   $  s@   € ä—’œbŸošo¬b¯jªj¸«n¸bÓAØ9¸4Ø*.ñ0€Jð �<‰<˜
 BÓ'Ð'r   c                 ó*   • UR                  US   5      $ r9   )Úctpopr$   s       r   Úptx_popcrÁ   ,  s   € à�=‰=˜˜a™Ó!Ð!r   c                 ó    • UR                   " U6 $ ©N)Úfmar$   s       r   Úptx_fmarÅ   1  s   € à�;Š;˜ÐÐr   c                 ój   • SSS.n X   $ ! [          a    SU  S3n[        R                  " U5      ef = f)N)Úf32Úf)Úf64Úd)r„   r‡   z$Conversion between float16 and floatú unsupported©ÚKeyErrorr   ÚCudaLoweringError©rŠ   ÚtypemapÚmsgs      r   Úfloat16_float_ty_constraintrÒ   6  sH   € Ø \Ñ2€Gð,ØÑ Ð øÜó ,Ø4°X°J¸lÐKˆÜ×&Ò& sÓ+Ð+ð,ús   ‡ ‹'2c                 óB  • UR                   UR                   :X  a  U$ [        UR                   5      u  pV[        R                  " U R	                  U5      [        R
                  " S5      /5      n[        R                  " USU S3SU S35      nUR                  X„/5      $ )Né   zcvt.ú.f16 $0, $1;Ú=ú,h)rŠ   rÒ   r   rk   Úget_value_typer…   r¹   rn   ©	r%   r   ÚfromtyÚtotyÚvalÚtyÚ
constraintrs   Úasms	            r   Úfloat16_to_float_castrà   @  s‚   € à‡�˜$Ÿ-™-Ó'Øˆ
ä0°·±Ó?�N€Bä�?Š?˜7×1Ñ1°$Ó7¼"¿*º*ÀR».Ð9IÓJ€DÜ
�,Š,�t˜t B 4 |Ð4¸¸*¸ÀRÐ6HÓ
I€CØ�<‰<˜˜UÓ#Ð#r   c                 ó@  • UR                   UR                   :X  a  U$ [        UR                   5      u  pV[        R                  " [        R                  " S5      U R                  U5      /5      n[        R                  " USU S3SU 35      nUR                  X„/5      $ )NrÔ   úcvt.rn.f16.ú $0, $1;ú=h,)rŠ   rÒ   r   rk   r…   rØ   r¹   rn   rÙ   s	            r   Úfloat_to_float16_castrå   L  s€   € à‡�˜$Ÿ-™-Ó'Øˆ
ä0°·±ÓA�N€Bä�?Š?œ2Ÿ:š: b›>¨G×,BÑ,BÀ6Ó,JÐ+KÓL€DÜ
�,Š,�t˜{¨2¨$¨hÐ7¸3¸z¸lÐ9KÓ
L€CØ�<‰<˜˜UÓ#Ð#r   c                 ón   • SSSSS.n X   $ ! [          a    SU  S3n[        R                  " U5      ef = f)NÚcÚhÚrÚl)é   rÔ   r„   r‡   z"Conversion between float16 and intrË   rÌ   rÏ   s      r   Úfloat16_int_constraintrì   X  sL   € Ø˜C S¨cÑ3€Gð,ØÑ Ð øÜó ,Ø2°8°*¸LÐIˆÜ×&Ò& sÓ+Ð+ð,ús   ‰ �'4c                 ó8  • UR                   n[        U5      nUR                  (       a  SOSn[        R                  " U R                  U5      [        R                  " S5      /5      n[        R                  " USU U S3SU S35      n	UR                  X”/5      $ )Nr^   ÚurÔ   zcvt.rni.rÕ   rÖ   r×   )	rŠ   rì   Úsignedr   rk   rØ   r…   r¹   rn   ©
r%   r   rÚ   rÛ   rÜ   rŠ   rÞ   Ú
signednessrs   rß   s
             r   Úfloat16_to_integer_castrò   b  s‡   € à�}‰}€HÜ'¨Ó1€JØŸŸ‘¨€Jä�?Š?˜7×1Ñ1°$Ó7¼"¿*º*ÀR».Ð9IÓJ€DÜ
�,Š,�tØ! * ¨h¨Z°|ÐDØ˜:˜, bÐ)ó+€Cð �<‰<˜˜UÓ#Ð#r   c                 ó6  • UR                   n[        U5      nUR                  (       a  SOSn[        R                  " [        R
                  " S5      U R                  U5      /5      n[        R                  " USU U S3SU 35      n	UR                  X”/5      $ )Nr^   rî   rÔ   râ   rã   rä   )	rŠ   rì   rï   r   rk   r…   rØ   r¹   rn   rð   s
             r   Úinteger_to_float16_castrô   o  sŠ   € ð �‰€HÜ'¨Ó1€JØŸŸ‘¨3€Jä�?Š?œ2Ÿ:š: b›>Ø#×2Ñ2°6Ó:Ð;ó=€Dä
�,Š,�tØ$ Z L°°
¸(ÐCØ˜Z˜LÐ)ó+€Cð �<‰<˜˜UÓ#Ð#r   c                 ój   ^• [        U [        R                  [        R                  5      U4S j5       ng )Nc                 ó  >• [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      /5      n[         R                  " UT S3S5      nUR	                  XS5      $ )NrÔ   z.f16 $0,$1,$2;ú=h,h,h©r   rk   r…   r¹   rn   )r%   r   r&   r'   rs   rß   Úops         €r   Úptx_fp16_binaryÚ*lower_fp16_binary.<locals>.ptx_fp16_binary  s\   ø€ ä�ŠœrŸzšz¨"›~Ü "§
¢
¨2£´·
²
¸2³Ð?óAˆä�lŠl˜4 B 4 ~Ð!6¸ÓAˆØ�|‰|˜CÓ&Ð&r   ©Úlowerr	   Úfloat16)Úfnrù   rú   s    ` r   Úlower_fp16_binaryr   ~  s&   ø€ Ü
ˆ2Œu�}‰}œeŸm™mÓ,ô'ó -ñ'r   ÚaddÚsubÚmulc                 óÔ   • [         R                  " [         R                  " S5      [         R                  " S5      /5      n[         R                  " USS5      nUR	                  XS5      $ )NrÔ   zneg.f16 $0, $1;ú=h,hrø   ©r%   r   r&   r'   rs   rß   s         r   Úptx_fp16_hnegr  ’  óG   € ä�?Š?œ2Ÿ:š: b›>¬B¯JªJ°r«NÐ+;Ó<€DÜ
�,Š,�tÐ.°Ó
7€CØ�<‰<˜Ó"Ð"r   c                 ó   • [        XX#5      $ rÃ   )r  r$   s       r   Úoperator_hnegr
  ™  ó   € ä˜¨3Ó5Ð5r   c                 óÔ   • [         R                  " [         R                  " S5      [         R                  " S5      /5      n[         R                  " USS5      nUR	                  XS5      $ )NrÔ   zabs.f16 $0, $1;r  rø   r  s         r   Úptx_fp16_habsr  ž  r  r   c                 ó   • [        XX#5      $ rÃ   )r  r$   s       r   Úoperator_habsr  ¥  r  r   c                 ó,  • [         R                  " S5      [         R                  " S5      [         R                  " S5      /n[         R                  " [         R                  " S5      U5      n[         R                  " USS5      nUR	                  Xc5      $ )NrÔ   zfma.rn.f16 $0,$1,$2,$3;z=h,h,h,h)r   r…   rk   r¹   rn   )r%   r   r&   r'   Úargtysrs   rß   s          r   Úptx_hfmar  ª  s`   € ä�jŠj˜‹nœbŸjšj¨›n¬b¯jªj¸«nÐ=€FÜ�?Š?œ2Ÿ:š: b›>¨6Ó2€DÜ
�,Š,�tÐ6¸
Ó
C€CØ�<‰<˜Ó"Ð"r   c                 ó,   • S nU R                  XX#5      $ )Nc                 ó@   • [         R                  R                  X5      $ rÃ   )r   Úfp16Úhdiv)r   r   s     r   Úfp16_divÚfp16_div_impl.<locals>.fp16_divµ  s   € Ü�y‰y�~‰~˜aÓ#Ð#r   ©Úcompile_internal)r%   r   r&   r'   r  s        r   Úfp16_div_implr  ²  s   € ò$ð ×#Ñ# G°sÓAÐAr   z’{{
          .reg .pred __$$f16_cmp_tmp;
          setp.{op}.f16 __$$f16_cmp_tmp, $1, $2;
          selp.u16 $0, 1, 0, __$$f16_cmp_tmp;
        }}c                 ó   ^ • U 4S jnU$ )Nc                 óÒ  >• [         R                  " [         R                  " S5      [         R                  " S5      [         R                  " S5      /5      n[         R                  " U[        R                  T	S9S5      nUR                  XS5      nU R                  [        R                  S5      nUR                  U[         R                  " S5      5      nUR                  SX‡5      $ )NrÔ   )rù   r÷   r   z!=)r   rk   r…   r¹   Ú	_fp16_cmprH   rn   r|   r	   Úint16r‰   Úicmp_unsigned)
r%   r   r&   r'   rs   rß   ÚresultÚzeroÚ
int_resultrù   s
            €r   Úptx_fp16_comparisonÚ*_gen_fp16_cmp.<locals>.ptx_fp16_comparisonÃ  sŸ   ø€ Ü�ŠœrŸzšz¨"›~´·
²
¸2³ÄÇ
Â
È2ÃÐ/OÓPˆÜ�lŠl˜4¤×!1Ñ!1°RÐ!1Ð!8¸(ÓCˆØ—‘˜cÓ(ˆà×#Ñ#¤E§K¡K°Ó3ˆØ—_‘_ V¬R¯ZªZ¸«^Ó<ˆ
Ø×$Ñ$ T¨:Ó<Ð<r   rD   )rù   r$  s   ` r   Ú_gen_fp16_cmpr&  Â  s   ø€ õ=ð Ðr   ÚeqÚneÚgeÚgtÚleÚltc                 ój   ^• [        U [        R                  [        R                  5      U4S j5       ng )Nc                 óX   >• [        T5      " XX#5      nUR                  XCS   US   5      $ )Nr   r   )r&  Úselect)r%   r   r&   r'   Úchoicerù   s        €r   Úptx_fp16_minmaxÚ*lower_fp16_minmax.<locals>.ptx_fp16_minmaxÝ  s-   ø€ ä˜rÔ" 7°SÓ?ˆØ�~‰~˜f¨1¡g¨t°A©wÓ7Ð7r   rü   )rÿ   rq   rù   r1  s     ` r   Úlower_fp16_minmaxr3  Ü  s&   ø€ Ü
ˆ2Œu�}‰}œeŸm™mÓ,ô8ó -ñ8r   ÚmaxÚminÚ
__nv_cbrtfÚ	__nv_cbrtc                 óä   • UR                   n[        U   nU R                  U5      nUR                  n[        R
                  " Xf/5      n[        R                  " XxU5      n	UR                  X“5      $ rÃ   )	Úreturn_typeÚ
cbrt_funcsrØ   rj   r   rk   r
   rm   rn   )
r%   r   r&   r'   rÝ   rq   Úftyrr   rs   rÿ   s
             r   Úptx_cbrtr<  ñ  s`   € ð 
�‰€BÜ�r‰N€EØ
×
 Ñ
  Ó
$€CØ�>‰>€DÜ�?Š?˜3 Ó&€DÜ	×	'Ò	'¨°EÓ	:€BØ�<‰<˜Ó!Ð!r   c           	      óä   • [         R                  " UR                  [        R                  " [        R
                  " S5      [        R
                  " S5      45      S5      nUR                  XC5      $ )Nr„   Ú	__nv_brev©r
   rm   rj   r   rk   r…   rn   ©r%   r   r&   r'   rÿ   s        r   Úptx_brev_u4rA  ý  sP   € ô
 
×	'Ò	'Ø�‰Ü
�ŠœŸ
š
 2›¬¯ª°B«Ð(9Ó:Øó
€Bð �<‰<˜Ó!Ð!r   c           	      óä   • [         R                  " UR                  [        R                  " [        R
                  " S5      [        R
                  " S5      45      S5      nUR                  XC5      $ )Nr‡   Ú__nv_brevllr?  r@  s        r   Úptx_brev_u8rD  	  sP   € ô
 
×	'Ò	'Ø�‰Ü
�ŠœŸ
š
 2›¬¯ª°B«Ð(9Ó:Øó
€Bð �<‰<˜Ó!Ð!r   c                 óh   • UR                  US   U R                  [        R                  S5      5      $ r9   )Úctlzr|   r	   Úbooleanr$   s       r   Úptx_clzrH    s.   € à�<‰<ØˆQ‰Ø×ÑœUŸ]™]¨AÓ.ó0ð 0r   c           	      óä   • [         R                  " UR                  [        R                  " [        R
                  " S5      [        R
                  " S5      45      S5      nUR                  XC5      $ )Nr„   Ú__nv_ffsr?  r@  s        r   Ú
ptx_ffs_32rK    sP   € ô 
×	'Ò	'Ø�‰Ü
�ŠœŸ
š
 2›¬¯ª°B«Ð(9Ó:Øó
€Bð �<‰<˜Ó!Ð!r   c           	      óä   • [         R                  " UR                  [        R                  " [        R
                  " S5      [        R
                  " S5      45      S5      nUR                  XC5      $ )Nr„   r‡   Ú
__nv_ffsllr?  r@  s        r   Ú
ptx_ffs_64rN  &  sP   € ô 
×	'Ò	'Ø�‰Ü
�ŠœŸ
š
 2›¬¯ª°B«Ð(9Ó:Øó
€Bð �<‰<˜Ó!Ð!r   c                 ó0   • Uu  pEnUR                  XEU5      $ rÃ   )r/  )r%   r   r&   r'   ÚtestÚaÚbs          r   Úptx_selprS  0  s   € à�J€DˆQØ�>‰>˜$ 1Ó%Ð%r   c           	      ó  • [         R                  " UR                  [        R                  " [        R
                  " 5       [        R
                  " 5       [        R
                  " 5       45      S5      nUR                  XC5      $ )NÚ
__nv_fmaxf©r
   rm   rj   r   rk   r�   rn   r@  s        r   Ú
ptx_max_f4rW  6  óX   € ä	×	'Ò	'Ø�‰Ü
�ŠÜ�LŠL‹NÜ�\Š\‹^œRŸ\š\›^Ð,ó	.ð 	ó
€Bð �<‰<˜Ó!Ð!r   c           
      óÊ  • [         R                  " UR                  [        R                  " [        R
                  " 5       [        R
                  " 5       [        R
                  " 5       45      S5      nUR                  UU R                  XS   UR                  S   [        R                  5      U R                  XS   UR                  S   [        R                  5      /5      $ )NÚ	__nv_fmaxr   r   ©r
   rm   rj   r   rk   r–   rn   Úcastr'   r	   Údoubler@  s        r   Ú
ptx_max_f8r^  A  ó£   € ô 
×	'Ò	'Ø�‰Ü
�ŠÜ�MŠM‹OÜ�]Š]‹_œbŸmšm›oÐ.ó	0ð 	ó
€Bð �<‰<˜Ø�‰�W 1™g s§x¡x°¡{´E·L±LÓAØ�‰�W 1™g s§x¡x°¡{´E·L±LÓAðó ð r   c           	      ó  • [         R                  " UR                  [        R                  " [        R
                  " 5       [        R
                  " 5       [        R
                  " 5       45      S5      nUR                  XC5      $ )NÚ
__nv_fminfrV  r@  s        r   Ú
ptx_min_f4rb  R  rX  r   c           
      óÊ  • [         R                  " UR                  [        R                  " [        R
                  " 5       [        R
                  " 5       [        R
                  " 5       45      S5      nUR                  UU R                  XS   UR                  S   [        R                  5      U R                  XS   UR                  S   [        R                  5      /5      $ )NÚ	__nv_fminr   r   r[  r@  s        r   Ú
ptx_min_f8re  ]  r_  r   c           	      óD  • [         R                  " UR                  [        R                  " [        R
                  " S5      [        R                  " 5       45      S5      nUR                  UU R                  XS   UR                  S   [        R                  5      /5      $ )Nr‡   Ú__nv_llrintr   )r
   rm   rj   r   rk   r…   r–   rn   r\  r'   r	   r]  r@  s        r   Ú	ptx_roundrh  n  s}   € ô 
×	'Ò	'Ø�‰Ü
�ŠÜ�JŠJ�r‹NÜ�]Š]‹_Ðó	 ð 	ó
€Bð �<‰<˜Ø�‰�W 1™g s§x¡x°¡{´E·L±LÓAðó ð r   c                 ó,   • S nU R                  XX#5      $ )Nc                 ó¨  • [         R                  " U 5      (       d  [         R                  " U 5      (       a  U $ US:¼  a=  US:”  a  SUS-
  -  nSnOSU-  nSnX-  U-  n[         R                  " U5      (       a  U $ O
SU* -  nX-  n[        U5      n[         R                  " XE-
  5      S:X  a  S[        US-  5      -  nUS:¼  a
  UW-  U-  nU$ XR-  nU$ )Nr   é   g      $@g’ÕMÏð€Dg      ð?g      à?g       @)ÚmathÚisinfÚisnanÚroundÚfabs)r   ÚndigitsÚpow1Úpow2r   r   s         r   Úround_ndigitsÚ$round_to_impl.<locals>.round_ndigitsƒ  sá   € Ü�:Š:�a�=‰=œDŸJšJ qŸM™MØˆHà�a‹<Ø˜‹|ð  ¨"¡Ñ-�Ø‘à˜w‘�Ø�Ø‘˜TÑ!ˆAÜ�zŠz˜!�}‰}Ø�ð ð ˜W˜HÑ%ˆDØ‘ˆAä�!‹HˆÜ�IŠI�a‘eÓ Ó#à”e˜A ™G“nÑ$ˆAà�a‹<Ø�T‘˜TÑ!ˆAð ˆð ‰IˆAàˆr   r  )r%   r   r&   r'   rt  s        r   Úround_to_implrv  €  s   € òðB ×#Ñ# G¸CÓHÐHr   c                 ó   ^ • U 4S jnU$ )Nc                 ól   >• UR                   u  nU R                  UT5      nUR                  XSS   5      $ r9   )r'   r|   Úfmul)r%   r   r&   r'   ÚargtyÚfactorÚconsts         €r   ÚimplÚgen_deg_rad.<locals>.impl¨  s3   ø€ Ø—‘‰ˆØ×%Ñ% e¨UÓ3ˆØ�|‰|˜F¨¡GÓ,Ð,r   rD   )r|  r}  s   ` r   Úgen_deg_radr  §  s   ø€ õ-ð €Kr   g     €f@c           
      óæ  • U[         R                  ;   a  [         R                  " USS9nU/nO[        R                  " X[        U5      S9n[        X&5       VVs/ s H&  u  pxU R                  XU[         R                  5      PM(     nnnUR                  n	X•:w  a  [        SU	< SU< 35      eUR                  [        U5      :w  a#  [        SUR                  [        U5      4-  5      eX&4$ s  snnf )z,
Convert integer indices into tuple of intp
r   )rQ   Úcount)r�  zexpect z	 but got z#indexing %d-D array with %d-D index)r	   Úinteger_domainÚUniTupler
   Úunpack_tupleÚlenÚzipr\  ÚintprQ   Ú	TypeErrorÚndim)
r%   r   ÚindtyÚindsÚarytyÚvaltyÚindicesÚtÚirQ   s
             r   Ú_normalize_indicesr‘  ·  sÛ   € ð ”×$Ñ$Ó$Ü—’ U°!Ñ4ˆØ�&‰ä×&Ò& w¼CÀ»JÑGˆä˜uÔ.ô0Ú.‘4�1ð �|‰|˜G¨¬5¯:©:Ö6Ù.ð ñ 0ð �K‰K€EØƒ~Ý³%ºÐ?Ó@Ð@à‡z�z”S˜“ZÓÜÐ=ØŸ™¤S¨£ZÐ0ñ1ó 2ð 	2ð ˆ>Ðùó0s   Á-C-c                 ó   ^ • U 4S jnU$ )Nc           	      óÔ   >• UR                   u  pEnUu  pxn	UR                  n
[        XXXXF5      u  p[U R                  U5      " XU5      n[        R
                  " XXLUSS9nT" XX­U	5      $ )NT©Ú
wraparound)r'   rQ   r‘  Ú
make_arrayr
   Úget_item_pointer)r%   r   r&   r'   rŒ  rŠ  r�  Úaryr‹  rÜ   rQ   rŽ  ÚlaryÚptrÚdispatch_fns                 €r   ÚimpÚ_atomic_dispatcher.<locals>.impÏ  sy   ø€ à!Ÿh™hÑˆ�eØ‰ˆ�3Ø—‘ˆä+¨G¸eØ,1ó:‰ˆð ×!Ñ! %Ô(¨¸3Ó?ˆÜ×&Ò& w¸ÀgØ26ñ8ˆñ ˜7¨U¸Ó=Ð=r   rD   )r›  rœ  s   ` r   Ú_atomic_dispatcherrž  Î  s   ø€ õ>ð €Jr   c                 óD  • U[         R                  :X  a3  UR                  nUR                  [        R
                  " U5      X445      $ U[         R                  :X  a3  UR                  nUR                  [        R                  " U5      X445      $ UR                  SX4S5      $ )Nr  Ú	monotonic)	r	   rŒ   rj   rn   r   Údeclare_atomic_add_float32r•   Údeclare_atomic_add_float64Ú
atomic_rmw©r%   r   rQ   rš  rÜ   rr   s         r   Úptx_atomic_add_tupler¥  à  ó‹   € ð
 ”—‘ÓØ�~‰~ˆØ�|‰|œI×@Ò@ÀÓFØ ˜Jó(ð 	(à	”%—-‘-Ó	Ø�~‰~ˆØ�|‰|œI×@Ò@ÀÓFØ ˜Jó(ð 	(ð ×!Ñ! %¨°;Ó?Ð?r   c                 óD  • U[         R                  :X  a3  UR                  nUR                  [        R
                  " U5      X445      $ U[         R                  :X  a3  UR                  nUR                  [        R                  " U5      X445      $ UR                  SX4S5      $ )Nr  r   )	r	   rŒ   rj   rn   r   Údeclare_atomic_sub_float32r•   Údeclare_atomic_sub_float64r£  r¤  s         r   Úptx_atomic_subrª  ñ  r¦  r   c                 óä   • U[         R                  R                  ;   aD  UR                  nUR                  n[        [        SU 35      nUR                  U" U5      X445      $ [        SU S35      e)NÚdeclare_atomic_inc_intzUnimplemented atomic inc with ú array©	r   ÚcudadeclÚunsigned_int_numba_typesrŠ   rj   Úgetattrr   rn   rˆ  ©r%   r   rQ   rš  rÜ   Úbwrr   rÿ   s           r   Úptx_atomic_incr´    óh   € ð
 ”—‘×6Ñ6Ó6Ø�^‰^ˆØ�~‰~ˆÜ”YÐ"8¸¸Ð =Ó>ˆØ�|‰|™B˜t›H s jÓ1Ð1äÐ8¸¸¸vÐFÓGÐGr   c                 óä   • U[         R                  R                  ;   aD  UR                  nUR                  n[        [        SU 35      nUR                  U" U5      X445      $ [        SU S35      e)NÚdeclare_atomic_dec_intzUnimplemented atomic dec with r­  r®  r²  s           r   Úptx_atomic_decr¸    rµ  r   c                 óð   ^• [         U4S j5       n[        R                  [        R                  [        R                  4 H3  n[        U [        R                  U[        R                  5      " U5        M5     g )Nc                 óŠ   >• U[         R                  R                  ;   a  UR                  TX4S5      $ [	        ST SU S35      e)Nr   zUnimplemented atomic z with r­  ©r   r¯  Úinteger_numba_typesr£  rˆ  )r%   r   rQ   rš  rÜ   rù   s        €r   Úimpl_ptx_atomicÚ+ptx_atomic_bitwise.<locals>.impl_ptx_atomic  sE   ø€ à”T—]‘]×6Ñ6Ó7Ø×%Ñ% b¨#°KÓ@Ð@äÐ3°B°4°v¸e¸WÀFÐKÓLÐLr   )rž  r	   r‡  rƒ  ÚTuplerý   ÚArrayÚAny)Ústubrù   r½  rÝ   s    `  r   Úptx_atomic_bitwiserÃ    sQ   ø€ ÜôMó ðMô �z‰zœ5Ÿ>™>¬5¯;©;Ó7ˆÜˆd”E—K‘K ¤U§Y¡YÔ/°Ö@ò 8r   ÚandÚorÚxorc                 ó‚   • U[         R                  R                  ;   a  UR                  SX4S5      $ [	        SU S35      e)NÚxchgr   zUnimplemented atomic exch with r­  r»  )r%   r   rQ   rš  rÜ   s        r   Úptx_atomic_exchrÉ  /  s@   € ð
 ”—‘×2Ñ2Ó3Ø×!Ñ! &¨#°KÓ@Ð@äÐ9¸%¸ÀÐGÓHÐHr   c                 óö  • UR                   nU[        R                  :X  a'  UR                  [        R
                  " U5      X445      $ U[        R                  :X  a'  UR                  [        R                  " U5      X445      $ U[        R                  [        R                  4;   a  UR                  SX4SS9$ U[        R                  [        R                  4;   a  UR                  SX4SS9$ [        SU-  5      e©Nr4  r   ©ÚorderingÚumaxz&Unimplemented atomic max with %s array)rj   r	   r•   rn   r   Údeclare_atomic_max_float64rŒ   Údeclare_atomic_max_float32r}   Úint64r£  Úuint32Úuint64rˆ  r¤  s         r   Úptx_atomic_maxrÔ  :  óÖ   € ð
 �>‰>€DØ”—‘ÓØ�|‰|œI×@Ò@ÀÓFØ ˜Jó(ð 	(à	”%—-‘-Ó	Ø�|‰|œI×@Ò@ÀÓFØ ˜Jó(ð 	(à	”5—;‘;¤§¡Ð,Ó	,Ø×!Ñ! %¨¸KÐ!ÐHÐHØ	”5—<‘<¤§¡Ð.Ó	.Ø×!Ñ! &¨#¸[Ð!ÐIÐIäÐ@À5ÑHÓIÐIr   c                 óö  • UR                   nU[        R                  :X  a'  UR                  [        R
                  " U5      X445      $ U[        R                  :X  a'  UR                  [        R                  " U5      X445      $ U[        R                  [        R                  4;   a  UR                  SX4SS9$ U[        R                  [        R                  4;   a  UR                  SX4SS9$ [        SU-  5      e©Nr5  r   rÌ  Úuminz&Unimplemented atomic min with %s array)rj   r	   r•   rn   r   Údeclare_atomic_min_float64rŒ   Údeclare_atomic_min_float32r}   rÑ  r£  rÒ  rÓ  rˆ  r¤  s         r   Úptx_atomic_minrÛ  N  rÕ  r   c                 óö  • UR                   nU[        R                  :X  a'  UR                  [        R
                  " U5      X445      $ U[        R                  :X  a'  UR                  [        R                  " U5      X445      $ U[        R                  [        R                  4;   a  UR                  SX4SS9$ U[        R                  [        R                  4;   a  UR                  SX4SS9$ [        SU-  5      erË  )rj   r	   r•   rn   r   Údeclare_atomic_nanmax_float64rŒ   Údeclare_atomic_nanmax_float32r}   rÑ  r£  rÒ  rÓ  rˆ  r¤  s         r   Úptx_atomic_nanmaxrß  b  óÖ   € ð
 �>‰>€DØ”—‘ÓØ�|‰|œI×CÒCÀDÓIØ ˜Jó(ð 	(à	”%—-‘-Ó	Ø�|‰|œI×CÒCÀDÓIØ ˜Jó(ð 	(à	”5—;‘;¤§¡Ð,Ó	,Ø×!Ñ! %¨¸KÐ!ÐHÐHØ	”5—<‘<¤§¡Ð.Ó	.Ø×!Ñ! &¨#¸[Ð!ÐIÐIäÐ@À5ÑHÓIÐIr   c                 óö  • UR                   nU[        R                  :X  a'  UR                  [        R
                  " U5      X445      $ U[        R                  :X  a'  UR                  [        R                  " U5      X445      $ U[        R                  [        R                  4;   a  UR                  SX4SS9$ U[        R                  [        R                  4;   a  UR                  SX4SS9$ [        SU-  5      er×  )rj   r	   r•   rn   r   Údeclare_atomic_nanmin_float64rŒ   Údeclare_atomic_nanmin_float32r}   rÑ  r£  rÒ  rÓ  rˆ  r¤  s         r   Úptx_atomic_nanminrä  v  rà  r   c                 ó  • UR                  UR                  S   [        R                  UR                  S   UR                  S   5      nUS   U R	                  [        R                  S5      US   US   4n[        XX#5      $ )Nr   r   rA   )r9  r'   r	   r‡  r|   Úptx_atomic_casr$   s       r   Úptx_atomic_compare_and_swaprç  Š  sj   € à
�/‰/˜#Ÿ(™( 1™+¤u§z¡z°3·8±8¸A±;ÀÇÁÈÁÓ
L€CØ�‰G�W×)Ñ)¬%¯*©*°aÓ8¸$¸q¹'À4ÈÁ7ÐK€DÜ˜'¨CÓ6Ð6r   c           	      óž  • UR                   u  pEpgUu  p‰p«[        XXYUU5      u  p\U R                  U5      " XU5      n[        R                  " XXMUSS9nUR
                  [        R                  R                  ;   a;  UR                  nUR
                  R                  n[        R                  " XUXêU5      $ [        SUR
                  -  5      e)NTr”  z&Unimplemented atomic cas with %s array)r'   r‘  r–  r
   r—  rQ   r   r¯  r¼  rj   rŠ   r   Úatomic_cmpxchgrˆ  )r%   r   r&   r'   rŒ  rŠ  Úoldtyr�  r˜  r‹  ÚoldrÜ   rŽ  r™  rš  rr   rŠ   s                    r   ræ  ræ  ‘  s¿   € ð "%§¡Ñ€E�%ØÑ€Cˆsä'¨¸%ÀuØ(-ó/�N€Eð ×Ñ˜eÔ$ W°sÓ;€DÜ
×
"Ò
" 7°UÀ'Ø.2ñ4€Cð ‡{�{”t—}‘}×8Ñ8Ó9Ø�~‰~ˆØ—;‘;×'Ñ'ˆÜ×'Ò'¨°xÀÈ3ÓOÐOäÐ@À5Ç;Á;ÑNÓOÐOr   c                 óÚ   • [         R                  " [         R                  " [         R                  " 5       [         R                  " S5      /5      SSSS9nUS   nUR                  XE/5        g )Nr„   znanosleep.u32 $0;ré   Tr¶   r   )r   r¹   rk   rl   r…   rn   )r%   r   r&   r'   Ú	nanosleepÚnss         r   Úptx_nanosleeprï  ©  sM   € ä—’œRŸ_š_¬R¯[ª[«]¼R¿ZºZÈ»^Ð<LÓMØ0°#À4ñI€Ià	ˆa‰€BØ‡L�L�˜DÕ!r   c           
      óÞ  • [        [        R                  US5      nUS:*  =(       a    U=(       a    [        U5      S:H  nUS::  a  U(       d  [	        S5      eU R
                  U   n	[        U[        R                  [        R                  45      =(       d4    [        U	[        R                  5      =(       d    U[        R                  :H  n
U[        R                  ;  a  U
(       d  [        SU-  5      eU R                  U5      n[         R"                  " X·5      nU[$        R&                  :X  a  [(        R*                  " XUS9nOÄUR,                  n[(        R.                  " XìUU5      nU R1                  U5      nSUS-
  R3                  5       -  Ul        U(       a  SUl        O*[         R8                  " U[         R:                  5      Ul        UR?                  U[         R@                  " [         RB                  " S5      5      S5      n[D        RF                  " [$        RH                  " 5       RJ                  5      nU R                  U5      nURM                  U5      nUn/ n[O        [Q        U5      5       H  u  nnURS                  U5        UU-  nM     [Q        U5       Vs/ s H  nUPM     nnU Vs/ s H#  nU RU                  [        RV                  U5      PM%     nnU(       aª  [         RX                  " [         RZ                  " [         RB                  " S	5      / 5      S
SSS9nUR]                  UR_                  U/ 5      [         RB                  " S5      5      nU RU                  [        RV                  U5      nURa                  UU5      /nO0U Vs/ s H#  nU RU                  [        RV                  U5      PM%     nn[        U5      n[        Rb                  " UUSS9nU Re                  U5      " X5      n U Rg                  U URi                  UU Rj                  Rl                  5      UUU RU                  [        RV                  U5      S S9  U Ro                  5       $ s  snf s  snf s  snf )Nr   r   zarray length <= 0zunsupported type: %srI   Úexternalrë   Úgenericr„   zmov.u32 $0, %dynamic_smem_size;rµ   Tr¶   r‡   ÚC)rQ   r‰  Úlayout)ÚdatarP   ÚstridesÚitemsizeÚmeminfo)8r   Úoperatorr  r…  Ú
ValueErrorÚdata_model_managerÚ
isinstancer	   ÚRecordÚBooleanr   ÚStructModelrþ   Únumber_domainrˆ  Úget_data_typer   Ú	ArrayTyper   rd   r
   Úalloca_oncerj   Úadd_global_variableÚget_abi_sizeofÚ
bit_lengthÚalignÚlinkageÚConstantÚ	UndefinedÚinitializerÚaddrspacecastÚPointerTyper…   ÚllÚcreate_target_dataÚNVVMÚdata_layoutÚget_abi_sizeÚ	enumerateÚreversedÚappendr|   r‡  r¹   rk   r’   rn   ÚudivrÀ  r–  Úpopulate_arrayr‰   rõ  ÚtypeÚ	_getvalue)!r%   r   rP   rQ   rR   rS   rT   Ú	elemcountÚdynamic_smemÚ
data_modelÚother_supported_typeÚlldtypeÚlarytyÚdataptrrr   Úgvmemr  Ú
targetdatar÷  Ú
laststrideÚrstridesr�  Úlastsizer^   rö  ÚkstridesÚget_dynshared_sizeÚdynsmem_sizeÚ	kitemsizeÚkshaper‰  rŒ  r˜  s!                                    r   rW   rW   ´  s—  € ä”x—|‘| U¨AÓ.€Ið  ‘>×F l×F´s¸5³zÀQ±€LØ�Aƒ~žlÜÐ,Ó-Ð-ð ×+Ñ+¨EÑ2€Jä�5œ5Ÿ<™<¬¯©Ð7Ó8÷ 	"Ü�j¤&×"4Ñ"4Ó5÷	"à”E—M‘MÑ!ð ð
 ”E×'Ñ'Ó'Ö0DÜÐ.°Ñ6Ó7Ð7à×#Ñ# EÓ*€GÜ�\Š\˜'Ó-€Fà”D×(Ñ(Ó(ô ×%Ò% g¸KÑH‰à�~‰~ˆô ×+Ò+¨D¸+Ø,5ó7ˆð ×&Ñ& wÓ/ˆð ˜E A™I×2Ñ2Ó4Ñ4ˆŒæØ&ˆE�Mô !#§¢¨F´B·L±LÓ AˆEÔð ×'Ñ'¨¬r¯~ª~¼b¿jºjÈ»mÓ/LØ(1ó3ˆô ×&Ò&¤t§y¢y£{×'>Ñ'>Ó?€JØ×#Ñ# EÓ*€GØ×#Ñ# JÓ/€Hð €JØ€HÜ ¤¨%£Ö1‰ˆˆ8Ø�‰˜
Ô#Ø�hÑŠ
ñ 2ô # 8Ô,Ó-Ò,�Q‹qÑ,€GÐ-Ù=DÓEºW¸�×$Ñ$¤U§Z¡Z°Ö3¹W€HÐEö ô
  Ÿ\š\¬"¯/ª/¼"¿*º*ÀR».È"Ó*MØ*KØ*.¸DñBÐð —|‘| G§L¡LÐ1CÀRÓ$HÜ$&§J¢J¨r£Nó4ˆð ×(Ñ(¬¯©°XÓ>ˆ	Ø—,‘,˜|¨YÓ7Ð8‰á?DÓEºu¸!�'×&Ñ&¤u§z¡z°1Ö5¹uˆÐEô ˆu‹:€DÜ�KŠK˜e¨$°sÑ;€EØ
×
Ñ
˜UÔ
# GÓ
5€Cà×Ñ˜3Ø '§¡°¸¿¹¿¹Ó GØ!'Ø#+Ø$+×$8Ñ$8¼¿¹ÀXÓ$NØ#'ð ñ )ð �=‰=‹?ÐùòA .ùÚEùò$ Fs   Ê#Q Ê5*Q%Î*Q*c                 ó"   • U R                  5       $ rÃ   )ro   )r%   r   rÝ   Úpyvals       r   Úcuda_dispatcher_constr-    s   € à×"Ñ"Ó$Ð$r   )F)ÒÚ	functoolsr   rù  rl  Úllvmliter   Úllvmlite.bindingÚbindingr  Únumba.core.imputilsr   r   Únumba.core.typing.npydeclr   Únumba.core.datamodelr   Ú
numba.corer	   r
   Únumba.npr   Únumba.np.npyimplr   Úcudadrvr   Únumbar   Ú
numba.cudar   r   r   Únumba.cuda.typesr   r   Úregistryrý   Úlower_getattrÚ
lower_attrÚlower_constantr   ÚModuler(   r,   r0   r4   r7   r<   r?   rB   r|  Ú
array_likerÀ  rE   rG   rK   ÚsharedÚarrayÚIntegerLiteralrÁ  r[   r¿  rƒ  r_   Úlocalre   rg   Úthreadfence_blockru   Úthreadfence_systemrx   Úthreadfencerz   Úsyncwarpr‚   Úi4r   Úshfl_sync_intrinsicr‘   Úf4Úf8r«   Úvote_sync_intrinsicrG  r­   Úmatch_any_syncr±   Úmatch_all_syncr³   r»   r¼   Úlanemask_ltr¾   ÚpopcrÁ   rÄ   rÅ   rÒ   rþ   ÚFloatrà   rå   rì   ÚIntegerrò   rô   r   r  Úhaddr  ÚiaddÚhsubr  ÚisubÚhmulr  ÚimulÚhnegr  Únegr
  Úhabsr  Úabsr  Úhfmar  ÚtruedivÚitruedivr  r  r&  Úheqr'  Úhner(  Úhger)  Úhgtr*  Úhler+  Úhltr,  r3  ÚhmaxÚhminrŒ   r•   r:  Úcbrtr<  ÚbrevÚu4rA  Úu8rD  ÚclzrH  ÚffsrK  rN  ÚselprS  r4  rW  r^  r5  rb  re  ro  rh  rv  r  ÚpiÚ_deg2radÚ_rad2degÚradiansÚdegreesr‘  rž  Úatomicr‡  r¥  rª  Úincr´  Údecr¸  rÃ  Úand_r”   rÆ  ÚexchrÉ  rÔ  rÛ  Únanmaxrß  Únanminrä  Úcompare_and_swaprç  Úcasræ  rí  rÒ  rï  rW   r-  Ú
get_ufuncsrD   r   r   Ú<module>r€     s-  ðÝ Û Û å Ý ç 4Ý 1Ý 'ß %Ý Ý ,Ý Ý ß /Ñ /ß 1á‹:€Ø�‰€Ø×#Ñ#€
Ø×(Ñ(€ò3ñ ˆE�LŠL˜Ó Ó,ñ+ó -ð+ñ ˆE�LŠL˜Ó 
Ó+ñ,ó ,ð,ñ ˆE�LŠL˜Ó 
Ó+ñ-ó ,ð-ñ ˆE�LŠL˜Ó 	Ó*ñ.ó +ð.ñ ˆE�LŠL˜Ó Ó)ñ2ó *ð2ñ ˆD�#Óñ*ó ð*ñ ˆD�#Óñ*ó ð*ñ ˆD�#Óñ*ó ð*ñ €t‡z�z×Ñ˜eŸk™kÓ*ñó +ðð €ò3ñ €t‡{�{×Ñ˜%×.Ñ.°·	±	Ó:ñ-ó ;ð-ñ €t‡{�{×Ñ˜%Ÿ+™+ u§y¡yÓ1Ù€t‡{�{×Ñ˜%Ÿ.™.¨%¯)©)Ó4ñ-ó 5ó 2ð-ñ €t‡z�z×Ñ˜×-Ñ-¨u¯y©yÓ9ñ.ó :ð.ñ €t‡z�z×Ñ˜Ÿ™ e§i¡iÓ0Ù€t‡z�z×Ñ˜Ÿ™¨¯©Ó3ñ.ó 4ó 1ð.ñ €u×ÑÓñ%ó  ð%ñ €u×ÑÓ ñ%ó !ð%ñ €u×ÑÓñ%ó ð%ñ €u‡~�~ÓñAó ðAñ €u‡~�~�u—x‘xÓ ñ%ó !ð%ñ €u× Ñ  %§(¡(¨E¯H©H°e·h±hÀÇÁØ‡x�xóá€u× Ñ  %§(¡(¨E¯H©H°e·h±hÀÇÁØ‡x�xóá€u× Ñ  %§(¡(¨E¯H©H°e·h±hÀÇÁØ‡x�xóá€u× Ñ  %§(¡(¨E¯H©H°e·h±hÀÇÁØ‡x�xóñ+óóóóð+ñ\ €u× Ñ  %§(¡(¨E¯H©H°e·m±mÓDñ$ó Eð$ñ €u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0ñ	-ó 1ó 1ó 1ó 1ð	-ñ €u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0Ù€u×Ñ˜UŸX™X u§x¡xÓ0ñ-ó 1ó 1ó 1ó 1ð-ñ €u×ÑÓñ(ó ð(ñ €u×ÑÓñ(ó ð(ñ €u‡z�z�5—9‘9Óñ"ó ð"ñ €u‡y�y�%—)‘)˜UŸY™Y¨¯	©	Ó2ñó 3ðò,ñ ˆE�M‰M˜5Ÿ;™;Ó'ñ$ó (ð$ñ ˆE�K‰K˜Ÿ™Ó'ñ$ó (ð$ò,ñ ˆE�M‰M˜5Ÿ=™=Ó)ñ	$ó *ð	$ñ ˆE�M‰M˜5Ÿ=™=Ó)ÙˆE× Ñ  %§-¡-Ó0ñ
$ó 1ó *ð
$ò'ñ �%—*‘*—/‘/ 5Ô )Ù �(—,‘, Ô &Ù �(—-‘- Ô 'Ù �%—*‘*—/‘/ 5Ô )Ù �(—,‘, Ô &Ù �(—-‘- Ô 'Ù �%—*‘*—/‘/ 5Ô )Ù �(—,‘, Ô &Ù �(—-‘- Ô 'ñ €u‡z�z‡�˜Ÿ™Ó&ñ#ó 'ð#ñ €x‡|�|�U—]‘]Ó#ñ6ó $ð6ñ €u‡z�z‡�˜Ÿ™Ó&ñ#ó 'ð#ñ €sˆE�M‰MÓñ6ó ð6ñ €u‡z�z‡�˜Ÿ™ u§}¡}°e·m±mÓDñ#ó Eð#ñ €x×Ñ˜Ÿ™¨¯©Ó6Ù€x×Ñ˜%Ÿ-™-¨¯©Ó7ñBó 8ó 7ðBð€	ò	ñ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ EÙ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ EÙ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ EÙ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ EÙ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ EÙ €e‡j�j‡n‚n�e—m‘m U§]¡]Ô 3±MÀ$Ó4GÔ HÙ €h‡k‚k�5—=‘= %§-¡-Ô 0±¸tÓ1DÔ Eò8ñ �%—*‘*—/’/ 5¨$Ô /Ù �%—*‘*—/’/ 5¨$Ô /ð 
‡M‚M�<Ø	‡M‚M�;ð€
ñ €u‡z‚z�5—=’=Ó!Ù€u‡z‚z�5—=’=Ó!ñ"ó "ó "ð"ñ €u‡z‚z�5—8’8Óñ"ó ð"ñ €u‡z‚z�5—8’8Óñ"ó ð"ñ €u‡y‚y�%—)‘)Óñ0ó ð0ñ €u‡y‚y�%—(‘(ÓÙ€u‡y‚y�%—(’(Óñ"ó ó ð"ñ €u‡y‚y�%—(‘(ÓÙ€u‡y‚y�%—(’(Óñ"ó ó ð"ñ €u‡z‚z�5—9‘9˜eŸi™i¨¯©Ó3ñ&ó 4ð&ñ
 €sˆE�H‰H�e—h‘hÓñ"ó  ð"ñ €sˆE�H‰H�e—h‘hÓÙ€sˆE�H‰H�e—h‘hÓÙ€sˆE�H‰H�e—h‘hÓñó  ó  ó  ðñ €sˆE�H‰H�e—h‘hÓñ"ó  ð"ñ €sˆE�H‰H�e—h‘hÓÙ€sˆE�H‰H�e—h‘hÓÙ€sˆE�H‰H�e—h‘hÓñó  ó  ó  ðñ €uˆe�h‰hÓÙ€uˆe�h‰hÓñ	ó ó ð	ñ  €uˆe�h‰h˜Ÿ™Ó&Ù€uˆe�h‰h˜Ÿ™Ó&ñ"Ió 'ó 'ð"IòJð �7Š7�T‰>€Ø�$—'’'‰>€Ù €d‡l‚l�E—H‘HÔ ™k¨(Ó3Ô 4Ù €d‡l‚l�E—H‘HÔ ™k¨(Ó3Ô 4Ù €d‡l‚l�E—H‘HÔ ™k¨(Ó3Ô 4Ù €d‡l‚l�E—H‘HÔ ™k¨(Ó3Ô 4òò.ñ$ €u‡|‚|×Ñ˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ñ˜Ÿ™ e§n¡n°e·i±iÓ@Ù€u‡|‚|×Ñ˜Ÿ™ e§k¡k°5·9±9Ó=Øñ
@ó ó >ó Aó =ð
@ñ €u‡|‚|×Ñ˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ñ˜Ÿ™ e§n¡n°e·i±iÓ@Ù€u‡|‚|×Ñ˜Ÿ™ e§k¡k°5·9±9Ó=Øñ
@ó ó >ó Aó =ð
@ñ €u‡|‚|×Ò˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ò˜Ÿ™ e§n¡n°e·i±iÓ@Ù€u‡|‚|×Ò˜Ÿ™ e§k¡k°5·9±9Ó=ØñHó ó >ó Aó =ðHñ €u‡|‚|×Ò˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ò˜Ÿ™ e§n¡n°e·i±iÓ@Ù€u‡|‚|×Ò˜Ÿ™ e§k¡k°5·9±9Ó=ØñHó ó >ó Aó =ðHò	Añ �5—<’<×$Ò$ eÔ ,Ù �5—<’<×#Ò# TÔ *Ù �5—<’<×#Ò# UÔ +ñ €u‡|‚|×Ò˜%Ÿ+™+ u§z¢z°5·9±9Ó=Ù€u‡|‚|×Ò˜%Ÿ+™+ u§~¡~°u·y±yÓAÙ€u‡|‚|×Ò˜%Ÿ+™+ u§{¡{°E·I±IÓ>ØñIó ó ?ó Bó >ðIñ €u‡|‚|×Ò˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ò˜Ÿ™ e§k¡k°5·9±9Ó=Ù€u‡|‚|×Ò˜Ÿ™ e§n¡n°e·i±iÓ@ØñJó ó Aó >ó =ðJñ  €u‡|‚|×Ò˜Ÿ™ e§j¢j°%·)±)Ó<Ù€u‡|‚|×Ò˜Ÿ™ e§k¡k°5·9±9Ó=Ù€u‡|‚|×Ò˜Ÿ™ e§n¡n°e·i±iÓ@ØñJó ó Aó >ó =ðJñ  €u‡|‚|×Ò˜EŸK™K¨¯ª°U·Y±YÓ?Ù€u‡|‚|×Ò˜EŸK™K¨¯©°e·i±iÓ@Ù€u‡|‚|×Ò˜EŸK™K¨¯©¸¿¹ÓCØñJó ó Dó Aó @ðJñ  €u‡|‚|×Ò˜EŸK™K¨¯ª°U·Y±YÓ?Ù€u‡|‚|×Ò˜EŸK™K¨¯©°e·i±iÓ@Ù€u‡|‚|×Ò˜EŸK™K¨¯©¸¿¹ÓCØñJó ó Dó Aó @ðJñ  €u‡|‚|×$Ò$ e§k¡k°5·9±9¸e¿i¹iÓHñ7ó Ið7ñ €u‡|‚|×Ò˜Ÿ™ e§j¢j°%·)±)¸U¿Y¹YÓGÙ€u‡|‚|×Ò˜Ÿ™ e§k¡k°5·9±9¸e¿i¹iÓHÙ€u‡|‚|×Ò˜Ÿ™ e§n¡n°e·i±iÀÇÁÓKñPó Ló Ió HðPñ* €u‡‚˜ŸšÓ%ñ"ó &ð"ð !&ôañH �Óñ%ó  ð%ñ �×#Ó#Ó% uÕ -r   