+
    ‹°³j[& ã                   óh  € ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RIt^ RI	H
t
 ^ RIHt ^ RIHtHtHtHtHtHtHtHtHt ^RIHtHt ^RIHtHt ^RIHtHtHtH t! ^RI"H#t#H$t$H%t% ^R	I&H't'H(t(H)t)H*t*H+t+ ^R
I,H-t-H.t.H/t/ ^RI0H1t1H2t2H3t3 R t4R t5R R lt6R R lt7R R lt8R R lt9R R lt:R t;]<3R lt=R t>R t?R R lt@R R ltA]B]C]D! R4      0tE ! R  R!4      tF ! R" R#] PŽ                  4      tH ! R$ R%4      tI]
! R&R'7       ! R( R)4      4       tJ ! R* R+] PŽ                  4      tKR-R, ltLR# ).é    N)Ú	dataclass)Ú
ModuleType)	ÚAnyÚCallableÚDictÚOptionalÚTupleÚTypeÚUnionÚIterableÚList)ÚknobsÚlanguage)ÚirÚgluon_ir)Ú	constexprÚ	str_to_tyÚtensorÚtuple)Ú_unwrap_if_constexprÚ
base_valueÚ	base_type)Úget_full_nameÚJITCallableÚBoundConstexprFunctionÚConstexprFunctionÚJITFunction)Úapply_with_pathÚset_iterable_pathÚis_namedtuple)ÚCompilationErrorÚCompileTimeAssertionFailureÚUnsupportedLanguageConstructc                 óf   € R p\         P                  ! W 4      '       g   \        RV RV  2V 4      hV # )z^[a-zA-Z_][a-zA-Z0-9_]*$zinvalid z identifier: )ÚreÚmatchr!   )ÚnameÚtypeÚpatterns   && Ú_/home/luca/screen-checking/.venv/lib/python3.14/site-packages/triton/compiler/code_generator.pyÚcheck_identifier_legalityr+      s5   € Ø)€GÜ�8Š8�G×"Ò"Ü ¨$¨¨}¸T¸FÐCÀTÓJÐJØ€Kó    c                 ó  € R P                  V Uu. uF  q3P                  4       NK  	  up4      pVP                  RR4      pVP                  RR 4      P                  RR 4      pV  RV 2pVe   WRP                  4       ,          pV# u upi )Ú_Ú'Ú_sq_Ú[Ú]Ú__)ÚjoinÚmangleÚreplace)r'   Úarg_tysÚcaller_contextÚtyÚmangled_argsÚrets   &&&   r*   Ú	mangle_fnr<       s…   € à—8‘8±7Ó;±7¨RŸY™Yž[±7Ñ;Ó<€LØ×'Ñ'¨¨VÓ4€Là×'Ñ'¨¨SÓ1×9Ñ9¸#¸sÓC€LØˆF�"�\�NÐ
#€CØÒ!Ø×$Ñ$Ó&Õ&ˆØ€Jùò <s   �Bc                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚoÚreturn©r   Úbool)Úformats   "r*   Ú__annotate__rE   ,   s   € ÷ %ñ %œð %¤ñ %r,   c                 ó"   € \        V \        4      # ©N)Ú
isinstancer   ©r@   s   &r*   Ú_is_triton_valuerJ   ,   s   € Ü�aœÓ$Ð$r,   c                ó0   € V ^8„  d   QhR\         R\        /# r>   rB   )rD   s   "r*   rE   rE   0   s   € ÷ !ñ !œð !¤ñ !r,   c                 ó"   € \        V \        4      # rG   )rH   r   rI   s   &r*   Ú_is_triton_tensorrM   0   s   € Ü�aœÓ Ð r,   c                ó0   € V ^8„  d   QhR\         R\        /# r>   rB   )rD   s   "r*   rE   rE   4   s   € ÷ Uñ U”Sð UœTñ Ur,   c                 óx   € V R J ;'       g0    \        V \        \        P                  P                  \
        34      # rG   )rH   r   r   ÚcoreÚdtyper   rI   s   &r*   Ú_is_constexprrR   4   s,   € Ø�ˆ9×TÐTœ
 1¤y´(·-±-×2EÑ2EÄ{Ð&SÓTÐTr,   c                ó0   € V ^8„  d   QhR\         R\        /# r>   rB   )rD   s   "r*   rE   rE   8   s   € ÷ Nñ NœSð N¤Tñ Nr,   c                 óž   € \        V 4      ;'       d<    V P                  P                  4       ;'       d    V P                  P                  ^8g  # ©é   )rM   r(   Úis_blockÚnumelrI   s   &r*   Ú_is_non_scalar_tensorrY   8   s5   € Ü˜QÓ×MÐM Q§V¡V§_¡_Ó%6×%LÐ%L¸1¿6¹6¿<¹<È1Ñ;LÐMr,   c                ó0   € V ^8„  d   QhR\         R\        /# r>   rB   )rD   s   "r*   rE   rE   <   s   € ÷ (ñ (”Sð (œTñ (r,   c                 ó.   € \        V \        \        34      # rG   )rH   Úlistr   rI   s   &r*   Ú_is_list_liker]   <   s   € Ü�aœ$¤˜Ó'Ð'r,   c                 ó  € VP                   '       dv   \        V4       Fd  w  r4\        V4      '       d   K  \        V4      '       g   K+  \	        VP
                  V R VP                   RVP                  V,           RV 24      h	  R# R# )z	Function z= is marked noinline, but was called with non-scalar argument Ú:N)ÚnoinlineÚ	enumeraterR   rY   r#   ÚsrcÚ__name__Ú	arg_names)ÚnodeÚfnÚargsÚidxÚargs   &&&  r*   Ú_check_fn_argsrj   @   sƒ   € Ø	‡{‡{€{Ü! $ž‰HˆCÜ  ×%Ô%Ô*?À×*DÔ*DÜ2Ø—F‘F˜DØ §¡˜}Ð,iÐjl×jvÑjvÐwzÕj{Ði|Ð|}ð  Bð  ~Cð  Dóð ó (ñ r,   c                 ó0   € V '       g   V! V! 4       4      hR # rG   © )ÚcondÚmsg_fnÚcategorys   &&&r*   Ú_checkrp   J   s   € ßÙ‘v“xÓ Ð ñ r,   c                 ó<  € \        \        V 4      4      '       d   V P                  pMm\        V \        P
                  4      '       d   R pMJ\        V \        P
                  4      '       d   V P                  P                  pMQ R\        T 4       24       hV  Uu. uF
  q1! V4      NK  	  ppV Uu. uF  q3f   \        V4      MTNK  	  ppV Uu. uF  q3P                  NK  	  pp\        P
                  ! V\        P                  ! WR4      4      # u upi u upi u upi )NzUnsupported type )
r    r(   Ú_fieldsrH   Úbuiltinsr   r   Úfieldsr   Ú
tuple_type)Úvaluerf   rt   ÚvÚvalsÚtypess   &&    r*   Ú_apply_to_tuple_valuesrz   O   sÚ   € Ü”T˜%“[×!Ò!Ø—‘‰Ü	�Eœ8Ÿ>™>×	*Ò	*Ø‰Ü	�Eœ8Ÿ>™>×	*Ò	*Ø—‘×"Ñ"‰à7Ð)¬$¨u«+¨Ð7Ó7ˆuá Ó!™5�aˆBˆqŽE™5€DÐ!Ù6:Ó;±d°šIŒI�aŒL¨1Ò,±d€DÐ;Ù!Ó"™T˜�VŒV™T€EÐ"Ü�>Š>˜$¤× 3Ò 3°EÓ BÓCÐCùò "ùÚ;ùÚ"s   ÂDÂ/DÃDc                 ó¾   € \        V \        P                  \        P                  34      '       d   \	        V \
        4      # \        V 4      '       d   V # \        V 4      # rG   )rH   rs   r   r   rz   Únormalize_valuerJ   r   )rv   s   &r*   r|   r|   _   sD   € Ü�%œ(Ÿ.™.¬(¯.©.Ð9×:Ò:Ü% e¬_Ó=Ð=Ü˜×ÒØˆÜ�UÓÐr,   c                ó:   € V ^8„  d   QhR\         \        ,          /# )r?   Úvalues)r   r   )rD   s   "r*   rE   rE   g   s   € ÷ ñ ¤¬*Õ!5ñ r,   c                 ó>   € . pV  F  pVP                  V4       K  	  V# rG   )Ú_flatten_ir)r~   Úhandlesrw   s   &  r*   Úflatten_values_to_irr‚   g   s"   € Ø€GÛˆØ	�‰�gÖñ à€Nr,   c                óp   € V ^8„  d   QhR\         \        P                  ,          R\         \        ,          /# )r?   r�   ry   )r   r   rv   r   )rD   s   "r*   rE   rE   n   s&   € ÷ "ñ "¤¤b§h¡h¥ð "¼¼Y½ñ "r,   c              #   óv   "  € ^ pV F  pVP                  W4      w  rBVx € K  	  V\        V 4      8X  g   Q hR# 5i©r   N)Ú_unflatten_irÚlen)r�   ry   Úcursorr9   rv   s   &&   r*   Úunflatten_ir_valuesr‰   n   s?   é € Ø€FÛˆØ×(Ñ(¨Ó9‰ˆØŒñ ð ”S˜“\Ô!Ð!Ò!ùs   ‚79c                   ó2   a € ] tR t^yt o R tR tR tRtV tR# )Úenter_sub_regionc                ó   € Wn         R # rG   )Ú	generator)Úselfr�   s   &&r*   Ú__init__Úenter_sub_region.__init__{   s   € Ø"Žr,   c                óÐ  € \        V P                  P                  4      V n        \        V P                  P                  4      V n        \        V P                  P                  4      V n        / V P                  n        V P                  P                  P                  4       V n
        V P                  P                  P                  4       V n        V P                  V P                  3# rG   )Údictr�   ÚlscopeÚliveinsÚ
local_defsÚ	prev_defsÚpending_annotationsÚprev_pending_annotationsÚbuilderÚget_insertion_blockÚinsert_blockÚget_insertion_pointÚinsert_point)rŽ   s   &r*   Ú	__enter__Úenter_sub_region.__enter__~   sœ   € ä˜DŸN™N×1Ñ1Ó2ˆŒÜ˜dŸn™n×7Ñ7Ó8ˆŒÜ(,¨T¯^©^×-OÑ-OÓ(PˆÔ%Ø$&ˆ�‰Ô!Ø ŸN™N×2Ñ2×FÑFÓHˆÔØ ŸN™N×2Ñ2×FÑFÓHˆÔØ�|‰|˜T×.Ñ.Ð.Ð.r,   c                ó  € V P                   P                  P                  V P                  4       V P                  V P                   n        V P                  V P                   n        V P                  V P                   n	        R # rG   )
r�   r™   Úrestore_insertion_pointr�   r”   r“   r–   r•   r˜   r—   )rŽ   rg   Úkwargss   &*,r*   Ú__exit__Úenter_sub_region.__exit__ˆ   sR   € Ø�‰×Ñ×6Ñ6°t×7HÑ7HÔIØ $§¡ˆ�‰ÔØ$(§N¡Nˆ�‰Ô!Ø-1×-JÑ-Jˆ�‰Ö*r,   )r�   r›   r�   r”   r–   r˜   N)	rc   Ú
__module__Ú__qualname__Ú__firstlineno__r�   rž   r£   Ú__static_attributes__Ú__classdictcell__©Ú__classdict__s   @r*   r‹   r‹   y   s   ø‡ € ò#ò/÷Kð Kr,   r‹   c                   ó  a € ] tR t^�t o R tV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR	 ltV 3R
 lR lt	V 3R lR lt
V 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltV 3R lR ltRtV tR# )ÚContainsReturnCheckerc                ó   € Wn         R # rG   ©Úgscope)rŽ   r°   s   &&r*   r�   ÚContainsReturnChecker.__init__’   s   € ØŽr,   c                ó    <€ V ^8„  d   QhRS[ /# ©r?   rA   ©rC   )rD   r«   s   "€r*   rE   Ú"ContainsReturnChecker.__annotate__•   s   ø€ ÷ 0ñ 0¡Dñ 0r,   c                óx   a € \         ;QJ d    V 3R  lV 4       F  '       g   K   R# 	  R# ! V 3R  lV 4       4      # )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irG   ©Úvisit)Ú.0ÚsrŽ   s   & €r*   Ú	<genexpr>Ú5ContainsReturnChecker._visit_stmts.<locals>.<genexpr>–   s   øé € Ð/©$ Q�4—:‘:˜a—=�=«$ùó   ƒ!TF)Úany)rŽ   Úbodys   f&r*   Ú_visit_stmtsÚ"ContainsReturnChecker._visit_stmts•   s,   ø€ ß‹sÔ/©$Ó/�sŒsÐ/ŠsÐ/ˆsÔ/©$Ó/Ó/Ð/r,   c                ó    <€ V ^8„  d   QhRS[ /# r³   r´   )rD   r«   s   "€r*   rE   rµ   ˜   s   ø€ ÷ ñ ¡Tñ r,   c                ó   € R # ©Frl   )rŽ   rf   s   &&r*   Ú_visit_functionÚ%ContainsReturnChecker._visit_function˜   s   € ñ r,   c                ó    <€ V ^8„  d   QhRS[ /# r³   r´   )rD   r«   s   "€r*   rE   rµ   ž   s   ø€ ÷ 	ñ 	¡Tñ 	r,   c                ó~  € R p\         P                  ! V4       F   w  r4\        V\        4      '       dI   V F@  p\        V\         P                  4      '       g   K%  T;'       g    V P                  V4      pKB  	  Kc  \        V\         P                  4      '       g   K…  T;'       g    V P                  V4      pK¢  	  V# rÅ   )ÚastÚiter_fieldsrH   r\   ÚASTr¹   )rŽ   re   r;   r.   rv   Úitems   &&    r*   Úgeneric_visitÚ#ContainsReturnChecker.generic_visitž   sŠ   € ØˆÜŸš¨Ö-‰HˆAÜ˜%¤×&Ò&Û!�DÜ! $¬¯©×0Ô0Ø!×5Ð5 T§Z¡Z°Ó%5šó "ô ˜E¤3§7¡7×+Ô+Ø×.Ð.˜TŸZ™Z¨Ó.’ñ .ð ˆ
r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# ©r?   re   rA   )rÊ   Ú	AttributerC   )rD   r«   s   "€r*   rE   rµ   ©   s   ø€ ÷ &ñ &¡C§M¡Mð &±dñ &r,   c                ót  € \        VP                  \        P                  4      '       du   VP                  P                  V P
                  9   dN   V P
                  VP                  P                  ,          p\        W!P                  4      pV P                  V4      # R # V P                  VP                  4      # rÅ   )
rH   rv   rÊ   ÚNameÚidr°   ÚgetattrÚattrrÆ   r¹   )rŽ   re   rv   rf   s   &&  r*   Úvisit_AttributeÚ%ContainsReturnChecker.visit_Attribute©   sx   € ô �d—j‘j¤#§(¡(×+Ò+Ø�z‰z�}‰} §¡Ô+ØŸ™ D§J¡J§M¡MÕ2�Ü˜U§I¡IÓ.�Ø×+Ñ+¨BÓ/Ð/ÙØ�z‰z˜$Ÿ*™*Ó%Ð%r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   rÔ   rC   )rD   r«   s   "€r*   rE   rµ   ¸   s   ø€ ÷ ñ ™sŸx™xð ©Dñ r,   c                óê   € \        VP                  4      \        P                  J d   R # VP                  V P
                  9   d/   V P
                  VP                  ,          pV P                  V4      # R # rÅ   )r(   ÚctxrÊ   ÚStorerÕ   r°   rÆ   )rŽ   re   rf   s   && r*   Ú
