ó
    EñiSÛ  ã                   óÒ  • S r SSKrSSKrSSKrSSKJrJrJr  SSKJ	r	J
r
  SSKJrJrJrJr  SSKrSSKJr  SSKJr  SSKJr  S	S
KJrJr  S	SKJr  S	SKJr  S	SKJ r J!r!  S	SK"J#r#J$r$  S	SK%J&r&J'r'  SSK(J)r)  SSK*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2  SSK3J4r4  \(       a  SSK5J6r6  SSK7J8r8  \Rr                  " \:5      r; " S S\)5      r< " S S\45      r= " S S\=5      r> " S S\<5      r? " S S\<5      r@ " S  S!\<5      rA " S" S#\<5      rB " S$ S%\<5      rC " S& S'\<5      rD " S( S)\<5      rE " S* S+\<5      rF " S, S-\<5      rG " S. S/\<5      rH " S0 S1\<5      rI " S2 S3\<5      rJ " S4 S5\<5      rK " S6 S7\<5      rL " S8 S9\<5      rM " S: S;\<5      rN " S< S=\<5      rO " S> S?\<5      rP " S@ SA\<5      rQ " SB SC\<5      rR " SD SE\<5      rS " SF SG\<5      rT " SH SI\<5      rU " SJ SK\)5      rV " SL SM\)5      rWg)Na)  
This file contains a collection of context manager classes used by Dynamo for tracking
and managing various PyTorch runtime states during graph compilation. These context
managers handle different aspects of PyTorch's execution environment, including:

- Autograd states (grad mode, inference mode)
- CUDA streams and events
- Profiling contexts
- Deterministic algorithms
- Forward/backward AD modes
- SDPA (Scaled Dot Product Attention) kernels
- FSDP (Fully Sharded Data Parallel) states
- AMP (Automatic Mixed Precision) autocast states

The context managers ensure proper state transitions during graph compilation by
tracking enter/exit points and managing cleanup operations. They help maintain
consistency between eager execution and compiled graph behavior by capturing and
restoring state changes.
é    N)ÚCallableÚSequenceÚSized)ÚAbstractContextManagerÚ	ExitStack)ÚAnyÚOptionalÚTYPE_CHECKINGÚUnion)Úconfig)ÚGuard)Úwarning_onceé   )Úgraph_break_hintsÚ	variables)Úcreate_call_function)Úunimplemented)ÚGuardBuilderÚinstall_guard)Ú
AttrSourceÚGlobalStateSource)Ú_get_error_on_graph_breakÚ_set_error_on_graph_breaké   )ÚVariableTracker)ÚNestedUserFunctionVariableÚSkipFunctionVariableÚUserFunctionVariableÚUserMethodVariableÚ!WrappedNestedUserFunctionVariableÚWrappedSkipFunctionVariableÚWrappedUserFunctionVariableÚWrappedUserMethodVariable)ÚUserDefinedObjectVariable)Ú	PyCodegen)ÚInstructionTranslatorc            	       óJ  ^ • \ rS rSrSSSS1\R
                  kr SS\S\\   S\SS4U 4S	 jjjrS
SS\4S jr	 SS
SS\\
S\4      SS4S jjrS
SS\S\4S jrSS jrSS jrS\4S jrS\4S jrS
SS\\   S\\\4   S\4S jrS\4S jrS\4S jrSS jrSS jrSrU =r$ )ÚContextWrappingVariableé<   Úcm_objÚtarget_valuesÚinitial_valuesÚstateNÚkwargsÚreturnc                 ó>   >• [         TU ]  " S0 UD6  Xl        X l        g ©N© )ÚsuperÚ__init__r+   r,   ©Úselfr+   r,   r.   Ú	__class__s       €Ú`/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/variables/ctx_manager.pyr4   Ú ContextWrappingVariable.__init__E   s!   ø€ ô 	‰ÒÑ"˜6Ò"Ø*ÔØ,Õó    Útxr&   c                 óœ   • [        U S5      (       a  U R                  XR                  5        U R                  U5        [        R
                  $ ©NÚ
_call_func)Úhasattrr>   r+   Úset_cleanup_hookr   ÚCONSTANT_VARIABLE_NONE©r6   r;   s     r8   ÚenterÚContextWrappingVariable.enterL   s;   € Ü�4˜×&Ñ&Ø�O‰O˜B× 2Ñ 2Ô3Ø×Ñ˜bÔ!Ü×/Ñ/Ð/r:   Úfn.c                 óx   ^ ^• Uc	  SU U4S jjnUT l         TR                  R                  T R                  5        g )Nc                  ób   >• [        T S5      (       a  T R                  TT R                  5        g g r=   )r?   r>   r,   rB   s   €€r8   rE   Ú4ContextWrappingVariable.set_cleanup_hook.<locals>.fnW   s)   ø€ Ü˜4 ×.Ñ.Ø—O‘O B¨×(;Ñ(;Õ<ð /r:   ©r/   N©Ú
cleanup_fnÚoutputÚadd_cleanup_hookÚcleanup©r6   r;   rE   s   `` r8   r@   Ú(ContextWrappingVariable.set_cleanup_hookR   s3   ù€ ð ‰:÷=ð =ð 9;ˆŒØ
�	‰	×"Ñ" 4§<¡<Õ0r:   Úargsc                 óB   • U R                  5         [        R                  $ ©N)Úcleanup_assertr   rA   ©r6   r;   rQ   s      r8   ÚexitÚContextWrappingVariable.exit^   s   € ð 	×ÑÔÜ×/Ñ/Ð/r:   c                 ó’   • U" [        UR                  R                  U R                  5       5      U R	                  5       5      5        g rS   )r   r;   Úimport_sourceÚmodule_nameÚfn_name©r6   Úcodegens     r8   Úreconstruct_typeÚ(ContextWrappingVariable.reconstruct_typed   s2   € ÙÜ�w—z‘z×/Ñ/°×0@Ñ0@Ó0BÓCÀTÇ\Á\Ã^ÓTõ	
r:   c                 ó  ^ ^• TR                  UU 4S j5        T R                  nU(       d  SnTR                  U Vs/ s H  nTR                  U5      PM     sn5        TR                  [	        [        U5      S5      5        g s  snf )Nc                  ó&   >• TR                  T 5      $ rS   )r^   )r]   r6   s   €€r8   Ú<lambda>Ú5ContextWrappingVariable.reconstruct.<locals>.<lambda>j   s   ø€  d×&;Ñ&;¸GÔ&Dr:   r2   F)Úadd_push_nullr+   Úextend_outputÚcreate_load_constr   Úlen)r6   r]   r+   Úvals   ``  r8   ÚreconstructÚ#ContextWrappingVariable.reconstructi   sn   ù€ Ø×ÑÕDÔEØ×*Ñ*ˆÞØˆMØ×ÑÉÓWÊÀ#˜w×8Ñ8¸Ö=ÉÑWÔXØ×ÑÔ2´3°}Ó3EÀuÓMÕNùò Xs   ½Bc                 ó   • [        S5      e)Nzmodule_name called on base©ÚNotImplementedError©r6   s    r8   rZ   Ú#ContextWrappingVariable.module_nameq   s   € Ü!Ð">Ó?Ð?r:   c                 ó   • [        S5      e)Nzfn_name called on baserl   rn   s    r8   r[   ÚContextWrappingVariable.fn_namet   s   € Ü!Ð":Ó;Ð;r:   c                 óÆ  • [        U5      S:X  d   e[        US   [        [        [        [
        45      (       d   e[        US   [        5      (       a  [        US   U 5      $ [        US   [        5      (       a  [        US   U 5      $ [        US   [        5      (       a  [        US   U 5      $ [        US   [
        5      (       a  [        US   U 5      $ [        S5      e)Nr   r   zUnexpected arg type)rg   Ú
isinstancer   r   r   r   r    r!   r#   r"   ÚAssertionError©r6   r;   rQ   r.   s       r8   Úcall_functionÚ%ContextWrappingVariable.call_functionw   sÝ   € ô �4‹y˜A‹~Ðˆ~ÜØ�‰Gä*Ü$Ü"Ü$ð	÷
ñ 
ð 	
ð 
ô �d˜1‘gÔ9×:Ñ:Ü4°T¸!±W¸dÓCÐCÜ˜˜Q™Ô!5×6Ñ6Ü.¨t°A©w¸Ó=Ð=Ü˜˜Q™Ô!3×4Ñ4Ü,¨T°!©W°dÓ;Ð;Ü˜˜Q™Ô!5×6Ñ6Ü.¨t°A©w¸Ó=Ð=ä Ð!6Ó7Ð7r:   c                 ó   • g©NTr2   rn   s    r8   Úsupports_graph_breaksÚ-ContextWrappingVariable.supports_graph_breaks“   ó   € Ør:   c                 ó   • gry   r2   rn   s    r8   Úexit_on_graph_breakÚ+ContextWrappingVariable.exit_on_graph_break–   r|   r:   c                 óN   • U R                   b  U R                  5         S U l         g g rS   )rK   rn   s    r8   rN   ÚContextWrappingVariable.cleanup™   s"   € Ø�?‰?Ñ&Ø�O‰OÔØ"ˆD�Oð 'r:   c                 óT   • U R                   (       d   S5       eU R                  5         g )Nzmultiple exits?)rK   rN   rn   s    r8   rT   Ú&ContextWrappingVariable.cleanup_assertž   s   € Ø��Ð1Ð 1Ó1ˆØ�‰�r:   )rK   r,   r+   rS   ©r]   r%   r/   NrI   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r   Ú_nonvar_fieldsr   r	   r4   rC   r   r@   rV   r^   ri   ÚstrrZ   r[   r   Údictrv   Úboolrz   r~   rN   rT   Ú__static_attributes__Ú__classcell__©r7   s   @r8   r(   r(   <   sD  ø† àØØØð	ð
 
×	'Ñ	'ð€Nð CGñ-Ø ð-Ø2:¸3±-ð-ØRUð-à	÷-ð -ð0Ð/ð 0°Oô 0ð OSñ
1Ø)ð
1Ø/7¸ÀÀcÀÑ8JÑ/Kð
1à	õ
1ð0Ø)ð0Ø2Að0à	ô0ô
ô
Oð@˜Sô @ð<˜ô <ð8à#ð8ð �Ñ'ð8ð �S˜/Ð)Ñ*ð	8ð
 
ô8ð8 tô ð Tô ô#÷
ò r:   r(   c                   óž   ^ • \ rS rSrS\\   S\SS4U 4S jjrS\4S jrS\4S jr	S	S
S\
4S jrS	S
S\
S\
4S jrS\4S jrS\4S jrSrU =r$ )ÚGenericContextWrappingVariableé£   r*   r.   r/   Nc                 óV   >• Uc   e[         TU ]  " SUUR                  S.UD6  Xl        g )N)ÚvalueÚ
value_typer2   )r3   r4   r7   r*   )r6   r*   r.   r7   s      €r8   r4   Ú'GenericContextWrappingVariable.__init__¦   s>   ø€ ØÑ!Ð!Ð!Ü‰Òð 	
ØØ×'Ñ'ñ	
ð ò	
ð
 �r:   c                 ó.   • U R                   R                  $ rS   )r*   r†   rn   s    r8   rZ   Ú*GenericContextWrappingVariable.module_name¯   s   € Ø�{‰{×%Ñ%Ð%r:   c                 ó@   • [        U R                  5      R                  $ rS   )Útyper*   r…   rn   s    r8   r[   Ú&GenericContextWrappingVariable.fn_name²   s   € Ü�D—K‘KÓ ×)Ñ)Ð)r:   r;   r&   c                 óÖ   • U R                   c  S O[        U R                   S5      n[        R                  " U R                  R
                  R                  U US9R                  U/ 0 5      $ )NÚ	__enter__©Úsource)rŸ   r   r   r   r*   r�   Ú__func__rv   )r6   r;   rŸ   s      r8   rC   Ú$GenericContextWrappingVariable.enterµ   sY   € ØŸ™Ñ,‘´*¸T¿[¹[È+Ó2VˆÜ×+Ò+Ø�K‰K×!Ñ!×*Ñ*ØØñ
÷ ‰-˜˜B Ó
#ð		$r:   rQ   c                 ó   • U R                   c  S O[        U R                   S5      n[        R                  " U R                  R
                  R                  U US9R                  U[        U5      0 5      nUR                  R                  5         U$ )NÚ__exit__rž   )rŸ   r   r   r   r*   r£   r    rv   ÚlistÚactive_generic_context_managersÚpop)r6   r;   rQ   rŸ   Úxs        r8   rV   Ú#GenericContextWrappingVariable.exit½   sx   € ð Ÿ™Ñ,‘´*¸T¿[¹[È*Ó2UˆÜ×(Ò(Ø�K‰K× Ñ ×)Ñ)ØØñ
÷ ‰-˜œD ›J¨Ó
+ð	 	
ð
 	×*Ñ*×.Ñ.Ô0Øˆr:   c                 ó   • g©NFr2   rn   s    r8   rz   Ú4GenericContextWrappingVariable.supports_graph_breaksÉ   s   € Ør:   c                 ó   • gry   r2   rn   s    r8   r~   Ú2GenericContextWrappingVariable.exit_on_graph_breakÌ   r|   r:   )r*   )r…   r†   r‡   rˆ   r   r   r4   rŠ   rZ   r[   r   rC   rV   rŒ   rz   r~   r�   rŽ   r�   s   @r8   r‘   r‘   £   s‰   ø† ðÐ5°cÑ:ð Àcð Èd÷ ð&˜Sô &ð*˜ô *ð$Ð/ð $°Oô $ð
Ø)ð
Ø2Að
à	ô
ð tô ð T÷ ò r:   r‘   c                   ód   • \ rS rSrS\S\SS4S jrSSS\4S	 jrSSS
\S\4S jr	S\
S\4S jrSrg)Ú$RepararametrizeModuleContextVariableéÐ   Úctx_manager_vtÚmodr/   Nc                 ó   • Xl         X l        g rS   )Úcm_vtr²   )r6   r±   r²   s      r8   r4   Ú-RepararametrizeModuleContextVariable.__init__Ñ   s   € Ø#Œ
Ø�r:   r;   r&   c                 óL  • [         R                  R                  R                  R	                  U5         U R
                  R                  US5      R                  5       U l        U R
                  R                  US5      R                  5       U l	        UR                  R                  R                  U R                  5        UR                  R                  R                  U R                  5        U R                  R                  U5      sS S S 5        $ ! , (       d  f       g = f)NÚ_parametersÚ_buffers)ÚtorchÚ_dynamor   Úhigher_order_opsÚ dynamo_allow_side_effects_in_hopr²   Úvar_getattrÚrealizeÚold_parameters_varÚold_buffer_varrL   Úside_effectsÚignore_mutations_onr´   rC   rB   s     r8   rC   Ú*RepararametrizeModuleContextVariable.enterÖ   sÉ   € ô �]‰]×$Ñ$×5Ñ5×VÑVØõ
ð '+§h¡h×&:Ñ&:¸2¸}Ó&M×&UÑ&UÓ&WˆDÔ#Ø"&§(¡(×"6Ñ"6°r¸:Ó"F×"NÑ"NÓ"PˆDÔØ�I‰I×"Ñ"×6Ñ6°t×7NÑ7NÔOØ�I‰I×"Ñ"×6Ñ6°t×7JÑ7JÔKØ—:‘:×#Ñ# BÓ'÷
÷ 
÷ 
ús   ´CDÄ
D#rQ   c                 ó˜  • [         R                  R                  R                  R	                  U5         U R
                  R                  " U/UQ76 nUR                  R                  R                  U R                  5        UR                  R                  R                  U R                  5        UsS S S 5        $ ! , (       d  f       g = frS   )r¹   rº   r   r»   r¼   r´   rV   rL   rÁ   Ústop_ignoring_mutations_onrÀ   r¿   )r6   r;   rQ   r§   s       r8   rV   Ú)RepararametrizeModuleContextVariable.exitâ   s�   € ô
 �]‰]×$Ñ$×5Ñ5×VÑVØõ
ð —
‘
—’ Ð* TÒ*ˆAØ�I‰I×"Ñ"×=Ñ=¸d×>QÑ>QÔRØ�I‰I×"Ñ"×=Ñ=¸d×>UÑ>UÔVØ÷
÷ 
÷ 
ús   ´A=B;Â;
C	Únamec                 ó.   • [        U R                  U5      $ rS   )Úgetattrr´   )r6   rÇ   s     r8   Ú__getattr__Ú0RepararametrizeModuleContextVariable.__getattr__ð   s   € ä�t—z‘z 4Ó(Ð(r:   )r´   r²   rÀ   r¿   )r…   r†   r‡   rˆ   r(   r   r4   r   rC   rV   rŠ   rÊ   r�   r2   r:   r8   r¯   r¯   Ð   sa   † ðÐ'>ð ÀSð ÈTô ð

(Ð/ð 
(°Oô 
(ðØ)ðØ2Aðà	ôð) ð )¨÷ )r:   r¯   c            	       ód   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
Srg)Ú)GradInplaceRequiresGradCtxManagerVariableéõ   z#represents torch grad requires gradr;   r&   r+   r.   r/   c                 ó   • [        SUS S.UD6$ ©N©r+   r,   r2   )rÍ   ©r;   r+   r.   s      r8   ÚcreateÚ0GradInplaceRequiresGradCtxManagerVariable.createø   s&   € ô 9ð 
Ø'Øñ
ð ñ
ð 	
r:   c                 ó¤  ^ • T R                   u  n[        R                  R                  R	                  5       T l        [        R                  R                  R                  U5        T R                  UU 4S j5        UR                  R                  S[        R                  R                  R                  U40 5      T l
        [        R                  $ )Nc                  ój   >• [         R                  R                  R                  T R                  5      $ rS   )r¹   Ú_CÚ
_functorchÚ!set_inplace_requires_grad_allowedÚ
prev_statern   s   €r8   rb   ÚAGradInplaceRequiresGradCtxManagerVariable.enter.<locals>.<lambda>  s!   ø€ ”E—H‘H×'Ñ'×IÑIØ—‘ôr:   rv   )r+   r¹   r×   rØ   Ú!get_inplace_requires_grad_allowedrÚ   rÙ   r@   rL   Úcreate_nodeÚproxyr   rA   )r6   r;   Úenableds   `  r8   rC   Ú/GradInplaceRequiresGradCtxManagerVariable.enter  sœ   ø€ Ø×&Ñ&‰	ˆÜŸ(™(×-Ñ-×OÑOÓQˆŒÜ�‰×Ñ×=Ñ=¸gÔFØ×ÑØôô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×Ñ×AÑAØˆJØó	
ˆŒ
ô ×/Ñ/Ð/r:   rQ   c                 óØ   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  $ ©Nrv   )
rN   rL   rÝ   r¹   r×   rØ   rÙ   rÚ   r   rA   rU   s      r8   rV   Ú.GradInplaceRequiresGradCtxManagerVariable.exit  sP   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×Ñ×AÑAØ�_‰_ÐØô		
ô ×/Ñ/Ð/r:   ©rÚ   rÞ   N©r…   r†   r‡   rˆ   Ú__doc__Ústaticmethodr   rÓ   r   rC   rV   r�   r2   r:   r8   rÍ   rÍ   õ   sh   † Ù-àð
Ø#ð
Ø47ð
ØCFð
à	4ó
ó ð
ð0Ð/ð 0°Oô 0ð$
0Ø)ð
0Ø2Að
0à	÷
0r:   rÍ   c            	       ód   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
Srg)Ú0TemporarilyPopInterpreterStackCtxManagerVariablei!  zJrepresents torch._functorch.pyfunction.temporarily_pop_interpreter_stack()r;   r&   r+   r.   r/   c                 ó   • [        SUS S.UD6$ rÐ   )ré   rÒ   s      r8   rÓ   Ú7TemporarilyPopInterpreterStackCtxManagerVariable.create$  s'   € ô @ð 
Ø'Øñ
ð ñ
ð 	
r:   c                 ó4  ^ • [         R                  R                  R                  5       T l        T R                  UU 4S j5        UR                  R                  S[         R                  R                  R                  S0 5      T l        [        R                  $ )Nc                  ój   >• [         R                  R                  R                  T R                  5      $ rS   )r¹   r×   rØ   Úpush_dynamic_layer_stackÚsavedrn   s   €r8   rb   ÚHTemporarilyPopInterpreterStackCtxManagerVariable.enter.<locals>.<lambda>2  s   ø€ ”E—H‘H×'Ñ'×@Ñ@ÀÇÁÔLr:   rv   r2   )r¹   r×   rØ   Úpop_dynamic_layer_stackrï   r@   rL   rÝ   rÞ   r   rA   rB   s   ` r8   rC   Ú6TemporarilyPopInterpreterStackCtxManagerVariable.enter.  ss   ø€ Ü—X‘X×(Ñ(×@Ñ@ÓBˆŒ
Ø×ÑØÜLô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×Ñ×7Ñ7ØØó	
ˆŒ
ô ×/Ñ/Ð/r:   rQ   c                 óØ   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  $ râ   )
rN   rL   rÝ   r¹   r×   rØ   rî   rÞ   r   rA   rU   s      r8   rV   Ú5TemporarilyPopInterpreterStackCtxManagerVariable.exit<  sO   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×Ñ×8Ñ8Ø�Z‰ZˆMØô		
ô ×/Ñ/Ð/r:   )rÞ   rï   Nrå   r2   r:   r8   ré   ré   !  sh   † ÙTàð
Ø#ð
Ø47ð
ØCFð
à	;ó
ó ð
ð0Ð/ð 0°Oô 0ð
0Ø)ð
0Ø2Að
0à	÷
0r:   ré   c                   ó�   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrSrg)Ú%JvpIncrementNestingCtxManagerVariableiI  z5represents torch.func.jvp increment/decrement nestingr;   r&   r.   r/   c                 ó"   • [        SS S S.UD6nU$ rÐ   )rö   ©r;   r.   Úvars      r8   rÓ   Ú,JvpIncrementNestingCtxManagerVariable.createS  s*   € ô 4ð 
ØØñ
ð ñ
ˆð
 ˆ