visit_NameÚ ContainsReturnChecker.visit_Name¸   sO   € Ü�—‘‹>œSŸY™YÓ&ÙØ�7‰7�d—k‘kÔ!Ø—‘˜TŸW™WÕ%ˆBØ×'Ñ'¨Ó+Ð+Ùr,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚReturnrC   )rD   r«   s   "€r*   rE   rµ   À   s   ø€ ÷ ñ ¡§¡ð ±ñ r,   c                ó   € R # )Trl   ©rŽ   re   s   &&r*   Úvisit_ReturnÚ"ContainsReturnChecker.visit_ReturnÀ   ó   € Ùr,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚAssignrC   )rD   r«   s   "€r*   rE   rµ   Ã   s   ø€ ÷ ñ ¡§¡ð ±ñ r,   c                ó   € R # rÅ   rl   rã   s   &&r*   Úvisit_AssignÚ"ContainsReturnChecker.visit_AssignÃ   ó   € ñ r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   Ú	AugAssignrC   )rD   r«   s   "€r*   rE   rµ   È   s   ø€ ÷ ñ ¡C§M¡Mð ±dñ r,   c                ó   € R # rÅ   rl   rã   s   &&r*   Úvisit_AugAssignÚ%ContainsReturnChecker.visit_AugAssignÈ   rì   r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚModulerC   )rD   r«   s   "€r*   rE   rµ   Í   s   ø€ ÷ ,ñ ,¡§¡ð ,±ñ ,r,   c                ó8   € V P                  VP                  4      # rG   ©rÁ   rÀ   rã   s   &&r*   Úvisit_ModuleÚ"ContainsReturnChecker.visit_ModuleÍ   ó   € Ø× Ñ  §¡Ó+Ð+r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚFunctionDefrC   )rD   r«   s   "€r*   rE   rµ   Ð   s   ø€ ÷ ,ñ ,¡c§o¡oð ,¹$ñ ,r,   c                ó8   € V P                  VP                  4      # rG   rõ   rã   s   &&r*   Úvisit_FunctionDefÚ'ContainsReturnChecker.visit_FunctionDefÐ   rø   r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚIfrC   )rD   r«   s   "€r*   rE   rµ   Ó   s   ø€ ÷ ñ ™SŸV™Vð ©ñ r,   c                óª   € V P                  VP                  4      pVP                  '       d&   T;'       g    V P                  VP                  4      pV# rG   )rÁ   rÀ   Úorelse)rŽ   re   r;   s   && r*   Úvisit_IfÚContainsReturnChecker.visit_IfÓ   sB   € ð ×Ñ §	¡	Ó*ˆØ�;�;ˆ;Ø×7Ð7˜×*Ñ*¨4¯;©;Ó7ˆCØˆ
r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚIfExprC   )rD   r«   s   "€r*   rE   rµ   à   s#   ø€ ÷ @ñ @¡§	¡	ð @©dñ @r,   c                ó~   € V P                  VP                  4      ;'       g    V P                  VP                  4      # rG   )r¹   rÀ   r  rã   s   &&r*   Úvisit_IfExpÚ!ContainsReturnChecker.visit_IfExpà   s*   € Ø�z‰z˜$Ÿ)™)Ó$×?Ð?¨¯
©
°4·;±;Ó(?Ð?r,   c                ó:   <€ V ^8„  d   QhRS[ P                  RS[/# rÑ   )rÊ   ÚCallrC   )rD   r«   s   "€r*   rE   rµ   ã   s   ø€ ÷ %ñ %™sŸx™xð %©Dñ %r,   c                ó8   € V P                  VP                  4      # rG   )r¹   Úfuncrã   s   &&r*   Ú
visit_CallÚ ContainsReturnChecker.visit_Callã   s   € Ø�z‰z˜$Ÿ)™)Ó$Ð$r,   r¯   N)rc   r¥   r¦   r§   r�   rÁ   rÆ   rÎ   rØ   rÞ   rä   rê   rð   rö   rü   r  r  r  r¨   r©   rª   s   @r*   r­   r­   �   sŽ   ø‡ € ò÷0ð 0÷ð ÷	ð 	÷&ð &÷ð ÷ð ÷ð ÷
ð ÷
,ð ,÷,ð ,÷ð ÷@ð @÷%ö %r,   r­   c                   ób   a € ] tR t^çt o R tV 3R lR ltV 3R lR ltV 3R lR ltR tR	t	V t
R
# )ÚASTFunctionc                ó*   € Wn         W n        W0n        R # rG   )Ú	ret_typesÚ	arg_typesÚattrs)rŽ   r  r  r  s   &&&&r*   r�   ÚASTFunction.__init__é   s   € Ø"ŒØ"ŒØŽ
r,   c                ót   <€ V ^8„  d   QhRS[ P                  RS[S[,          RS[S[ P                  ,          /# )r?   r™   ry   rA   )r   r™   r   r   r(   )rD   r«   s   "€r*   rE   ÚASTFunction.__annotate__î   s5   ø€ ÷ ñ ©¯
©
ð ¹4Á	½?ð ÉtÑTV×T[ÑT[Í}ñ r,   c                óJ   € . pV F  pVf   K	  VP                  W4       K  	  V# rG   )Ú_flatten_ir_types)rŽ   r™   ry   Úir_typesr9   s   &&&  r*   Úflatten_ir_typesÚASTFunction.flatten_ir_typesî   s.   € ØˆÛˆBØŠzÙØ× Ñ  Ö3ñ ð ˆr,   c                ó^   <€ V ^8„  d   QhRS[ P                  RS[S[ P                  ,          /# )r?   r™   rA   )r   r™   r   r(   )rD   r«   s   "€r*   rE   r  ö   s'   ø€ ÷ >ñ >¡r§z¡zð >±d¹2¿7¹7µmñ >r,   c                ó8   € V P                  WP                  4      # rG   )r  r  )rŽ   r™   s   &&r*   Úreturn_types_irÚASTFunction.return_types_irö   s   € Ø×$Ñ$ W¯n©nÓ=Ð=r,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# )r?   r™   )r   r™   )rD   r«   s   "€r*   rE   r  ù   s   ø€ ÷ Cñ C¡§¡ñ Cr,   c                ó|   € V P                  WP                  4      pV P                  V4      pVP                  W#4      # rG   )r  r  r  Úget_function_ty)rŽ   r™   Úarg_types_irÚret_types_irs   &&  r*   Ú	serializeÚASTFunction.serializeù   s7   € à×,Ñ,¨W·n±nÓEˆØ×+Ñ+¨GÓ4ˆØ×&Ñ& |ÓBÐBr,   c                ó   a aaaaa€ V3R  loS! S P                   4      o\        SP                  4       4       Uu. uF  pSP                  V4      NK  	  upo^ oVVVV V3R lp\	        S P                   V4       S# u upi )c                 óê   <€ \        V \        \        \        P                  34      '       d.   \        P                  ! V  Uu. uF  pS! V4      NK  	  upV 4      # \        P
                  ! R 4      # u upi rG   )rH   r\   r   r   ru   r   )r9   ÚxÚmake_templates   & €r*   r+  Ú.ASTFunction.deserialize.<locals>.make_template  sY   ø€ Ü˜"œt¤U¬H×,?Ñ,?Ð@×AÒAÜ—~’~ÁÓ&DÁ¸A¡}°QÖ'7ÁÑ&DÀbÓIÐIÜ×%Ò% dÓ+Ð+ùò 'Es   ÁA0c                 ó¼   <€ S	P                   P                  V . 4      pV F  w  r4SP                  SW44       K  	  VP                  SS4      w  po\	        S
W4       R # rG   )r  ÚgetÚset_arg_attrr†   r   )Úpathr9   Ú
attr_specsÚ	attr_nameÚattr_valÚvalrˆ   rf   r�   rŽ   rx   s   &&    €€€€€r*   Úbuild_valueÚ,ASTFunction.deserialize.<locals>.build_value
  sV   ø€ ð Ÿ™Ÿ™¨¨bÓ1ˆJÛ'1Ñ#�	Ø—‘ ¨	Ö<ñ (2ð ×*Ñ*¨7°FÓ;‰KˆC�Ü˜d DÖ.r,   )r  ÚrangeÚget_num_argsrg   r   )rŽ   rf   Úir5  rˆ   r�   r+  rx   s   ff  @@@@r*   ÚdeserializeÚASTFunction.deserializeÿ   sl   ý€ õ	,ñ
 ˜TŸ^™^Ó,ˆÜ',¨R¯_©_Ó->Ô'?Ó@Ñ'? !�2—7‘7˜1–:Ñ'?Ñ@ˆØˆ÷	/ñ 	/ô 	˜Ÿ™¨Ô4Øˆùò As   ºA;)r  r  r  N)rc   r¥   r¦   r§   r�   r  r  r&  r:  r¨   r©   rª   s   @r*   r  r  ç   s4   ø‡ € ò÷
ð ÷>ð >÷Cð C÷ð r,   r  T)Úfrozenc                   ó,   a € ] tR tRt o V 3R ltRtV tR# )ÚBoundJITMethodi  c                ó2   <€ V ^8„  d   Qh/ S[ ;R&   S[;R&   # )r?   Ú__self__Ú__func__)r   r   )rD   r«   s   "€r*   rE   ÚBoundJITMethod.__annotate__  s   ø‡ ‚ áÑñ ñ Ñò r,   rl   N)rc   r¥   r¦   r§   Ú__annotate_func__r¨   r©   rª   s   @r*   r>  r>    s   ø‡ ‡ „ r,   r>  c                   ó¸  aa€ ] tR tRt oRRRRRRRRRRR	RR
^ R^/V3R lR llt]]]]]	]
]]3 U u/ uF  p V P                   V bK  	  up t]P                  R]P                   P"                  3R]P                   P$                  3R]P                   P&                  334       R tR tR t]P0                  R 4       tR tV3R lR ltR tR t]! 4       3V3R lR lltR t R t!R t"V3R lR  lt#R! t$R" t%R# t&R$ t'R% t(R& t)R' t*R( t+R) t,R* t-R+ t.V3R, lR- lt/R. t0R/ t1R0 t2R1 t3R2 t4R3 t5]6Pn                  R4]6Pp                  R5]6Pr                  R6]6Pt                  R7]6Pv                  R8]6Px                  R9]6Pz                  R:]6P|                  R;]6P~                  R<]6P€                  R=]6P‚                  R>]6P„                  R?/tCR@ tDRA tERB tFRC tGRD tHRE tIRF tJRG tK]6P˜                  RH]6Pš                  RI]6Pœ                  RJ]6Pž                  RK]6P                   RL]6P¢                  RM/tRRN tS]6P¨                  RO]6Pª                  RP]6P¬                  RQ]6P®                  RR/tXRS tYRT tZRU t[RV t\RW t]RX t^RY t_RZ t`R[ taV3R\ lR] ltbV3R^ lR_ ltcRwV3R` lRa lltdRb teRc tfRd tgRe thV3Rf lRg lti]6PÔ                  Rh]6PÖ                  Ri/tlRj tmRk tnRl toRm tpRn tqV3Ro ltrRp tsV3Rq lRr lttRs tu^RtIvHtw ]P                   Pð                  ]t]P                   Pò                  ]u! ]z4      ]wPð                  ]t]wPò                  ]u! ]z4      ]	]u! ]	4      ]]u! ]4      /t{V3Ru lt|Rvt}Vt~V;t# u up i )xÚCodeGeneratori  ÚmoduleNÚ	is_kernelFÚfunction_typesr`   r8   Ú	file_nameÚ
begin_lineÚ	begin_colc                óL   <€ V ^8„  d   QhRS[ RS[S[,          RS[S[,          /# )r?   Újit_fnrH  rI  )r   r   r   Ústr)rD   r«   s   "€r*   rE   ÚCodeGenerator.__annotate__   s3   ø€ ÷ C0ñ C0É+ð C0ÙU]Ñ^bÕUcðC0áAIÉ#ÅñC0r,   c               ó0  € Wn         W�n        V	'       dD   ^ RIHp \        P
                  ! WP                  4      V n        V! V P                  4      V n        M8^ RI	H
p \        P                  ! V4      V n        V! V P                  4      V n        RV n        Wðn        V^,
          V n        VV n        V P                  P!                  VVV4       W`P                  n        WpP                  n        Vf   / MTV P                  n        V
f   V P                  P)                  4       MT
V n        Vf   / MTV n        W n        . V n        . V n        / V n        VP7                  4        F–  w  pp\9        V\:        4      '       d,   VP=                  VP>                  V4      V P4                  V&   KG  \A        VRR4      pVV9   d-   \A        VV,          VP>                  4      V P4                  V&   K‡  VV P4                  V&   K˜  	  / V n!        WPn"        V'       d'   WDPG                  R4      ^,           R p\I        VR4      pW@n%        W°n&        RV n'        WÐn(        Wàn)        . V n*        RV n+        / V n,        / V n-        V P]                  4       V n/        RV n0        RV n1        R# )	r   )ÚGluonSemantic)ÚTritonSemanticNr¥   Ú Ú.ÚfunctionF)2ÚcontextÚis_gluonÚ,triton.experimental.gluon.language._semanticrQ  r   ÚGluonOpBuilderÚarchr™   ÚsemanticÚtriton.language.semanticrR  r   Úname_loc_as_prefixrI  rJ  rK  Úset_locÚoptionsÚcodegen_fnsÚ
module_mapÚcreate_modulerF  Úfunction_ret_typesÚ	prototypeÚreturn_valsÚ
return_ipsr°   ÚitemsrH   r   r.  rc   rÖ   r“   rM  Úrfindr+   Úfunction_namerG  Úcur_noder`   r8   Ú	scf_stackÚret_typer•   r—   Ú_define_name_lookupÚdereference_namerf   Úvisiting_arg_default_value)rŽ   rV  rd  r°   ri  rM  r_  r`  ra  rW  rF  rG  rH  r`   r8   rI  rJ  rK  rQ  rR  Úkrw   Úmodule_names   &&&&&&$$$$$$$$$$$$     r*   r�   ÚCodeGenerator.__init__   s  € ð ŒØ ŒßÝRÜ#×2Ò2°7¿L¹LÓIˆDŒLÙ)¨$¯,©,Ó7ˆD�Må?ÜŸ:š: gÓ.ˆDŒLÙ*¨4¯<©<Ó8ˆDŒMà"&ˆÔØ"Œà$ q�.ˆŒØ"ˆŒØ�‰×Ñ˜Y¨
°IÔ>Ø&�‰Ôð $/�‰Ô Ø(2Ò(:¡"À
ˆ�‰ÔØ6<²n�d—l‘l×0Ñ0Ô2È&ˆŒØ(6Ò(>¡"ÀNˆÔØ"Œà46ˆÔØ?AˆŒàˆŒØ—L‘L–N‰DˆAˆqÜ˜!œZ×(Ò(Ø!+§¡°·
±
¸AÓ!>�—‘˜A‘Ùä! ! \°2Ó6ˆKØ˜jÔ(Ü!(¨°KÕ)@À!Ç*Á*Ó!M�—‘˜A“à!"�—‘˜A“ñ #ð ˆŒØŒçØ)×*=Ñ*=¸cÓ*BÀQÕ*FÐ*GÐHˆMÜ5°mÀZÓPˆMØ*ÔØ"ŒØˆŒØ ŒØ,ÔØˆŒØˆŒð .0ˆŒà35ˆÔ Ø6:×6NÑ6NÓ6PˆÔØˆŒð +0ˆÖ'r,   ÚprintÚminÚmaxc                óB   € \        V P                  P                  W4      # rG   )r#   rM  rb   )rŽ   re   Úmessages   &&&r*   Ú_unsupportedÚCodeGenerator._unsupportedo  s   € Ü+¨D¯K©K¯O©O¸TÓKÐKr,   c                ó„   € \        4       pV P                  P                  W4      pW2J d   R # \        V4      '       d   R# R # )FT)Úobjectr°   r.  rR   )rŽ   r'   Úabsent_markerr4  s   &&  r*   Ú_is_constexpr_globalÚ"CodeGenerator._is_constexpr_globalr  s5   € Ü›ˆØ�k‰k�o‰o˜dÓ2ˆØÓÙä˜×ÒÙár,   c                ó^   a aaa€ R  V 3R lloR V 3R llo\        4       oR VVVV 3R llpV# )c                ó$   € V ^8„  d   QhR\         /# ©r?   r'   ©rN  )rD   s   "r*   rE   Ú7CodeGenerator._define_name_lookup.<locals>.__annotate__  s   € ÷ 	1ñ 	1œsñ 	1r,   c                 ó:   <€ SP                   P                  W4      # rG   )r“   r.  )r'   ÚabsentrŽ   s   &&€r*   Úlocal_lookupÚ7CodeGenerator._define_name_lookup.<locals>.local_lookup  s   ø€ à—;‘;—?‘? 4Ó0Ð0r,   c                ó$   € V ^8„  d   QhR\         /# r�  r‚  )rD   s   "r*   rE   rƒ  ƒ  s   € ÷ 	Iñ 	I¤ñ 	Ir,   c                 ón  <€ SP                   P                  W4      p\        W!J V SP                  9   \	        V4      \
        J \        V\        4      \        VR R4      \        VRR4      \        VRR4      P                  R4      \        VRR4      P                  R4      \        V\        P                  4      \        V4      SP                  V 4      SP                  \        P                   P"                  .4      '       d   V# \%        \&        P(                  ! RV  R24      P+                  R	R
4      4      h)Ú__triton_builtin__FÚ__triton_aggregate__r¥   rS  ztriton.languagez"triton.experimental.gluon.languagez.                Cannot access global variable aà   from within @jit'ed
                function. Triton kernels can only access global variables that
                are instanstiated as constexpr (`x = triton.language.constexpr(42)`). Note that this is different from
                annotating a variable as constexpr (`x: triton.language.constexpr = 42`), which is not supported.  Alternatively, set the
                envvar TRITON_ALLOW_NON_CONSTEXPR_GLOBALS=1, but we do not
                promise to support this forever.Ú
Ú )r°   r.  r¿   Úbuiltin_namespacer(   r   rH   r   rÖ   Ú
startswithr   rQ   r    r}  ro  r   ÚcompilationÚallow_non_constexpr_globalsÚ	NameErrorÚtextwrapÚdedentr6   )r'   r…  r4  rŽ   s   && €r*   Úglobal_lookupÚ8CodeGenerator._define_name_lookup.<locals>.global_lookupƒ  s  ø€ Ø—+‘+—/‘/ $Ó/ˆCô Ø�MØ˜D×2Ñ2Ñ2Ü˜“I¤Ð+Ü˜s¤KÓ0Ü˜CÐ!5°uÓ=Ü˜CÐ!7¸Ó?Ü˜C ¨rÓ2×=Ñ=Ð>OÓPÜ˜C ¨rÓ2×=Ñ=Ð>bÓcÜ˜s¤H§N¡NÓ3Ü! #Ó&Ø×-Ñ-¨dÓ3ð ×3Ñ3Ü×%Ñ%×AÑAð!÷ ò ð$ �
ÜÜ—’ð %/Ø/3¨fð 51ð!4ó 5÷ 6=±W¸TÀ3Ó5GóIð Ir,   c                ó0   € V ^8„  d   QhR\         R\        /# )r?   r'   rA   )rN  r   )rD   s   "r*   rE   rƒ  ¦  s   € ÷ 	6ñ 	6œcð 	6¤cñ 	6r,   c                 ó†   <€ SpSSSP                   P                  3 F  pV! W4      pW1Jg   K  Vu # 	  \        V  R 24      h)z is not defined)rŽ  r.  r’  )r'   r…  Úlookup_functionrv   r|  r•  r†  rŽ   s   &   €€€€r*   Úname_lookupÚ6CodeGenerator._define_name_lookup.<locals>.name_lookup¦  sO   ø€ Ø"ˆFØ#/°À×@VÑ@V×@ZÑ@ZÓ#Z�Ù'¨Ó5�ØÕ&Ø ’Lñ $[ô ˜t˜f OÐ4Ó5Ð5r,   )r{  )rŽ   rš  r|  r•  r†  s   f @@@r*   rm  Ú!CodeGenerator._define_name_lookup}  s5   û€ ÷	1ð 	1÷	Ið 	IôB ›ˆ÷	6ó 	6ð Ðr,   c              #  ó0   "  € Wn         R x € R V n         R # 5irG   )r]  )rŽ   Úprefixs   &&r*   Ú_name_loc_prefixÚCodeGenerator._name_loc_prefix°  s   é € à"(ÔÛØ"&ˆÖùs   ‚c                ó8  € \        V\        P                  \        P                  34      '       d;   VP	                  V P
                  P                  W!P                  4       4      4       R # \        V4      '       d   VP                  V P
                  V4       R # R # rG   )
rH   r   rv   Úblock_argumentr^  r™   Úcreate_name_locÚget_locrJ   Ú	_set_name)rŽ   r4  r'   s   &&&r*   Ú_maybe_set_loc_to_nameÚ$CodeGenerator._maybe_set_loc_to_name¶  sa   € Ü�cœBŸH™H¤b×&7Ñ&7Ð8×9Ò9Ø�K‰K˜Ÿ™×4Ñ4°T¿;¹;»=ÓIÖJÜ˜c×"Ò"Ø�M‰M˜$Ÿ,™,¨Ö-ñ #r,   c                ó@   <€ V ^8„  d   QhRS[ RS[S[S[3,          RR/# )r?   r'   rv   rA   N)rN  r   r   r   )rD   r«   s   "€r*   rE   rO  ¼  s,   ø€ ÷ &ñ &™cð &©%±
¹IÐ0EÕ*Fð &È4ñ &r,   c                ó>   € W P                   V&   W P                  V&   R# )zÁThis function:
    called by visit_Assign() & visit_FunctionDef() to store left value (lvalue)
1. record local defined name (FIXME: should consider control flow)
2. store tensor in self.lvalue
N)r“   r•   )rŽ   r'   rv   s   &&&r*   Ú	set_valueÚCodeGenerator.set_value¼  s   € ð "�‰�DÑØ %�‰˜Ór,   c                óp   € V P                   P                  4       pV P                   P                  4       pW!3# rG   )r™   r¤  rœ   )rŽ   ÚlocÚips   &  r*   Ú_get_insertion_point_and_locÚ*CodeGenerator._get_insertion_point_and_locÅ  s/   € ð �l‰l×"Ñ"Ó$ˆØ�\‰\×-Ñ-Ó/ˆØˆwˆr,   c                ór   € V P                   P                  V4       V P                   P                  V4       R # rG   )r™   r¡   r^  )rŽ   r®  r­  s   &&&r*   Ú_set_insertion_point_and_locÚ*CodeGenerator._set_insertion_point_and_locÍ  s&   € Ø�‰×,Ñ,¨RÔ0Ø�‰×Ñ˜SÖ!r,   c                ó0   <€ V ^8„  d   QhRS[ S[,          /# )r?   Úignore)ÚsetrN  )rD   r«   s   "€r*   rE   rO  Ñ  s   ø€ ÷ &-ñ &-±3±sµ8ñ &-r,   c                ó  € V P                   P                  4       pV P                   P                  V4       V P                  P	                  V4       V P                  VP                  4       V P                  P                  4        VP                  4        . p. p. pVP                  4        F½  w  r‰Wƒ9   d   K  \        V	4      '       d…   V P                  V,          p
V P                  WŠV	4       \        V	.4      p\        V
.4      pW¼8w  d@   VP	                  V4       VP	                  V	P                  4       VP                  V4       K   K¢  W€P                   9  d   K´  Q R V R24       h	  VP#                  4       V n        / V n        WvV3# )úLoop carried variable z is not a triton value)r™   Úcreate_blockÚset_insertion_point_to_startrk  ÚappendÚvisit_compound_statementrÀ   ÚpopÚeraserg  rJ   r“   Ú_verify_loop_carried_variabler‚   r(   Úextendr•   Úcopy)rŽ   re   r”   rµ  ÚblockÚinit_tysÚinit_handlesÚnamesr'   Úlive_valÚloop_valÚlive_handlesÚloop_handless   &&&&         r*   Ú_find_carriesÚCodeGenerator._find_carriesÑ  sG  € à—‘×)Ñ)Ó+ˆØ�‰×1Ñ1°%Ô8à�‰×Ñ˜dÔ#Ø×%Ñ% d§i¡iÔ0Ø�‰×ÑÔØ�‰Œð
 ˆØˆØˆà%Ÿm™mžo‰NˆDØŒ~Ùä ×)Ò)ØŸ;™; tÕ,�Ø×2Ñ2°4À8ÔLä3°X°JÓ?�Ü3°X°JÓ?�ØÔ/Ø—L‘L Ô&Ø—O‘O H§M¡MÔ2Ø ×'Ñ'¨Ö5ñ 0ð
 §?¡?Ö2ÐiÐ6LÈTÈFÐRhÐ4iÓiÐ2ñ .ð$ —l‘l“nˆŒØˆŒà HÐ,Ð,r,   c                ó¨   € \        V4      '       g   V.pV F7  pV P                  V4       \        V\        P                  4      '       g   K6   R # 	  R # rG   )r]   r¹   rH   rÊ   rá   )rŽ   ÚstmtsÚstmts   && r*   r¼  Ú&CodeGenerator.visit_compound_statementü  s@   € ä˜U×#Ò#Ø�GˆEÛˆDØ�J‰J�tÔô ˜$¤§
¡
×+Ô+Úó r,   c                óD   € \         P                  P                  W4       R # rG   ©rÊ   ÚNodeVisitorrÎ   rã   s   &&r*   rö   ÚCodeGenerator.visit_Module  ó   € Ü�‰×%Ñ% dÖ1r,   c                óÎ   € V P                  VP                  4      pVe   Q h\        P                  ! VP                   Uu. uF  q0P                  V4      NK  	  up4      pV# u upi rG   )r¹   rÜ   r   r   Úelts)rŽ   re   rÜ   ÚeltrÖ  s   &&   r*   Ú
visit_ListÚCodeGenerator.visit_List
  sP   € Ø�j‰j˜Ÿ™Ó"ˆØŠ{Ðˆ{Ü�~Š~¸$¿)º)ÓD¹)°3Ÿz™z¨#ž¹)ÑDÓEˆØˆùò Es   Á A"c                ó4   <€ V ^8„  d   QhRS[ P                  /# ©r?   re   )rÊ   ÚListComp)rD   r«   s   "€r*   rE   rO    s   ø€ ÷ !ñ !¡3§<¡<ñ !r,   c                ó¶  € \        VP                  4      ^8w  d   \        R4      hVP                  ^ ,          pV P                  VP                  4      p\        V\        4      '       g   \        R4      h. pV FS  pV P                  VP                  P                  V4       VP                  V P                  VP                  4      4       KU  	  \        V4      # )rV   z'nested comprehensions are not supportedz'only tuple comprehensions are supported)r‡   Ú
generatorsÚ
ValueErrorr¹   ÚiterrH   Útl_tupleÚNotImplementedErrorrª  ÚtargetrÕ   r»  r×  )rŽ   re   Úcomprà  ÚresultsrÍ   s   &&    r*   Úvisit_ListCompÚCodeGenerator.visit_ListComp  s£   € Üˆt�‰Ó 1Ô$ÜÐFÓGÐGà�‰˜qÕ!ˆØ�z‰z˜$Ÿ)™)Ó$ˆÜ˜$¤×)Ò)Ü%Ð&OÓPÐPàˆÛˆDØ�N‰N˜4Ÿ;™;Ÿ>™>¨4Ô0Ø�N‰N˜4Ÿ:™: d§h¡hÓ/Ö0ñ ô ˜Ó Ð r,   c                ób  € V P                  VP                  4      pVf   \        P                  ! R 4      pV P                  P                  V4       V P                  P                  V P                  4       4       V P                  P                  4       pV P                  P                  V4       R # rG   )r¹   rv   r   r   re  r»  rf  r¯  r™   r¹  Úset_insertion_point_to_end)rŽ   re   Ú	ret_valueÚpost_ret_blocks   &&  r*   rä   ÚCodeGenerator.visit_Return   s   € Ø—J‘J˜tŸz™zÓ*ˆ	ØÒÜ ×*Ò*¨4Ó0ˆIØ×Ñ×Ñ 	Ô*Ø�‰×Ñ˜t×@Ñ@ÓBÔCð Ÿ™×2Ñ2Ó4ˆØ�‰×/Ñ/°Ö?r,   c                óz  a aaaa€ \        S P                  4      \        S P                  4      8X  g   Q hS P                  '       g   \        P                  ! R 4      # \        P
                  oV3R loVVV V3R loS P                   Uu. uF  qP                  NK  	  upo\        P                  ! SS4      # u upi )Nc                 ó2   <€ R V  RV R2pVRS 2,          pV# )zReturn type mismatch: ú and z. zNote all return types were: rl   )ÚaÚbÚerrÚreturn_typess   && €r*   Ú	error_msgÚ3CodeGenerator.decide_return_type.<locals>.error_msg3  s.   ø€ Ø*¨1¨#¨U°1°#°RÐ8ˆCØÐ1°,°Ð@Õ@ˆCØˆJr,   c           
      óö  <a a€ \        S SP                  4      '       d‘   \        \        SSP                  4      V VV3R  l4       \        S P                  SP                  8H  V VV3R l4       SP                  \	        S S4       UUu. uF  w  r#S! W#4      NK  	  uppS P                  R7      # \        S SP
                  4      '       dA   S S8X  d   S # SP                  P                  S 4      o SP                  P                  S4      oMR\        SSP
                  4      '       d7   SP                  P                  S 4      o SP                  P                  S4      o\        S S8H  V VV3R l4       S # u uppi )c                  ó   <€ S! S S4      # rG   rl   ©rð  rñ  rô  s   €€€r*   Ú<lambda>ÚGCodeGenerator.decide_return_type.<locals>.common_type.<locals>.<lambda>:  s   ø€ ¹YÀqÈ!¼_r,   c                  ó   <€ S! S S4      # rG   rl   rø  s   €€€r*   rù  rú  ;  s   ø€ ±Y¸qÀ!´_r,   )rt   c                  ó   <€ S! S S4      # rG   rl   rø  s   €€€r*   rù  rú  E  s   ø€ ¡9¨Q°¤?r,   )rH   ru   rp   rt   ÚzipÚconstexpr_typer[  Úto_tensor_type)rð  rñ  ÚaiÚbiÚcommon_typerô  rŽ   Útls   ff  €€€€r*   r  Ú5CodeGenerator.decide_return_type.<locals>.common_type8  s  ú€ Ü˜!˜RŸ]™]×+Ò+Ü”z ! R§]¡]Ó3Ö5LÔMÜ�q—x‘x 1§8¡8Ñ+Ö-DÔEØ—}‘}ÌÈAÈqÌ	Ô%RÉ	¹f¸b¡k°"Ö&9É	Ò%RÐ[\×[cÑ[c�}ÓdÐdÜ˜!˜R×.Ñ.×/Ò/Ø˜”6Ø�HØ—M‘M×0Ñ0°Ó3�Ø—M‘M×0Ñ0°Ó3‘Ü˜A˜r×0Ñ0×1Ò1Ø—M‘M×0Ñ0°Ó3�Ø—M‘M×0Ñ0°Ó3�Ü�1˜‘6Ö2Ô3ØˆHùó &Ss   Â	E5
)	r‡   re  rf  r   rþ  rP   r(   Ú	functoolsÚreduce)rŽ   r*  r  rô  ró  r  s   f @@@@r*   Údecide_return_typeÚ CodeGenerator.decide_return_type,  s’   ü€ Ü�4×#Ñ#Ó$¬¨D¯O©OÓ(<Ô<Ð<Ð<Ø××ÐÜ×*Ò*¨4Ó0Ð0ä�]‰]ˆõ	÷
	ð 	ð  )-×(8Ò(8Ó9Ñ(8 1ŸœÑ(8Ñ9ˆÜ×Ò ¨\Ó:Ð:ùò :s   Â
B8c           
     ó®  aa€ SP                   S8X  d   S# \        P                  p\        SVP                  4      '       dr   \        SVP
                  4      '       g   Q hTP	                  \        SP                  SP                  4       UUu. uF  w  rEV P                  WE4      NK  	  uppS4      # \        SVP                  4      '       dc   \        SVP                  4      '       d!   \        SP                   S8H  VV3R  l4       S# V P                  P                  SP                  S4      # \        SP                   S8H  VV3R l4       S# u uppi )c                  ó(   <€ R SP                    RS  2# ©zReturn type mismatch rï  ©r(   ©r9   rv   s   €€r*   rù  Ú'CodeGenerator.cast_to.<locals>.<lambda>X  s   ø€ Ð3HÈÏÉÈÐTYÐZ\ÐY]Ñ1^r,   c                  ó(   <€ R SP                    RS  2# r  r  r  s   €€r*   rù  r  [  s   ø€ Ð+@ÀÇÁÀÈEÐRTÐQUÑ)Vr,   )r(   r   rP   rH   r   ru   rý  r~   ry   Úcast_tor   rþ  rp   r[  Úscalar_constantrv   )rŽ   rv   r9   r  rw   Úts   &ff   r*   r  ÚCodeGenerator.cast_toK  s   ù€ Ø�:‰:˜ÔØˆLä�]‰]ˆÜ�e˜RŸX™X×&Ò&Ü˜b "§-¡-×0Ò0Ð0Ð0Ø—8‘8Ü03°E·L±LÀ"Ç(Á(Ô0KÔLÑ0K©¨�—‘˜aÖ#Ñ0KÒLØóð ô �e˜RŸ\™\×*Ò*Ü˜"˜b×/Ñ/×0Ò0Ü�u—z‘z RÑ'Õ)^Ô_Ø�Ø—=‘=×0Ñ0°·±¸bÓAÐAÜˆu�z‰z˜RÑÕ!VÔWØˆùó Ms   ÂE
c                ó´  € V P                  4       pV P                  4       w  r#\        V P                  4      \        V P                  4      8X  g   Q h\        V P                  V P                  4       F}  w  rEV P                  ! V!   V P                  P                  4       P                  4       '       d   Q hV P                  WA4      p\        V.4      pV P                  P                  V4       K  	  V P                  W#4       Wn        V P                  P                  4       P                  4       '       d   Q h\        V P                  \        P                   4      '       d0   \#        V P                  P$                  4      V P&                  n        MV P                  .V P&                  n        V P*                  P-                  V P&                  P/                  V P                  4      4       V P                  P                  V P&                  P1                  V P                  4       Uu. uF  qpP                  P3                  V4      NK  	  up4       R # u upi rG   )r  r¯  r‡   re  rf  rý  r²  r™   rš   Úhas_terminatorr  r‚   r;   rl  rH   r   ru   r\   ry   rd  r  rf   Ú
reset_typer&  r  Úcreate_poison)rŽ   Úreturn_typer®  r­  r;   Úret_ipÚret_handlesr9   s   &       r*   Úhandle_returnsÚCodeGenerator.handle_returns^  s¥  € Ø×-Ñ-Ó/ˆØ×3Ñ3Ó5‰ˆä�4×#Ñ#Ó$¬¨D¯O©OÓ(<Ô<Ð<Ð<Ü˜t×/Ñ/°·±ÖA‰KˆCØ×-Ò-¨vÒ6Ø—|‘|×7Ñ7Ó9×HÑH×JÒJÐJÐJØ—,‘,˜sÓ0ˆCÜ.°¨uÓ5ˆKØ�L‰L×Ñ˜[Ö)ñ Bð 	×)Ñ)¨"Ô2Ø#ŒØ—<‘<×3Ñ3Ó5×DÑD×FÒFÐFÐFÜ�d—m‘m¤X×%8Ñ%8×9Ò9Ü'+¨D¯M©M×,?Ñ,?Ó'@ˆD�N‰NÕ$à(,¯© ˆD�N‰NÔ$Ø�‰×Ñ˜4Ÿ>™>×3Ñ3°D·L±LÓAÔBØ�‰×ÑÀ4Ç>Á>×CaÑCaÐbf×bnÑbnÔCoÓpÑCo¸RŸ,™,×4Ñ4°RÖ8ÑCoÑpÖqùÒps   È)#Ic                ó`  € V P                   '       d   V P                  VR 4      hV P                  VP                  4      w  r#\	        VP                  P
                  RRR	1,          4       F×  w  rEVP                  P                  V) ^,
          ,          pVP                  pVP                  p\        P                  ! V\        P                  ! 4       R7      p	Vf   \        P                  ! V	.VR7      p
M\        P                  ! W•VR7      p
 V P                  '       d   Q hRV n        V P                  V
4       RV n        KÙ  	  V P                  '       d   RMRpV P                  P!                  V P"                  4      pV P"                  P%                  V P&                  V P(                  WËV P*                  4      V n         V P&                  P-                  V P                   4       V P                   P/                  4       pV P                  P1                  V P                   4      pV P2                  e1   V P2                  P5                  V P                   V P"                  4       \7        W.4       F*  w  ppV P9                  VV4       V P;                  VV4       K,  	  V P"                  P=                  4       pV P"                  P?                  V4       V PA                  VPB                  4       V PE                  4        V'       d   V P"                  PG                  V4       R# R#   RT n        i ; i)
z“nested function definitions are not allowed inside a @triton.jit kernel. Move the helper function to module level and decorate it with @triton.jit.N)rÕ   rÜ   ©Útargetsrv   )rã  rv   Ú
annotationTFÚpublicÚprivateéÿÿÿÿ)$rf   rx  r¹   rg   ra   Údefaultsr   ri   rÊ   rÔ   rÝ   rè   Ú	AnnAssignro  rG  rd  r&  r™   Úget_or_insert_functionrF  ri  r`   Ú	push_backÚadd_entry_blockr:  r8   Úinitialize_calleerý  r¦  rª  rš   rº  r¼  rÀ   r  ré  )rŽ   re   rd   Úkwarg_namesr9  Údefault_valueÚarg_noder   r'   Ú	st_targetÚ	init_nodeÚ
visibilityÚfn_tyÚentryÚ
arg_valuesÚarg_nameÚ	arg_valueÚ	insert_pts   &&                r*   rü   ÚCodeGenerator.visit_FunctionDeft  sc  € Ø�7�7ˆ7Ø×#Ñ#Øð ]ó^ð ^ð "&§¡¨D¯I©IÓ!6Ñˆ	ä )¨$¯)©)×*<Ñ*<¹T¸r¸TÕ*BÖ CÑˆAØ—y‘y—~‘~ q b¨1¥fÕ-ˆHØ!×,Ñ,ˆJØ—<‘<ˆDÜŸš D¬c¯iªi«kÔ:ˆIØÒ!ÜŸJšJ°	¨{À-ÔP‘	äŸMšM°Ð\fÔg�	ð8Ø×:×:Ð:Ð:Ð:Ø26�Ô/Ø—
‘
˜9Ô%à27�Ö/ñ !Dð" "&§§ ‘X°Yˆ
Ø—‘×(Ñ(¨¯©Ó6ˆØ—,‘,×5Ñ5°d·k±kÀ4×CUÑCUÐW\Ðjn×jwÑjwÓxˆŒØ�‰×Ñ˜dŸg™gÔ&Ø—‘×'Ñ'Ó)ˆØ—^‘^×/Ñ/°·±Ó8ˆ
Ø×ÑÒ*Ø×Ñ×1Ñ1°$·'±'¸4¿<¹<ÔHä#& yÖ#=ÑˆH�iØ×'Ñ'¨	°8Ô<Ø�N‰N˜8 YÖ/ñ $>ð —L‘L×4Ñ4Ó6ˆ	Ø�‰×1Ñ1°%Ô8à×%Ñ% d§i¡iÔ0ð 	×ÑÔçØ�L‰L×3Ñ3°IÖ>ñ øð/ 38�Õ/ús   ÄL$Ä!L$Ì$	L-c                óø   € . pVP                    F  pW P                  V4      .,          pK  	  VP                  e#   W P                  VP                  4      .,          pV P                  VP                  4      pW$3# rG   )rg   r¹   ÚvarargÚkwarg)rŽ   re   rd   ri   r*  s   &&   r*   Úvisit_argumentsÚCodeGenerator.visit_arguments£  se   € Øˆ	Ø—9”9ˆCØŸ*™* S›/Ð*Õ*ŠIñ à�;‰;Ò"ØŸ*™* T§[¡[Ó1Ð2Õ2ˆIØ—j‘j §¡Ó,ˆØÐ%Ð%r,   c                óv  a€ \         P                  P                  V S4       \        V3R  lV P                  P
                   4       4      pVP                  '       dS   VP                  '       g   VP                  '       d/   \        V P                  P                  SSP                   R24      hSP                  # )c              3   ó`   <"  € T F#  qP                   SP                  8X  g   K  Vx € K%  	  R # 5irG   )r'   ri   )rº   Úpre   s   & €r*   r¼   Ú*CodeGenerator.visit_arg.<locals>.<genexpr>®  s"   øé € ÐIÑ 2˜1·f±fÀÇÁÑ6H—Q’QÓ 2ùs   ƒ.¤