r:   c                 ój  • [        U R                  5        [        R                  R                  R                  5       nU R                  US 5        UR                  R                  S[        R                  R                  R                  S0 5      U l        [        R                  R                  U5      $ )Nc                  óR   • [         R                  R                  R                  5       $ rS   )r¹   rØ   Úeager_transformsÚexit_jvp_nestingr2   r:   r8   rb   Ú=JvpIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>b  s   € œ×(Ñ(×9Ñ9×JÑJÔLr:   rv   r2   )r   Ú_guards_singletonr¹   rØ   rý   Úenter_jvp_nestingr@   rL   rÝ   r×   Ú_jvp_increment_nestingrÞ   r   ÚConstantVariablerÓ   )r6   r;   Ú	jvp_levels      r8   rC   Ú+JvpIncrementNestingCtxManagerVariable.enter^  s‹   € Ü�d×,Ñ,Ô-Ü×$Ñ$×5Ñ5×GÑGÓIˆ	Ø×ÑØÑLô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×Ñ×6Ñ6ØØó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó;Ð;r:   rQ   c                 óÂ   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  $ ©Nrv   r2   )	rN   rL   rÝ   r¹   r×   rØ   Ú_jvp_decrement_nestingr   rA   rU   s      r8   rV   Ú*JvpIncrementNestingCtxManagerVariable.exitl  sF   € ð 	�‰ŒØ
�	‰	×ÑØœUŸX™X×0Ñ0×GÑGÈÈRô	
ô ×/Ñ/Ð/r:   ©rÞ   N©r…   r†   r‡   rˆ   ræ   r   r   r   ÚFUNCTORCH_STACK_MATCHr   rç   r   rÓ   r   rC   rV   r�   r2   r:   r8   rö   rö   I  sy   † Ù?ñ Ñ/Ó1°<×3UÑ3UÓVÐàðØ#ðØ/2ðà	0óó ðð<Ð/ð <°Oô <ð0Ø)ð0Ø2Að0à	÷0r:   rö   c            	       ód   • \ rS rSrSr\SSS\S\SS 4S j5       rSSS\4S	 jr	SSS
\S\4S jr
Srg)ÚSetFwdGradEnabledContextManageriv  zWrepresents torch.autograd.forward_ad._set_fwd_grad_enabled() to enable/disable fwd gradr;   r&   r+   r.   r/   c                 ó   • [        SUS S.UD6$ rÐ   )r  rÒ   s      r8   rÓ   Ú&SetFwdGradEnabledContextManager.createy  s&   € ô /ð 
Ø'Øñ
ð ñ
ð 	
r:   c                 óh  ^ • T R                   u  n[        R                  R                  5       T l        [        R                  R                  U5        T R                  UU 4S j5        UR                  R                  S[        R                  R
                  U40 5      T l	        [        R                  $ )Nc                  óV   >• [         R                  R                  T R                  5      $ rS   )r¹   r×   Ú_set_fwd_grad_enabledrÚ   rn   s   €r8   rb   Ú7SetFwdGradEnabledContextManager.enter.<locals>.<lambda>‰  s   ø€ ”E—H‘H×2Ñ2°4·?±?ÔCr:   rv   )r+   r¹   r×   Ú_is_fwd_grad_enabledrÚ   r  r@   rL   rÝ   rÞ   r   rA   )r6   r;   Úmodes   `  r8   rC   Ú%SetFwdGradEnabledContextManager.enterƒ  sˆ   ø€ Ø×#Ñ#‰ˆÜŸ(™(×7Ñ7Ó9ˆŒÜ�‰×&Ñ& tÔ,Ø×ÑØÜCô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×*Ñ*ØˆGØó	
ˆŒ
ô ×/Ñ/Ð/r:   rQ   c                 óÄ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  $ râ   )	rN   rL   rÝ   r¹   r×   r  rÚ   r   rA   rU   s      r8   rV   Ú$SetFwdGradEnabledContextManager.exit“  sJ   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×*Ñ*Ø�_‰_ÐØô		
ô ×/Ñ/Ð/r:   rä   Nrå   r2   r:   r8   r  r  v  sh   † Ùaàð
Ø#ð
Ø47ð
ØCFð
à	*ó
ó ð
ð0Ð/ð 0°Oô 0ð 
0Ø)ð
0Ø2Að
0à	÷
0r:   r  c                   ó�   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrSrg)ÚDualLevelContextManageri   z;Represents torch.autograd.forward_ad.dual_level ctx managerr;   r&   r.   r/   c                 ó   • [        SS S S.UD6$ rÐ   )r  )r;   r.   s     r8   rÓ   ÚDualLevelContextManager.create¥  s$   € ä&ð 
ØØñ
ð ñ
ð 	
r:   c                 ó|  ^ • [        T R                  5        [        R                  R                  R                  5       T l        T R                  UU 4S j5        UR                  R                  S[        R                  R                  S0 5      T l        [        R                  R                  T R                  5      $ )Nc                  óf   >• [         R                  R                  R                  T R                  S9$ )N)Úlevel)r¹   ÚautogradÚ
forward_adÚexit_dual_levelÚ	new_levelrn   s   €r8   rb   Ú/DualLevelContextManager.enter.<locals>.<lambda>±  s!   ø€ œŸ™×1Ñ1×AÑAÈÏÉÐAÑWr:   rv   r2   )r   r   r¹   r!  r"  Úenter_dual_levelr$  r@   rL   rÝ   r×   Ú_enter_dual_levelrÞ   r   r  rÓ   rB   s   ` r8   rC   ÚDualLevelContextManager.enter­  sŠ   ø€ Ü�d×,Ñ,Ô-ÜŸ™×2Ñ2×CÑCÓEˆŒØ×ÑØÔWô	
ð —Y‘Y×*Ñ*ØÜ�H‰H×&Ñ&ØØó	
ˆŒ
ô ×)Ñ)×0Ñ0°·±Ó@Ð@r:   rQ   c                 óÄ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  $ râ   )	rN   rL   rÝ   r¹   r×   Ú_exit_dual_levelr$  r   rA   rU   s      r8   rV   ÚDualLevelContextManager.exit»  sJ   € ð 	�‰ŒØ
�	‰	×ÑØÜ�H‰H×%Ñ%Ø�^‰^ÐØô		
ô ×/Ñ/Ð/r:   )r$  rÞ   N)r…   r†   r‡   rˆ   ræ   r   r   r   Ú
DUAL_LEVELr   rç   r   rÓ   r   rC   rV   r�   r2   r:   r8   r  r     sy   † ÙEáÑ/Ó1°<×3JÑ3JÓKÐàð
Ð*ð 
°cð 
Ð>Wó 
ó ð
ðAÐ/ð A°Oô Að
0Ø)ð
0Ø2Að
0à	÷
0r:   r  c                   ó�   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       rSSS\4S jrSSS	\S\4S
 jrSrg)Ú&GradIncrementNestingCtxManagerVariableiÈ  z6represents torch.func.grad increment/decrement nestingr;   r&   r.   r/   c                 ó"   • [        SS S S.UD6nU$ rÐ   )r.  rø   s      r8   rÓ   Ú-GradIncrementNestingCtxManagerVariable.createÒ  s*   € ô 5ð 
ØØñ
ð ñ
ˆð
 ˆ
r:   c                 ój  • [        U R                  5        [        R                  R                  R                  5       nU R                  US 5        UR                  R                  S[        R                  R                  R
                  S0 5      U l	        [        R                  R                  U5      $ )Nc                  óR   • [         R                  R                  R                  5       $ rS   )r¹   r×   rØ   Ú_grad_decrement_nestingr2   r:   r8   rb   Ú>GradIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>à  ó   € ¬%¯(©(×*=Ñ*=×*UÑ*UÔ*Wr:   rv   r2   )r   r   r¹   r×   rØ   Ú_grad_increment_nestingr@   rL   rÝ   rÞ   r   r  rÓ   )r6   r;   Ú
grad_levels      r8   rC   Ú,GradIncrementNestingCtxManagerVariable.enterÝ  s„   € Ü�d×,Ñ,Ô-Ü—X‘X×(Ñ(×@Ñ@ÓBˆ
Ø×Ñ˜bÑ"WÔXØ—Y‘Y×*Ñ*ØÜ�H‰H×Ñ×7Ñ7ØØó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó<Ð<r:   rQ   c                 óÂ   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  $ r  )	rN   rL   rÝ   r¹   r×   rØ   r3  r   rA   rU   s      r8   rV   Ú+GradIncrementNestingCtxManagerVariable.exité  sF   € ð 	�‰ŒØ
�	‰	×ÑØœUŸX™X×0Ñ0×HÑHÈ"Èbô	
ô ×/Ñ/Ð/r:   r
  Nr  r2   r:   r8   r.  r.  È  sy   † Ù@ñ Ñ/Ó1°<×3UÑ3UÓVÐàðØ#ðØ/2ðà	1óó ðð
=Ð/ð 
=°Oô 
=ð0Ø)ð0Ø2Að0à	÷0r:   r.  c                   ó¨   ^ • \ rS rSrSr\SSS\\\4   SS 4S j5       r	  SS\\\4   S	\
\   S
\
\   S\SS4
U 4S jjjrSSS\4S jrSS jrSrU =r$ )ÚCatchWarningsCtxManagerVariableió  z'Delay a call to warnings.catch_warningsr;   r&   Úcatch_warnings_argsr/   c                 ó   • [        US S S9$ )N)r=  r+   r,   )r<  )r;   r=  s     r8   rÓ   Ú&CatchWarningsCtxManagerVariable.createö  s   € ô /Ø 3ØØñ
ð 	
r:   Nr+   r,   r.   c                 ón   >• [        U[        5      (       d   U5       e[        TU ]  " SX#S.UD6  Xl        g rÐ   )rs   r‹   r3   r4   r=  )r6   r=  r+   r,   r.   r7   s        €r8   r4   Ú(CatchWarningsCtxManagerVariable.__init__   sD   ø€ ô Ð-¬t×4Ñ4ÐIÐ6IÓIÐ4Ü‰Òð 	
Ø'ñ	
ØJPò	
ð $7Õ r:   c                 ó:  ^• U R                   R                  5        VVs0 s H  u  p#X#R                  5       _M     nnn[        R                  " S0 UD6mU R                  UU4S j5        [        R                  R                  TR                  5       5      $ s  snnf )Nc                  ó*   >• T R                  S S S 5      $ rS   )r£   )Úctx_vals   €r8   rb   Ú7CatchWarningsCtxManagerVariable.enter.<locals>.<lambda>  s   ø€ ¨'×*:Ñ*:¸4ÀÀtÔ*Lr:   r2   )
r=  ÚitemsÚas_python_constantÚwarningsÚcatch_warningsr@   r   r  rÓ   r�   )r6   r;   ÚkÚvr.   rD  s        @r8   rC   Ú%CatchWarningsCtxManagerVariable.enter  sˆ   ø€ à26×2JÑ2J×2PÑ2PÔ2Rô
Ú2R©$¨!ˆA×#Ñ#Ó%Ò%Ñ2Rð 	ñ 
ô ×)Ò)Ñ3¨FÑ3ˆØ×Ñ˜bÔ"LÔMÜ×)Ñ)×0Ñ0°×1BÑ1BÓ1DÓEÐEùó
s   ŸBc                 ó  ^• TR                  U4S j5        TR                  U R                  R                  5       5        [	        U R                  R                  5       5      nTR                  TR                  [        U5      US5      5        g )Nc                  ó(   >• T R                  SS5      $ )NrH  rI  )Úload_import_from)r]   s   €r8   rb   Ú=CatchWarningsCtxManagerVariable.reconstruct.<locals>.<lambda>  s   ø€ �G×,Ñ,¨ZÐ9IÔJr:   F)	rd   Úforeachr=  ÚvaluesÚtupleÚkeysre   Úcreate_call_function_kwrg   )r6   r]   rT  s    ` r8   ri   Ú+CatchWarningsCtxManagerVariable.reconstruct  sk   ø€ Ø×ÑÜJô	
ð 	�‰˜×0Ñ0×7Ñ7Ó9Ô:Ü�T×-Ñ-×2Ñ2Ó4Ó5ˆØ×Ñ˜g×=Ñ=¼cÀ$»iÈÈuÓUÕVr:   )r=  ©NNr„   )r…   r†   r‡   rˆ   ræ   rç   r‹   rŠ   r   rÓ   r	   r   r4   rC   ri   r�   rŽ   r�   s   @r8   r<  r<  ó  s±   ø† Ù1àð
Ø#ð
Ø:>¸sÀOÐ?SÑ:Tð
à	*ó
ó ð
ð (,Ø(,ñ	7à! # Ð"6Ñ7ð7ð   ‘}ð7ð ! ™ð	7ð
 ð7ð 
÷7ð 7ðFÐ/ð F°Oô F÷Wò Wr:   r<  c            	       óš   • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\\   S\SS 4S j5       rSSS\4S	 jrSSS
\S\4S jrSrg)Ú&VmapIncrementNestingCtxManagerVariablei  z1represents torch VMap increment/decrement nestingr;   r&   r+   r.   r/   c                 ó"   • [        SUS S.UD6nU$ rÐ   )rY  )r;   r+   r.   rù   s       r8   rÓ   Ú-VmapIncrementNestingCtxManagerVariable.create(  s*   € ô 5ð 
Ø'Øñ
ð ñ
ˆð
 ˆ
r:   c                 ó@  • [        U R                  5        U R                  u  p#[        U[        R
                  5      (       a  UR                  nOUR                  5       nUR                  5       n[        R                  R                  R                  XC5      nU R                  US 5        UR                  R                  S[        R                  R                  R                  UR!                  5       U40 5      U l        [        R$                  R'                  U5      $ )Nc                  óR   • [         R                  R                  R                  5       $ rS   )r¹   r×   rØ   Ú_vmap_decrement_nestingr2   r:   r8   rb   Ú>VmapIncrementNestingCtxManagerVariable.enter.<locals>.<lambda>@  r5  r:   rv   )r   r   r+   rs   r   ÚSymNodeVariableÚsym_numrG  r¹   r×   rØ   Ú_vmap_increment_nestingr@   rL   Úcreate_proxyÚpredispatchÚas_proxyrÞ   r  rÓ   )r6   r;   Ú
batch_sizeÚ
randomnessÚbatch_size_valueÚ
vmap_levels         r8   rC   Ú,VmapIncrementNestingCtxManagerVariable.enter5  så   € Ü�d×,Ñ,Ô-Ø!%×!3Ñ!3Ñˆ
Ü�j¤)×";Ñ";×<Ñ<Ø)×1Ñ1Ñà)×<Ñ<Ó>ÐØ×2Ñ2Ó4ˆ
Ü—X‘X×(Ñ(×@Ñ@Øó
ˆ
ð 	×Ñ˜bÑ"WÔXØ—Y‘Y×+Ñ+ØÜ×Ñ×(Ñ(×@Ñ@Ø× Ñ Ó" JÐ/Øó	
ˆŒ
ô ×)Ñ)×0Ñ0°Ó<Ð<r:   rQ   c                 óÂ   • U R                  5         UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  $ r  )	rN   rL   rÝ   r¹   rØ   rd  r^  r   rA   rU   s      r8   rV   Ú+VmapIncrementNestingCtxManagerVariable.exitI  sK   € ð 	�‰ŒØ
�	‰	×ÑØÜ×Ñ×(Ñ(×@Ñ@ØØô		
ô ×/Ñ/Ð/r:   r
  N)r…   r†   r‡   rˆ   ræ   r   r   r   r  r   rç   r   r   r   rÓ   rC   rV   r�   r2   r:   r8   rY  rY    sŠ   † Ù;ñ Ñ/Ó1°<×3UÑ3UÓVÐàð
Ø#ð
à Ñ0ð
ð ð
ð 
2ó	
ó ð
ð=Ð/ð =°Oô =ð(
0Ø)ð
0Ø2Að
0à	÷
0r:   rY  c                   ó@  ^ • \ rS rSrSr\" \" 5       \R                  5      r	\
 SSSS\S\S\SS 4
S	 jj5       r  SS\S\\\      S\S\SS
4
U 4S jjjrSSS\4S jrSSS\S\4S jrSSS\\   S\\\4   S\4U 4S jjrSSS\SS
4S jrS\4S jrS\4S jrSrU =r$ )ÚGradModeVariableiV  z6represents torch.{no_grad,enable_grad,set_grad_mode}()r;   r&   Útarget_valueÚinitializedr.   r/   c                 ó�   • [        SU/[        R                  " 5       /S.UD6nU(       a  UR                  XR                  5        U$ rÐ   )rn  r¹   Úis_grad_enabledr>   r+   )r;   ro  rp  r.   rù   s        r8   rÓ   ÚGradModeVariable.create[  sM   € ô ð 
Ø'˜.Ü!×1Ò1Ó3Ð4ñ
ð ñ
ˆö
 Ø�N‰N˜2×0Ñ0Ô1Øˆ
r:   Nr+   r,   c                 óT   >• [         TU ]  " SXS.UD6  [        U R                  5        g rÐ   )r3   r4   r   r   )r6   r+   r,   rp  r.   r7   s        €r8   r4   ÚGradModeVariable.__init__k  s2   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ô 	�d×,Ñ,Õ-r:   c                 óX   • U R                  XR                  5        [        R                  $ rS   ©r>   r+   r   rA   rB   s     r8   rC   ÚGradModeVariable.enterw  ó    € Ø�‰˜×.Ñ.Ô/Ü×/Ñ/Ð/r:   rQ   c                 óX   • U R                  XR                  5        [        R                  $ rS   ©r>   r,   r   rA   rU   s      r8   rV   ÚGradModeVariable.exit{  ó"   € ð 	�‰˜×/Ñ/Ô0Ü×/Ñ/Ð/r:   c                 óZ   >• U R                  XR                  5        [        TU ]  XU5      $ rS   ©r>   r,   r3   rv   ©r6   r;   rQ   r.   r7   s       €r8   rv   ÚGradModeVariable.call_function�  s)   ø€ ð 	�‰˜×/Ñ/Ô0Ü‰wÑ$ R¨vÓ6Ð6r:   rR  c                 ó  • [        U5      S:X  d   eUS   n[        R                  " 5       U:w  aW  UR                  R	                  S[        R
                  R                  U40 5        [        R
                  R                  U5        g g )Nr   r   rv   )rg   r¹   rr  rL   rÝ   r×   Ú_set_grad_enabled©r6   r;   rR  r”   s       r8   r>   ÚGradModeVariable._call_funcŠ  sn   € Ü�6‹{˜aÓÐÐØ�q‘	ˆä× Ò Ó" eÓ+Ø�I‰I×!Ñ!Ø¤§¡×!;Ñ!;¸e¸XÀrôô �H‰H×&Ñ& uÕ-ð	 ,r:   c                 ó   • g©Nr¹   r2   rn   s    r8   rZ   ÚGradModeVariable.module_name”  ó   € Ør:   c                 ó   • g)NÚset_grad_enabledr2   rn   s    r8   r[   ÚGradModeVariable.fn_name—  s   € Ø!r:   r2   ©Fry   )r…   r†   r‡   rˆ   ræ   r   r   r   Ú	GRAD_MODEr   rç   r   rŒ   rÓ   r	   r   r4   r   rC   rV   r‹   rŠ   rv   r>   rZ   r[   r�   rŽ   r�   s   @r8   rn  rn  V  sP  ø† Ù@áÑ/Ó1°<×3IÑ3IÓJÐàð "ñØ#ðàðð ðð ð	ð
 
ôó ðð$ 48Ø ñ	
.àð
.ð ! ¨$¡Ñ0ð
.ð ð	
.ð
 ð
.ð 
÷
.ð 
.ð0Ð/ð 0°Oô 0ð0Ø)ð0Ø2Að0à	ô0ð7à#ð7ð �Ñ'ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ð.Ð4ð .¸cð .Àdô .ð˜Sô ð"˜÷ "ò "r:   rn  c            	       ó°   ^ • \ rS rSr\SSS\S\SS 4S j5       r SS	\S
\\   S\SS4U 4S jjjr	SSS\
S\
4S jrSSS\
4S jrS\4S jrS\4S jrSrU =r$ )ÚInferenceModeVariablei›  r;   r&   ro  r.   r/   c                 óJ   • [        U/4S[        R                  " 5       0UD6nU$ )Nr,   )r�  r¹   Úis_inference_mode_enabled©r;   ro  r.   rù   s       r8   rÓ   ÚInferenceModeVariable.createœ  s3   € ô $ØˆNñ
Ü+0×+JÒ+JÓ+Lð
ØPVñ
ˆð ˆ
r:   Nr+   r,   c                 óZ   >• Uc  [         R                  " 5       n[        TU ]  " SXS.UD6  g rÐ   )r¹   r’  r3   r4   r5   s       €r8   r4   ÚInferenceModeVariable.__init__¥  s6   ø€ ð Ñ!ä"×<Ò<Ó>ˆNÜ‰Òð 	
Ø'ñ	
ØJPó	
r:   rQ   c                 óØ   • U R                  5         UR                  R                  S[        R                  R
                  R                  U R                  40 5        [        R                  $ râ   )
rT   rL   rÝ   r¹   r!  Ú	grad_modeÚ_exit_inference_moderÞ   r   rA   rU   s      r8   rV   ÚInferenceModeVariable.exit²  sR   € ð 	×ÑÔØ
�	‰	×ÑØÜ�N‰N×$Ñ$×9Ñ9Ø�Z‰ZˆMØô		
ô ×/Ñ/Ð/r:   c                 óP  ^^^• Sm[         R                  R                  R                  (       aK  U R                  S   (       a7  Sm[         R
                  " 5       m[         R                  R                  S5        O1[         R                  R                  R                  " U R                  6 mSUUU4S jjnU R                  X5        UR                  R                  S[         R                  R                  R                  / U R                  Q70 5      U l        [        R                   $ )NFr   Tc                  ó¦   >• T(       a   [         R                  R                  T5        g [         R                  R                  R                  T 5        g rS   )r¹   r×   rƒ  r!  r˜  r™  )ÚctxÚ disabled_inference_mode_forciblyÚpriors   €€€r8   Úcleanup_hookÚ1InferenceModeVariable.enter.<locals>.cleanup_hookÍ  s0   ø€ Þ/Ü—‘×*Ñ*¨5Õ1ä—‘×(Ñ(×=Ñ=¸cÕBr:   rv   rI   )r¹   rº   r   Ú"fake_tensor_disable_inference_moder+   rr  r×   rƒ  r!  r˜  Ú_enter_inference_moder@   rL   rÝ   rÞ   r   rA   )r6   r;   r   r�  rž  rŸ  s      @@@r8   rC   ÚInferenceModeVariable.enter¾  sÙ   ú€ Ø+0Ð(ä�M‰M× Ñ ×C×CØ×"Ñ" 1×%ð
 04Ð,Ü×)Ò)Ó+ˆEÜ�H‰H×&Ñ& uÕ-ä—.‘.×*Ñ*×@Ò@À$×BTÑBTÐUˆC÷	Cñ 	Cð 	×Ñ˜bÔ/Ø—Y‘Y×*Ñ*ØÜ�N‰N×$Ñ$×:Ñ:Ø"ˆd× Ñ Ñ"Øó	
ˆŒ
ô ×/Ñ/Ð/r:   c                 ó   • gr‡  r2   rn   s    r8   rZ   Ú!InferenceModeVariable.module_nameÜ  r‰  r:   c                 ó   • g)NÚinference_moder2   rn   s    r8   r[   ÚInferenceModeVariable.fn_nameß  s   € Ør:   r
  rS   )r…   r†   r‡   rˆ   rç   r   rÓ   r	   rŒ   r4   r   rV   rC   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   r�  r�  ›  s¼   ø† ØðØ#ðØ36ðØBEðà	 óó ðð *.ñ
àð
ð ! ™ð
ð ð	
ð
 
÷
ð 
ð
0Ø)ð
0Ø2Að
0à	ô
0ð0Ð/ð 0°Oô 0ð<˜Sô ð ˜÷  ò  r:   r�  c            	       ó´   ^ • \ rS rSrSr\SSS\S\SS 4S j5       r SS
\S\\   S\SS	4U 4S jjjr	SSS\
S\
4S jrSSS\
4S jrS\4S jrS\4S jrSrU =r$ )ÚCUDADeviceVariableiã  zrepresents torch.cuda.devicer;   r&   Údevicer.   r/   c                 ó\   • [        S[        R                  R                  USS9/S S.UD6nU$ )NT)ÚoptionalrÑ   r2   )r«  r¹   ÚcudaÚ_get_device_index)r;   r¬  r.   rù   s       r8   rÓ   ÚCUDADeviceVariable.createæ  sA   € ô !ð 
Ü Ÿ:™:×7Ñ7¸ÈÐ7ÐNÐOØñ
ð ñ
ˆð
 ˆ
r:   Nr+   r,   c                 ó*   >• [         TU ]  " SXS.UD6  g rÐ   ©r3   r4   r5   s       €r8   r4   ÚCUDADeviceVariable.__init__ñ  ó"   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPó	
r:   rQ   c                 óâ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  R                  S5      $ )Nrv   F)
rT   rL   rÝ   r¹   r¯  Ú_maybe_exchange_devicerÞ   r   r  rÓ   rU   s      r8   rV   ÚCUDADeviceVariable.exitû  sW   € ð 	×ÑÔØ
�	‰	×ÑØÜ�J‰J×-Ñ-Ø�Z‰ZˆMØô		
ô ×)Ñ)×0Ñ0°Ó7Ð7r:   c                 ó.  ^• [         R                  R                  " U R                  6 mU R	                  UU4S j5        UR
                  R                  S[         R                  R                  / U R                  Q70 5      U l        [        R                  $ )Nc                  óB   >• [         R                  R                  T 5      $ rS   )r¹   r¯  r·  )Úprev_idxs   €r8   rb   Ú*CUDADeviceVariable.enter.<locals>.<lambda>	  s   ø€ ¬%¯*©*×*KÑ*KÈHÔ*Ur:   rv   )
r¹   r¯  Ú_exchange_devicer+   r@   rL   rÝ   rÞ   r   rA   )r6   r;   r»  s     @r8   rC   ÚCUDADeviceVariable.enter  ss   ø€ Ü—:‘:×.Ò.°×0BÑ0BÐCˆØ×Ñ˜bÔ"UÔVØ—Y‘Y×*Ñ*ØÜ�J‰J×'Ñ'Ø"ˆd× Ñ Ñ"Øó	
ˆŒ
ô ×/Ñ/Ð/r:   c                 ó   • g)Nz
torch.cudar2   rn   s    r8   rZ   ÚCUDADeviceVariable.module_name  ó   € Ør:   c                 ó   • g)Nr¬  r2   rn   s    r8   r[   ÚCUDADeviceVariable.fn_name  s   € Ør:   r
  rS   )r…   r†   r‡   rˆ   ræ   rç   r   rÓ   r	   r4   r   rV   rC   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   r«  r«  ã  s¿   ø† Ù&àðØ#ðØ-0ðØ<?ðà	óó ðð )-ñ
àð
ð ! ™ð
ð ð	
ð
 
÷
ð 
ð
8Ø)ð
8Ø2Að
8à	ô
8ð	0Ð/ð 	0°Oô 	0ð˜Sô ð˜÷ ò r:   r«  c                   ó  ^ • \ rS rSrSr\" \" 5       \R                  5      r	\
SSS\SS 4S j5       r  SSSS	\S
\\   S\S\SS4U 4S jjjr SSSS\S\4   S-  SS4S jjrSSS\SS4S jrS\4S jrS\4S jrSrU =r$ )ÚTorchFunctionDisableVariablei  z>represents whether torch function overrides are enabled or notr;   r&   r.   r/   c                 ó$   • [        U 4/ / S.UD6nU$ )NrÑ   )rÅ  rø   s      r8   rÓ   Ú#TorchFunctionDisableVariable.create  s-   € ô +Øð
àØñ
ð ñ	
ˆð ˆ
r:   Nr+   r,   Úonly_subclassc                 ó  >• [        U5      S:X  d   eUb  [        U5      S:X  d   eX@l        UR                  R                  U l        UR                  R
                  U l        [        TU ]   " SX#S.UD6  [        U R                  5        g )Nr   rÑ   r2   )rg   rÈ  Úsymbolic_torch_function_stateÚtorch_function_subclass_enabledÚ'initial_torch_function_subclass_enabledÚtorch_function_mode_enabledÚ#initial_torch_function_mode_enabledr3   r4   r   r   )r6   r;   r+   r,   rÈ  r.   r7   s         €r8   r4   Ú%TorchFunctionDisableVariable.__init__*  s•   ø€ ô �=Ó! QÓ&Ð&Ð&ØÑ)¬c°.Ó.AÀQÓ.FÐFÐFØ*Ôà×,Ñ,×LÑLð 	Ô4ð ×,Ñ,×HÑHð 	Ô0ô 	‰Òð 	
Ø'ñ	
ØJPò	
ô 	�d×,Ñ,Õ-r:   rE   .c                 óx   ^ ^• Uc	  SU U4S jjnUT l         TR                  R                  T R                  5        g )Nc                  ó–   >• T R                   TR                  l        T R                  (       d  T R                   TR                  l        g g rS   )rÌ  rÊ  rË  rÈ  rÍ  rB   s   €€r8   rE   Ú9TorchFunctionDisableVariable.set_cleanup_hook.<locals>.fnH  sA   ø€ à×@Ñ@ð ×0Ñ0ÔPð ×)×)à×DÑDð ×4Ñ4ÕPð *r:   rI   rJ   rO   s   `` r8   r@   Ú-TorchFunctionDisableVariable.set_cleanup_hookA  s3   ù€ ð
 ‰:÷ð ð ˆŒØ
�	‰	×"Ñ" 4§<¡<Õ0r:   rR  c                 óŽ   • [        U5      S:X  d   eSUR                  l        U R                  (       d  SUR                  l        g g )Nr   F)rg   rÊ  rË  rÈ  rÍ  ©r6   r;   rR  s      r8   r>   Ú'TorchFunctionDisableVariable._call_funcT  s>   € Ü�6‹{˜aÓÐÐØKPˆ×(Ñ(ÔHØ×!×!ØKPˆB×,Ñ,ÕHð "r:   c                 ó   • g)Nztorch._Cr2   rn   s    r8   rZ   Ú(TorchFunctionDisableVariable.module_nameZ  ó   € Ør:   c                 ó(   • U R                   (       a  gg)NÚDisableTorchFunctionSubclassÚDisableTorchFunction)rÈ  rn   s    r8   r[   Ú$TorchFunctionDisableVariable.fn_name]  s   € Ø××Ø1Ø%r:   )rK   rÎ  rÌ  rÈ  ry   rS   )r…   r†   r‡   rˆ   ræ   r   r   r   ÚTORCH_FUNCTION_STATEr   rç   r   rÓ   r   r	   rŒ   r4   r   r@   r>   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   rÅ  rÅ    s  ø† ÙHáÑ/Ó1°<×3TÑ3TÓUÐàð	Ø#ð	Ø/2ð	à	'ó	ó ð	ð +/Ø"ñ.à#ð.ð ð.ð ! ™ð	.ð
 ð.ð ð.ð 
÷.ð .ð4 )-ñ1à#ð1ð �S˜#�XÑ Ñ%ð1ð 
õ	1ð&QÐ4ð Q¸eð QÈô Qð˜Sô ð&˜÷ &ò &r:   rÅ  c            	       óÞ   ^ • \ rS rSrSr\SSS\\   S\SS 4S j5       r	 SS
\
\\      S\\
\\         S\SS	4U 4S jjjrSSS\4S jrSSS\
\\      SS	4S jrS\4S jrS\4S jrSrU =r$ )Ú!DisabledSavedTensorsHooksVariableic  z;represents torch.autograd.graph.disable_saved_tensors_hook.r;   r&   ro  r.   r/   c                 ó¸   • [        SU/[        R                  R                  R	                  5       /S.UD6nUR                  X/5        UR                  U 5        U$ rÐ   )rà  r¹   r×   Ú	_autogradÚ/_saved_tensors_hooks_get_disabled_error_messager>   r@   r“  s       r8   rÓ   Ú(DisabledSavedTensorsHooksVariable.createf  s`   € ô 0ð 
Ø'˜.ä—‘×"Ñ"×RÑRÓTðñ
ð
 ñ