.z‰ marked as constexpr and listed in do_not_specialize/do_not_specialize_on_alignment. Remove constexpr designation to skip specialization.)rÊ   rÒ  rÎ   ÚnextrM  ÚparamsÚis_constexprÚdo_not_specializeÚdo_not_specialize_on_alignmentr!   rb   ri   )rŽ   re   Úparams   &f r*   Ú	visit_argÚCodeGenerator.visit_arg¬  s�   ø€ Ü�‰×%Ñ% d¨DÔ1ÜÔI §¡× 2Ò 2ÓIÓIˆØ××Ð 5×#:×#:Ð#:¸e×>b×>bÐ>bÜ"Ø—‘—‘ Ø—8‘8�*ð Gð GóHð Hð �x‰xˆr,   c                ó¬  € V P                  VP                  4      pV P                  VP                  4      pV P                  VP                  4      pVP                  f   W P                  V&   R # V\
        8X  dK   W0P                  9   d   \        V R24      h\        V4      pW@P                  V&   V P                  V,          # V P                  V4      # )Nz4 is already defined. constexpr cannot be reassigned.)
r¹   r   rã  rv   r—   r   r“   rß  r|   rê   )rŽ   re   r   rã  rv   s   &&   r*   Úvisit_AnnAssignÚCodeGenerator.visit_AnnAssign¶  sº   € à—Z‘Z §¡Ó0ˆ
Ø—‘˜DŸK™KÓ(ˆØ—
‘
˜4Ÿ:™:Ó&ˆà�:‰:ÒØ/9×$Ñ$ VÑ,ÙàœÔ"ØŸ™Ô$Ü  F 8ð ,Dð "Eó Fð Fä# EÓ*ˆEØ"'�K‰K˜ÑØ—;‘;˜vÕ&Ð&à× Ñ  Ó&Ð&r,   c                ó`  € \        VP                  \        P                  4      '       g   Q h\        V\        P                  4      '       d   V P                  W4      # \        V\        P                  4      '       dC   \        VP                  4       F'  w  r1V P                  WP                  V,          4       K)  	  R # \        V\        P                  4      '       d   \        R4      h\        V\        P                  4      '       g   Q hV P                  V P                  V4      V4       R # )Nz/Attribute assignment is not supported in triton)rH   rÜ   rÊ   rÝ   Ú	SubscriptÚvisit_Subscript_Storer	   ra   rÖ  ÚassignTargetr~   rÒ   râ  rÔ   rª  r¹   )rŽ   rã  rv   r9  s   &&& r*   rN  ÚCodeGenerator.assignTargetÊ  sÉ   € Ü˜&Ÿ*™*¤c§i¡i×0Ò0Ð0Ð0Ü�fœcŸm™m×,Ò,Ø×-Ñ-¨fÓ<Ð<Ü�fœcŸi™i×(Ò(Ü& v§{¡{Ö3‘	�Ø×!Ñ! &¯,©,°q­/Ö:ñ 4áÜ�fœcŸm™m×,Ò,Ü%Ð&WÓXÐXÜ˜&¤#§(¡(×+Ò+Ð+Ð+Ø�‰�t—z‘z &Ó)¨5Ö1r,   c                ó>  a aa€ VV 3R  loVVV 3R lo\        V\        P                  4      '       d   VP                  .MVP                  p\        V4      ^8X  g   Q hV^ ,          p\        V\        P                  4      '       dP   S P                  VP                  4      ;_uu_ 4        S! VS P                  VP                  4      4      pRRR4       M"S! VS P                  VP                  4      4      pS P                  VX4       R#   + '       g   i     L$; i)c                 ó8  <€ \        V \        P                  4      '       d   \        V S4      # \        P                  \        P                  3p\        V 4      p V e>   \        V 4      '       g-   \        W4      '       g   SP                  P                  V 4      p V # rG   )	rH   r   r   rz   rQ   r   rJ   r[  Ú	to_tensor)rv   Únative_nontensor_typesÚ_sanitize_valuerŽ   s   & €€r*   rT  Ú3CodeGenerator.visit_Assign.<locals>._sanitize_valueÙ  ss   ø€ Ü˜%¤§¡×0Ò0Ü-¨e°_ÓEÐEÜ&.§n¡n´h·n±nÐ%EÐ"Ü(¨Ó/ˆEØÒ Ü$ U×+Ò+Ü˜u×=Ò=ØŸ™×/Ñ/°Ó6�ØˆLr,   c                 óÎ  <€ \        V \        P                  4      '       dÒ   \        V\        P                  4      '       d²   \        V P                  VP                  4       UUu. uF  w  r#S! W#4      NK  	  pppV Uu. uF  q3f   \        V4      MTNK  	  ppV Uu. uF  q3P                  NK  	  pp\        P                  ! V\        P                  ! WQP                  P                  4      4      # \        V \        P                  4      '       d=   S	P                  P                  V P                  R 4      pV\        8X  d   \!        V4      # S! V4      # u uppi u upi u upi rG   )rH   rÊ   r	   r   r   rý  rÖ  r~   r   r(   ru   rt   rÔ   r—   r½  rÕ   r|   )
rã  rv   r×  r4  rx   ry   r   Ú_sanitize_target_valuerT  rŽ   s
   &&     €€€r*   rW  Ú:CodeGenerator.visit_Assign.<locals>._sanitize_target_valueä  s  ø€ Ü˜&¤#§)¡)×,Ò,´¸EÄ8Ç>Á>×1RÒ1RÜILÈVÏ[É[ÐZ_×ZfÑZfÔIgÔhÑIg¹X¸SÑ.¨sÖ8ÑIg�ÑhÙJNÓOÉ$À3ª+œ	 #œ¸3Ò>É$�ÐOÙ-1Ó2©T cŸœ©T�Ð2Ü—~’~ d¬H×,?Ò,?ÀÇzÁz×GXÑGXÓ,YÓZÐZÜ˜&¤#§(¡(×+Ò+Ø!×5Ñ5×9Ñ9¸&¿)¹)ÀTÓJ�
Ø¤Ô*Ü*¨5Ó1Ð1Ù" 5Ó)Ð)ùó iùÚOùÚ2s   Á%EÁ?EÂE"N)rH   rÊ   r%  rã  r  r‡   rÔ   rŸ  rÕ   r¹   rv   rN  )rŽ   re   r  rã  r~   rW  rT  s   f&   @@r*   rê   ÚCodeGenerator.visit_Assign×  sÆ   ú€ ö		÷
	*ô $.¨d´C·M±M×#BÒ#B�4—;‘;‘-ÈÏÉˆÜ�7‹|˜qÔ Ð Ð Ø˜•ˆÜ�fœcŸh™h×'Ò'Ø×&Ñ& v§y¡y×1Õ1Ù/°¸¿