ˆð 	�‰�r˜>Ô*Ø×Ñ˜RÔ Øˆ
r:   Nr+   r,   c                 ó*   >• [         TU ]  " SXS.UD6  g rÐ   r³  r5   s       €r8   r4   Ú*DisabledSavedTensorsHooksVariable.__init__u  rµ  r:   c                 ó"   • [         R                  $ rS   ©r   rA   rB   s     r8   rC   Ú'DisabledSavedTensorsHooksVariable.enter  ó   € Ü×/Ñ/Ð/r:   rR  c                 óÜ  • [        U5      S:X  d   eUS   nUbk  UR                  R                  S[        R                  R
                  R                  U40 5        [        R                  R
                  R                  U5        g UR                  R                  S[        R                  R
                  R                  S0 5        [        R                  R
                  R                  5         g )Nr   r   rv   r2   )rg   rL   rÝ   r¹   r×   râ  Ú_saved_tensors_hooks_disableÚ_saved_tensors_hooks_enabler„  s       r8   r>   Ú,DisabledSavedTensorsHooksVariable._call_func‚  s¸   € ô �6‹{˜aÓÐÐØ�q‘	ˆØÑð �I‰I×!Ñ!ØÜ—‘×"Ñ"×?Ñ?Ø�Øô	ô �H‰H×Ñ×;Ñ;¸EÕBð �I‰I×!Ñ!Ø¤§¡×!3Ñ!3×!OÑ!OÐQSÐUWôô �H‰H×Ñ×:Ñ:Õ<r:   c                 ó   • g)Nztorch.autograd.graphr2   rn   s    r8   rZ   Ú-DisabledSavedTensorsHooksVariable.module_name™  ó   € Ø%r:   c                 ó   • g)NÚdisable_saved_tensors_hooksr2   rn   s    r8   r[   Ú)DisabledSavedTensorsHooksVariable.fn_nameœ  s   € Ø,r:   r2   rS   )r…   r†   r‡   rˆ   ræ   rç   r	   rŠ   r   rÓ   r   r4   r   rC   r>   rZ   r[   r�   rŽ   r�   s   @r8   rà  rà  c  sà   ø† ÙEàðØ#ðØ3;¸C±=ðØLOðà	,óó ðð" =Añ
à ¨¡Ñ.ð
ð ! ¨(°3©-Ñ!8Ñ9ð
ð ð	
ð
 
÷
ð 
ð0Ð/ð 0°Oô 0ð=Ø)ð=Ø3;¸HÀS¹MÑ3Jð=à	ô=ð.&˜Sô &ð-˜÷ -ò -r:   rà  c            	       ó  ^ • \ rS rSr\S\R                  R                  R                  S\	\
   S\\\
4   SS 4S j5       r SS\	\
   S	\\
   S\
SS4U 4S
 jjjrSSS\S\4S jrSSS\4S jrS\4S jrS\4S jrSrU =r$ )ÚAutocastModeVariablei   ÚfuncrQ   r.   r/   c                 óN  • U [         R                  R                  R                  [         R                  R                  R                  [         R
                  R                  R                  4;   d   e[        R                  " U 5      R                  " U0 UD6nUR                  5         / nUR                  5         S H×  nUS:X  ax  U [         R                  R                  R                  [         R
                  R                  R                  4;   a,  U [         R                  R                  R                  L a  SOSnOUR                  U   n[        U[        5      (       a!  UR                  UR                  5       5        MÆ  UR                  U5        MÙ     [!        U4SS 0UD6nU$ )N)Údevice_typeÚdtyperß   Úcache_enabledrù  r¯  Úcpur,   )r¹   ÚampÚautocast_modeÚautocastr¯  rü  ÚinspectÚ	signatureÚbindÚapply_defaultsÚclearÚ	argumentsrs   r   ÚappendrG  rö  )r÷  rQ   r.   Ú
bound_argsr+   ÚkeyÚargrù   s           r8   rÓ   ÚAutocastModeVariable.create¡  sH  € ð Ü�I‰I×#Ñ#×,Ñ,Ü�J‰J�N‰N×#Ñ#Ü�I‰I�M‰M×"Ñ"ð
ó 
ð 	
ð 
ô ×&Ò& tÓ,×1Ò1°4ÐB¸6ÑBˆ
Ø×!Ñ!Ô#ØˆØ�‰ŒãGˆCØ�mÓ#¨Ü—
‘
—‘×'Ñ'Ü—	‘	—‘×&Ñ&ð1ó )ð
 !%¬¯
©
¯©×(?Ñ(?Ò ?‘fÀU‘à ×*Ñ*¨3Ñ/�Ü˜#œ×/Ñ/Ø×$Ñ$ S×%;Ñ%;Ó%=Ö>à×$Ñ$ SÖ)ñ Hô # =ÑPÀÐPÈÑPˆØˆ
r:   Nr+   r,   c                 ó*   >• [         TU ]  " SXS.UD6  g rÐ   r³  r5   s       €r8   r4   ÚAutocastModeVariable.__init__Æ  rµ  r:   r;   r&   c                 óÄ   • U R                  5         UR                  R                  S[        R                  R
                  U R                  40 5        [        R                  $ râ   )	rT   rL   rÝ   r¹   rý  Ú_exit_autocastrÞ   r   rA   rU   s      r8   rV   ÚAutocastModeVariable.exitÐ  sI   € ð 	×ÑÔØ
�	‰	×ÑØœUŸY™Y×5Ñ5¸¿
¹
°}Àbô	
ô ×/Ñ/Ð/r:   c                 ó.  ^• [         R                  R                  " U R                  6 mU R	                  UU4S j5        UR
                  R                  S[         R                  R                  / U R                  Q70 5      U l        [        R                  $ )Nc                  óB   >• [         R                  R                  T 5      $ rS   )r¹   rý  r  ©r�  s   €r8   rb   Ú,AutocastModeVariable.enter.<locals>.<lambda>Û  s   ø€ ¬%¯)©)×*BÑ*BÀ3Ô*Gr:   rv   )
r¹   rý  Ú_enter_autocastr+   r@   rL   rÝ   rÞ   r   rA   )r6   r;   r�  s     @r8   rC   ÚAutocastModeVariable.enterÙ  sr   ø€ Ü�i‰i×'Ò'¨×);Ñ);Ð<ˆØ×Ñ˜bÔ"GÔHØ—Y‘Y×*Ñ*ØœUŸY™Y×6Ñ6Ð8N¸$×:LÑ:LÑ8NÐPRó
ˆŒ
ô ×/Ñ/Ð/r:   c                 ó   • g)Nztorch.amp.autocast_moder2   rn   s    r8   rZ   Ú AutocastModeVariable.module_nameá  s   € Ø(r:   c                 ó   • g)Nrÿ  r2   rn   s    r8   r[   ÚAutocastModeVariable.fn_nameä  rÙ  r:   r
  rS   )r…   r†   r‡   rˆ   rç   r¹   rý  rþ  rÿ  r   r   r‹   rŠ   rÓ   r	   r4   r   rV   rC   rZ   r[   r�   rŽ   r�   s   @r8   rö  rö     sá   ø† Øð"Ø�i‰i×%Ñ%×.Ñ.ð"à�s‰mð"ð �S˜#�X‘ð"ð 
 ó	"ó ð"ðN )-ñ
à ‘}ð
ð ! ™ð
ð ð	
ð
 
÷
ð 
ð0Ø)ð0Ø2Að0à	ô0ð0Ð/ð 0°Oô 0ð)˜Sô )ð˜÷ ò r:   rö  c                   óŠ   ^ • \ rS rSrSrSS\\   S\SS4U 4S jjjrSS	S\4S
 jr	SS	S\S\4S jr