¹
À4Ç:Á:Ó8NÓO�÷ 2Ð1ñ ,¨F°D·J±J¸t¿z¹zÓ4JÓKˆFØ×Ñ˜& &Ö)÷	 2×1ús   Â*#DÄD	c                óÔ  € \         P                  ! VP                  4      p\        P                  ! 4       Vn        \        P                  ! W!P                  VP                  4      p\        P                  ! VP                  .VR 7      pR F9  p\        W4      '       g   K  \        W4      p\        W5V4       \        WEV4       K;  	  V P                  V4       V P                  V4      # )r  )ÚlinenoÚ
col_offsetÚ
end_linenoÚend_col_offset)rÁ  Údeepcopyrã  rÊ   ÚLoadrÜ   ÚBinOpÚoprv   rè   ÚhasattrrÖ   Úsetattrr¹   )rŽ   re   ÚlhsÚrhsÚassignr*  Úys   &&     r*   rð   ÚCodeGenerator.visit_AugAssignú  sŸ   € Ü�mŠm˜DŸK™KÓ(ˆÜ—(’(“*ˆŒÜ�iŠi˜ŸW™W d§j¡jÓ1ˆÜ—’ T§[¡[ M¸Ô=ˆÛIˆAÜ�t×ÔÜ˜DÓ$�Ü˜ Ô"Ü˜ 1Ö%ñ	 Jð
 	�
‰
�6ÔØ�z‰z˜#‹Ðr,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÛ  )rÊ   Ú	NamedExpr)rD   r«   s   "€r*   rE   rO    s   ø€ ÷ 5ñ 5¡C§M¡Mñ 5r,   c                óÄ   € V P                  \        P                  ! VP                  .VP                  R 7      4       V P                  VP                  P                  4      # )r  )rê   rÊ   rè   rã  rv   rn  rÕ   rã   s   &&r*   Úvisit_NamedExprÚCodeGenerator.visit_NamedExpr  s>   € à×Ñœ#Ÿ*š*¨d¯k©k¨]À$Ç*Á*ÔMÔNØ×$Ñ$ T§[¡[§^¡^Ó4Ð4r,   c                óž   € \        VP                  4      \        P                  J d   VP                  # V P                  VP                  4      # rG   )r(   rÜ   rÊ   rÝ   rÕ   rn  rã   s   &&r*   rÞ   ÚCodeGenerator.visit_Name  s4   € Ü�—‘‹>œSŸY™YÓ&Ø—7‘7ˆNØ×$Ñ$ T§W¡WÓ-Ð-r,   c                óD   € \         P                  P                  W4       R # rG   rÑ  rã   s   &&r*   Úvisit_StoreÚCodeGenerator.visit_Store  rÔ  r,   c                óD   € \         P                  P                  W4       R # rG   rÑ  rã   s   &&r*   Ú
visit_LoadÚCodeGenerator.visit_Load  rÔ  r,   c                óŠ   € VP                    Uu. uF  q P                  V4      NK  	  pp\        P                  ! V4      # u upi rG   )rÖ  r¹   r   r   )rŽ   re   r*  rg   s   &&  r*   Úvisit_TupleÚCodeGenerator.visit_Tuple  s4   € Ø'+§y¢yÓ1¡y !—
‘
˜1–¡yˆÐ1Ü�~Š~˜dÓ#Ð#ùò 2s   �A c                ó  € \        V4      '       d   \        W24      ! W@P                  R 7      # \        V4      '       d5   \        P                  ! RRV4      p\        WE4      ! W0P                  R 7      # \        V\        \        P                  34      '       g"   \        V\        4      '       d   \        V4      p\        V\        4      '       d   \        W24      pMV P                  W24      pV P                  WV./ 4      # )©Ú	_semanticz__(.*)__z__r\1__)rM   rÖ   r[  r%   ÚsubrH   r   r   r   Úget_AttributeÚcall_Function)rŽ   re   Úmethod_namere  rf  Úreverse_method_namerf   s   &&&&&  r*   Ú_apply_binary_methodÚ"CodeGenerator._apply_binary_method  s½   € ä˜S×!Ò!Ü˜3Ô,¨S¿M¹MÔJÐJÜ˜S×!Ò!Ü"$§&¢&¨°jÀ+Ó"NÐÜ˜3Ô4°SÇMÁMÔRÐRÜ˜#¤	¬8¯>©>Ð:×;Ò;Ä
È3ÔPY×@ZÒ@ZÜ˜C“.ˆCÜ�cœ9×%Ò%Ü˜Ó*‰Bà×#Ñ# CÓ5ˆBØ×!Ñ! $¨S¨E°2Ó6Ð6r,   c                ó`  € V P                  VP                  4      pV P                  VP                  4      pV P                  P	                  \        VP                  4      4      pVf6   V P                  VRP                  VP                  P                  4      4      hV P                  WW#4      # )Nz8AST binary operator '{}' is not (currently) implemented.)r¹   ÚleftÚrightÚ_method_name_for_bin_opr.  r(   rb  rx  rD   rc   r‚  )rŽ   re   re  rf  r€  s   &&   r*   Úvisit_BinOpÚCodeGenerator.visit_BinOp*  s�   € Ø�j‰j˜Ÿ™Ó#ˆØ�j‰j˜Ÿ™Ó$ˆØ×2Ñ2×6Ñ6´t¸D¿G¹G³}ÓEˆØÒØ×#Ñ# DØ$^×$eÑ$eÐfj×fmÑfm×fvÑfvÓ$wóyð yà×(Ñ(¨¸CÓEÐEr,   Ú__add__Ú__sub__Ú__mul__Ú__truediv__Ú__floordiv__Ú__mod__Ú__pow__Ú
__lshift__Ú
__rshift__Ú__and__Ú__or__Ú__xor__c                ó4  € V P                   P                  4       pV P                  P                  V4       V P	                  VP
                  4       V P                  P                  4       pV P                  P                  4       pV P                  P                  4       p/ pVP                  4       p	VP                  '       d¶   V P                  P                  V4       VP                  4       V n        / V n        VP                  4       V n         V P	                  VP                  4       V P                  P                  4       pV P                  P                  4       pV P                  P                  4       p	. p
VP                  4        FÚ  w  r¼\        V4      '       g   K  \        W{,          .4      p\        W›,          .4      pWÞ8X  d   KD  V
P                  V4       W{,          Wk&   W›,          W‹&   VR 3VR33 Fe  w  pp\        Wû,          4      \        V4      8H  pV'       d$   Wû,          P                  VP                  8X  d   KN  Q RV RV RV RWû,           24       h	  KÜ  	  \        VP!                  4       VP!                  4       ,          4       F{  pWº9   d   K  Wk,          pVP                  pW‹,          pVP                  p\        V4      \        V4      8H  pV'       d   VV8X  g   Q RV RV RV R	24       hV
P                  V4       K}  	  WhW4V
3# )
ÚthenÚelsezinitial value for `z` is of type z
, but the z block redefines it as zMismatched type for z between then block (z) and else block (Ú))r—   rÁ  r™   rº  r¼  rÀ   rš   r•   r“   r  rg  rJ   r‚   r»  r(   ÚsortedÚkeys)rŽ   re   r”   Ú
then_blockÚ
else_blockr—   Ú	then_defsÚ	then_valsÚ	else_defsÚ	else_valsrÅ  r'   rv   Úthen_handlesÚelse_handlesÚdefsÚ
block_nameÚ
type_equalÚthen_valÚthen_tyÚelse_valÚelse_tys   &&&&&                 r*   Úvisit_then_else_blocksÚ$CodeGenerator.visit_then_else_blocksB  s¦  € Ø"×6Ñ6×;Ñ;Ó=Ðà�‰×1Ñ1°*Ô=Ø×%Ñ% d§i¡iÔ0Ø—\‘\×5Ñ5Ó7ˆ
Ø—O‘O×(Ñ(Ó*ˆ	Ø—K‘K×$Ñ$Ó&ˆ	àˆ	Ø—L‘L“Nˆ	Ø�;�;ˆ;Ø�L‰L×5Ñ5°jÔAØ!Ÿ,™,›.ˆDŒKØ ˆDŒOØ':×'?Ñ'?Ó'AˆDÔ$Ø×)Ñ)¨$¯+©+Ô6ØŸ™×,Ñ,Ó.ˆIØŸ™×9Ñ9Ó;ˆJØŸ™×(Ñ(Ó*ˆIð ˆà"Ÿ=™=ž?‰KˆDä# E×*Ò*ÙÜ/°µÐ0AÓBˆLÜ/°µÐ0AÓBˆLØÔ+ÙØ�L‰L˜ÔØ'�oˆI‰OØ'�oˆI‰Oà&/°Ð%8¸9ÀfÐ:MÓ$NÑ ��jÜ! $¥*Ó-´°e³Ñ<�
ß! d¥j§o¡o¸¿¹Ö&Cð OØ)¨$¨¨}¸U¸Gð DØ)˜lÐ*AÀ$Å*ÀðOóOÐCó %Oñ +ô( ˜9Ÿ>™>Ó+¨i¯n©nÓ.>Õ>Ö?ˆDØŒ}ÙØ •ˆHØ—m‘mˆGØ •ˆHØ—m‘mˆGÜ˜h›¬4°«>Ñ9ˆJß '¨WÔ"4ð .Ø& t fÐ,AÀ'Àð K#Ø#* )¨1ð.ó.Ð4ð �L‰L˜Öñ @ð  Z¸UÐBÐBr,   c                ó„  aa€ \        V 4      ;_uu_ 4       pVw  rEV P                  P                  4       pV P                  P                  4       pV P                  P                  V4       V P                  P	                  VP
                  Wg4       V P                  W$Wg4      w  oorgpV P                  P                  4       p	V P                  P                  V4       VP                  4       '       d	   Q V 4       h\        V3R  lV 4       4      p
V P                  P                  Wš4       V P                  P                  V4       VP                  4       '       d	   Q V 4       h\        V3R lV 4       4      pV P                  P                  W›4       \        V
4      \        V4      8X  g   Q h\        W«4       F<  w  rÍVP                  4       pWíP                  4       8X  g   Q hV	P                  V4       K>  	  RRR4       V P                  P                  X	4       \        \        X
4      4       Uu. uF  qùP!                  V4      NK  	  ppX Uu. uF  pSV,          P"                  NK  	  pp\%        VV4      p\        VV4       F  w  ppV P'                  VV4       K  	  R#   + '       g   i     L´; iu upi u upi )c              3   ó6   <"  € T F  pSV,          x € K  	  R # 5irG   rl   ©rº   r'   rž  s   & €r*   r¼   Ú3CodeGenerator.visit_if_top_level.<locals>.<genexpr>�  ó   øé € Ð/RÉEÀD°	¸$·²ËEùó   ƒc              3   ó6   <"  € T F  pSV,          x € K  	  R # 5irG   rl   ©rº   r'   r   s   & €r*   r¼   r°  ’  r±  r²  N)r‹   r™   r¹  ré  Úcreate_cond_branchÚhandler«  r  r‚   Úcreate_branchr‡   rý  Úget_typeÚadd_argumentrº  r7  ri   r(   r‰   rª  )rŽ   rm   re   Úsrr”   Úip_blockrœ  r�  rÅ  Úendif_blockr¢  r£  Úthen_hÚelse_hr9   r9  Úres_handlesr'   ry   Ú
new_valuesÚ	new_valuer   rž  s   &&&                  @@r*   Úvisit_if_top_levelÚ CodeGenerator.visit_if_top_level}  s0  ù€ Ü˜d×#Ô# rØ "ÑˆGØŸ™×2Ñ2Ó4ˆJØŸ™×2Ñ2Ó4ˆJà�L‰L×3Ñ3°HÔ=Ø�L‰L×+Ñ+¨D¯K©K¸ÔPð ×+Ñ+¨D¸:ÓRñ @ˆI�y *¸%ð Ÿ,™,×3Ñ3Ó5ˆKà�L‰L×3Ñ3°JÔ?Ø!×0Ñ0×2Ò2ÐC°z°lÓCÐ2Ü/Ô/RÉEÓ/RÓRˆLØ�L‰L×&Ñ& {ÔAà�L‰L×3Ñ3°JÔ?Ø!×0Ñ0×2Ò2ÐC°z°lÓCÐ2Ü/Ô/RÉEÓ/RÓRˆLØ�L‰L×&Ñ& {ÔAÜ�|Ó$¬¨LÓ(9Ô9Ð9Ð9Ü"% lÖ"A‘�Ø—_‘_Ó&�ØŸ_™_Ó.Ô.Ð.Ð.Ø×(Ñ(¨Ö,ñ #B÷/ $ð: 	�‰×1Ñ1°+Ô>ä38¼¸\Ó9JÔ3KÓLÑ3K¨a—‘ qÖ)Ñ3KˆÐLÙ27Ó8±%¨$�˜4•×%Ô%±%ˆÐ8Ü(¨°eÓ<ˆ
Ü" 5¨*Ö5‰OˆD�)Ø�N‰N˜4 Ö+ó  6÷E $×#üò> MùÚ8s   –G#J%È2J8ÉJ=Ê%J5	c           	     ó&  aa€ \        V 4      ;_uu_ 4       pVw  rEV P                  4       w  rgV P                  P                  4       pVP                  '       d   V P                  P                  4       MR p	V P                  W$W‰4      w  oor‰p
\        V3R lV
 4       4      p\        W«4       F  w  rÍV P                  WÜ4       K  	  V P                  Wg4       V P                  P                  V Uu. uF  qîP                  4       NK  	  upVP                  R4      pVP                  VP                  4       4       V P                  P                  VP                  4       4       \!        V
4      ^ 8”  d   V P                  P#                  V4       VP                  '       g   VP%                  4       p	MV	P                  VP%                  4       4       V P                  P                  VP%                  4       4       \!        V
4      ^ 8”  dW   \        V3R lV
 4       4      p\        V
V4       F  w  rÍV P                  WÜ4       K  	  V P                  P#                  V4       R R R 4       \'        \!        X4      4       Uu. uF  pXP)                  V4      NK  	  ppX
 Uu. uF  pSV,          P*                  NK  	  pp\-        VV4      p\        V
V4       F  w  ppV P/                  VV4       K  	  R # u upi   + '       g   i     LŸ; iu upi u upi )Nc              3   ó6   <"  € T F  pSV,          x € K  	  R # 5irG   rl   r¯  s   & €r*   r¼   Ú-CodeGenerator.visit_if_scf.<locals>.<genexpr>­  r±  r²  Tc              3   ó6   <"  € T F  pSV,          x € K  	  R # 5irG   rl   r´  s   & €r*   r¼   rÆ  ¼  s   øé € Ð3VÑPUÈ°I¸d·O²OÓPUùr²  )r‹   r¯  r™   r¹  r  r«  r‚   rý  r¦  r²  Úcreate_if_opr¸  r¶  Úmerge_block_beforeÚget_then_blockré  r‡   Úcreate_yield_opÚget_else_blockr7  Ú
get_resultr(   r‰   rª  )rŽ   rm   re   rº  r”   r.   r®  Úlast_locrœ  r�  rÅ  r¢  r'   r4  ÚhÚif_opr£  r9  r¿  ry   rÀ  rÁ  r   rž  s   &&&                   @@r*   Úvisit_if_scfÚCodeGenerator.visit_if_scf¤  sb  ù€ Ü˜d×#Ô# rØ‰JˆGØ×<Ñ<Ó>‰LˆBØŸ™×2Ñ2Ó4ˆJØ8<¿¿¸˜Ÿ™×2Ñ2Ô4ÈˆJà×+Ñ+¨D¸:ÓRñ @ˆI�y *¸%ô 0Ô/RÉEÓ/RÓRˆLÜ  Ö5‘	�Ø×+Ñ+¨CÖ6ñ 6à×-Ñ-¨bÔ;Ø—L‘L×-Ñ-Á\Ó.RÁ\À¯z©z®|Á\Ñ.RÐTX×T_ÑT_ÐaeÓfˆEØ×)Ñ)¨%×*>Ñ*>Ó*@ÔAØ�L‰L×3Ñ3°E×4HÑ4HÓ4JÔKÜ�5‹z˜AŒ~Ø—‘×,Ñ,¨\Ô:Ø—;—;�;Ø"×1Ñ1Ó3‘
à×-Ñ-¨e×.BÑ.BÓ.DÔEØ�L‰L×3Ñ3°E×4HÑ4HÓ4JÔKÜ�5‹z˜AŒ~Ü3Ô3VÑPUÓ3VÓV�Ü!$ U¨LÖ!9‘I�DØ×/Ñ/°Ö:ñ ":à—‘×,Ñ,¨\Ô:÷5 $ô8 5:¼#¸lÓ:KÔ4LÓMÑ4L¨q�u×'Ñ'¨Ö*Ñ4LˆÐMÙ27Ó8±%¨$�˜4•×%Ô%±%ˆÐ8Ü(¨°eÓ<ˆ
Ü" 5¨*Ö5‰OˆD�)Ø�N‰N˜4 Ö+ó  6ùò' /S÷ $×#üò8 NùÚ8s2   –CK6Ã0K1ÄBK6Æ B?K6É=L	ÊLË1K6Ë6L	c           	     ó.  € V P                  VP                  4      p\        V4      '       EdI   \        V4      '       d   V P	                  VR 4      hVP
                  P                  4       '       dg   \        P                  ! R\        P                  ! VP                  4      ,          4       \        P                  P                  W P                  V R7      pVP                  \        P                   V P                  R7      p\#        V P$                  4      P                  V4      '       d8   V P&                  '       d   V P	                  VR4      hV P)                  W!4       R# V P+                  W!4       R# \-        V4      p\        V4      \.        9  dP   V P	                  VRP1                  RP3                  R \.         4       4      \        V4      P4                  4      4      hV'       d   VP6                  MVP8                  pV P;                  V4       R# )	z=Boolean value of Tensor with more than one value is ambiguousziIf conditional called with multidimensional Tensor instead of scalar; please use "if (%s).item()" instead)r|  Ú
_generatorr{  zMCannot have `return` statements inside `while` or `for` statements in triton.úO`if` conditionals can only accept values of type {{{}}}, not objects of type {}ú, c              3   ó8   "  € T F  qP                   x € K  	  R # 5irG   ©rc   ©rº   r.   s   & r*   r¼   Ú)CodeGenerator.visit_If.<locals>.<genexpr>à  ó   é € Ð!GÑ6F°§*¦*Ó6Fùó   ‚N)r¹   ÚtestrM   rY   rx  r(   rW   ÚwarningsÚwarnrÊ   Úunparser   rP   Ú_unsplatr[  ÚtoÚint1r­   r°   rk  rÂ  rÑ  r   Ú_condition_typesrD   r4   rc   rÀ   r  r¼  )rŽ   re   rm   Úactive_blocks   &&  r*   r  ÚCodeGenerator.visit_IfÇ  sˆ  € Ø�z‰z˜$Ÿ)™)Ó$ˆä˜T×"Ó"Ü$ T×*Ò*Ø×'Ñ'¨Ð.mÓnÐnØ�y‰y×!Ñ!×#Ò#Ü—’ð BÜ—k’k $§)¡)Ó,õ-ô.ô  —}‘}×-Ñ-¨d¿m¹mÐX\Ð-Ó]�Ø—7‘7œ8Ÿ=™=°D·M±M�7ÓBˆDÜ$ T§[¡[Ó1×7Ñ7¸×=Ò=Ø—>—>�>Ø×+Ñ+ØÐmóoð oà×'Ñ'¨Ö3à×!Ñ! $Ö-ä'¨Ó-ˆDä�D‹zÔ!1Ô1Ø×'Ñ'ØÐk×rÑrØŸ	™	Ñ!GÕ6FÓ!GÓGÜ˜T›
×+Ñ+ó-ó.ð .÷
 )-˜4Ÿ9š9°$·+±+ˆLØ×)Ñ)¨,Ö7r,   c           	     óž  € V P                  VP                  4      p\        V4      '       Edb   VP                  \        P
                  V P                  R 7      p\        V 4      ;_uu_ 4        V P                  4       w  r4V P                  P                  4       pV P                  P                  V4       V P                  P                  V P                  VP                  4      4      pV P                  P                  4       pV P                  P                  4       pV P                  P                  V4       V P                  P                  V P                  VP                  4      4      pV P                  P                  4       pV P!                  W44       VP"                  VP"                  8X  g"   Q RVP"                   RVP"                   24       hVP"                  p	V	\        P$                  8w  d   V	P'                  V P                  4      .M. p
V P                  P)                  W¢P*                  R4      pVP-                  VP/                  4       4       V
'       dP   V P                  P1                  VP/                  4       4       V P                  P3                  VP*                  .4       V P                  P1                  VP/                  4       4       VP-                  VP5                  4       4       V
'       dP   V P                  P1                  VP5                  4       4       V P                  P3                  VP*                  .4       V
'       d0   \        P6                  P9                  VP;                  ^ 4      V	4      MRuuRRR4       # \=        V4      p\#        V4      \>        9  dP   V PA                  VRPC                  RPE                  R \>         4       4      \#        V4      PF                  4      4      hV'       d   V P                  VP                  4      # V P                  VP                  4      #   + '       g   i     R# ; i)r{  zATernary expression with dynamic condition has inconsistent types rï  TNrÕ  rÖ  c              3   ó8   "  € T F  qP                   x € K  	  R # 5irG   rØ  rÙ  s   & r*   r¼   Ú,CodeGenerator.visit_IfExp.<locals>.<genexpr>  rÛ  rÜ  )$r¹   rÝ  rM   râ  r   rã  r[  r‹   r¯  r™   r¹  rº  rR  rÀ   rš   r  r²  r(   ÚvoidÚto_irrÈ  r¶  rÉ  rÊ  ré  rË  rÌ  rP   r   rÍ  r   rä  rx  rD   r4   rc   )rŽ   re   rm   r®  rÎ  rœ  r§  r�  r©  rl  Úret_type_irrÐ  s   &&          r*   r  ÚCodeGenerator.visit_IfExpæ  s  € Ø�z‰z˜$Ÿ)™)Ó$ˆÜ˜T×"Ó"Ø—7‘7œ8Ÿ=™=°D·M±M�7ÓBˆDä! $×'Õ'Ø#×@Ñ@ÓB‘�à!Ÿ\™\×6Ñ6Ó8�
Ø—‘×9Ñ9¸*ÔEØŸ=™=×2Ñ2°4·:±:¸d¿i¹iÓ3HÓI�Ø!Ÿ\™\×=Ñ=Ó?�
à!Ÿ\™\×6Ñ6Ó8�
Ø—‘×9Ñ9¸*ÔEð  Ÿ=™=×2Ñ2°4·:±:¸d¿k¹kÓ3JÓK�Ø!Ÿ\™\×=Ñ=Ó?�
à×1Ñ1°"Ô?à—}‘}¨¯©Ô5ð |ØWÐX`×XeÑXeÐWfÐfkÐlt×lyÑlyÐkzÐ{ó|Ð5à#Ÿ=™=�à@HÌHÏMÉMÔ@Y˜xŸ~™~¨d¯l©lÓ;Ñ<Ð_a�ØŸ™×1Ñ1°+¿{¹{ÈDÓQ�Ø×-Ñ-¨e×.BÑ.BÓ.DÔEßØ—L‘L×;Ñ;¸E×<PÑ<PÓ<RÔSØ—L‘L×0Ñ0°(·/±/Ð1BÔCà—‘×7Ñ7¸×8LÑ8LÓ8NÔOØ×-Ñ-¨e×.BÑ.BÓ.DÔEßØ—L‘L×;Ñ;¸E×<PÑ<PÓ<RÔSØ—L‘L×0Ñ0°(·/±/Ð1BÔCßNY”x—}‘}×+Ñ+¨E×,<Ñ,<¸QÓ,?ÀÔJÐ_c÷C (Ò'ôF (¨Ó-ˆDô �D‹zÔ!1Ô1Ø×'Ñ'ØÐk×rÑrØŸ	™	Ñ!GÕ6FÓ!GÓGÜ˜T›
×+Ñ+ó-ó.ð .÷ Ø—z‘z $§)¡)Ó,Ð,à—z‘z $§+¡+Ó.Ð.÷] (×'Ð'ús   Á,JP;Ë=AP;Í0P;Ð;Q	c                ó2  a € . pVP                    F˜  pVP                  pS P                  VP                  4      pVP                   Uu. uF  pS P                  V4      NK  	  pp\        V 3R  lVP                   4       4      pV! VRS P                  /VB p	VP                  V	4       Kš  	  \        W!P                   4       FQ  w  r“V	P                  4       p
VP                  f   K%  S P                  VP                  4      pS P                  Wº4       KS  	  \        S P                  4      P                  V4      '       d   S P                  VR4      hS P!                  VP"                  4       \%        V4       F  p	V	P'                  RRR4       K  	  R# u upi )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irG   r¸   )rº   ÚkwrŽ   s   & €r*   r¼   Ú+CodeGenerator.visit_With.<locals>.<genexpr>#  s   øé € Ð>±¨"�t—z‘z "—~�~³ùr¾   r|  NzCCannot have `return` statements inside `with` statements in triton )rg  Úcontext_exprr¹   r  rg   r’   Úkeywordsr[  r»  rý  rž   Úoptional_varsrª  r­   r°   rx  r¼  rÀ   Úreversedr£   )rŽ   re   Úcm_listrÍ   Úcallrf   ri   rg   ÚkwsÚcmÚresÚvar_names   f&          r*   Ú
visit_WithÚCodeGenerator.visit_With  sA  ø€ ð ˆØ—J”JˆDØ×$Ñ$ˆDØ—‘˜DŸI™IÓ&ˆBØ/3¯yªyÓ9©y¨�D—J‘J˜s–O©yˆDÐ9ÜÔ>°·²Ó>Ó>ˆCÙ�TÐ: T§]¡]Ð:°cÑ:ˆBØ�N‰N˜2Öñ ô ˜G§Z¡ZÖ0‰HˆBØ—,‘,“.ˆCØ×!Ñ!Ô-ØŸ:™: d×&8Ñ&8Ó9�Ø—‘˜xÖ-ñ	 1ô
 ! §¡Ó-×3Ñ3°D×9Ò9Ø×#Ñ# DÐ*oÓpÐpØ×%Ñ% d§i¡iÔ0Ü˜7Ö#ˆBØ�K‰K˜˜d DÖ)ó $ùò :s   ÁFc                ó   € R # rG   rl   rã   s   &&r*   Ú
visit_PassÚCodeGenerator.visit_Pass1  s   € Ùr,   c                ó*  € \        VP                  4      ^8X  d   \        VP                  4      ^8X  g   V P                  VR4      hV P	                  VP
                  4      pV P	                  VP                  ^ ,          4      p\        V4      p\        V4      p\        VP                  ^ ,          4      \        P                  J d   \        WEJ 4      # \        VP                  ^ ,          4      \        P                  J d   \        WEJ4      # V P                  P                  \        VP                  ^ ,          4      4      pVf=   V P                  VRP                  VP                  ^ ,          P                  4      4      hV P!                  WW#4      # )rV   z1simultaneous multiple comparison is not supportedz<AST comparison operator '{}' is not (currently) implemented.)r‡   ÚcomparatorsÚopsrx  r¹   r…  r   r(   rÊ   ÚIsr   ÚIsNotÚ_method_name_for_comp_opr.  rD   rc   r‚  )rŽ   re   re  rf  Ú	lhs_valueÚ	rhs_valuer€  s   &&     r*   Úvisit_CompareÚCodeGenerator.visit_Compare4  s:  € Ü�D×$Ñ$Ó%¨Ô*¬s°4·8±8«}ÀÔ/AØ×#Ñ# DÐ*]Ó^Ð^Ø�j‰j˜Ÿ™Ó#ˆØ�j‰j˜×)Ñ)¨!Õ,Ó-ˆÜ(¨Ó-ˆ	Ü(¨Ó-ˆ	Ü�—‘˜•Ó¤§¡Ó&Ü˜YÐ3Ó4Ð4Ü�—‘˜•Ó¤§	¡	Ó)Ü˜YÐ7Ó8Ð8Ø×3Ñ3×7Ñ7¼¸T¿X¹XÀa½[Ó8IÓJˆØÒØ×#Ñ#ØÐT×[Ñ[Ð\`×\dÑ\dÐefÕ\g×\pÑ\pÓqósð sà×(Ñ(¨¸CÓEÐEr,   Ú__eq__Ú__ne__Ú__lt__Ú__le__Ú__gt__Ú__ge__c           
     ó  € V P                  VP                  4      pV P                  P                  \	        VP
                  4      4      pVf+   V P                  VRVP
                  P                   R24      h\        V4      '       d   \        W#4      ! V P                  R7      #  \        W#4      ! 4       #   \         dF    TR8X  d   \        T'       * 4      u # T P                  TRT R\	        T4      P                   24      hi ; i)NzAST unary operator 'z!' is not (currently) implemented.r{  Ú__not__z)' is not (currently) implemented on type )r¹   ÚoperandÚ_method_name_for_unary_opr.  r(   rb  rx  rc   rM   rÖ   r[  ÚAttributeErrorr   )rŽ   re   r  rf   s   &&  r*   Úvisit_UnaryOpÚCodeGenerator.visit_UnaryOpI  sï   € Ø—*‘*˜TŸ\™\Ó*ˆØ×+Ñ+×/Ñ/´°T·W±W³Ó>ˆØŠ:Ø×#Ñ# DÐ,@ÀÇÁ×AQÑAQÐ@RÐRsÐ*tÓuÐuÜ˜W×%Ò%Ü˜7Ô'°$·-±-Ô@Ð@ð	tÜ˜7Ô'Ó)Ð)øÜô 	tØ�YŒÜ  W¤Ó-Ò-Ø×#Ñ#ØÐ,¨R¨DÐ0YÔZ^Ð_fÓZg×ZpÑZpÐYqÐrótð tð	tús   Â&B6 Â6"DÃ,DÚ__neg__Ú__pos__r  Ú