S\4S jrS\4S jrSrU =r$ )ÚNullContextVariableiè  z6
This class represents Python contextlib.nullcontext.
Nr+   r.   r/   c                 ó*   >• [         TU ]  " SSU0UD6  g ©Nr+   r2   r³  )r6   r+   r.   r7   s      €r8   r4   ÚNullContextVariable.__init__í  s   ø€ Ü‰ÒÑ? }Ð?¸Ó?r:   r;   r&   c                 ó`   • [         R                  nU R                  (       a  U R                  $ U$ rS   )r   rA   r+   )r6   r;   Únones      r8   rC   ÚNullContextVariable.enterð  s&   € Ü×/Ñ/ˆØ%)×%7×%7ˆt×!Ñ!ÐA¸TÐAr:   rQ   c                 ó"   • [         R                  $ rS   rè  rU   s      r8   rV   ÚNullContextVariable.exitô  ó   € ô ×/Ñ/Ð/r:   c                 ó   • g©NÚ
contextlibr2   rn   s    r8   rZ   ÚNullContextVariable.module_nameù  rÁ  r:   c                 ó   • g©NÚnullcontextr2   rn   s    r8   r[   ÚNullContextVariable.fn_nameü  ó   € Ør:   r2   rS   )r…   r†   r‡   rˆ   ræ   r	   r   r4   r   rC   rV   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   r  r  è  s�   ø† ññ@ h¨s¡mð @Àcð @Èd÷ @ð @ðBÐ/ð B°Oô Bð0Ø)ð0Ø2Að0à	ô0ð
˜Sô ð˜÷ ò r:   r  c                   ó†   ^ • \ rS rSrSrS\SS4U 4S jjrSSS\4S	 jrSSS
\S\4S jr	S\
4S jrS\
4S jrSS jrSrU =r$ )ÚProfilerContextVariablei   af  
This class represents a set of torch profiler context objects, where Dynamo
ignores all the side-effects in the __init__, __enter__ and __exit__ methods
by treating the object mostly as a `contextlib.nullcontext`, except for edge
cases like the `__enter__` method which returns the object itself rather
than `None`, per implementation of the torch objects.
r.   r/   Nc                 ó*   >• [         TU ]  " SSS 0UD6  g r  r³  )r6   r.   r7   s     €r8   r4   Ú ProfilerContextVariable.__init__	  s   ø€ Ü‰ÒÑ6 tÐ6¨vÓ6r:   r;   r&   c                 ó   • U $ rS   r2   rB   s     r8   rC   ÚProfilerContextVariable.enter  s   € Øˆr:   rQ   c                 ó"   • [         R                  $ rS   rè  rU   s      r8   rV   ÚProfilerContextVariable.exit  r$  r:   c                 ó   • gr&  r2   rn   s    r8   rZ   Ú#ProfilerContextVariable.module_name  rÁ  r:   c                 ó   • gr*  r2   rn   s    r8   r[   ÚProfilerContextVariable.fn_name  r-  r:   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )Nz2torch.profiler object escaped from compiled regionzXDynamo doesn't support compiling a region that returns a torch.profiler context manager.©Úgb_typeÚcontextÚexplanationÚhints©r   rŠ   r   ÚSUPPORTABLEr\   s     r8   ri   Ú#ProfilerContextVariable.reconstruct  s*   € ÜØHÜ˜“IØrðÜ"×.Ñ.ðó		
r:   r2   r„   )r…   r†   r‡   rˆ   ræ   r   r4   r   rC   rV   rŠ   rZ   r[   ri   r�   rŽ   r�   s   @r8   r/  r/     sn   ø† ñð7 ð 7¨÷ 7ðÐ/ð °Oô ð0Ø)ð0Ø2Að0à	ô0ð
˜Sô ð˜ô ÷
ò 
r:   r/  c                   óî   ^ • \ rS rSrSrS1\R                  kr\S\S\	\
   SSS\S	S 4
S
 j5       r  SS\S\\   S\S	S4U 4S jjjrSSS	\
4S jrSSS\
S	\
4S jrS	\4S jrS	\4S jrSU 4S jjrSrU =r$ )Ú%ProfilerRecordFunctionContextVariablei%  aK  
This class represents torch profiler context objects.

For record_function: emits torch.ops.profiler._record_function_enter_new
to the graph on enter, and torch.ops.profiler._record_function_exit on exit.
But if emit_profiler_ops=False, behaves like nullcontext.