__invert__c           	     ó�  € \        V4      '       g   Q R V R24       h\        V4      '       g   Q R V R24       h\        V4      \        V4      J g#   Q RV R\        V4       R\        V4       24       h\        V4      '       dC   VP                  VP                  8X  g&   Q RV RVP                   RVP                   R24       hR	# R	# )
zcannot reassign constexpr z in the loopr¸  z changed type, was z but is now zLoop-carried variable z has initial type z but is re-assigned to z: in loop! Please make sure that the type stays consistent.N)rJ   r(   rM   )rŽ   r'   rÇ  rÆ  s   &&&&r*   r¿  Ú+CodeGenerator._verify_loop_carried_variable\  sà   € Ü ×)Ò)ÐZÐ-GÈÀvÈ\Ð+ZÓZÐ)Ü ×)Ò)ÐZÐ-GÈÀvÈ\Ð+ZÓZÐ)Ü�H‹~¤ h£Ó/ð 	lØ$ T FÐ*=¼dÀ8»nÐ=MÈ\ÔZ^Ð_gÓZhÐYiÐjó	lÐ/ä$ X×.Ò.°(·-±-À8Ç=Á=Ô2Pð 	@Ø$ T FÐ*<¸X¿]¹]¸Oð L%Ø%-§]¡] Oð 4?ð@ó	@ÐPÑ2PÑ.r,   c                ó(	  a € \        S 4      ;_uu_ 4       pVw  r4S P                  4       w  rVS P                  W4      w  rxp	V U
u. uF  qªP                  4       NK  	  pp
S P	                  WV4       S P
                  P                  W¸4      pS P
                  P                  VP                  4       V4      pS P
                  P                  V4       \        \        V4      4       Uu. uF  qíP                  V4      NK  	  pp\        Wø4       F%  w  ppVP                  VP                  4       4       K'  	  \!        Wù4      p\        VV4       F6  w  ppVS P"                  V&   VS P$                  V&   S P'                  VV4       K8  	  S P)                  VP*                  4      p\-        V\.        P0                  4      '       dI   VP2                  '       d+   VP5                  R S P
                  P7                  4       4       VP0                  pS P
                  P9                  V4       S P
                  P;                  VP<                  V4       S P
                  P                  VP?                  4       V4      pS P
                  P                  V4       \        \        V4      4       Uu. uF  pVP                  V4      NK  	  pp\        VV4       F%  w  ppVP                  VP                  4       4       K'  	  \!        VV	4      p\        VV4       F6  w  ppVS P"                  V&   VS P$                  V&   S P'                  VV4       K8  	  S P@                  PC                  V4       S PE                  VPF                  4       S P@                  PI                  4        \K        V 3R lV 4       4      pS P
                  PM                  V4       RRR4       \        \        X4      4       Uu. uF  pXPO                  V4      NK  	  pp\!        VX	4      p\        XV4       F6  w  ppVS P"                  V&   VS P$                  V&   S P'                  VV4       K8  	  VPP                   F  pQ R4       h	  R# u up
i u upi u upi   + '       g   i     L½; iu upi )úllvm.loop_annotationc              3   óJ   <"  € T F  pSP                   V,          x € K  	  R # 5irG   ©r“   ©rº   r'   rŽ   s   & €r*   r¼   Ú,CodeGenerator.visit_While.<locals>.<genexpr>”  ó   øé € Ð0UÉuÀt°·±¸T×1BÒ1BËuùó   ƒ #NzNot implemented),r‹   r¯  rÊ  r¸  r²  r™   Úcreate_while_opÚcreate_block_with_parentÚ
get_beforerº  r7  r‡   ri   rý  r^  r¤  r‰   r“   r•   r¦  r¹   rÝ  rH   r   Ú	conditionÚdisable_licmÚset_attrÚget_disable_loop_licm_attrré  Úcreate_condition_opr¶  Ú	get_afterrk  r»  r¼  rÀ   r½  r‚   rË  rÍ  r  rÊ   rÒ  rÎ   )rŽ   re   rº  r”   r›   r®  rÎ  rÅ  rÄ  Úinit_fe_tysrÏ  rÃ  Úwhile_opÚbefore_blockr9  Ú
block_argsri   ÚinitÚcondition_argsr'   r4  rm   Úafter_blockÚbody_handlesÚ	body_argsÚyield_handlesÚresult_handlesÚresult_valsÚnew_defrÎ  s   f&                            r*   Úvisit_WhileÚCodeGenerator.visit_Whilef  s®  ø€ Ü˜d×#Ô# rØ$&Ñ!ˆGØ×<Ñ<Ó>‰LˆBà/3×/AÑ/AÀ$Ó/PÑ,ˆE á.:Ó;©l¨Ÿ
™
ž©lˆHÐ;Ø×-Ñ-¨bÔ;Ø—|‘|×3Ñ3°HÓKˆHàŸ<™<×@Ñ@À×ATÑATÓAVÐX`ÓaˆLØ�L‰L×5Ñ5°lÔCÜ7<¼SÀÓ=NÔ7OÓPÑ7O°!×*Ñ*¨1Ö-Ñ7OˆJÐPÜ  Ö:‘	��TØ—‘˜DŸL™L›NÖ+ñ ;ä0°ÓIˆNÜ  ¨Ö7‘	��cØ$'�—‘˜DÑ!Ø(+�—‘ Ñ%Ø×+Ñ+¨C°Ö6ñ 8ð —:‘:˜dŸi™iÓ(ˆDÜ˜$¤× 2Ñ 2×3Ò3Ø×$×$Ð$Ø×%Ñ%Ð&<¸d¿l¹l×>eÑ>eÓ>gÔhØ—~‘~�Ø�L‰L×3Ñ3°LÔAà�L‰L×,Ñ,¨T¯[©[¸*ÔEàŸ,™,×?Ñ?À×@RÑ@RÓ@TÐV^Ó_ˆKð �L‰L×5Ñ5°kÔBÜ8=¼cÀ,Ó>OÔ8PÓQÑ8P°1˜KŸO™O¨AÖ.Ñ8PˆLÐQÜ  ¨|Ö<‘	��TØ—‘˜DŸL™L›NÖ+ñ =ä+¨L¸+ÓFˆIÜ  ¨	Ö2‘	��cØ$'�—‘˜DÑ!Ø(+�—‘ Ñ%Ø×+Ñ+¨C°Ö6ñ 3ð �N‰N×!Ñ! $Ô'Ø×)Ñ)¨$¯)©)Ô4Ø�N‰N×ÑÔ ä0Ô0UÉuÓ0UÓUˆMØ�L‰L×(Ñ(¨Ô7÷] $ôb ;@ÄÀLÓ@QÔ:RÓSÑ:R°Q˜(×-Ñ-¨aÖ0Ñ:RˆÐSÜ)¨.¸+ÓFˆÜ  ¨Ö4‰MˆD�'Ø 'ˆD�K‰K˜ÑØ$+ˆD�O‰O˜DÑ!Ø×'Ñ'¨°Ö6ñ 5ð
 —K”KˆDØ+Ð+Ó+�5ó  ùòe <ùò Qùò* R÷C $×#üòb TsE   •/Q<ÁQ-ÁB	Q<Ã%Q2Ã>CQ<ÇCQ<Ê$Q7Ê>D	Q<Ï%RÑ-Q<Ñ<R	c                ó4  € \        VP                  \        P                  4      '       g   Q hV P	                  VP
                  4      pV P	                  VP                  4      p\        V4      '       d   V P                  WP                  W#./ 4      # W#,          # rG   )
rH   rÜ   rÊ   r`  r¹   rv   ÚslicerJ   Úcall_MethodÚ__getitem__)rŽ   re   re  Úslicess   &&  r*   Úvisit_Subscript_LoadÚ"CodeGenerator.visit_Subscript_Load£  so   € Ü˜$Ÿ(™(¤C§H¡H×-Ò-Ð-Ð-Ø�j‰j˜Ÿ™Ó$ˆØ—‘˜DŸJ™JÓ'ˆÜ˜C× Ò Ø×#Ñ# D¯/©/¸3ÀÈ"ÓMÐMØ�{Ðr,   c                ó   € \        R 4      h)z&__setitem__ is not supported in triton)râ  )rŽ   re   rv   s   &&&r*   rM  Ú#CodeGenerator.visit_Subscript_Store«  s   € Ü!Ð"JÓKÐKr,   c                ó$   € V P                  V4      # rG   )rB  rã   s   &&r*   Úvisit_SubscriptÚCodeGenerator.visit_Subscript®  s   € Ø×(Ñ(¨Ó.Ð.r,   c                ó`   € VP                    Uu. uF  q P                  V4      NK  	  up# u upi rG   )Údimsr¹   )rŽ   re   Údims   && r*   Úvisit_ExtSliceÚCodeGenerator.visit_ExtSlice±  s$   € Ø+/¯9ª9Ó5©9 C—
‘
˜3–©9Ñ5Ð5ùÒ5s   �+c           	     ó”  a € S P                  VP                  P                  4      pVP                  P                   Uu. uF  pS P                  V4      NK  	  pp\	        V 3R  lVP                  P
                   4       4      pV\        P                  8X  d×   V! V/ VB p\        VP                  P                  VP                  P                  VP                  P                  4      pV F}  p\        V4      S P                  VP                  P                   &   S P#                  VP$                  4       VP&                   F#  p	\(        P*                  P-                  S V	4       K%  	  K  	  R# Rp
RpRpRpRpRpV\        P                  J dv   V! V/ VB pVP                  pVP                  pVP                  pVP.                  p
VP0                  pVP2                  pVP4                  pVP6                  pVP8                  pM×V\        J dÃ   \;        V4      ^8”  d
   V^ ,          M$S P                  \(        P<                  ! ^ 4      4      p\;        V4      ^8”  d
   V^,          M+S P                  VP                  P                  ^ ,          4      p\;        V4      ^8”  d
   V^,          M$S P                  \(        P<                  ! ^4      4      pM\?        R4      hRp\A        V4      '       d.   VP                  ^ 8  d   \        VP                  ) 4      pRpTTppS PB                  PE                  V4      pS PB                  PE                  V4      pS PB                  PE                  V4      pVPF                  PI                  4       '       dA   VPF                  PI                  4       '       d!   VPF                  PI                  4       '       g4   \K        RVPF                   RVPF                   RVPF                   R24      h\M        V4      '       d   \K        RVPN                   24      h\M        V4      '       d   \K        R	VPN                   24      h\M        V4      '       d   \K        R
VPN                   24      hS PB                  PQ                  VPF                  VPF                  4      pS PB                  PQ                  VVPF                  4      pVPS                  S PT                  4      pVPV                  \        PX                  PF                  PZ                  P\                  8H  pVP^                  pVP^                  pVP^                  pS PT                  Pa                  VVV4      pS PT                  Pa                  VVV4      pS PT                  Pa                  VVV4      pS PT                  Pc                  V4      pS Pe                  VP                  P                   \        PX                  Pg                  VV4      4       \i        S 4      ;_uu_ 4       pVw  ppS Pk                  4       w  ppS Pm                  VVVP                  P                   0R7      w  pppS Po                  VV4       S PT                  Pq                  VVVV4      p \s        V
4      e,   V Pu                  RS PT                  Pw                  V
4      4       \s        V4      e,   V Pu                  RS PT                  Pw                  V4      4       V'       d+   V Pu                  RS PT                  Py                  4       4       V'       d+   V Pu                  RS PT                  Py                  4       4       V'       d+   V Pu                  RS PT                  Py                  4       4       V'       d+   V Pu                  RS PT                  P{                  4       4       S P|                  P                  V4       V P�                  ^ 4      p!S PT                  Pƒ                  V!4       \        \;        V4      4       Uu. uF  pV!P…                  V^,           4      NK  	  p"p\‡        V"V4      p#\‰        VV#4       F*  w  p$p%S P‹                  V%V$4       S Pe                  V$V%4       K,  	  S P#                  VP$                  4       S P|                  P�                  4        \�        V 3R lV 4       4      p&\;        V&4      ^ 8”  d   S PT                  P‘                  V&4       V!P“                  4       p'V'P•                  4       ^8X  g   Q R4       hS PT                  Pƒ                  V!4       V P—                  4       p(V'       d9   S PT                  P™                  VV(4      p(S PT                  P›                  V(V4      p(VP�                  V(4       S Pe                  VP                  P                   \        PX                  Pg                  V(V4      4       S P‹                  V(VP                  P                   4       RRR4       \        \;        X4      4       Uu. uF  pX PŸ                  V4      NK  	  p)p\‡        V)X4      p*\‰        XV*4       F*  w  p$p%S Pe                  V$V%4       S P‹                  V%V$4       K,  	  VP&                   F  p	Q R4       h	  R# u upi u upi   + '       g   i     L¬; iu upi )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irG   r¸   ©rº   ÚkeywordrŽ   s   & €r*   r¼   Ú*CodeGenerator.visit_For.<locals>.<genexpr>·  s   øé € ÐQÑ>P°7˜4Ÿ:™: g×.Ð.Ó>Pùr¾   NFzAOnly `range` and `static_range` iterators are currently supportedTz0For loop bounds and step must all be ints, are (rÖ  r™  z&For lower bound must be a scalar, got z&For upper bound must be a scalar, got zFor step must be a scalar, got )rµ  ztt.num_stagesztt.loop_unroll_factorztt.disallow_acc_multi_bufferz
tt.flattenztt.warp_specializer  c              3   óJ   <"  € T F  pSP                   V,          x € K  	  R # 5irG   r   r!  s   & €r*   r¼   rR     r#  r$  z7We use SCF, so the loop body should only have one blockz)Don't know what to do with else after for)Pr¹   rà  r  rg   r’   ró  r   Ústatic_ranger7  Ústartrv   ÚendÚstepr   r“   rã  rÕ   r¼  rÀ   r  rÊ   rÒ  rÎ   Ú
num_stagesÚloop_unroll_factorÚdisallow_acc_multi_bufferÚflattenÚwarp_specializer)  r‡   ÚConstantÚRuntimeErrorrR   r[  rR  rQ   Úis_intÚ	TypeErrorrY   r(   Úinteger_promote_implrë  r™   Úint_signednessrP   Ú
SIGNEDNESSÚSIGNEDr¶  Úcreate_int_castr  rª  r   r‹   r¯  rÊ  r²  Úcreate_for_opr   r*  Úget_int32_attrÚget_unit_attrr+  rk  r»  Úget_bodyrº  ri   r‰   rý  r¦  r½  r‚   rË  Ú
get_parentÚsizeÚget_induction_varÚ
create_subÚ
create_addÚreplace_all_uses_withrÍ  )+rŽ   re   ÚIteratorClassri   Ú	iter_argsÚiter_kwargsÚiteratorrT  r9  rÎ  rX  rY  rZ  r[  r\  r)  ÚlbÚubrW  Únegative_stepÚiv_typeÚ
iv_ir_typeÚiv_is_signedÚiv_placeholderrº  r”   r›   r®  rÎ  rÅ  rÄ  rÃ  Úfor_opÚfor_op_bodyÚblock_handlesr1  r'   r4  r7  Úfor_op_regionÚivr8  Úresult_valuess+   f&                                         r*   Ú	visit_ForÚCodeGenerator.visit_For´  s7  ø€ ØŸ
™
 4§9¡9§>¡>Ó2ˆØ04·	±	·²Ó?±¨�T—Z‘Z –_±ˆ	Ð?ÜÔQ¸d¿i¹i×>PÒ>PÓQÓQˆØœH×1Ñ1Ô1Ù$ iÐ?°;Ñ?ˆHÜ  §¡×!5Ñ!5°x·|±|×7IÑ7IÈ8Ï=É=×K^ÑK^Ó_ˆLÛ!�Ü.7¸«l�—‘˜DŸK™KŸN™NÑ+Ø×-Ñ-¨d¯i©iÔ8Ø ŸKœK�DÜ—O‘O×1Ñ1°$¸Ö=ó (ñ "ñ
 Øˆ
Ø!ÐØ$)Ð!ØˆØˆØˆØœHŸN™NÓ*Ù$ iÐ?°;Ñ?ˆHð —‘ˆBØ—‘ˆBØ—=‘=ˆDØ!×,Ñ,ˆJØ!)×!<Ñ!<ÐØ(0×(JÑ(JÐ%Ø×&Ñ&ˆGØ&×6Ñ6ˆOØ#×0Ñ0‰LØœeÓ#ô "% Y£°!Ô!3�˜1–¸¿¹ÄCÇLÂLÐQRÃOÓ9TˆBÜ!$ Y£°!Ô!3�˜1–¸¿¹ÀDÇIÁIÇNÁNÐSTÕDUÓ9VˆBÜ#& y£>°AÔ#5�9˜Q–<¸4¿:¹:ÄcÇlÂlÐSTÃoÓ;V‰DäÐbÓcÐcàˆÜ˜×Ò 4§:¡:°¤>Ü˜dŸj™j˜[Ó)ˆDØ ˆMØ˜�ˆBØ�]‰]×$Ñ$ RÓ(ˆØ�]‰]×$Ñ$ RÓ(ˆØ�}‰}×&Ñ& tÓ,ˆà�x‰x�‰× Ò ¨¯©¯©×(9Ò(9ÀÇÁ×ARÑAR×ATÒATÜÐNÈrÏxÉxÈjÐXZÐ[]×[cÑ[cÐZdÐdfÐgk×gqÑgqÐfrÐrsÐtÓuÐuÜ  ×$Ò$ÜÐDÀRÇWÁWÀIÐNÓOÐOÜ  ×$Ò$ÜÐDÀRÇWÁWÀIÐNÓOÐOÜ  ×&Ò&ÜÐ=¸d¿i¹i¸[ÐIÓJÐJØ—-‘-×4Ñ4°R·X±X¸r¿x¹xÓHˆØ—-‘-×4Ñ4°W¸d¿j¹jÓIˆØ—]‘] 4§<¡<Ó0ˆ
Ø×-Ñ-´·±×1DÑ1D×1OÑ1O×1VÑ1VÑVˆà�Y‰YˆØ�Y‰YˆØ�{‰{ˆà�\‰\×)Ñ)¨"¨j¸,ÓGˆØ�\‰\×)Ñ)¨"¨j¸,ÓGˆØ�|‰|×+Ñ+¨D°*¸lÓKˆàŸ™×3Ñ3°JÓ?ˆØ�‰�t—{‘{—~‘~¤x§}¡}×';Ñ';¸NÈGÓ'TÔUä˜d×#Ô# rØ$&Ñ!ˆG�\Ø×<Ñ<Ó>‰LˆB�à,0×,>Ñ,>¸tÀWÐVZ×VaÑVa×VdÑVdÐUeÐ,>Ó,fÑ)ˆE�< ð ×-Ñ-¨b°(Ô;Ø—\‘\×/Ñ/°°B¸¸lÓKˆFÜ# JÓ/Ò;Ø—‘ °·±×1LÑ1LÈZÓ1XÔYÜ#Ð$6Ó7ÒCØ—‘Ð 7¸¿¹×9TÑ9TÐUgÓ9hÔiß(Ø—‘Ð >ÀÇÁ×@ZÑ@ZÓ@\Ô]ßØ—‘ ¨d¯l©l×.HÑ.HÓ.JÔKßØ—‘Ð 4°d·l±l×6PÑ6PÓ6RÔSßØ—‘Ð 6¸¿¹×8_Ñ8_Ó8aÔbà�N‰N×!Ñ! $Ô'Ø Ÿ/™/¨!Ó,ˆKØ�L‰L×5Ñ5°kÔBÜ=BÄ3À|ÓCTÔ=UÓVÑ=U¸˜[Ÿ_™_¨Q°­UÖ3Ñ=UˆMÐVÜ,¨]¸HÓEˆJÜ  ¨
Ö3‘	��cØ×+Ñ+¨C°Ô6Ø—‘˜t SÖ)ñ 4ð ×)Ñ)¨$¯)©)Ô4Ø�N‰N×ÑÔ Ü0Ô0UÉuÓ0UÓUˆMô �=Ó! AÔ%Ø—‘×,Ñ,¨]Ô;Ø'×2Ñ2Ó4ˆMØ ×%Ñ%Ó'¨1Ô,ÐgÐ.gÓgÐ,ð �L‰L×5Ñ5°kÔBØ×)Ñ)Ó+ˆBßØ—\‘\×,Ñ,¨R°Ó4�Ø—\‘\×,Ñ,¨R°Ó4�Ø×0Ñ0°Ô4Ø�N‰N˜4Ÿ;™;Ÿ>™>¬8¯=©=×+?Ñ+?ÀÀGÓ+LÔMØ×'Ñ'¨¨D¯K©K¯N©NÔ;÷a $ôf 9>¼cÀ,Ó>OÔ8PÓQÑ8P°1˜&×+Ñ+¨AÖ.Ñ8PˆÐQÜ+¨N¸HÓEˆÜ˜U MÖ2‰IˆD�#Ø�N‰N˜4 Ô%Ø×'Ñ'¨¨TÖ2ñ 3ð —K”KˆDØEÐEÓE�5ó  ùòG @ùòF W÷3 $×#üòf RsK   ¿j(ØC-j2Ü1j2Ü31j2Ý%1j2ÞBj2à!j-à?Dj2åB3j2è,kê-j2ê2k	c                óÒ   € V P                  VP                  4      pV P                  VP                  4      pV P                  VP                  4      p\        P
                  ! W#V4      # rG   )r¹   ÚlowerÚupperrW  r   r>  )rŽ   re   r„  r…  rW  s   &&   r*   Úvisit_SliceÚCodeGenerator.visit_Slice=  sI   € Ø—
‘
˜4Ÿ:™:Ó&ˆØ—
‘
˜4Ÿ:™:Ó&ˆØ�z‰z˜$Ÿ)™)Ó$ˆÜ�~Š~˜e¨DÓ1Ð1r,   c                ó8   € V P                  VP                  4      # rG   )r¹   rv   rã   s   &&r*   Úvisit_IndexÚCodeGenerator.visit_IndexC  s   € Ø�z‰z˜$Ÿ*™*Ó%Ð%r,   c                ó6   <€ V ^8„  d   QhRS[ S[S[3,          /# r³   )r	   rN  r   )rD   r«   s   "€r*   rE   rO  F  s   ø€ ÷ 0ñ 0¡U©3±¨8¥_ñ 0r,   c                óP   € VP                   V P                  VP                  4      3# rG   )ri   r¹   rv   rã   s   &&r*   Úvisit_keywordÚCodeGenerator.visit_keywordF  s   € Ø�x‰x˜Ÿ™ D§J¡JÓ/Ð/Ð/r,   c                ó    <€ V ^8„  d   QhRS[ /# r³   )r   )rD   r«   s   "€r*   rE   rO  I  s   ø€ ÷ Oñ O¡Cñ Or,   c                óä   € V P                  VP                  4      pVP                  e   V P                  VP                  4      MRp\        P                  P                  W#V P                  R7      # )NrS  r{  )r¹   rÝ  Úmsgr   rP   Údevice_assertr[  )rŽ   re   rÝ  r‘  s   &&  r*   Úvisit_AssertÚCodeGenerator.visit_AssertI  sO   € Ø�z‰z˜$Ÿ)™)Ó$ˆØ&*§h¡hÒ&:ˆd�j‰j˜Ÿ™Ô"ÀˆÜ�}‰}×*Ñ*¨4ÀÇÁÐ*ÓNÐNr,   c                ó    <€ V ^8„  d   QhRS[ /# )r?   rf   )r   )rD   r«   s   "€r*   rE   rO  N  s   ø€ ÷ &Eñ &E¡;ñ &Er,   c                óê  € VP                   P                  ! V/ VB pVP                  4        VP                  pVP                   Uu. uF  qbV,          NK  	  pp\        V4       F  w  rx\        V4      W'&   K  	  T;'       g    V P                  pV Uu. uF  qˆP                  NK  	  p	p\        \        V4      W”4      p
V P                  P                  V
4      '       Eg   \        . V	\        4       4      p\        V P                   W±P#                  4       V P                  VW P$                  VP&                  VP(                  VP*                  VP,                  V P.                  P0                  V P.                  P2                  V P.                  P4                  W@P6                  R 7      p VP9                  VP;                  4       4       TPL                  pYàP$                  T
&   MV P$                  V
,          pV P                  PO                  V
4      p\Q        V4      pV P.                  PS                  VV4      p\U        VPW                  4       4       Uu. uF  pVPY                  V4      NK  	  pp\[        \]        VV.4      4      # u upi u upi   \<         dS   p\>        P@                  PB                  '       d   h \E        T PF                  PH                  T PJ                  R4      ThRp?ii ; iu upi ))rF  rM  ri  rH  r`   rI  rJ  rK  r_  r`  ra  r8   rW  N)/Ú	signatureÚbindÚapply_defaultsÚ	argumentsrd   ra   r|   r8   r(   r<   r   rF  Úhas_functionr  r’   rE  rV  Úget_capture_scoperc  r`   rI  Údef_file_line_numberÚdef_file_col_numberr™   r_  r`  ra  rW  r¹   ÚparseÚ	Exceptionr   r�  Úfront_end_debuggingr!   rM  rb   rj  rl  Úget_functionr‚   r÷  r7  Úget_num_resultsrÍ  r@  r‰   )rŽ   rf   rg   r¢   r8   Ú
bound_argsr'   r9  ri   r  Úfn_namerd  r�   ÚeÚcallee_ret_typeÚsymbolÚargs_valÚcall_opr�   s   &&&&&              r*   Úcall_JitFunctionÚCodeGenerator.call_JitFunctionN  s`  € Ø—\‘\×&Ò&¨Ð7°Ñ7ˆ
Ø×!Ñ!Ô#Ø×#Ñ#ˆØ')§|¢|Ó4¡|˜t�T—
�
¡|ˆÐ4ä –o‰FˆAÜ% cÓ*ˆD‹Gñ &ð (×>Ð>¨4×+>Ñ+>ˆÙ)-Ó.© #—X”X©ˆ	Ð.ÜœM¨"Ó-¨yÓIˆà�{‰{×'Ñ'¨×0Ó0ä# B¨	´4³6Ó:ˆIÜ% d§l¡l°I×?SÑ?SÓ?UÐ^b×^iÑ^iÐrtØ4;×LcÑLcØ/1¯{©{ÀbÇlÁlÐ_a×_vÑ_vØ02×0FÑ0FÐPT×P\ÑP\×PdÑPdØ26·,±,×2JÑ2JÐW[×WcÑWc×WnÑWnØ5CÏmÉmô]ˆIðTØ—‘ §¡£
Ô+ð (×0Ñ0ˆOØ/>×#Ñ# GÒ,à"×5Ñ5°gÕ>ˆOØ—‘×)Ñ)¨'Ó2ˆÜ'¨Ó-ˆØ—,‘,×#Ñ# F¨HÓ5ˆÜ27¸×8OÑ8OÓ8QÔ2RÓSÑ2R¨Q�7×%Ñ% aÖ(Ñ2RˆÐSÜÔ'¨°/Ð1BÓCÓDÐDùòE 5ùò /øô ô Tä×$Ñ$×8×8Ð8ØÜ& t§{¡{§¡¸¿¹ÀtÓLÐRSÐSûð	Tüò Ts+   ÁJÂJÆ*J ÉK0ÊK-ÊAK(Ë(K-c                ó4  € \        V\        \        34      '       d)   VP                  ^ VP                  4       VP
                  p\        VRR4      pV'       d“   \        VRR4      '       d€   R\        P                  ! VP                  4      ,          .p\        V\        4      '       d   VP                  V4       \        V P                  P                  VRP                  V4      4      h\        V\         4      '       d   \#        WV4       V P%                  W#V4      # \'        VR4      '       d   \)        VP                  4      '       g<   \*        P,                  P/                  V4      '       g   \        V\0        4      '       dÆ   \3        4       p\        VRR4      p\        V\0        4      '       d   V P4                  VR	&   MOVf   \6        P8                  ! V4      pR	VP:                  9   d   V P4                  VR	&   R
VP:                  9   d   WR
&    V! V/ VBVB p	\        V	\<        4      '       d   \*        P<                  ! V	4      p	V	# W PF                  PI                  4       9   g.   \'        VR4      '       d,   \)        VP                  4      '       g   \K        \L        V4      pV! V/ VB p	\O        V	4      #   \>         dR   p
\@        PB                  PD                  '       d   h \        T P                  P                  T\        T
4      4      T
hRp
?
ii ; i)r   Ú_must_use_resultFÚ
_is_unusedz#The result of %s is not being used.r�  r@  r—  Nr|  rÔ  )(rH   r>  r   Úinsertr@  rA  rÖ   rÊ   rà  r  rN  r»  r!   rM  rb   r4   r   rj   r«  rc  rJ   r   rP   Ú
is_builtinr   r’   r[  Úinspectr—  Ú
parametersr   r   r   r�  r¡  rŽ  r~   Úmapr   r|   )rŽ   re   rf   rg   rø  ÚmurÚerror_messageÚextra_kwargsÚsigr;   r¦  s   &&&&&      r*   r  ÚCodeGenerator.call_Functionv  sj  € Ü�bœ>Ô+AÐB×CÒCØ�K‰K˜˜2Ÿ;™;Ô'Ø—‘ˆBä�bÐ,¨eÓ4ˆß”7˜4 ¨u×5Ò5ØBÄSÇ[Â[ÐQU×QZÑQZÓE[Õ[Ð\ˆMÜ˜#œs×#Ò#Ø×$Ñ$ SÔ)Ü" 4§;¡;§?¡?°D¸#¿(¹(À=Ó:QÓRÐRä�bœ+×&Ò&Ü˜4 TÔ*Ø×(Ñ(¨°3Ó7Ð7Ü�B˜
×#Ò#Ô(8¸¿¹×(EÒ(EÌ(Ï-É-×JbÑJbÐce×JfÒJfÔjtØÔ%÷k'ò k'ä›6ˆLä˜"˜k¨4Ó0ˆCÜ˜"Ô/×0Ò0Ø,0¯M©M�˜[Ò)à’;Ü!×+Ò+¨BÓ/�CØ #§.¡.Ô0Ø04·±�L Ñ-Ø 3§>¡>Ô1Ø15 Ñ.ðMÙ˜$Ð6 ,Ð6°#Ñ6�ä˜c¤5×)Ò)Ü"Ÿ.š.¨Ó-�CØ�
ð ×'Ñ'×.Ñ.Ó0Ô0´W¸RÀ×5LÒ5LÔUeÐfh×fqÑfq×UrÒUrÜÔ+¨TÓ2ˆDÙ�$Ð˜#Ñˆä˜sÓ#Ð#øô ô 	MÜ×$Ñ$×8×8Ð8Øô ' t§{¡{§¡¸¼cÀ!»fÓEÈ1ÐLûð	Mús   È7J; Ê;LËALÌLc                óv   € \        V\        4      '       d   VP                  ^ V4       V P                  WWE4      # )r   )rH   r   r°  r  )rŽ   re   rf   Úfn_selfrg   rø  s   &&&&&&r*   r?  ÚCodeGenerator.call_Methodª  s0   € Ü�bœ+×&Ò&Ø�K‰K˜˜7Ô#Ø×!Ñ! $¨DÓ6Ð6r,   c                óL  a € \        S P                  VP                  4      4      p\        V\        4      '       g)   S P
                  P                  V4      pVe
   V! S V4      # \        V 3R lVP                   4       4      p. pVP                   Fÿ  p\        V\        P                  4      '       d¼   S P                  VP                  4      p\        V\        4      '       d   VP                  p\        V\        4      '       d    \        P                   P                  V4      p\        V\        P                   P                  4      '       g   Q hVP#                  VP$                  4       KÞ  VP'                  S P                  V4      4       EK  	  S P)                  WWT4      # )Nc              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irG   r¸   rP  s   & €r*   r¼   Ú+CodeGenerator.visit_Call.<locals>.<genexpr>¶  s   øé € ÐD±m¨7�4—:‘:˜g×&Ð&³mùr¾   )r   r¹   r  rH   r>  Ú statically_implemented_functionsr.  r’   ró  rg   rÊ   ÚStarredrv   r   r   r   rP   rÀ  r~   r»  r  )rŽ   re   rf   Ústatic_implementationrø  rg   ri   s   f&     r*   r  ÚCodeGenerator.visit_Call¯  s(  ø€ Ü! $§*¡*¨T¯Y©YÓ"7Ó8ˆÜ˜"œn×-Ò-Ø$(×$IÑ$I×$MÑ$MÈbÓ$QÐ!Ø$Ò0Ù,¨T°4Ó8Ð8äÔD°d·m²mÓDÓDˆØˆØ—9”9ˆCÜ˜#œsŸ{™{×+Ò+Ø—j‘j §¡Ó+�Ü˜c¤9×-Ò-ØŸ)™)�CÜ˜c¤5×)Ò)Ü"Ÿ-™-×-Ñ-¨cÓ2�CÜ! #¤x§}¡}×':Ñ':×;Ò;Ð;Ð;Ø—‘˜CŸJ™JÖ'à—‘˜DŸJ™J s›O×,ñ ð ×!Ñ! $¨DÓ6Ð6r,   c                ó,   € \        VP                  4      # rG   )r   rv   rã   s   &&r*   Úvisit_ConstantÚCodeGenerator.visit_ConstantÆ  s   € Ü˜Ÿ™Ó$Ð$r,   c                ó4   <€ V ^8„  d   QhRS[ P                  /# rÛ  )rÊ   ÚBoolOp)rD   r«   s   "€r*   rE   rO  É  s   ø€ ÷ 2$ñ 2$¡§¡ñ 2$r,   c           
     óä  € V P                   P                  \        VP                  4      4      pVf6   V P	                  VRP                  VP                  P                  4      4      h. pVP                   Fç  pV P                  V4      p\        V4      '       g2   \        V4      pVRJ d   VR8X  d   Vu # VRJ d   VR8X  d   Vu # KT  KV  VP                  P                  4       '       da   \        VRR 4      pVe   WpP                  ,          p\        P                  ! R\         V P"                  V\$        P&                  ! V4      R7       VP)                  V4       Ké  	  \+        V4      ^ 8X  d   VP)                  X4       \+        V4      ^8¼  dF   VP-                  4       pVP-                  4       p	V P/                  WW˜4      p