For profile: behaves like nullcontext, ignoring all side-effects.
Úemit_profiler_opsr÷  Úrecord_argsÚrecord_kwargszdict[str, VariableTracker]r.   r/   c                 óŽ  • S n[         R                  (       a�  U(       a  US   R                  5       O3UR                  S[        R
                  " S5      5      R                  5       nS n[        U5      S:”  a  US   R                  5       nOSU;   a  US   R                  5       nXV/nO[        [        SU 5        [        SUS S.UD6$ )	Nr   rÇ   Úunknownr   rQ   z+Profiler record function %s will be ignoredrÑ   r2   )
r   Ú capture_profiler_record_functionrG  Úgetr   r  rg   r   ÚlogrD  )r÷  rF  rG  r.   r+   rÇ   Úrecord_args_consts          r8   rÓ   Ú,ProfilerRecordFunctionContextVariable.create5  sÍ   € ð ˆÜ×2×2ö
 ð ˜A‘×1Ñ1Ô3à—Z‘ZØœI×6Ò6°yÓAóç$Ñ$Ó&ð ð !%ÐÜ�;Ó !Ó#Ø$/°¡N×$EÑ$EÓ$GÑ!Ø˜6Ó!Ø$*¨6¡N×$EÑ$EÓ$GÐ!Ø!Ð5‰MäœÐKÈTÔRÜ4ð 
Ø'Øñ
ð ñ
ð 	
r:   Nr+   r,   c                 ó*   >• [         TU ]  " SXS.UD6  g rÐ   r³  r5   s       €r8   r4   Ú.ProfilerRecordFunctionContextVariable.__init__U  rµ  r:   r;   r&   c                 óØ   • [         R                  (       aT  U R                  u  p#UR                  R	                  S[
        R                  R                  R                  X#40 5      U l	        U $ râ   )
r   rJ  r+   rL   rÝ   r¹   ÚopsÚprofilerÚ_record_function_enter_newrÞ   )r6   r;   rÇ   rQ   s       r8   rC   Ú+ProfilerRecordFunctionContextVariable.enter_  sS   € Ü×2×2Ø×+Ñ+‰JˆDàŸ™×.Ñ.ØÜ—	‘	×"Ñ"×=Ñ=Ø�Øó	ˆDŒJð ˆr:   rQ   c                 óö   • [         R                  (       aU  UR                  R                  S[        R
                  R                  R                  R                  U R                  40 5        [        R                  $ râ   )r   rJ  rL   rÝ   r¹   rR  rS  Ú_record_function_exitÚ_RecordFunctionrÞ   r   rA   rU   s      r8   rV   Ú*ProfilerRecordFunctionContextVariable.exitk  sU   € ô ×2×2à�I‰I×!Ñ!ØÜ—	‘	×"Ñ"×8Ñ8×HÑHØ—‘�Øô	ô ×/Ñ/Ð/r:   c                 ó4   • [         R                  (       a  S$ S$ )Nztorch.autograd.profilerr'  ©r   rJ  rn   s    r8   rZ   Ú1ProfilerRecordFunctionContextVariable.module_namex  s!   € ô ×6×6ð &ð	
ð ð	
r:   c                 ó4   • [         R                  (       a  S$ S$ )NÚrecord_functionr+  r[  rn   s    r8   r[   Ú-ProfilerRecordFunctionContextVariable.fn_name  s!   € ô ×6×6ð ð	
ð ð	
r:   c                 óš   >• [         R                  (       a&  [        S[        U 5      S/ [        R
                  QS9  g [        TU ]  U5        g )Nz,record_function escaped from compiled regionzADynamo doesn't support graph break inside record_function region.r;  )r   rJ  r   rŠ   r   rA  r3   r^   )r6   r]   r7   s     €r8   r^   Ú6ProfilerRecordFunctionContextVariable.reconstruct_type†  sE   ø€ ô ×2×2ÜØFÜ˜D›	Ø_ðÜ&×2Ñ2ðó	ô ‰GÑ$ WÕ-r:   r
  rW  r„   )r…   r†   r‡   rˆ   ræ   r(   r‰   rç   r   r   r   rÓ   r	   r4   rC   rV   rŠ   rZ   r[   r^   r�   rŽ   r�   s   @r8   rD  rD  %  sù   ø† ñð 	ðà	 ×	/Ñ	/ð€Nð
 ð
Øð
à˜oÑ.ð
ð 4ð
ð ð	
ð
 
1ó
ó ð
ðB "Ø(,ñ
àð
ð ! ™ð
ð ð	
ð
 
÷
ð 
ð
Ð/ð 
°Oô 
ð0Ø)ð0Ø2Að0à	ô0ð
˜Sô 
ð
˜ô 
÷.õ .r:   rD  c                   ó®   ^ • \ rS rSrSr\SSS\SS 4S j5       r\SSS\4S j5       rS\S	\S
\	SS4U 4S jjr
SSS\4S jrSSS\S\4S jrSS jrSrU =r$ )ÚPreserveVersionContextVariablei˜  z7
Wraps torch.autograd._unsafe_preserve_version_counter
r;   r&   Útensorsr/   c           	      óº  • UR                  5       (       aO  [        R                  " U4 Vs/ s H  o"R                  U S5      PM     sn5      n[        R                  " U/5      nOc[	        U[        R                  5      (       d   e[        R                  " UR
                   Vs/ s H  o"R                  U S5      PM     sn5      nUn[        XC5      $ s  snf s  snf )NÚ_version)Ú	is_tensorr   ÚTupleVariabler½   rs   rF  rc  )r;   rd  r§   ÚversionsÚtensors_tuples        r8   Ú_create_lambda_from_tensorsÚ:PreserveVersionContextVariable._create_lambda_from_tensors�  sº   € ð
 ×Ñ×ÑÜ ×.Ò.Ø9@¹	ÓBº	°1—‘˜r :Ö.¹	ÑBóˆHô &×3Ò3°W°IÓ>‰Mä˜g¤y×'>Ñ'>×?Ñ?Ð?Ð?Ü ×.Ò.Ø8?¿ºÓFº°1—‘˜r :Ö.¹ÑFóˆHð $ˆMÜ-¨mÓFÐFùò Cùò Gs   «CÂ$Cc                 ó8   ^ • [         R                  " U 4S j5      $ )Nc                 ó0   >• [         R                  TU 5      $ rS   )rc  rk  )rd  r;   s    €r8   rb   Ú<PreserveVersionContextVariable.constructor.<locals>.<lambda>²  s   ø€ Ô:×VÑVØ�Gôr:   )r   ÚLambdaVariable)r;   s   `r8   ÚconstructorÚ*PreserveVersionContextVariable.constructor¯  s   ø€ ä×'Ò'ôó
ð 	
r:   Úprev_versionsr.   Nc                 óx  >• UR                  SS 5        [        TU ]  " S0 UD6  Xl        X l        U R                  R                  5       (       a&  [        R                  " U R                  /5      U l        U R                  R                  5       (       a'  [        R                  " U R                  /5      U l        g g r  )	Ú
setdefaultr3   r4   rd  rs  rg  r   rh  Úis_symnode_like)r6   rd  rs  r.   r7   s       €r8   r4   Ú'PreserveVersionContextVariable.__init__·  s‘   ø€ ð 	×Ñ˜/¨4Ô0Ü‰ÒÑ"˜6Ò"ØŒØ*Ôà�<‰<×!Ñ!×#Ñ#Ü$×2Ò2°D·L±L°>ÓBˆDŒLØ×Ñ×-Ñ-×/Ñ/Ü!*×!8Ò!8¸$×:LÑ:LÐ9MÓ!NˆDÕð 0r:   c                 ó"   • [         R                  $ rS   rè  rB   s     r8   rC   Ú$PreserveVersionContextVariable.enterÇ  rê  r:   rQ   c                 ó†   • SSK Jn  [        R                  " U5      R	                  XR
                  U R                  /0 5      $ )Nr   )Ú_unsafe_set_version_counter)Útensor_version_opr{  r   ÚTorchInGraphFunctionVariablerv   rd  rs  )r6   r;   rQ   r{  s       r8   rV   Ú#PreserveVersionContextVariable.exitÊ  s:   € õ 	Dä×5Ò5Ø'ó
ç
‰-˜Ÿ\™\¨4×+=Ñ+=Ð>ÀÓ
Cð	Dr:   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )NzLtorch.autograd._unsafe_preserve_version_counter escaped from compiled regionzyDynamo doesn't support compiling a region that returns a torch.autograd._unsafe_preserve_version_counter context manager.r;  r@  r\   s     r8   ri   Ú*PreserveVersionContextVariable.reconstructÓ  s-   € ÜØbÜ˜“IðUðÜ"×.Ñ.ðó
	
r:   )rs  rd  r„   )r…   r†   r‡   rˆ   ræ   rç   r   rk  rq  r   r4   rC   rV   ri   r�   rŽ   r�   s   @r8   rc  rc  ˜  sÍ   ø† ñð ðGØ#ðGà ðGð 
*óGó ðGð" ð
Ð/ð 
°Oó 
ó ð
ðOà ðOð 'ðOð ð	Oð
 
÷Oð 0Ð/ð 0°Oô 0ðDØ)ðDØ2AðDà	ôD÷
ò 
r:   rc  c                   ó@  ^ • \ rS rSr\" \" 5       \R                  5      r\	SSS\
S\
S\
SS 4
S j5       r SS\
S
\\
   S\\\
      S\
SS	4
U 4S jjjrSSS\4S jrSSS\S\4S jrSSS\\   S\\\4   S\4U 4S jjrSSS\\
   SS	4S jrS\4S jrS\4S jrSrU =r$ )Ú&FSDPParamGroupUseTrainingStateVariableiá  r;   r&   Úparam_group_varro  r.   r/   c                 óP   • [        SUU/UR                  R                  /S.UD6nU$ )N)rƒ  r+   r,   r2   )r‚  r”   Ú_training_state)r;   rƒ  ro  r.   rù   s        r8   rÓ   Ú-FSDPParamGroupUseTrainingStateVariable.createä  s>   € ô 5ð 
Ø+Ø'˜.Ø+×1Ñ1×AÑAÐBñ
ð ñ	
ˆð ˆ
r:   Nr+   r,   c                 ó`   >• [         TU ]  " SX#S.UD6  Xl        [        U R                  5        g rÐ   )r3   r4   rƒ  r   r   )r6   rƒ  r+   r,   r.   r7   s        €r8   r4   Ú/FSDPParamGroupUseTrainingStateVariable.__init__ó  s8   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ð  /ÔÜ�d×,Ñ,Õ-r:   c                 óX   • U R                  XR                  5        [        R                  $ rS   rw  rB   s     r8   rC   Ú,FSDPParamGroupUseTrainingStateVariable.enter   ry  r:   rQ   c                 óX   • U R                  XR                  5        [        R                  $ rS   r{  rU   s      r8   rV   Ú+FSDPParamGroupUseTrainingStateVariable.exit  r}  r:   c                 óZ   >• U R                  XR                  5        [        TU ]  XU5      $ rS   r  r€  s       €r8   rv   Ú4FSDPParamGroupUseTrainingStateVariable.call_function
  s)   ø€ ð 	�‰˜×/Ñ/Ô0Ü‰wÑ$ R¨vÓ6Ð6r:   rR  c                 óP  • [        U5      S:X  d   eUS   nU R                  R                  R                  U:w  al  U R                  R	                  US[
        R                  R                  S5      [
        R                  " U5      40 5        X0R                  R                  l        g g )Nr   r   Ú__setattr__r…  )	rg   rƒ  r”   r…  Úcall_methodr   r  rÓ   ÚEnumVariabler„  s       r8   r>   Ú1FSDPParamGroupUseTrainingStateVariable._call_func  s—   € Ü�6‹{˜aÓÐÐØ�q‘	ˆØ×Ñ×%Ñ%×5Ñ5¸Ó>Ø× Ñ ×,Ñ,ØØä×.Ñ.×5Ñ5Ð6GÓHÜ×*Ò*¨5Ó1ðð ôð :?× Ñ ×&Ñ&Õ6ð ?r:   c                 ó   • g)NzDtorch.distributed.fsdp._fully_shard._fsdp_param_group.FSDPParamGroupr2   rn   s    r8   rZ   Ú2FSDPParamGroupUseTrainingStateVariable.module_name#  s   € ØUr:   c                 ó   • g)NÚuse_training_stater2   rn   s    r8   r[   Ú.FSDPParamGroupUseTrainingStateVariable.fn_name&  ó   € Ø#r:   )rƒ  rS   )r…   r†   r‡   rˆ   r   r   r   ÚFSDP_TRAINING_STATEr   rç   r   rÓ   r   r	   r4   r   rC   rV   r‹   rŠ   rv   r>   rZ   r[   r�   rŽ   r�   s   @r8   r‚  r‚  á  sP  ø† ÙÑ/Ó1°<×3SÑ3SÓTÐàðØ#ðàðð ðð ð	ð
 
2óó ðð$ 37ñ	.àð.ð   ‘}ð.ð ! ¨#¡Ñ/ð	.ð
 ð.ð 
÷.ð .ð0Ð/ð 0°Oô 0ð0Ø)ð0Ø2Að0à	ô0ð7à#ð7ð �Ñ'ð7ð �S˜/Ð)Ñ*ð	7ð
 
÷7ð?Ð4ð ?¸hÀs¹mð ?ÐPTô ?ðV˜Sô Vð$˜÷ $ò $r:   r‚  c                   ó,  ^ • \ rS rSrSr\ SSSS\S\S\SS 4
S	 jj5       r  SS\	\
R                  R                  R                     S\S\S\SS
4
U 4S jjjr\SSS\	\   S\	\   4S j5       rSSS\4S jrSSS\S\4S jrS\4S jrS\4S jrSrU =r$ )ÚSDPAKernelVariablei*  z)represents torch.nn.attention.sdpa_kernelr;   r&   ÚbackendsÚset_priorityr.   r/   c                 ó�   • [        U[        R                  R                  R                  5      (       a  U/n[        SUS US.UD6nU$ )N)r+   r,   rž  r2   )rs   r¹   ÚnnÚ	attentionÚ
SDPBackendrœ  )r;   r�  rž  r.   rù   s        r8   rÓ   ÚSDPAKernelVariable.create-  sQ   € ô �h¤§¡× 2Ñ 2× =Ñ =×>Ñ>Ø �zˆHÜ ð 
Ø"ØØ%ñ
ð ñ	
ˆð ˆ
r:   Nr+   r,   c                 ó6   >• [         TU ]  " SXS.UD6  X0l        g rÐ   )r3   r4   rž  )r6   r+   r,   rž  r.   r7   s        €r8   r4   ÚSDPAKernelVariable.__init__>  s*   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPò	
ð )Õr:   c           	      óÆ   • U Vs/ s HN  nU R                   R                  S[        R                  R                  R
                  UR                  40 5      PMP     nnU$ s  snf râ   )rL   rÝ   r¹   r   r¡  Ú_backend_from_stringrÇ   )r;   r�  ÚbackendÚnodess       r8   Ú_backends_to_nodesÚ%SDPAKernelVariable._backends_to_nodesJ  se   € ñ $ó
ò $�ð �I‰I×!Ñ!ØÜ—‘×"Ñ"×7Ñ7Ø—‘�Øö	ñ $ð 	ð 
ð ˆùò
s   …AAc                 ó  ^ • [         R                  R                  R                  T R                  S9T l        T R                  UU 4S j5        [         R                  R                  R                  T R                  T R                  S9  T R                  UT R                  5      nUR                  R                  S[         R                  R                  R                  U[        T R                  5      40 5        [        R                  $ )N)Úwith_priorityc                  ó|   >• [         R                  R                  R                  T R                  T R
                  S9$ )N©rž  )r¹   r   r¡  Ú_sdpa_kernelÚprev_backendsrž  rn   s   €r8   rb   Ú*SDPAKernelVariable.enter.<locals>.<lambda>a  s0   ø€ ”E—H‘H×&Ñ&×3Ñ3Ø×"Ñ"°×1BÑ1Bð 4ñ r:   r¯  rv   )r¹   r   r¡  Ú_cur_sdpa_kernel_backendsrž  r±  r@   r°  r+   rª  rL   rÝ   rŒ   r   rA   )r6   r;   r	  s   `  r8   rC   ÚSDPAKernelVariable.enter[  sÝ   ø€ Ü"ŸX™X×/Ñ/×IÑIØ×+Ñ+ð Jð 
ˆÔð 	×ÑØôô	
ô 	�‰×Ñ×'Ñ'Ø×Ñ¨T×->Ñ->ð 	(ñ 	
ð ×%Ñ% b¨$×*<Ñ*<Ó=ˆØ
�	‰	×ÑØÜ�H‰H×Ñ×+Ñ+Ø”$�t×(Ñ(Ó)Ð*Øô		
ô ×/Ñ/Ð/r:   rQ   c                 ó"  • U R                  5         U R                  XR                  5      nUR                  R	                  S[
        R                  R                  R                  U[        U R                  5      40 5        [        R                  $ râ   )rT   rª  r±  rL   rÝ   r¹   r   r¡  r°  rŒ   rž  r   rA   )r6   r;   rQ   r	  s       r8   rV   ÚSDPAKernelVariable.exitq  sr   € ð 	×ÑÔØ×%Ñ% b×*<Ñ*<Ó=ˆØ
�	‰	×ÑØÜ�H‰H×Ñ×+Ñ+Ø”$�t×(Ñ(Ó)Ð*Øô		
ô ×/Ñ/Ð/r:   c                 ó   • g)Nztorch.nn.attentionr2   rn   s    r8   rZ   ÚSDPAKernelVariable.module_name~  r™  r:   c                 ó   • g)NÚ_sdpa_kernel_variadicr2   rn   s    r8   r[   ÚSDPAKernelVariable.fn_nameƒ  s   € Ø&r:   )r±  rž  r�  rª   )r…   r†   r‡   rˆ   ræ   rç   r   rŒ   rÓ   r¤   r¹   r   r¡  r¢  r4   rª  r   rC   rV   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   rœ  rœ  *  s&  ø† Ù3àð #ñØ#ðàðð ðð ð	ð
 
ôó ðð& #Ø"ñ	
)à˜EŸH™H×.Ñ.×9Ñ9Ñ:ð
)ð ð
)ð ð	
)ð
 ð
)ð 
÷
)ð 
)ð ðØ#ðà�s‘)ðð 
ˆc‰óó ðð 0Ð/ð 0°Oô 0ð,0Ø)ð0Ø2Að0à	ô0ð$˜Sô $ð
'˜÷ 'ò 'r:   rœ  c            	       ó‚   ^ • \ rS rSrSr SS\S\S\SS4U 4S jjjrS	S
S\S\4S jrS\	4S jr
S\	4S jrSS jrSrU =r$ )ÚFxTracebackAnnotateVariablei‡  aš  
fx.traceback.annotate is a context manager that allows users to annotate the
fx graph nodes with custom metadata. In the context of Dynamo, we don't have
to trace the body of the context manager. Instead we want to directly run
the body of the context manager, so the Dynamo created Fx graphs have the
right custom metadata. This variable tracker just runs __enter__ and
__exit__ method (instead of tracing).
Nr+   r,   r.   r/   c                 ó*   >• [         TU ]  " SXS.UD6  g rÐ   r³  r5   s       €r8   r4   Ú$FxTracebackAnnotateVariable.__init__‘  s"   ø€ ô 	‰Òð 	
Ø'ñ	
ØJPó	
r:   r;   r&   rQ   c                 óV  ^• [        5       mTR                  [        R                  R                  R                  U R                  5      5        TR                  [        R                  R                  R                  5       5        U R                  UU4S j5        [        R                  $ )Nc                  ó$   >• T R                  5       $ rS   )Úclose)Ústacks   €r8   rb   Ú3FxTracebackAnnotateVariable.enter.<locals>.<lambda>¡  s   ø€ ¨%¯+©+¬-r:   )r   Úenter_contextr¹   ÚfxÚ	tracebackÚannotater+   Úpreserve_node_metar@   r   rA   )r6   r;   rQ   rÃ  s      @r8   rC   Ú!FxTracebackAnnotateVariable.enter˜  ss   ø€ ô “ˆØ×ÑœEŸH™H×.Ñ.×7Ñ7¸×8JÑ8JÓKÔLØ×ÑœEŸH™H×.Ñ.×AÑAÓCÔDØ×Ñ˜bÔ"7Ô8Ü×/Ñ/Ð/r:   c                 ó   • g)Nztorch.fx.tracebackr2   rn   s    r8   rZ   Ú'FxTracebackAnnotateVariable.module_name¤  r™  r:   c                 ó   • g)NrÈ  r2   rn   s    r8   r[   Ú#FxTracebackAnnotateVariable.fn_name§  rÙ  r:   c                 óN   • [        S[        U 5      S/ [        R                  QS9  g )Nz8torch.fx.traceback.annotate escaped from compiled regionzBDynamo doesn't support graph break on torch.fx.traceback.annotate.r;  r@  r\   s     r8   r^   Ú,FxTracebackAnnotateVariable.reconstruct_typeª  s*   € ÜØNÜ˜“IØ\ðÜ"×.Ñ.ðó		
r:   r2   rS   r„   )r…   r†   r‡   rˆ   ræ   r   r4   r   rC   rŠ   rZ   r[   r^   r�   rŽ   r�   s   @r8   r½  r½  ‡  sv   ø† ñð 9=ñ
Ø ð
Ø25ð
ØHKð
à	÷
ð 
ð
0Ø)ð
0Ø2Að
0à	ô
0ð$˜Sô $ð˜ô ÷
ò 
r:   r½  c                   óx   ^ • \ rS rSrSrS\\\4   S\SS4U 4S jjrSS	S
\SS4S jr	S\4S jr
S\4S jrSrU =r$ )ÚDynamoConfigPatchVariableiµ  z,represents torch._dynamo.patch_dynamo_configr+   r.   r/   Nc                 ó  >• [        UR                  5       5      n[        TU ]  " SU4S S.UD6  0 nU H0  u  pV[        R
                  R                  R                  U5      XE'   M2     [        UR                  5       5      4U l        g rÐ   )	rS  rF  r3   r4   r¹   rº   r   rÊ   r,   )r6   r+   r.   Útarget_values_tupleÚinitial_values_dictr  Ú_r7   s          €r8   r4   Ú"DynamoConfigPatchVariable.__init__º  s…   ø€ Ü# M×$7Ñ$7Ó$9Ó:ÐÜ‰Òð 	
Ø.Ð0Àñ	
ØIOò	
ð !ÐÛ)‰FˆCÜ',§}¡}×';Ñ';×'GÑ'GÈÓ'LÐÓ$ñ *ä$Ð%8×%>Ñ%>Ó%@ÓAÐCˆÕr:   r;   r&   rR  c                 ó˜   • [        U5      S:X  d   eUS   nU H.  u  pE[        R                  R                  R	                  XE5        M0     g ©Nr   r   )rg   r¹   rº   r   r�  )r6   r;   rR  r”   r  rh   s         r8   r>   Ú$DynamoConfigPatchVariable._call_funcÅ  sA   € Ü�6‹{˜aÓÐÐØ�q‘	ˆã‰HˆCÜ�M‰M× Ñ ×,Ñ,¨SÖ6ò r:   c                 ó   • g©Nztorch._dynamor2   rn   s    r8   rZ   Ú%DynamoConfigPatchVariable.module_nameÐ  ó   € Ør:   c                 ó   • g)NÚpatch_dynamo_configr2   rn   s    r8   r[   Ú!DynamoConfigPatchVariable.fn_nameÓ  s   € Ø$r:   )r,   )r…   r†   r‡   rˆ   ræ   r‹   rŠ   r   r4   r>   rZ   r[   r�   rŽ   r�   s   @r8   rÒ  rÒ  µ  sd   ø† Ù6ð	D d¨3°¨8¡nð 	DÀð 	DÈ÷ 	Dð7Ð4ð 7¸cð 7Àdô 7ð˜Sô ð%˜÷ %ò %r:   rÒ  c                   ót   ^ • \ rS rSrSrS\S\SS4U 4S jjrSS	S
\\   SS4S jr	S\
4S jrS\
4S jrSrU =r$ )ÚErrorOnGraphBreakVariablei×  z-represents torch._dynamo.error_on_graph_breakÚerror_on_graph_breakr.   r/   Nc                 ó@   >• [         TU ]  " SU4[        5       4S.UD6  g rÐ   )r3   r4   r   )r6   rä  r.   r7   s      €r8   r4   Ú"ErrorOnGraphBreakVariable.__init__Ú  s.   ø€ Ü‰Òð 	
Ø/Ð1Ü5Ó7Ð9ñ	
ð ó	
r:   r;   r&   rR  c                 óB   • [        U5      S:X  d   e[        US   5        g rÙ  )rg   r   rÕ  s      r8   r>   Ú$ErrorOnGraphBreakVariable._call_funcá  s    € Ü�6‹{˜aÓÐÐÜ! &¨¡)Õ,r:   c                 ó   • grÜ  r2   rn   s    r8   rZ   Ú%ErrorOnGraphBreakVariable.module_nameå  rÞ  r:   c                 ó   • g)Nrä  r2   rn   s    r8   r[   Ú!ErrorOnGraphBreakVariable.fn_nameè  rñ  r:   r2   )r…   r†   r‡   rˆ   ræ   rŒ   r   r4   r   r>   rŠ   rZ   r[   r�   rŽ   r�   s   @r8   rã  rã  ×  s]   ø† Ù7ð
¨Tð 
¸Sð 
ÀT÷ 
ð-Ð4ð -¸hÀt¹nð -ÐQUô -ð˜Sô ð&˜÷ &ò &r:   rã  c                   óv   ^ • \ rS rSrS\\\4   S\SS4U 4S jjrSSS	\	\
   S\\\
4   S\
4S
 jrSS jrSrU =r$ )ÚWithEnterFunctionVariableiì  r�  r.   r/   Nc                 ó2   >• [         TU ]  " S0 UD6  Xl        g r1   )r3   r4   r�  )r6   r�  r.   r7   s      €r8   r4   Ú"WithEnterFunctionVariable.__init__í  s   ø€ ô
 	‰ÒÑ"˜6Ò"Ø�r:   r;   r&   rQ   c                 ór   • U(       a   eU(       a   eUR                  U R                  UR                  5      $ rS   )Ú	enter_ctxr�  Úcurrent_instructionru   s       r8   rv   Ú'WithEnterFunctionVariable.call_functionõ  s0   € ö ˆˆxÞÐˆzð �|‰|˜DŸH™H b×&<Ñ&<Ó=Ð=r:   c                 óX  •  U R                   R                  5        SU R                   R                  5        3n[        S[	        U R                   5      SU S3S/[        R                  Q[        R                  QS9  g ! [         a!    [	        [        U R                   5      5      n Nof = f)NÚ.z;Attempted to reconstruct context manager's __enter__ methodz)Attempted to reconstruct context manager z while tracing `with ...:`zžIt is likely there is a graph break while tracing `with ctx:` but outside the actual `ctx.__enter__()` method. `torch.compile` does not expect this to happen.r;  )
r�  rZ   r[   rm   rŠ   rš   r   r   Ú	DIFFICULTÚ
DYNAMO_BUG)r6   r]   Útype_strs      r8   ri   Ú%WithEnterFunctionVariable.reconstruct  s¦   € ð	+ØŸ(™(×.Ñ.Ó0Ð1°°4·8±8×3CÑ3CÓ3EÐ2FÐGˆHô 	ØQÜ˜Ÿ™“MØCÀHÀ:ÐMgÐhðBðô #×,Ñ,ð	ô
 #×-Ñ-ðó		
øô #ó 	+Üœ4 §¡›>Ó*ŠHð	+ús   ‚7A> Á>(B)Â(B)r  r„   )r…   r†   r‡   rˆ   r   r(   r‘   r   r4   r   r   r‹   rŠ   rv   ri   r�   rŽ   r�   s   @r8   rî  rî  ì  st   ø† ðàÐ*Ð,JÐJÑKðð ðð 
÷	ð>à#ð>ð �Ñ'ð>ð �S˜/Ð)Ñ*ð	>ð
 
ô>÷
ò 
r:   rî  c                   ó˜   ^ • \ rS rSrS1\R
                  krS\\\4   S\	S\	SS4U 4S jjr
SS	S
\\   S\\\4   S\4S jrSS jrSrU =r$ )ÚWithExitFunctionVariablei  Útargetr�  r.   r/   Nc                 óx   >• [         TU ]  " S0 UD6  [        U[        [        45      (       d   eXl        X l        g r1   )r3   r4   rs   r(   r‘   r�  rý  )r6   r�  rý  r.   r7   s       €r8   r4   Ú!WithExitFunctionVariable.__init__  sD   ø€ ô 	‰ÒÑ"˜6Ò"ÜØÔ)Ô+IÐJ÷
ñ 
ð 	
ð 
ð ŒØ�r:   r;   r&   rQ   c                 óN   • U(       a   eU R                   R                  " U/UQ76 $ rS   )r�  rV   ru   s       r8   rv   Ú&WithExitFunctionVariable.call_function(  s$   € ö ÐˆzØ�x‰x�}Š}˜RÐ' $Ò'Ð'r:   c                 ó:   • U R                   R                  U5        g rS   )r�  r^   r\   s     r8   ri   Ú$WithExitFunctionVariable.reconstruct1  s   € ð 	�‰×!Ñ! 'Õ*r:   )r�  rý  r„   )r…   r†   r‡   rˆ   r   r‰   r   r(   r‘   r   r4   r   r‹   rŠ   rv   ri   r�   rŽ   r�   s   @r8   rü  rü    s–   ø† àðà	×	'Ñ	'ð€Nð
àÐ*Ð,JÐJÑKðð ðð ð	ð
 
÷ð(à#ð(ð �Ñ'ð(ð �S˜/Ð)Ñ*ð	(ð
 
ô(÷+ò +r:   rü  )Xræ   r   ÚloggingrH  Úcollections.abcr   r   r   r'  r   r   Útypingr   r	   r
   r   Útorch._Cr¹   Útorch._dynamor   Útorch._guardsr   Útorch._loggingr   Ú r   r   Úbytecode_transformationr   Úexcr   Úguardsr   r   rŸ   r   r   Úutilsr   r   Úbaser   Ú	functionsr   r   r   r   r    r!   r"   r#   Úuser_definedr$   Útorch._dynamo.codegenr%   Útorch._dynamo.symbolic_convertr&   Ú	getLoggerr…   rL  r(   r‘   r¯   rÍ   ré   rö   r  r  r.  r<  rY  rn  r�  r«  rÅ  rà  rö  r  r/  rD  rc  r‚  rœ  r½  rÒ  rã  rî  rü  r2   r:   r8   Ú<module>r     s
  ðñó( Û Û ß 5Ñ 5ß 8ß 6Ó 6ã Ý  Ý Ý 'ç +Ý :Ý ß 0ß 2ß HÝ !÷	÷ 	ó 	õ 4ö Ý/ÝDà×Ò˜Ó!€ôd˜oô dôN*Ð%>ô *ôZ")Ð+Iô ")ôJ)0Ð0Gô )0ôX%0Ð7Nô %0ôP*0Ð,Cô *0ôZ'0Ð&=ô '0ôT%0Ð5ô %0ôP(0Ð-Dô (0ôV(WÐ&=ô (WôV50Ð-Dô 50ôpB"Ð.ô B"ôJE Ð3ô E ôP3Ð0ô 3ôlG&Ð#:ô G&ôT:-Ð(?ô :-ôzEÐ2ô EôPÐ1ô ô0"
Ð5ô "
ôJp.Ð,Cô p.ôfF
Ð%<ô F
ôRF$Ð-Dô F$ôRZ'Ð0ô Z'ôz+
Ð"9ô +
ô\%Ð 7ô %ôD&Ð 7ô &ô*&
 ô &
ôR +˜õ  +r:   