VP)                  V
4       KU  \+        V4      ^8X  g   Q hV^ ,          # )	Nz9AST boolean operator '{}' is not (currently) implemented.FÚlogical_andTÚ
logical_orr[  zeLogical operators 'and' and 'or' are deprecated for non-scalar tensors; please use '&' or '|' instead)ro   Úfilenamer[  Úsource)Ú_method_name_for_bool_opr.  r(   rb  rx  rD   rc   r~   r¹   rM   rC   rW   rÖ   rJ  rÞ  Úwarn_explicitÚUserWarningrI  rÊ   rà  r»  r‡   r½  r‚  )rŽ   re   r€  Únontrivial_valuesÚsubnoderv   Úbvr[  rf  re  rú  s   &&         r*   Úvisit_BoolOpÚCodeGenerator.visit_BoolOpÉ  s¹  € Ø×3Ñ3×7Ñ7¼¸T¿W¹W»ÓFˆØÒØ×#Ñ#ØÐQ×XÑXÐY]×Y`ÑY`×YiÑYiÓjólð lð Ðà—{”{ˆGð —J‘J˜wÓ'ˆEÜ$ U×+Ò+ä˜%“[�Ø˜%“K k°]Ô&Bà ’LØ˜$“J [°LÔ%@à ’Lñ &A‘Jð —:‘:×&Ñ&×(Ò(Ü$ T¨8°TÓ:�FØÒ)Ø§/¡/Õ1˜Ü×*Ò*ØÜ!,Ø!%§¡Ø%Ü"Ÿ{š{¨4Ó0õð "×(Ñ(¨Ö/ñ9 #ô< Ð Ó! QÔ&ð ×$Ñ$ UÔ+äÐ#Ó$¨Ô)Ø#×'Ñ'Ó)ˆCØ#×'Ñ'Ó)ˆCØ×+Ñ+¨D¸sÓHˆCØ×$Ñ$ SÖ)äÐ$Ó%¨Ô*Ð*Ð*Ø  Õ#Ð#r,   rÊ  rË  c                ó:  € \        V4      '       d$   VR 8X  d   V P                  P                  VR4      # \        V\        4      '       d   VR9  d   VP
                  p\        W4      p\        V4      '       d"   \        V\        4      '       d   \        W4      # V# )ÚT)rV   r   )rv   r(   )
rM   r[  ÚpermuterH   r   rv   rÖ   rJ   r   r>  )rŽ   re  r×   s   &&&r*   r~  ÚCodeGenerator.get_Attributeÿ  sy   € Ü˜S×!Ò! d¨c¤kØ—=‘=×(Ñ(¨¨fÓ5Ð5ä�cœ9×%Ò%¨$Ð6GÔ*GØ—)‘)ˆCÜ�sÓ!ˆÜ˜C× Ò ¤Z°´k×%BÒ%BÜ! #Ó,Ð,Øˆr,   c                óH  € V P                  VP                  4      p\        V\        4      '       dX   VP                  ;q0P
                  P                  9   d2   V P
                  P                  V,          pVP                  V8X  g   KV   V P                  W!P                  4      # rG   )	r¹   rv   rH   r   rc   r™   ra  r~  r×   )rŽ   re   re  r'   s   &&  r*   rØ   ÚCodeGenerator.visit_Attribute
  sr   € Ø�j‰j˜Ÿ™Ó$ˆÜ�cœ:×&Ò&àŸ<™<Ð'�4¯L©L×,CÑ,CÔCØ—l‘l×-Ñ-¨dÕ3�Ø—<‘< 4Ö'ØØ×!Ñ! #§y¡yÓ1Ð1r,   c                óf   € R VP                   n        \        P                  P	                  W4       R# )TN)rv   r¯  rÊ   rÒ  rÎ   rã   s   &&r*   Ú
visit_ExprÚCodeGenerator.visit_Expr  s    € Ø $ˆ�
‰
ÔÜ�‰×%Ñ% dÖ1r,   c                ó   € R # rG   rl   rã   s   &&r*   Úvisit_NoneTypeÚCodeGenerator.visit_NoneType  ræ   r,   c           
     ó²  € \        VP                  4      p\        V4       EF"  w  r4\        V\        P
                  4      '       d   \        VP                  4      W#&   K?  \        V\        P                  4      '       d¤   VP                  pV P                  VP                  4      p\        V4      '       g,   V P                  VR \        \        V4      4      ,           4      hV^ 8  d   RMR\        V4      ,           R,           P                  VP                  4      W#&   EK  \!        RP                  \        V4      4      4      h	  RP#                  V4      # )z^Cannot evaluate f-string containing non-constexpr conversion values, found conversion of type z{}z{!Ú}z:encountered unexpected node of type {} in a JoinedStr noderS  )r\   r~   ra   rH   rÊ   r]  rN  rv   ÚFormattedValueÚ
conversionr¹   rR   rx  r(   ÚchrrD   ÚAssertionErrorr4   )rŽ   re   r~   r9  rv   Úconversion_codeÚ	evaluateds   &&     r*   Úvisit_JoinedStrÚCodeGenerator.visit_JoinedStr  s	  € Ü�d—k‘kÓ"ˆÜ! &×)‰HˆAÜ˜%¤§¡×.Ò.Ü §¡Ó,�“	Ü˜E¤3×#5Ñ#5×6Ò6Ø"'×"2Ñ"2�Ø ŸJ™J u§{¡{Ó3�	Ü$ Y×/Ò/Ø×+Ñ+ØØxÜœd 9›oÓ.õ/ó0ð 0ð &5°qÔ%8™T¸dÄSÈÓEYÕ>YÐ\_Õ>_×gÑgÐhq×hwÑhwÓx�”	ä$Ð%a×%hÑ%hÔimÐnsÓitÓ%uÓvÐvñ *ð �w‰w�v‹Ðr,   c                ó  <€ Vf   R # V P                   pV P                  P                  4       pWn         \        VR4      '       dÙ   \        VR4      '       dÇ   V P                  P	                  V P
                  V P                  VP                  ,           V P                  VP                  ,           4      pV P                  eA   V P                  P                  V P                  P                  V P                  V4      4       MV P                  P                  V4        \        SV `9  V4      pT'       d]   T P                  e.   TP/                  4       f   TP1                  T P                  4       Y n         T P                  P                  T4       T#   \         d    h \          d\   p\"        P$                  P&                  '       d   h \        T P(                  P*                  T P                   \-        T4      4      R hR p?ii ; i)Nr[  r\  )rj  r™   r¤  rc  Ú
create_locrI  rJ  r[  rK  r\  r]  r^  r£  Úsuperr¹   r!   r   r   r�  r¡  rM  rb   ÚreprÚget_nameÚset_name)rŽ   re   Ú	last_noderÎ  Úhere_locr;   r¦  Ú	__class__s   &&     €r*   r¹   ÚCodeGenerator.visit-  s„  ø€ ØŠ<ÙØ—M‘Mˆ	Ø—<‘<×'Ñ'Ó)ˆØŒÜ�4˜×"Ò"¤w¨t°\×'BÒ'BØ—|‘|×.Ñ.¨t¯~©~¸t¿¹ÐQU×Q\ÑQ\Õ?\Ø/3¯~©~ÀÇÁÕ/OóQˆHà×&Ñ&Ò2Ø—‘×$Ñ$ T§\¡\×%AÑ%AÀ$×BYÑBYÐ[cÓ%dÕeà—‘×$Ñ$ XÔ.ð		VÜ‘'‘- Ó%ˆC÷ à×&Ñ&Ò2°x×7HÑ7HÓ7JÒ7RØ×!Ñ! $×"9Ñ"9Ô:Ø%ŒMØ�L‰L× Ñ  Ô*Øˆ
øô!  ô 	ØÜô 	VÜ× Ñ ×4×4Ð4Øô # 4§;¡;§?¡?°D·M±MÄ4ÈÃ7ÓKÐQUÐUûð	Vús   ÄF ÆHÆ)HÆ*AH È Hc                ój   € V P                  VR P                  \        V4      P                  4      4      h)zunsupported AST node type: {})rx  rD   r(   rc   rã   s   &&r*   rÎ   ÚCodeGenerator.generic_visitN  s,   € Ø×Ñ Ð&E×&LÑ&LÌTÐRVËZ×M`ÑM`Ó&aÓbÐbr,   c                ó8   <€ V ^8„  d   QhRS[ P                  RR/# )r?   re   rA   N©rÊ   r
  )rD   r«   s   "€r*   rE   rO  Q  s   ø€ ÷ ñ ©#¯(©(ð °tñ r,   c                óX  € \        VP                  4      p^ Tu;8  d   ^8:  d   M M\        VP                  4      '       d   \        R4      h\	        V P                  VP                  ^ ,          4      4      p\        V\        4      '       g   \        R4      hV'       gX   V^8X  d   RpM# V P                  VP                  ^,          4      p\        V P                  P                  V\	        V4      4      hR#   \         d$   pR\        T4      ,           R,           p Rp?LURp?ii ; i)r   z=`static_assert` requires one or two positional arguments onlyzqAssertion condition could not be determined at compile-time. Make sure that it depends only on `constexpr` valuesrS  z'<failed to evaluate assertion message: Ú>N)r‡   rg   ró  r`  r   r¹   rH   rC   râ  r   rï  r"   rM  rb   )rŽ   re   Ú	arg_countÚpassedrw  r¦  s   &&    r*   Úexecute_static_assertÚ#CodeGenerator.execute_static_assertQ  sé   € Ü˜Ÿ	™	“Nˆ	Ø�IÖ" ×"¤s¨4¯=©=×'9Ò'9ÜÐ[Ó\Ð\ä% d§j¡j°·±¸1µÓ&>Ó?ˆÜ˜&¤$×'Ò'Ü%ð Dóð ÷ Ø˜AŒ~Ø‘ðXØ"Ÿj™j¨¯©°1­Ó6�Gô .¨d¯k©k¯o©o¸tÔEYÐZaÓEbÓcÐcÙøô	 !ô XØGÌ$ÈqË'ÕQÐTWÕW•GûðXús   Â-"C; Ã;D)ÄD$Ä$D)c                ó   a € R  V 3R llpV# )c                ó8   € V ^8„  d   QhR\         P                  /# rÛ  rù  )rD   s   "r*   rE   Ú3CodeGenerator.static_executor.<locals>.__annotate__i  s   € ÷ 	6ñ 	6œCŸH™Hñ 	6r,   c                 ó
  <a € V 3R  lVP                    4        UUu/ uF  w  r#V\        V4      bK  	  pppVP                   Uu. uF  p\        S P                  V4      4      NK  	  pp\	        S! V/ VB 4      # u uppi u upi )c              3   óF   <"  € T F  pSP                  V4      x € K  	  R # 5irG   r¸   rP  s   & €r*   r¼   Ú=CodeGenerator.static_executor.<locals>.ret.<locals>.<genexpr>l  s   øé € Ð#UÁ}¸G D§J¡J¨w×$7Ð$7Ã}ùr¾   )ró  r   rg   r¹   r   )rŽ   re   r'   rv   rø  ri   rg   Ú	python_fns   f&     €r*   r;   Ú*CodeGenerator.static_executor.<locals>.reti  s†   ù€ ô $VÀtÇ}Â}Ô#Uôá#U‘K�Dð Ô*¨5Ó1Ò1Ù#Uð ñ ð FJÇYÂYÓOÁY¸cÔ(¨¯©°C«Ö9ÁYˆDÐOÜ™Y¨Ð4°Ñ4Ó5Ð5ùóùò Ps   œA:Á#B rl   )r  r;   s   f r*   Ústatic_executorÚCodeGenerator.static_executorg  s   ø€ ÷	6ð 	6ð ˆ
r,   )r   c                ó¢  <€ V ^8„  d   Qh/ S[ S[S[3,          ;R&   S[ S[S[P
                  ,          S[3,          ;R&   S[ S[S[P                  ,          S[3,          ;R&   S[ S[S[P                  ,          S[3,          ;R&   S[ S[S[P                  ,          S[3,          ;R&   S[ S[	S[
S[P                  .S[3,          3,          ;R&   # )r?   rŽ  r‡  r  r  rÎ  rÀ  )r   rN  r   r
   rÊ   ÚoperatorÚcmpopÚunaryopÚboolopr{  r   r
  )rD   r«   s   "€r*   rE   rO    sÕ   ø‡ ‚ ñN ™C¡˜H•~ñ ñO ñj "¡$¡s§|¡|Õ"4±cÐ"9Õ:ñ ñk ñN #¡4©¯	©	¥?±CÐ#7Õ8ñ ñO ñt  $¡D©¯©Õ$5±sÐ$:Õ;ñ ñu ñ~& #¡4©¯
©
Õ#3±SÐ#8Õ9Ñjñ& ñl* '+©6±8¹S¿X¹X¸JÉ¸OÕ3LÐ+LÕ&Mñ òm* r,   )rK  rJ  r™   r8   rV  rj  rn  rI  rf   ri  rc  r°   rW  rG  rM  r•   r“   rF  r]  r`   r—   rd  rl  rf  re  rk  r[  ro  rG   )€rc   r¥   r¦   r§   r�   r‡   r\   r7  ÚfloatÚintrH   rÖ   rc  rŽ  Úupdater   rP   Údevice_printÚbuiltin_minÚbuiltin_maxrx  r}  rm  Ú
contextlibÚcontextmanagerrŸ  r¦  rª  r¯  r²  r¶  rÊ  r¼  rö   rØ  ræ  rä   r  r  r  rü   r:  rF  rI  rN  rê   rð   rm  rÞ   rr  ru  rx  r‚  rˆ  rÊ   ÚAddÚSubÚMultÚDivÚFloorDivÚModÚPowÚLShiftÚRShiftÚBitAndÚBitOrÚBitXorr‡  r«  rÂ  rÑ  r  r  rü  rÿ  r	  ÚEqÚNotEqÚLtÚLtEÚGtÚGtEr  r  ÚUSubÚUAddÚNotÚInvertr  r¿  r;  rB  rM  rG  rL  r�  r†  r‰  r�  r“  r«  r  r?  r  rÅ  rÔ  ÚAndÚOrrÎ  r~  rØ   rÝ  rà  rê  r¹   rÎ   rþ  r  Úexperimental.gluonÚttglÚstatic_assertÚstatic_printrs  rÀ  rC  r¨   r©   Ú__classcell__)r.   rô  r«   s   0@@r*   rE  rE    s  ù‡ € ðC0Ø.2ðC0Ø>CðC0ØfjðC0àðC0à04ðC0àQUðC0àbcðC0àop÷C0ò C0ðN �t˜U E¨3°
¸GÀWÑMó)áMˆAð 	
�
‰
�AŠÙMñ)Ðð ×ÑØ	�(—-‘-×,Ñ,Ð-Ø	�—‘×)Ñ)Ð*Ø	�—‘×)Ñ)Ð*ðô òLò	ò1ðf ×Ññ'ó ð'ò
.÷&ð &òò"ñ ?B»e÷ &-ò &-òV	ò2ò÷!ð !ò 
@ò;ò>ò&rò,-?ò^&òò'ò(2ò!*òF÷5ð 5ò
.ò
2ò2ò$ò7òFð 	�‰�Ø�‰�Ø�‰�)Ø�‰�Ø�‰�nØ�‰�Ø�‰�Ø�
‰
�LØ�
‰
�LØ�
‰
�IØ�	‰	�8Ø�
‰
�Ið>Ðò9Còv$,òN!,òF8ò>3/òj*ò,òFð$ 	�‰�˜#Ÿ)™) X¨s¯v©v°xÀÇÁÈ(ÐTW×TZÑTZÐ\dÐfi×fmÑfmÐowð<Ðòtð  	�‰�)˜SŸX™X y°#·'±'¸9ÀcÇjÁjÐR^ð?Ðò@ò;6òzòLò/ò6òG6òR2ò&÷0ð 0÷Oð O÷
&Eò &EòP2$òh7ò
7ò.%÷2$ð 2$ðh >A¿W¹WÀmÐUX×U[ÑU[Ð]iÐ<jÐò	ò2ò2òòõ$òBc÷ð ò,
õ 6à�‰×#Ñ#Ð%:Ø�‰×"Ñ"¡O°EÓ$:Ø×ÑÐ1Ø×Ñ™?¨5Ó1Ø‰_˜SÓ!Ø‰_˜SÓ!ðQÐ$÷m* … ùòN)s   ²MrE  c                 ó<  aa€ R .\        V P                  4      ,          pVP                  P                  4        F.  w  r‰V P                  P	                  V4      p
\        V	R 4      Wz&   K0  	  V3R loVV3R loVP                  P                  4        F"  w  r¼S! V\        V4      R R R1,          V4       K$  	  \        . WqP                  4      p^ RI
Hp \        R VP                  4      pV Uu/ uF/  pV P                  V^ ,          ,          VP                  V,          bK1  	  ppVP                  pV! RRR.4      ! VV4      p\        W-V P                  4       V P                  V4      V RV P                   V P"                  V P$                  W4WVV P'                  4       R	7      pVP)                  V P+                  4       4       VP,                  pW&n        VP1                  4       '       g-   V P'                  4       '       g   \3        V4       \5        R
4      hV# u upi )Nc                 ó"  <€ \        V \        P                  4      '       dV   \        \	        V 4      4      '       d   V P
                  MR p\        P                  ! V  Uu. uF  pS! V4      NK  	  upV4      # \        V 4      P                  # u upi rG   )	rH   rs   r   r    r(   rr   r   ru   r   )rv   rt   rw   rþ  s   &  €r*   rþ  Ú#ast_to_ttir.<locals>.constexpr_type…  sk   ø€ Ü�eœXŸ^™^×,Ò,Ü&3´D¸³K×&@Ò&@�U—]’]ÀdˆFÜ×&Ò&Á5Ó'IÁ5¸a©°qÖ(9Á5Ñ'IÈ6ÓRÐRÜ˜Ó×$Ñ$Ð$ùò (Js   ÁBc                 óØ   <€ VP                  4       p\        V4      ^ 8X  d:   \        V \        4      '       d   S! V4      W&   R# S! V4      V P                  V&   R# S! W,          W4       R# r…   )r½  r‡   rH   r\   ry   )ÚargumentÚindicesrv   ÚindexÚapply_constexpr_typesrþ  s   &&& €€r*   r;  Ú*ast_to_ttir.<locals>.apply_constexpr_types‹  sR   ø€ Ø—‘“ˆÜˆw‹<˜1ÔÜ˜(¤D×)Ò)Ù"0°Ó"7�“á(6°uÓ(=�—‘˜uÓ%á! (¥/°7ÖBr,   )Ú
namedtuplec                 ó   € \        V 4      ^8H  # rU   )r‡   )rw   s   &r*   rù  Úast_to_ttir.<locals>.<lambda>›  s   € œc !›f¨škr,   ÚSpecializationProxyÚ	constantsr—  T)r°   ri  rM  rG  rI  rJ  rK  r_  r`  ra  rF  rW  z error encountered during parsingr#  )r‡   rd   r—  rg  r:  r   rA  r\   r  r  Úcollectionsr=  ÚfilterrE  rœ  rï  rI  r�  rž  rW  r¹   rŸ  rF  rV  Úverifyrs  r^  )rf   rb   rV  r_  r`  ra  rF  r  rp  rw   rh   r0  rv   rd  r=  Úleavesr9  rA  r—  Úproxyr�   r;  rþ  s   &&&&&&&              @@r*   Úast_to_ttirrG  ~  s³  ù€ Ø�œ˜RŸ\™\Ó*Õ*€Ià—‘×#Ñ#Ö%‰ˆØ�l‰l× Ñ  Ó#ˆÜ" 1 dÓ+ˆ	‹ñ &õ%öCð —}‘}×*Ñ*Ö,‰ˆÙ˜i¬¨d«±D°b°DÕ)9¸5ÖAñ -ô ˜B 	¯9©9Ó5€Iå&ÜÑ)¨3¯=©=Ó9€FÙ?EÓF¹v¸!�—‘˜a �dÕ# S§]¡]°1Õ%5Ò5¹v€IÐFØ—‘€IÙÐ,¨{¸KÐ.HÔIÈ)ÐU^Ó_€EÜ˜g¸×9MÑ9MÓ9OÐ_a×_fÑ_fÐglÓ_mØ%'°4À2Ç<Á<Ð\^×\sÑ\sØ(*×(>Ñ(>ÈØ)3ÈRÏ[É[Ë]ô\€Ið ‡O�O�B—H‘H“JÔØ×Ñ€Fà„NØ�=‰=�?Š?Ø�{‰{�}Š}Ü�&ŒMÜÐ=Ó>Ð>Ø€Mùò Gs   Ã05HrG   )MrÊ   rs   r  rÁ  r  r²  r%   rÞ  r“  Údataclassesr   ry   r   Útypingr   r   r   r   r	   r
   r   r   r   rS  r   r   Ú_C.libtritonr   r   r   r   r   r   rá  Úlanguage.corer   r   r   Úruntime.jitr   r   r   r   r   Ú_utilsr   r   r    Úerrorsr!   r"   r#   r+   r<   rJ   rM   rR   rY   r]   rj   r`  rp   rz   r|   r‚   r‰   rC   r  r(   rä  r‹   rÒ  r­   r  r>  rE  rG  rl   r,   r*   Ú<module>rO     s  ðÛ 
Û Û Û Û Û Û 	Û Û Ý !Ý ß T× TÕ Tç ß 'ß FÓ Fß GÑ Gç lÕ lß FÑ Fç aÑ aòò	õ%õ!õUõNõ(òð #,ô !ò
Dò õõ"ð ˜#™t D›zÐ*Ð ÷Kñ Kô.T%˜CŸO™Oô T%÷n.ñ .ñb �$Ô÷ð ó ðô
]�C—O‘Oô ]ö@+-r,   