§
    ŠŠtjâ‹ ã                  óÄ	  — U d Z ddlmZ ddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlZddlmZ ddlZddlmZ ddlmZ ddlmZm Z m!Z!m"Z" ddlm#Z#m$Z$m%Z%m&Z& ddl'm(Z( dd	lm)Z) ddl*Z*ddl+Z*dd
l,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7m8Z8 ddl+m9Z9 ddl:m;Z;m<Z<m=Z= ddl>m?Z? ddl@mAZAmBZB ddlCmDZE ddlFmGZG ddlHmIZI ddlJmKZKmLZLmMZMmNZN ddlOmPZPmQZQ ddlRmSZSmTZTmUZUmVZVmWZW ddlXmYZY ddlZm[Z[m\Z\ ddl]m^Z^m_Z_m`Z`maZambZb ddlcmdZdmeZemfZfmgZg ddlhmhZh ddlimjZjmkZkmlZlmmZmmnZnmoZompZpmqZqmrZrmsZs dd lUmtZtmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z|m}Z}m~Z~mZm€Z€ dd!l�m‚Z‚ dd"lƒm„Z„m…Z…m†Z† dd#l‡mˆZˆ dd$l‰mŠZŠm‹Z‹mŒZŒ dd%l�mŽZŽm�Z�m�Z� dd&l‘m’Z’ dd'l“m”Z” dd(l•m–Z–m—Z—m˜Z˜m™Z™mšZš dd)lWm›Z› dd*lmœZœm�Z�mžZžmŸZŸ dd+l m¡Z¡m¢Z¢m£Z£m¤Z¤m¥Z¥m¦Z¦m§Z§m¨Z¨m©Z©mªZªm«Z«m¬Z¬m­Z­m®Z®m¯Z¯m°Z°m±Z±m²Z²m³Z³m´Z´mµZµm¶Z¶ dd,l·m¸Z¸ d-e¹d.<   	 ddlºZ»n# e¼$ r dZ»Y nw xY wej½        r.dd/l¾m¿Z¿ dd0lÀmÁZÁ dd1lXmÂZÂ dd2lÃmÄZÄ dd3lÅmÆZÆ dd4lmÇZÇmÈZÈmÉZÉ dd5lÊmËZË  ejÌ        eÍ¦  «        ZÎe*jÏ         Ð                    eÍd6¦  «        ZÑe*jÏ         Ð                    eÍd7¦  «        ZÒ ejÓ        ¦   «         ZÔ e&d8¦  «        ZÕ e(d9¦  «        ZÖ G d:„ d;¦  «        Z×dÝd@„ZØdÞdE„ZÙ G dF„ dG¦  «        ZÚ eÚ¦   «         ZÛ eÚ¦   «         ZÜdaÝdHe¹dI<    ejÞ        eE¦  «        	 dßdàdQ„¦   «         ZßdádâdW„ZàdãdZ„Záesjâ        däd^„¦   «         Zã	 	 dådædd„Zädaå ejæ        ¦   «         Zçdee¹df<   dçdh„Zèdçdi„Zée G dj„ dk¦  «        ¦   «         Zêdèdo„Zë G dp„ dq¦  «        Zì	 	 	 	 	 dédêdz„Zídd{lmîZî dd|lïmðZð  eî¦   «         Zñd}e¹d~<   dZòdëd‚„Zódìdƒ„Zôdíd†„ZõdîdŠ„Zöeád_ddddd‹œdïd�„¦   «         Z÷e G dž„ dŸ¦  «        ¦   «         Zøe G d „ d¡¦  «        ¦   «         Zù edr¬¢¦  «         G d£„ d¤¦  «        ¦   «         Zúdðd¦„Zûe G d§„ d¨¦  «        ¦   «         Züe G d©„ dª¦  «        ¦   «         Zýdñd®„Zþdòd°„Zÿ	 dßdód¶„�Z 	 dßdd_d·œdôd»„�Ze G d¼„ dµ¦  «        ¦   «         �Zdd_d·œdõd½„�ZdödÀ„�Zd_ddddd‹œd÷dÃ„�Z	 	 døddddÄœdùdÒ„�Z G dÓ„ dÔ¦  «        �Z	 	 dødúdÕ„�Zdûd×„�Z	düdØ„�Z
 G dÙ„ d¿e�j        ¦  «        �Z G dÚ„ dÛ¦  «        �ZdýdÜ„�ZdS )þaÖ  
This module implements TorchDynamo's core frame conversion functionality, transforming Python
frames into FX graphs. It handles:

- Frame analysis and bytecode transformation
- Guard creation and management for dynamic behaviors
- Cache management for recompilation
- Error handling and fallback mechanisms

Key classes:
- ConvertFrame: Main entry point for frame conversion with error handling
- ConvertFrameAssert: Implements core frame to graph conversion logic
- Tracker: Tracks input/output code objects during conversion
- CatchErrorsWrapper: Provides error handling and suppression logic

The conversion process preserves program semantics while enabling optimizations
through torch.compile() and related systems.

NOTE: _torchdynamo_orig_backend is used for convert frame wrappers to identify the inner wrapped function.
By going down the _torchdynamo_orig_backend chain, one can recover the original unwrapped backend,
which is checked for during the Dynamo cache lookup.
é    )ÚannotationsN)Ú	dataclass)ÚPath)ÚCellTypeÚCodeTypeÚFunctionTypeÚ
ModuleType)ÚAnyÚcastÚNoReturnÚTypeVar)Ú	ParamSpec)ÚReferenceType)ÚGlobalStateGuard)ÚCallbackTrigger)Úget_compile_pg)ÚTensorifyState)Úcompile_contextÚCompileContextÚ	CompileIdÚtracing)Ú
structured)Úcompile_time_strobelight_metaÚ#maybe_upload_prof_stats_to_manifoldÚsignpost_event)Ú_use_lazy_graph_module)ÚConstraintViolationErrorÚGuardOnDataDependentSymNode)Ú_forward_from_src)Ú_WaitCounter)ÚDistributedDataParallel)Ú_disable_current_modesÚ any_torch_dispatch_mode_on_stackÚ/is_in_any_mode_without_ignore_compile_internalsÚis_traceable_wrapper_subclass)ÚCapturedTracebackÚformat_traceback_shorté   )ÚconfigÚ
decoratorsÚexcÚgraph_break_hintsÚtrace_rules)Ú_is_registered_backend)Úremove_dead_codeÚremove_pointless_jumps)Ú check_inst_exn_tab_entries_validÚInstructionÚis_generatorÚ propagate_inst_exn_table_entriesÚtransform_code_object)ÚCacheSizeRelevantForFrameÚcompute_cache_sizeÚexceeds_recompile_limitÚis_recompilation)Úcode_context)
Ú_get_cache_entries_for_regionÚ_get_total_cache_entry_countÚadd_skip_reasonÚalways_optimize_code_objectsÚ
ConstraintÚ
dynamo_tlsÚ$get_eval_frame_isolate_recompiles_idÚinnermost_backendÚ	skip_codeÚTorchPatcher)Úaugment_exc_messageÚBackendCompilerFailedÚFailOnRecompileLimitHitÚformat_error_msgÚInternalTorchDynamoErrorÚPackageErrorÚResumePrologueTracingErrorÚShortenTracebackÚTorchRuntimeErrorÚUncapturedHigherOrderOpErrorÚunimplementedÚUnsupportedÚ	UserError)Úreset_user_object_tracking)ÚCheckFunctionManagerÚ'get_and_maybe_log_recompilation_reasonsÚGuardedCode)ÚHooks)ÚCodeOptionsÚDynamoTracerOutputÚOutputGraphCommon)Ú_log_size_mismatch_recompileÚlog_frame_dynamic_whitelistÚput_code_state)ÚExecutionRecord)ÚTORCH_DYNAMO_RESUME_IN_PREFIX)ÚDistributedStateÚExceptionStackÚInstructionTranslatorÚ
LocalStateÚSpeculationLog)Úis_numpy)ÚConvertFrameReturnÚFrameActionÚFrameExecStrategyÚwrap_guarded_code)Ú_get_error_on_graph_breakÚchromium_event_timedÚCleanupManagerÚCompileTimeInstructionCounterÚcountersÚdynamo_timedÚformat_bytecodeÚgen_record_file_nameÚ#get_hook_for_recompile_user_contextÚget_metrics_contextÚincrement_frameÚis_namedtupleÚistypeÚ
LazyStringÚmaybe_disable_inference_modeÚ*maybe_disable_inference_mode_for_fake_propÚorig_code_mapÚreset_graph_break_dup_checkerÚsetup_compile_debugÚ	to_int_usÚtroubleshooting_urlÚwrite_record_to_file)Ú#torch_function_mode_stack_state_mgrzModuleType | NoneÚnp)ÚCallable)ÚWeakIdKeyDictionary)Ú
CompilerFn)ÚCompilePackage)ÚWrapBackendDebug)ÚBytecodeHookÚ
CacheEntryÚDynamoFrameType)ÚFrameStateSizeEntryÚbytecodeÚgraph_breaksÚ_TÚ_Pc                  ó   — e Zd ZdS )ÚTODO_UNKNOWNN)Ú__name__Ú
__module__Ú__qualname__© ó    úY/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_dynamo/convert_frame.pyr�   r�   Ó   s   € € € € € Ø€Dr”   r�   Ú	fake_modeú3torch._subclasses.fake_tensor.FakeTensorMode | NoneÚreturnÚNonec                ó”   — | €dS | j         j        j        }|j                             ¦   «          |j                             ¦   «          dS )z:Clear WeakIdRef entries from a FakeTensorMode's describer.N)Úfake_tensor_converterÚmeta_converterÚ	describerÚlookup_tensorÚclearÚlookup_storage)r–   r�   s     r•   Ú_clear_fake_mode_weakrefsr¡   ×   sM   € ð ÐØˆØÔ/Ô>ÔH€IØÔ×!Ò!Ñ#Ô#Ð#ØÔ×"Ò"Ñ$Ô$Ð$Ð$Ð$r”   Útracer_outputúDynamoTracerOutput | NoneÚcompiler_fnrƒ   c                ó0  — t           j        }|€t          t          |¦  «        ¦  «        }|r| sdS | j        }|€dS |j        }|j                             ¦   «          t          |j	        ¦  «         t          |d¦  «        rt          |j        ¦  «         dS dS )zBClear WeakIdRef entries that can block swap_tensors after compile.NÚ_old_fake_mode)r)   Ú#invalidate_compile_context_weakrefsr.   rB   Úoutput_graph_for_cleanupÚtracing_contextÚtensor_to_contextrŸ   r¡   r–   Úhasattrr¦   )r¢   r¤   Úshould_clearÚoutput_graphÚtcs        r•   Úclear_compile_context_weakrefsr¯   â   s²   € õ
 Ô=€LØÐÝ-Õ.?ÀÑ.LÔ.LÑMÔMˆØð ˜}ð Øˆð !Ô9€LØÐØˆØ	Ô	%€BØÔ×ÒÑ Ô Ð Ý˜bœlÑ+Ô+Ð+Ýˆ|Ð-Ñ.Ô.ð ?Ý! ,Ô"=Ñ>Ô>Ð>Ð>Ð>ð?ð ?r”   c                  ó.   — e Zd Zdd„Zdd„Zdd	„Zdd
„ZdS )ÚTrackerr˜   r™   c                ó:   — g | _         t          ¦   «         | _        d S ©N)ÚseenÚsetÚseen_ids©Úselfs    r•   Ú__init__zTracker.__init__ù   s   € Ø35ˆŒ	Ý"%¡%¤%ˆŒˆˆr”   Ú
strong_objr   c                óØ   ‡ ‡— t          |¦  «        Š‰‰ j        vrOt          j        |ˆˆ fd„¦  «        }‰ j                             |¦  «         ‰ j                             ‰¦  «         d S d S )Nc                ó8   •— ‰j                              ‰¦  «        S r³   )r¶   Úremove)Ú_Úidxr¸   s    €€r•   ú<lambda>zTracker.add.<locals>.<lambda>   s   ø€ °D´M×4HÒ4HÈÑ4MÔ4M€ r”   )Úidr¶   ÚweakrefÚrefr´   ÚappendÚadd)r¸   rº   Úobjr¿   s   `  @r•   rÅ   zTracker.addý   st   øø€ Ý�‰nŒnˆØ�d”mÐ#Ð#Ý”+˜jÐ*MÐ*MÐ*MÐ*MÐ*MÑNÔNˆCØŒI×Ò˜SÑ!Ô!Ð!ØŒM×Ò˜cÑ"Ô"Ð"Ð"Ð"ð $Ð#r”   ÚitemÚboolc                ó.   — t          |¦  «        | j        v S r³   )rÁ   r¶   )r¸   rÇ   s     r•   Ú__contains__zTracker.__contains__  s   € Ý�$‰xŒx˜4œ=Ð(Ð(r”   c                ój   — | j                              ¦   «          | j                             ¦   «          d S r³   )r´   rŸ   r¶   r·   s    r•   rŸ   zTracker.clear  s.   € ØŒ	�ŠÑÔÐØŒ×ÒÑÔÐÐÐr”   N©r˜   r™   )rº   r   r˜   r™   )rÇ   r   r˜   rÈ   )r�   r‘   r’   r¹   rÅ   rÊ   rŸ   r“   r”   r•   r±   r±   ø   sd   € € € € € ð(ð (ð (ð (ð#ð #ð #ð #ð)ð )ð )ð )ðð ð ð ð ð r”   r±   zGlobalStateGuard | NoneÚinitial_global_stateÚsrcÚstrÚglobalsúdict[str, Any]Ú	co_fieldsúdict[str, str] | Noner   c                óP   — t          | ||¦  «        }t          |j        ¦  «         |S r³   )Úoriginal_forward_from_srcrC   Ú__code__)rÎ   rÐ   rÒ   Úresults       r•   Úfx_forward_from_src_skip_resultrØ     s*   € õ ' s¨G°YÑ?Ô?€FÝˆfŒoÑÔÐØ€Mr”   Úcoder   ÚskipÚintú	list[str]c                óî  ‡‡— t          j        t          ¦  «        Št          j        d|z   ¬¦  «                             ¦   «         }t          j        |¦  «        }t          t          j	        ˆfd„|¦  «        ¦  «        | j
        | j        t          j        | j        ¦  «        dœgz   Št          j                             dˆfd„¦  «         ˆfd„|D ¦   «         d| j
        › d	| j        › d
| j        › �gz   }|S )Né   ©rÚ   c                ó   •— | d         ‰k    S )NÚfilenamer“   )ÚfÚconvert_frame_interns    €r•   rÀ   z"log_dynamo_start.<locals>.<lambda>$  s   ø€ �a˜
”mÐ';Ò;€ r”   )ÚlineÚnamerá   Údynamo_startc                 ó   •— d‰ iS )NÚstackr“   )rè   s   €r•   rÀ   z"log_dynamo_start.<locals>.<lambda>1  s   ø€ �˜%Ð € r”   c                óZ   •— g | ]'}|j         ‰k    ¯d |j        › d|j        › d|j         › �‘Œ(S )úLine: ú, Name: ú, Filename: )rá   Úlinenorå   )Ú.0Úframerã   s     €r•   ú
<listcomp>z$log_dynamo_start.<locals>.<listcomp>5  sP   ø€ ð ð ð àØŒ>Ð1Ò1Ð1ð 	P�”ÐOÐO u¤zÐOÐO¸u¼~ÐOÐOà1Ð1Ð1r”   rê   rë   rì   )r   Úintern_stringÚ__file__r&   ÚextractÚsummaryÚfrom_tracebackÚlistÚ	itertoolsÚ	takewhileÚco_firstlinenoÚco_nameÚco_filenameÚtorchÚ_loggingÚtrace_structured)rÙ   rÚ   Úcaptured_tbÚframes_internedÚstack_stringsrã   rè   s        @@r•   Úlog_dynamo_startr    s3  øø€ Ý%Ô3µHÑ=Ô=ÐÝ#Ô+°°T±Ð:Ñ:Ô:×BÒBÑDÔD€KÝ Ô/°Ñ<Ô<€OåÝÔØ;Ð;Ð;Ð;Øñ	
ô 	
ñô ð Ô'Ø”LÝ"Ô0°Ô1AÑBÔBð	
ð 	
ð	ñ€Eõ 
„N×#Ò#ØØ Ð Ð Ð ñô ð ðð ð ð à ðñ ô ð
 	[�Ô$ÐZÐZ¨d¬lÐZÐZÈÔHXÐZÐZð	ñ	€Mð Ðr”   ÚfnúCallable[_P, _T]c                óV   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }‰ |_        |S )	a@  
    Context manager to:
        1) Save/restore torch.is_grad_enabled() state
        2) Save/restore torch random state
        3) Monkey patch torch.fx.graph_module._forward_from_src

    NOTE: Python random state is preserved in eval_frame_cpp.cpp instead,
    so that it wraps more of the compilation pipeline.
    Úargsú_P.argsÚkwargsú	_P.kwargsr˜   rŒ   c                 óô  •— t          ¦   «         }t          j        ¦   «         }t          j                             ¦   «         5  t          ¦   «         5  t          ¦   «         5  t          j        ¦   «         }t          j        ¦   «         }t          j	        ¦   «         }t          j         
                    ¦   «         }t          j        ¦   «         }t          j                             ¦   «         }	d }
t          j                             ¦   «         rTt          j                             ¦   «         5  t          j                             ¦   «         }
d d d ¦  «         n# 1 swxY w Y   t          j                             dd¦  «        }t          j        j        j        }t*          t          j        j        _        t-          ¦   «         }t/          j        ¦   «         }|                     t          j        j                             ¦   «         ¦  «         t9          ¦   «          	  ‰| i |¤Ž|                     ¦   «          |                     ¦   «          t          j                             |¦  «         t          j        j          !                    |¦  «         t          j"        ||¬¦  «         t          j         #                    |	¦  «         t          j$        |¦  «         t          j         
                    ¦   «         }||k    rt          j         %                    ¦   «          |
�Ut          j                             ¦   «         5  t          j         #                    |
¦  «         d d d ¦  «         n# 1 swxY w Y   t          j         &                    dd|¦  «         |t          j        j        _        | '                    ¦   «         s%tQ          d| )                    ¦   «         › d�¦  «        ‚cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         S # |                     ¦   «          |                     ¦   «          t          j                             |¦  «         t          j        j          !                    |¦  «         t          j"        ||¬¦  «         t          j         #                    |	¦  «         t          j$        |¦  «         t          j         
                    ¦   «         }||k    rt          j         %                    ¦   «          |
�Ut          j                             ¦   «         5  t          j         #                    |
¦  «         d d d ¦  «         n# 1 swxY w Y   t          j         &                    dd|¦  «         |t          j        j        _        | '                    ¦   «         s%tQ          d| )                    ¦   «         › d�¦  «        ‚w xY w# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NÚcudaÚmatmul)Ú	warn_onlyzGlobal z7state changed while dynamo tracing, please report a bug)*r   rü   Úis_grad_enabledÚ_CÚ_PreserveDispatchKeyGuardrw   rx   Úis_inference_mode_enabledÚ$are_deterministic_algorithms_enabledÚ-is_deterministic_algorithms_warn_only_enabledÚ$_is_default_mobile_cpu_allocator_setÚget_default_dtypeÚrandomÚget_rng_stater  Úis_availableÚDisableTorchFunctionÚ_get_fp32_precision_getterÚfxÚgraph_moduler   rØ   r{   Ú
contextlibÚ	ExitStackÚenter_contextÚ_symbolic_traceÚ_maybe_revert_all_patchesrR   ÚcloseÚ_set_grad_enabledÚautogradÚ	grad_modeÚ_enter_inference_modeÚuse_deterministic_algorithmsÚset_rng_stateÚset_default_dtypeÚ#_unset_default_mobile_cpu_allocatorÚ_set_fp32_precision_setterÚcheckÚAssertionErrorÚreason)r  r  ÚguardsÚprior_grad_modeÚprior_inference_modeÚprior_deterministicÚprior_warn_onlyÚprior_mobile_allocator_stateÚprior_dtypeÚtorch_rng_stateÚcuda_rng_stateÚcuda_matmul_fp32_precÚprior_fwd_from_srcÚcleanupÚ
exit_stackÚcurr_mobile_allocator_stater  s                   €r•   Ú_fnz"preserve_global_state.<locals>._fnJ  s  ø€ å!Ñ#Ô#ˆÝÔ/Ñ1Ô1ˆõ ŒH×.Ò.Ñ0Ô0ð7	ð 7	å(Ñ*Ô*ð7	ð 7	õ 7Ñ8Ô8ð7	ð 7	õ
 $)Ô#BÑ#DÔ#DÐ Ý"'Ô"LÑ"NÔ"NÐÝ#ÔQÑSÔSˆOå”×=Ò=Ñ?Ô?ð )õ  Ô1Ñ3Ô3ˆKÝ#œl×8Ò8Ñ:Ô:ˆOØ!ˆNÝŒz×&Ò&Ñ(Ô(ð @Ý”X×2Ò2Ñ4Ô4ð @ð @Ý%*¤Z×%=Ò%=Ñ%?Ô%?�Nð@ð @ð @ñ @ô @ð @ð @ð @ð @ð @ð @øøøð @ð @ð @ð @å$)¤H×$GÒ$GØ˜ñ%ô %Ð!õ "'¤Ô!6Ô!HÐÝ6U�EŒHÔ!Ô3Ý)Ñ+Ô+ˆGÝ#Ô-Ñ/Ô/ˆJØ×$Ò$Ý”Ô(×BÒBÑDÔDñô ð õ 'Ñ(Ô(Ð(ðØ�r˜4Ð* 6Ð*Ð*à—’‘”�Ø× Ò Ñ"Ô"Ð"Ý”×*Ò*¨?Ñ;Ô;Ð;Ý”Ô(×>Ò>Ð?SÑTÔTÐTÝÔ2Ø'°?ðñ ô ð õ ”×*Ò*¨?Ñ;Ô;Ð;ÝÔ'¨Ñ4Ô4Ð4å”H×AÒAÑCÔCð ,ð 0Ð3NÒNÐNÝ”H×@Ò@ÑBÔBÐBØ!Ð-Ýœ×6Ò6Ñ8Ô8ð Að AÝœ
×0Ò0°Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aå”×3Ò3Ø˜HÐ&;ñô ð ð ;M•”Ô%Ô7Ø—|’|‘~”~ð Ý(Øj &§-¢-¡/¤/ÐjÐjÐjñô ð ðk7	ð 7	ð 7	ð 7	ñ 7	ô 7	ð 7	ð 7	ð 7	ð 7	ð 7	ñ 7	ô 7	ð 7	ð 7	ð 7	ð 7	ð 7	ñ 7	ô 7	ð 7	ð 7	øð> —’‘”�Ø× Ò Ñ"Ô"Ð"Ý”×*Ò*¨?Ñ;Ô;Ð;Ý”Ô(×>Ò>Ð?SÑTÔTÐTÝÔ2Ø'°?ðñ ô ð õ ”×*Ò*¨?Ñ;Ô;Ð;ÝÔ'¨Ñ4Ô4Ð4å”H×AÒAÑCÔCð ,ð 0Ð3NÒNÐNÝ”H×@Ò@ÑBÔBÐBØ!Ð-Ýœ×6Ò6Ñ8Ô8ð Að AÝœ
×0Ò0°Ñ@Ô@Ð@ðAð Að Añ Aô Að Að Að Að Að Að Aøøøð Að Að Að Aå”×3Ò3Ø˜HÐ&;ñô ð ð ;M•”Ô%Ô7Ø—|’|‘~”~ð Ý(Øj &§-¢-¡/¤/ÐjÐjÐjñô ð ð ð ð ð ðk7	ð 7	ð 7	ð 7	øøøð 7	ð 7	ð 7	ð 7	ð 7	ð 7	ð 7	ñ 7	ô 7	ð 7	ð 7	ð 7	ð 7	ð 7	ð 7	øøøð 7	ð 7	ð 7	ð 7	ð 7	ð 7	ð 7	ñ 7	ô 7	ð 7	ð 7	ð 7	ð 7	ð 7	ð 7	ð 7	øøøð 7	ð 7	ð 7	ð 7	ð 7	ð 7	sê   ÁW-ÁWÁCV>Ä&E	ÅV>ÅEÅV>ÅEÅB9V>ÈO<ÈDV>Ì0 MÍV>ÍM Í V>Í#M Í$A3V>ÏWÏ#W-Ï<DV;	Ô T?Ô3V;	Ô?UÕV;	ÕUÕA4V;	Ö;V>Ö>W×W×W×W×	W-×W	×W-×W	×W-×-W1×4W1©r  r  r  r	  r˜   rŒ   )Ú	functoolsÚwrapsÚ_torchdynamo_orig_backend)r  r=  s   ` r•   Úpreserve_global_staterB  ?  sH   ø€ õ „_�RÑÔð?ð ?ð ?ð ?ð ?ñ Ôð?ðB %'€CÔ!Ø€Jr”   rï   rˆ   rÈ   c                ó¬  ‡‡— | j         t          v rdS | j         j        D ]�}|| j        v rv| j        |         }t	          |t
          ¦  «        r&|j                             d¦  «        s	|t          u r dS t          r't          j        r|t          u st          |¦  «        r dS Œ‚i Šd	ˆˆfd„Š| j                             ¦   «         D ]} ‰|¦  «        r dS ŒdS )
z+Check if the frame has torch.* related bitsTztorch.rÆ   Úobjectr˜   rÈ   c           	     ó"  •‡ — t          ‰ ¦  «        }|‰v r‰|         S d‰|<   t          ‰ t          j        t          j        j        f¦  «        s4t          ‰ t          ¦  «        r,t          ‰ t          j        j        ¦  «        rd‰|<   ‰|         S t          j
        rHt          rAt          ‰ t          j        ¦  «        st          ‰ t          j        ¦  «        rd‰|<   ‰|         S t          ‰ t          t          f¦  «        r&t!          ˆfd„‰ D ¦   «         ¦  «        ‰|<   ‰|         S t          ‰ t"          ¦  «        rGt          ‰                      ¦   «         ¦  «        }t!          ˆfd„|D ¦   «         ¦  «        ‰|<   ‰|         S t          ‰ t&          t(          t*          t          d¦  «        t,          f¦  «        rd‰|<   ‰|         S t/          ‰ ¦  «        r<t1          ‰ d¦  «        r,t!          ˆˆ fd„‰ j        D ¦   «         ¦  «        ‰|<   ‰|         S dS )z)Recursively check if the obj has a tensorFTc              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r³   r“   ©rî   ÚvÚ
has_tensors     €r•   ú	<genexpr>z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>¹  s+   øè è € Ð">Ð">°Q : :¨a¡=¤=Ð">Ð">Ð">Ð">Ð">Ð">r”   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r³   r“   rG  s     €r•   rJ  z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>À  s+   øè è € Ð"AÐ"A°Q : :¨a¡=¤=Ð"AÐ"AÐ"AÐ"AÐ"AÐ"Ar”   NÚ_fieldsc              3  óJ   •K  — | ]} ‰t          ‰|¦  «        ¦  «        V — Œd S r³   )Úgetattr)rî   rH  rI  rÆ   s     €€r•   rJ  z:has_tensor_in_frame.<locals>.has_tensor.<locals>.<genexpr>Æ  s5   øè è € Ð"TÐ"TÀ1 : :­g°c¸1©o¬oÑ#>Ô#>Ð"TÐ"TÐ"TÐ"TÐ"TÐ"Tr”   )rÁ   Ú
isinstancerü   ÚTensorÚnnÚModuleru   ÚtypeÚ
issubclassr)   Útrace_numpyr€   ÚndarrayÚgenericrö   ÚtupleÚanyÚdictÚvaluesrÏ   rÛ   ÚfloatrÈ   rt   r«   rL  )rÆ   Úobj_idr[  rI  r¶   s   `  €€r•   rI  z'has_tensor_in_frame.<locals>.has_tensor¥  s  øø€ å�C‘”ˆØ�XÐÐØ˜FÔ#Ð#Ø ˆ�Ñå�c�EœL­%¬(¬/Ð:Ñ;Ô;ð !	Ý�3�ÑÔð!	Ý",¨Sµ%´(´/Ñ"BÔ"Bð!	ð  $ˆH�VÑØ˜FÔ#Ð#åÔð	åð	õ ˜�RœZÑ(Ô(ð	õ -7°s½B¼JÑ,GÔ,Gð	ð
  $ˆH�VÑØ˜FÔ#Ð#Ý�C�$¥˜Ñ'Ô'ð 	Ý"Ð">Ð">Ð">Ð">¸#Ð">Ñ">Ô">Ñ>Ô>ˆH�VÑØ˜FÔ#Ð#Ý�C�ÑÔð 	õ ˜#Ÿ*š*™,œ,Ñ'Ô'ˆFÝ"Ð"AÐ"AÐ"AÐ"A¸&Ð"AÑ"AÔ"AÑAÔAˆH�VÑØ˜FÔ#Ð#Ý�C�#�s¥E­4°©:¬:µtÐ<Ñ=Ô=ð 	Ø$ˆH�VÑØ˜FÔ#Ð#Ý˜3ÑÔð 	¥G¨C°Ñ$;Ô$;ð 	Ý"Ð"TÐ"TÐ"TÐ"TÐ"TÈÌÐ"TÑ"TÔ"TÑTÔTˆH�VÑØ˜FÔ#Ð#ð �5r”   F)rÆ   rD  r˜   rÈ   )Úf_coder>   Úco_namesÚ	f_globalsrO  r	   r�   Ú
startswithrü   r€   r)   rU  rd   Úf_localsr[  )rï   rú   rÆ   ÚvaluerI  r¶   s       @@r•   Úhas_tensor_in_framerd  �  s  øø€ ð „|Õ3Ð3Ð3Øˆtð ”<Ô(ð 	ð 	ˆØ�e”oÐ%Ð%Ø”/ 'Ô*ˆCÝ˜#�zÑ*Ô*ð Ø”×'Ò'¨Ñ1Ô1ðØ58½E°\°\à�t�tåð •fÔ(ð ¨cµR¨i¨i½8ÀC¹=¼=¨iØ�t�tøà "€Hð(ð (ð (ð (ð (ð (ð (ðV ”×&Ò&Ñ(Ô(ð ð ˆØˆ:�eÑÔð 	Ø�4�4ð	ð ˆ5r”   FÚeÚ	ExceptionúDynamoFrameType | NoneÚexportc                ó¤   — d }t          | d¦  «        r,t          | |¦  «        }t          || j        ¦  «         || _        t          | |¬¦  «         d S )NÚexec_record©rh  )r«   rp   r~   rj  Úrecord_filenamerE   )re  rÙ   rï   rh  rl  s        r•   Úexception_handlerrm  ×  s]   € ð €OÝˆq�-Ñ Ô ð ,Ý.¨q°$Ñ7Ô7ˆÝ˜_¨a¬mÑ<Ô<Ð<Ø+ˆÔå˜ &Ð)Ñ)Ô)Ð)Ð)Ð)r”   z)typing.Counter[int | FrameStateSizeEntry]ÚFRAME_COMPILE_COUNTERÚfuncc                ó<   — t           j        rt          | ¦  «        S | S r³   )r)   ÚcprofileÚcprofile_wrapper)ro  s    r•   Úmaybe_cprofilers  ê  s   € Ý„ð &Ý Ñ%Ô%Ð%Ø€Kr”   c                óH   ‡ — t          j        ‰ ¦  «        dˆ fd„¦   «         }|S )	Nr  r  r  r	  r˜   rŒ   c                 óX  •‡— t          j        ¦   «         }|st          d¦  «        ‚t          t          j                             t          j        ¦   «         ‰j	        › dt          |¦  «                             dd¦  «        › d�¦  «        ¦  «        }t          j        ¦   «         }	 t          j        ¦   «         } |j        ‰g| ¢R i |¤Ž}t          j        ¦   «         |z
  }n4# t           $ r' t"                               d¦  «         d} ‰| i |¤Ž}Y nw xY wt"                               d‰j	        ||¦  «         t)          j        |¦  «        }	 |                     |¦  «         n+# t.          $ r t"                               d|¦  «         Y nw xY wt"                               d	|¦  «         |                     d
¦  «        }		 t3          j        ddddddt          |¦  «        gt2          j        ¬¦  «        5 }
t3          j        dddt          |	¦  «        g|
j        ¬¦  «         t"                               d|	¦  «         d d d ¦  «         n# 1 swxY w Y   n˜# t<          $ r‹ t"                               d¦  «         |                     t(          j         j!        ¦  «         "                    d¦  «         |                     t(          j         j#        ¦  «         "                    d¦  «         Y nw xY wtI          t          |¦  «        ¦  «        xŠr#tJ          j&         '                    dˆfd„¦  «         |S )NzTrace id is Noner¾   ú/z.profilezfailed to enable cProfiler   z7### Cprofile for %s trace id [%s] took %.3f seconds ###zCannot write to %szRaw profile at %sz.svgÚ	gprof2dotz-fÚpstatsz"--node-label=total-time-percentagez!--node-label=self-time-percentagez--node-label=total-time)ÚstdoutÚdotz-Tsvgz-o)Ústdinz Generated SVG from profile at %szxFailed to generate SVG from profile -- dumping stats instead.Try installing gprof2dot and dot for a better visualizationé   Úlinkc                 ó   •— d‰ dœS )NÚcprofile_manifold_url)rå   Úurlr“   )Úmanifold_links   €r•   rÀ   z;cprofile_wrapper.<locals>.profile_wrapper.<locals>.<lambda>5  s   ø€ Ð!8ÀÐOÐO€ r”   )(r   Úcurrent_trace_idr-  r   ÚosÚpathÚjoinÚtempfileÚ
gettempdirr�   rÏ   ÚreplaceÚcProfileÚProfileÚtimeÚruncallÚ
ValueErrorÚlogÚ	exceptionÚwarningrx  ÚStatsÚ
dump_statsÚOSErrorÚwith_suffixÚ
subprocessÚPopenÚPIPEÚ
check_callry  ÚFileNotFoundErrorÚ
sort_statsÚSortKeyÚTIMEÚprint_statsÚ
CUMULATIVEr   rü   rý   rþ   )r  r  Útrace_idÚprofile_pathÚprofÚstart_tsÚretvalÚprofile_latencyÚpsÚsvg_pathÚgprof2dot_processr�  ro  s              @€r•   Úprofile_wrapperz)cprofile_wrapper.<locals>.profile_wrapperñ  s°  øø€ å!Ô2Ñ4Ô4ˆØð 	5Ý Ð!3Ñ4Ô4Ð4ÝÝŒG�LŠLÝÔ#Ñ%Ô%Ø”=ÐLÐL¥3 x¡=¤=×#8Ò#8¸¸cÑ#BÔ#BÐLÐLÐLñô ñ
ô 
ˆõ ÔÑ!Ô!ˆð	+Ý”y‘{”{ˆHð
 "�T”\ $Ð8¨Ð8Ð8Ð8°Ð8Ð8ˆFÝ"œi™kœk¨HÑ4ˆOˆOøÝð 	+ð 	+ð 	+Ý�MŠMÐ5Ñ6Ô6Ð6ØˆOØ�T˜4Ð* 6Ð*Ð*ˆFˆFˆFð	+øøøõ 	�ŠØEØŒMØØñ		
ô 	
ð 	
õ Œ\˜$ÑÔˆð	>Ø�OŠO˜LÑ)Ô)Ð)Ð)øÝð 	>ð 	>ð 	>Ý�MŠMÐ.°Ñ=Ô=Ð=Ð=Ð=ð	>øøøå�ŠÐ'¨Ñ6Ô6Ð6Ø×+Ò+¨FÑ3Ô3ˆð	EÝÔ!àØØØ8Ø7Ø-Ý˜Ñ%Ô%ðõ "”ðñ ô ð Jð #ÝÔ%Ø˜G T­3¨x©=¬=Ð9Ø+Ô2ðñ ô ð õ —’Ð>ÀÑIÔIÐIð!Jð Jð Jñ Jô Jð Jð Jð Jð Jð Jð Jøøøð Jð Jð Jð Jøøõ" !ð 	Eð 	Eð 	EÝ�KŠKðNñô ð ð �MŠM�&œ.Ô-Ñ.Ô.×:Ò:¸2Ñ>Ô>Ð>Ø�MŠM�&œ.Ô3Ñ4Ô4×@Ò@ÀÑDÔDÐDÐDÐDð	Eøøøõ @Ý�ÑÔñ
ô 
ð 
ˆ=ð 	õ ŒN×+Ò+ØØOÐOÐOÐOñô ð ð ˆs\   Â%:C  Ã .DÄDÅE! Å!%F	ÆF	Æ=4I Ç1AIÈ9I ÉI	É	I ÉI	ÉI ÉBK&Ë%K&r>  )r?  r@  )ro  r¨  s   ` r•   rr  rr  ð  sE   ø€ Ý„_�TÑÔðEð Eð Eð Eð Eñ ÔðEðN Ðr”   c                  ó   — e Zd ZU dZded<   dS )ÚConvertFrameBoxNzbool | NoneÚerror_on_graph_break)r�   r‘   r’   r«  Ú__annotations__r“   r”   r•   rª  rª  <  s$   € € € € € € à(,ÐÐ,Ð,Ð,Ñ,Ð,Ð,r”   rª  Úframe_stateú$dict[str, int | FrameStateSizeEntry]r   c                óN  — d| vrt           | d<   t           dz  a | d         }t          |t          ¦  «        st          dt	          |¦  «        › �¦  «        ‚t
          |         }t
          |xx         dz  cc<   d }t          j        ¦   «         x}r|j        }t          |||¬¦  «        S )NÚ_idr(   zframe_id must be an int, got )Úcompiled_autograd_idÚframe_idÚframe_compile_id)
ÚFRAME_COUNTERrO  rÛ   r-  rS  rn  r   Úcurrent_compile_idr±  r   )r­  r²  r³  r±  Úpriors        r•   Úget_compile_idr·  A  sÉ   € ð �KÐÐÝ*ˆ�EÑÝ˜ÑˆØ˜5Ô!€HÝ�h¥Ñ$Ô$ð OÝÐM½TÀ(¹^¼^ÐMÐMÑNÔNÐNå,¨XÔ6ÐÝ˜(Ð#Ð#Ô# qÑ(Ð#Ð#Ñ#àÐÝÔ1Ñ3Ô3Ð3€uð :Ø$Ô9ÐÝØ1ØØ)ðñ ô ð r”   c                  óH   — e Zd Z	 	 	 	 	 d"d#d„Zed$d„¦   «         Zddœd%d!„ZdS )&ÚConvertFrameAssertTFNr¤   rƒ   Ú	one_graphrÈ   rh  Úexport_constraintsú
Any | NoneÚpackageúCompilePackage | NoneÚrecompile_limitú
int | Noner˜   r™   c                óœ   — t          ¦   «          || _        || _        || _        || _        || _        || _        t          ¦   «         | _        d S r³   )	rz   rA  Ú
_one_graphÚ_exportÚ_export_constraintsÚ_packageÚ_recompile_limitrª  Ú_box)r¸   r¤   rº  rh  r»  r½  r¿  s          r•   r¹   zConvertFrameAssert.__init__Z  sN   € õ 	&Ñ'Ô'Ð'Ø)4ˆÔ&Ø#ˆŒØˆŒØ#5ˆÔ ØˆŒØ /ˆÔÝ#Ñ%Ô%ˆŒ	ˆ	ˆ	r”   ú*Callable[[CompilerFn], ConvertFrameAssert]c                ó   ‡ — ˆ fd„S )Nc                óT   •— t          | ‰j        ‰j        ‰j        ‰j        ¬¦  «        S ©N©r¿  )Úconvert_frame_assertrÂ  rÃ  rÄ  rÆ  ©Úbackendr¸   s    €r•   rÀ   z8ConvertFrameAssert._clone_with_backend.<locals>.<lambda>o  s0   ø€ Õ3ØØŒOØŒLØÔ$Ø Ô1ð 
ñ  
ô  
€ r”   r“   r·   s   `r•   Ú_clone_with_backendz&ConvertFrameAssert._clone_with_backendm  s   ø€ ð
ð 
ð 
ð 
ð 	
r”   r   rß   rï   rˆ   Úcache_entryúCacheEntry | NoneÚhooksrV   r­  r®  rÚ   rÛ   re   c               ó6	  — t          ¦   «          |j        }t          ¦   «         }t          ||¦  «        }|dk    r|t          |d¦  «        z   }	n|}	t	          |¦  «        }
t          |||
¦  «        }t                               |¦  «         |t          v rt          d¬¦  «        S t          j                             d¦  «        r8t          j                             d¦  «        |j        k    rt          d¬¦  «        S |j        dk    r*|j                             d¦  «        rt          d	¬¦  «        S |j        d
k    rt          d¬¦  «        S |j        dk    rV|j                             t          j                             t&          j        j        ¦  «        ¦  «        rt          d¬¦  «        S |j        dk    r|j        dk    rt          d¬¦  «        S |j        dk    r/|j        dk    r$t-          |j        ¦  «        st          d¬¦  «        S t1          |¦  «        r t3          ddddgt4          j        ¢¬¦  «         t9          |¦  «        st          d¬¦  «        S t;          j        ¦   «         }|r%d|j        j        v r|j        }|rd|j        j        v °|r$|j        t@          j!        u rt          dd¬¦  «        S tD          }tG          ¦   «         a"tI          |¦  «        }|j%        }tM          dd|j        |tO          |¦  «        |j        |j(        |j)        |j*        dœ¦  «         |j                             tV          ¦  «        s8|j        › d |j        › d!|j(        › �}tX          j-         .                    |¦  «         	 t_          ta          |¦  «        ¦  «        }| j1        �te          j3        | j1        ¬"¦  «        nti          j5        ¦   «         }|5  |5  tm          |j        |j7        |j8        |j        |j9        | j:        | j;        | j<        | j=        ||||	|||||d#z   | j>        | j?        ¬$¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |a"n# |a"w xY wtd          j@        r'| j>        � d#d%lAmB} | C                    | j>        ¦  «         |S )&Nr   éÿÿÿÿz&frame is already Dynamo-generated code©Úskip_reasonÚTORCHDYNAMO_DEBUG_FUNCTIONz>function name does not match TORCHDYNAMO_DEBUG_FUNCTION filterz	<genexpr>)ztransformers/file_utils.pyztransformers/utils/generic.pyzdiffusers/utils/outputs.pyz7skipping generator expression in transformers/diffusersÚ__setattr__z#__setattr__ frames are not compiledr¹   z,torch.optim __init__ frames are not compiledz<module>ú<string>zframe was generated by exec()z<lambda>z!frame is a namedtuple constructorzAttempt to trace generatorÚ z<Generators cannot be compiled directly with `torch.compile`.zbCall a generator from inside of a non-generator Python function and compile that function instead.©Úgb_typeÚcontextÚexplanationÚhintsz(no tensor-related objects found in frameztorch/_dynamo/convert_frame.pyFz2tracing is non-recursively disabled for this frame)Úapply_to_coder×  Údynamoz_convert_frame_assert._compile)rú   r²  Ú
compile_idrû   rù   Ú
cache_sizeÚaccumulated_cache_sizeú ú:rÌ  r(   )r­  rã  rÚ   r½  Úconvert_frame_box)ÚDynamoCache)Drs   r^  rA   r;   r<   r7   Úinput_codesrÅ   Úoutput_codesre   rƒ  ÚenvironÚgetrú   rû   Úendswithra  r„  Údirnamerü   Úoptimrò   rÈ   Ú
f_builtinsr3   rO   r,   ÚFUNDAMENTALrd  ÚsysÚ	_getframeÚf_backr*   Ú"_nonrecursive_disable_wrapper_coderÍ   r   r·  r²  r   rÏ   rù   Ú+num_cache_entries_with_same_id_matched_objsÚnum_cache_entriesr^   r@   Útraced_frame_infosrÄ   r   r   rÆ  r)   Úpatchr  ÚnullcontextÚ_compiler`  rb  ÚclosurerA  rÂ  rÃ  rÄ  rÅ  rÇ  Úcaching_precompiler½  ré  Úrecord_package)r¸   rï   rÑ  rÓ  r­  rÚ   rÙ   Úisolate_recompiles_idÚcache_entriesÚcache_entries_for_reasonsÚtotal_counträ  Ú
prev_frameÚprev_initial_global_staterã  r²  ÚinfoÚcompile_ctxÚrecompile_ctxr×   ré  s                        r•   Ú__call__zConvertFrameAssert.__call__w  sÎ  € õ 	ÑÔÐØŒ|ˆå DÑ FÔ FÐÝ5°dÐ<QÑRÔRˆð ! AÒ%Ð%Ø(5Õ8UØ�bñ9ô 9ñ )Ð%Ð%ð )6Ð%Ý2°4Ñ8Ô8ˆÝ'¨¨}¸kÑJÔJˆ
Ý�Š˜ÑÔÐØ•<ÐÐÝ%ØDðñ ô ð õ ŒJ�NŠNÐ7Ñ8Ô8ð	å”
—’Ð;Ñ<Ô<ÀÄÒLÐLå%Ø\ðñ ô ð ð Œ<˜;Ò&Ð&¨4Ô+;×+DÒ+Dðñ,
ô ,
Ð&õ &ØUðñ ô ð ð Œ<˜=Ò(Ð(Ý%Ð2WÐXÑXÔXÐXØŒ<˜:Ò%Ð%¨$Ô*:×*EÒ*EÝŒG�OŠO�EœKÔ0Ñ1Ô1ñ+
ô +
Ð%õ &ØJðñ ô ð ð Œ<˜:Ò%Ð%¨$Ô*:¸jÒ*HÐ*HÝ%Ð2QÐRÑRÔRÐRð ŒL˜JÒ&Ð&ØÔ  JÒ.Ð.Ý˜Ô)Ñ*Ô*ð /õ
 &Ð2UÐVÑVÔVÐVå˜ÑÔð 
	ÝØ4ØØZð5ðõ 'Ô2ðð		ñ 	ô 	ð 	õ # 5Ñ)Ô)ð 	Ý%ØFðñ ô ð õ ”]‘_”_ˆ
ð ð	+à0°JÔ4EÔ4QÐQÐQà#Ô*ˆJð ð	+à0°JÔ4EÔ4QÐQÐQð ð	àÔ!¥ZÔ%RÐRÐRå%Ø#ØPðñ ô ð õ %9Ð!Ý/Ñ1Ô1Ðå# KÑ0Ô0ˆ
ØÔ&ˆåØØ,àœ<Ø$Ý! *™oœoØ#Ô/Ø"&Ô"5Ø(ÔTØ*4Ô*Fðð ñ	
ô 	
ð 	
ð Œ|×&Ò&Õ'DÑEÔEð 	7Ø”lÐMÐM TÔ%5ÐMÐM¸Ô8KÐMÐMˆDÝÔ)×0Ò0°Ñ6Ô6Ð6ð"	=Ý)­.¸Ñ*DÔ*DÑEÔEˆKð
 Ô(Ð4õ ”¨TÔ-BÐCÑCÔCÐCåÔ+Ñ-Ô-ð ð
 ð ð ˜mð ð Ý!Ø”LØ”OØ”NØÔ$Ø”MØÔ2Ø”OØ”LØÔ,ØØØ!Ø-ØØØ +Ø)Ø ™Ø œMØ&*¤ið)ñ ô �ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð2 $=Ð Ð øÐ#<Ð Ð<Ð<Ð<Ð<åÔ$ð 	6¨¬Ð)BØ,Ð,Ð,Ð,Ð,Ð,ð ×&Ò& t¤}Ñ5Ô5Ð5ØˆsV   Í;AQ ÏQÏAP:Ð.QÐ:P>	Ð>QÑP>	ÑQÑQ ÑQÑQ ÑQÑQ ÑQ#©TFNNN)r¤   rƒ   rº  rÈ   rh  rÈ   r»  r¼  r½  r¾  r¿  rÀ  r˜   r™   )r˜   rÈ  ©rï   rˆ   rÑ  rÒ  rÓ  rV   r­  r®  rÚ   rÛ   r˜   re   ©r�   r‘   r’   r¹   ÚpropertyrÐ  r	  r“   r”   r•   r¹  r¹  Y  s‰   € € € € € ð ØØ)-Ø)-Ø&*ð&ð &ð &ð &ð &ð& ð
ð 
ð 
ñ „Xð
ð  ðqð qð qð qð qð qð qð qr”   r¹  Trº  r»  r¼  r½  r¾  r¿  rÀ  c                ó*   — t          | |||||¦  «        S )zHFully convert a frame into an FX graph, raising an exception if we fail.)r¹  )r¤   rº  rh  r»  r½  r¿  s         r•   rÍ  rÍ  +  s(   € õ ØØØØØØñô ð r”   )ÚOrderedDict)ÚRemovableHandlezdict[int, BytecodeHook]Ú_bytecode_hooksÚbytecode_hook_side_effectsútypes.CodeTypeútuple[str, ...] | Nonec                ó’   — t          j        | ¦  «        sdS t          j        | ¦  «                             t          ¦  «        }|€dS |S )z±Return Dynamo's replayed Python side-effect sources for compiled code.

    Returns ``None`` when ``code`` was not produced by Dynamo or no metadata was
    attached to it.
    N)r:   Úhas_contextÚget_contextrí  Ú'_BYTECODE_HOOK_SIDE_EFFECTS_CONTEXT_KEY)rÙ   Úside_effectss     r•   Úget_compiled_code_side_effectsr  H  sR   € õ Ô# DÑ)Ô)ð ØˆtÝÔ+¨DÑ1Ô1×5Ò5Ý/ñô €Lð ÐØˆtØÐr”   c                ó:   — t          t          | ¦  «        ¦  «        S )zNReturn whether Dynamo recorded replayed Python side effects for compiled code.)rÈ   r  ©rÙ   s    r•   Úcompiled_code_has_side_effectsr  Z  s   € åÕ.¨tÑ4Ô4Ñ5Ô5Ð5r”   Úsrc_codeÚdst_codec                ó¾   — t          j        | ¦  «        sd S t          j        | ¦  «        }t          |v r)|t                   t          j        |¦  «        t          <   d S d S r³   )r:   r  r  r  )r  r  Úsrc_contexts      r•   Ú_copy_code_contextr"  _  sb   € ÝÔ# HÑ-Ô-ð ØˆÝÔ*¨8Ñ4Ô4€KÝ.°+Ð=Ð=àÕ?Ô@õ 	Ô  Ñ*Ô*Õ+RÑSÐSÐSð >Ð=r”   Úhookr†   r  c                óL   — t          t          ¦  «        }| t          |j        <   |S )a*  Register hooks for bytecode generated by Dynamo. The hook can do some
    logging, as well as return a new code object to be used. Hooks can query
    `get_compiled_code_side_effects(new_code)` for replayed Python side effect
    sources. Please refer to `BytecodeHook` for the hook signature.
    )r  r  rÁ   )r#  Úhandles     r•   Úregister_bytecode_hookr&  i  s"   € õ �_Ñ-Ô-€FØ!%…O�F”IÑØ€Mr”   ©rh  r»  r­  Údistributed_stater½  údict[str, object]ÚlocalsÚbuiltinsrý  útuple[CellType]Útf_mode_stackú'list[torch.overrides.TorchFunctionMode]Úspeculation_logrc   Úinstructionsúlist[Instruction]Úcode_optionsrW   ú+dict[str, int | FrameStateSizeEntry] | Noner(  úDistributedState | NonerX   c               ób  ‡‡‡‡— ddl mŠmŠ ‰                     ¦   «          t	          ¦   «         }t          |	| ||||||
|||||‰|||¬¦  «        Šdˆˆˆˆfd„}	  |¦   «          t          ‰¦  «        }|j        }|€t          d¦  «        ‚|j	        st          d¦  «        ‚|j	        |	d d …<   |
 
                    |j        ¦  «         t          |	¦  «         t          |	¦  «         t          t          |	¦  «        ¦  «        |	d d …<   n)# t           $ r}t          ‰d	¬
¦  «        |_        ‚ d }~ww xY w|S )Nr   )ÚbisectÚtranslation_validation_enabled)r­  r/  Úexn_vt_stackr(  r½  r˜   r™   c                 ó˜  •— 	 ‰j                              ¦   «          t          ‰j         j        ¦  «        5  ‰                     ¦   «         5  ‰                     ¦   «          d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   nw# t          j        $ r ‰                     ¦   «          ‚ t          j	        t          j
        t          j        f$ r ‚ t          $ r!  ‰¦   «         r ‰ ‰j         j        ¦  «         ‚ w xY w‰j                              ¦   «          i ‰_        d S # ‰j                              ¦   «          i ‰_        w xY wr³   )ÚoutputÚmark_bytecode_tracing_startr   r©   Úset_current_txÚrunr+   ÚUnspecializeRestartAnalysisrŸ   ÚSpeculationRestartAnalysisÚTensorifyScalarRestartAnalysisÚ	SkipFramerf  Ú	shape_envÚcall_cleanup_hooksrb  )r6  r/  Útracerr7  s   €€€€r•   Ú
run_tracerztrace_frame.<locals>.run_tracer£  sÛ  ø€ ð	!ØŒM×5Ò5Ñ7Ô7Ð7Ý˜œÔ6Ñ7Ô7ð ð ¸×9NÒ9NÑ9PÔ9Pð ð Ø—
’
‘”�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøåÔ.ð 	ð 	ð 	Ø×!Ò!Ñ#Ô#Ð#ØåÔ*ÝÔ.ÝŒMð
ð 	ð 	ð 	ð
 Ýð 	ð 	ð 	Ø-Ð-Ñ/Ô/ð 0Ø��v”}Ô.Ñ/Ô/Ð/Øð	øøøð
 ŒM×,Ò,Ñ.Ô.Ð.Ø ˆFŒOˆOˆOøð ŒM×,Ò,Ñ.Ô.Ð.Ø ˆFŒOÐ Ð Ð Ð se   ƒ2B µBÁ
A+ÁBÁ+A/	Á/BÁ2A/	Á3BÁ6B ÂBÂB Â	BÂ
B ÂD' ÂA4DÄD' Ä'"E	z$tracer output_graph must not be Nonez*output_graph must have output_instructionsT)ÚerrorrÌ   )Útorch.fx.experimental.validatorr6  r7  Úrestartr`   ra   rX   r­   r-  Úoutput_instructionsÚupdater2  r4   r1   r0   r/   rf  Ú_torch_dynamo_tracer_output)rÙ   rÐ   r*  r+  rý  r¤   r-  rº  r/  r0  r2  rh  r»  r­  r(  r½  r8  rE  r¢   r:  re  r6  rD  r7  s           `            @@@r•   Útrace_framerL  w  s¨  øøøø€ ð( WÐVÐVÐVÐVÐVÐVÐVà×ÒÑÔÐÝ!Ñ#Ô#€LÝ"ØØØØØØØØØØØØØØ'Ø!Ø+Øð#ñ ô €Fð(!ð !ð !ð !ð !ð !ð !ð !ð !ð,Øˆ
‰ŒˆÝ*¨6Ñ2Ô2ˆØÔ+ˆØˆ>Ý Ð!GÑHÔHÐHØÔ)ð 	OÝ Ð!MÑNÔNÐNØ Ô4ˆ�Q�Q�Q‰Ø×Ò˜FÔ/Ñ0Ô0Ð0Ý(¨Ñ6Ô6Ð6Ý(¨Ñ6Ô6Ð6Ý0Õ1AÀ,Ñ1OÔ1OÑPÔPˆ�Q�Q�Q‰ˆøÝð ð ð Ý(:¸6ÈÐ(NÑ(NÔ(NˆÔ%Øøøøøðøøøð Ðs   ÁB,D Ä
D,ÄD'Ä'D,c                  ó\   — e Zd ZU dZded<   ded<   ded<   ded	<   	 	 	 	 ddd„Z	 	 dd d„Zd
S )!ÚDynamoOutputao  
    Represents the core data returned from a single dynamo run, including:
      - Guards, wrapped inside tracer_output.output_graph.guards
      - Generated bytecode
      - Other information needed for compilation.
    This data structure should capture all the "interesting" information dynamo
    produces on the frontend side before it enters user backend.
    rX   r¢   r  rŠ   úlist[list[str] | None]Úpycodezfloat | NoneÚlast_attempt_start_timeNFrÙ   rÓ  úHooks | NoneÚsaverÈ   r  úlist[CacheEntry] | NoneÚstrict_errorr˜   rS   c           	     óŒ   — | j         j        }|€t          d¦  «        ‚t          ||||r|j        nd |r|j        nd ||¬¦  «        S )Nz2output_graph must not be None when building guards©Úsave_guardsrU  )r¢   r­   r-  rS   Úguard_fail_fnÚguard_filter_fn)r¸   rÙ   rÓ  rS  r  rU  r­   s          r•   Úbuild_guardszDynamoOutput.build_guardsÜ  sj   € ð Ô)Ô6ˆØÐÝ Ð!UÑVÔVÐVÝ#ØØØØ#(Ð2ˆEÔÐ¨dØ%*Ð4ˆEÔ!Ð!°ØØ%ð
ñ 
ô 
ð 	
r”   Úargdefsútuple[Any, ...] | NoneÚ
kwdefaultsúdict[str, Any] | NoneÚGraphCaptureOutputc                ó(  — | j         j        }|€t          d¦  «        ‚t          t	          |                     ¦   «         |j        |j        |j        |j	        ¦  «        |j        |j
        | j        | j        | j         j        ||| j         j        ¦	  «	        S )NzAoutput_graph must not be None when producing graph capture output)r¢   r­   r-  r`  rY   Údump_guards_stateÚimport_sourcesrB  Úexport_metadataÚtracked_fakes_id_to_sourceÚtraced_coderŠ   rP  rý  r`  )r¸   r\  r^  r­   s       r•   Úgraph_capture_outputz!DynamoOutput.graph_capture_outputñ  s¢   € ð
 Ô)Ô6ˆØÐÝ ØSñô ð õ "ÝØ×.Ò.Ñ0Ô0ØÔ+ØÔ&ØÔ,ØÔ7ñô ð Ô'ØÔ$ØŒMØŒKØÔÔ&ØØØÔÔ(ñ
ô 
ð 	
r”   ©NFNF©rÙ   r  rÓ  rR  rS  rÈ   r  rT  rU  rÈ   r˜   rS   ©NN)r\  r]  r^  r_  r˜   r`  )r�   r‘   r’   Ú__doc__r¬  r[  rg  r“   r”   r•   rN  rN  Ì  sš   € € € € € € ðð ð &Ð%Ð%Ñ%ØÐÐÑØ"Ð"Ð"Ñ"Ø)Ð)Ð)Ñ)ð
 #ØØ15Ø"ð
ð 
ð 
ð 
ð 
ð. +/Ø,0ð
ð 
ð 
ð 
ð 
ð 
ð 
r”   rN  c                  óF   — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   dS )ÚBackendInputa   
    Represents core data structure that dynamo will pass to a backend, including:
      - Graph module
      - Example inputs
      - The FakeTensorMode used for compiling graph.
    This data structure should capture all the information dynamo produces
    on for the user backend.
    rÏ   Ú
backend_idútorch.fx.GraphModuler  r
   Úexample_inputsz,torch._subclasses.fake_tensor.FakeTensorModer–   r‚   rª   N)r�   r‘   r’   rk  r¬  r“   r”   r•   rm  rm    sW   € € € € € € ðð ð €O€O�OØ&Ð&Ð&Ñ&ØÐÐÑØ;Ð;Ð;Ñ;Ø*Ð*Ð*Ñ*Ð*Ð*r”   rm  )Úfrozenc                  ó®   — e Zd ZU ded<   ded<   ded<   ded<   d	ed
<   d	ed<   dZded<    ej        e¬¦  «        Zded<   dddœd"d„Z	d#d„Z
d$d„Zd%d!„ZdS )&ÚGraphRuntimeEnvr  rŠ   rO  rP  údict[str, str]rc  rÑ   Úused_globalsr]  rý  r\  Nr_  r^  )Údefault_factoryúset[str]Úexternal_refsF©Úextra_globalsÚuse_python_codegenrn  rÏ   Úcompiled_fnúCallable[..., Any]rz  r{  rÈ   r˜   c               óF  — d„ | j                              ¦   «         D ¦   «         }i |¥| j        ¥|pi ¥||i¥}|                      |¦  «         |r|                      ||¦  «        }n| j        }t          j        ||| j        | j	        ¬¦  «        }| j
        r| j
        |_        |S )Nc                ó>   — i | ]\  }}|t          j        |¦  «        “ŒS r“   )Ú	importlibÚimport_module)rî   ÚaliasÚmodule_names      r•   ú
<dictcomp>z4GraphRuntimeEnv.forward_callable.<locals>.<dictcomp>3  s9   € ð 
ð 
ð 
á"��{ð •9Ô*¨;Ñ7Ô7ð
ð 
ð 
r”   )rý  r\  )rc  Úitemsru  Ú_check_external_refsÚ_build_python_wrapperrŠ   Útypesr   rý  r\  r^  Ú__kwdefaults__)	r¸   rn  r|  rz  r{  rc  r`  rŠ   r  s	            r•   Úforward_callablez GraphRuntimeEnv.forward_callable+  sç   € ð
ð 
à&*Ô&9×&?Ò&?Ñ&AÔ&Að
ñ 
ô 
ˆð
Øð
àÔð
ð Ð" ð
ð ˜ð	
ð 
ˆ	ð 	×!Ò! )Ñ,Ô,Ð,àð 	%Ø×1Ò1°)¸ZÑHÔHˆHˆHà”}ˆHåÔØØØ”LØ”Lð	
ñ 
ô 
ˆð Œ?ð 	0Ø $¤ˆBÔØˆ	r”   c                óÎ  — d„ | j         D ¦   «         }|st          d¦  «        ‚| j        }|j        }|j        d|…         }d                     |¦  «        }dg}|                     d|› d�¦  «         |D ]}|D ]}|                     d|› �¦  «         ŒŒ |                     d	¦  «         |                     d
¦  «         |                     d¦  «         d                     |¦  «        S )zCBuild Python source for the wrapper function from generated pycode.c                ó   — g | ]}|®|‘ŒS r³   r“   )rî   Úps     r•   rð   z@GraphRuntimeEnv._build_python_wrapper_source.<locals>.<listcomp>R  s   € Ð@Ð@Ð@˜a°!°-˜°-°-°-r”   z%No Python code generated from Dynamo.Nú, zdef __generate_func__():z    def __dynamo_func__(z):z        z        return __retz    return __dynamo_func__z/__dynamo_generated_func__ = __generate_func__()ú
)rP  ÚRuntimeErrorrŠ   Úco_argcountÚco_varnamesr…  rÄ   )	r¸   Úpycode_partsÚ	orig_codeÚargcountÚvarnamesÚargnamesÚ
func_linesÚparträ   s	            r•   Ú_build_python_wrapper_sourcez,GraphRuntimeEnv._build_python_wrapper_sourceP  s  € à@Ð@ 4¤;Ð@Ñ@Ô@ˆØð 	HÝÐFÑGÔGÐGØ”Mˆ	ØÔ(ˆØÔ(¨¨(¨Ô3ˆØ—9’9˜XÑ&Ô&ˆà0Ð1ˆ
Ø×ÒÐA°XÐAÐAÐAÑBÔBÐBØ ð 	5ð 	5ˆDØð 5ð 5�Ø×!Ò!Ð"3¨TÐ"3Ð"3Ñ4Ô4Ð4Ð4ð5à×ÒÐ0Ñ1Ô1Ð1Ø×ÒÐ6Ñ7Ô7Ð7Ø×ÒÐKÑLÔLÐLØ�yŠy˜Ñ$Ô$Ð$r”   r`  c                ó�   — |                       ¦   «         }|                     ¦   «         }t          ||¦  «         |d         }|j        S )z=Build a Python code object from the generated pycode strings.Ú__dynamo_generated_func__)rš  ÚcopyÚexecrÖ   )r¸   r`  rn  Úfunc_sourceÚ	namespacero  s         r•   r‡  z%GraphRuntimeEnv._build_python_wrapperd  sI   € ð ×7Ò7Ñ9Ô9ˆà$-§N¢NÑ$4Ô$4ˆ	õ 	ˆ[˜)Ñ$Ô$Ð$ØÐ4Ô5ˆØŒ}Ðr”   r™   c                óz   — g }| j         D ]}||vr|                     |¦  «         Œ|rt          d|› d�¦  «        ‚d S )Nz&Missing required external references: zM. Please load AOT compiled function with `f_globals=<enclosing global scope>`)rx  rÄ   r�  )r¸   r`  Úmissing_refsrÃ   s       r•   r†  z$GraphRuntimeEnv._check_external_refsr  sw   € àˆØÔ%ð 	)ð 	)ˆCØ˜)Ð#Ð#Ø×#Ò# CÑ(Ô(Ð(øàð 	Ýð^¸ð ^ð ^ð ^ñô ð ð	ð 	r”   )
rn  rÏ   r|  r}  rz  r_  r{  rÈ   r˜   r}  )r˜   rÏ   )r`  rÑ   rn  rÏ   r˜   r  )r`  rÑ   r˜   r™   )r�   r‘   r’   r¬  r^  ÚdataclassesÚfieldrµ   rx  rŠ  rš  r‡  r†  r“   r”   r•   rs  rs     só   € € € € € € àÐÐÑØ"Ð"Ð"Ñ"Ø"Ð"Ð"Ñ"Ø Ð Ð Ñ Ø#Ð#Ð#Ñ#Ø#Ð#Ð#Ñ#Ø(,€JÐ,Ð,Ð,Ñ,Ø/˜kÔ/ÀÐDÑDÔD€MÐDÐDÐDÑDð 04Ø#(ð#ð #ð #ð #ð #ð #ðJ%ð %ð %ð %ð(ð ð ð ðð ð ð ð ð r”   rs  Úbuiltins_dictc                óœ   — ddl }i }|                      ¦   «         D ]0\  }}	 |                     |¦  «         |||<   Œ!# t          $ r Y Œ-w xY w|S )zCFilter a builtins dict to only picklable entries for serialization.r   N)Úpickler…  Údumpsrf  )r¥  r§  r×   ÚkrH  s        r•   Ú_safe_builtins_dictrª  €  ss   € à€M€M€Mà€FØ×#Ò#Ñ%Ô%ð ð ‰ˆˆ1ð	Ø�LŠL˜‰OŒOˆOØˆF�1‰IˆIøÝð 	ð 	ð 	ØˆDð	øøøà€Ms   ¡<¼
A	ÁA	c                  ó    — e Zd ZU dZded<   ded<   ded<   ded	<   d
ed<   ded<   ded<   ded<   ded<   	 	 	 	 d%d&d „Zd'd"„Zed(d$„¦   «         ZdS ))r`  z)
    Minimal version of DynamoOutput
    rY   r­   rt  rc  zlist[CodeType]rf  r   rŠ   rO  rP  r]  rý  r\  r_  r^  rÑ   r`  NFrÙ   r  rÓ  rR  rS  rÈ   r  rT  rU  r˜   rS   c           	     ó\   — t          || j        ||r|j        nd |r|j        nd ||¬¦  «        S )NrW  )rS   r­   rY  rZ  )r¸   rÙ   rÓ  rS  r  rU  s         r•   r[  zGraphCaptureOutput.build_guardsž  sM   € õ $ØØÔØØ#(Ð2ˆEÔÐ¨dØ%*Ð4ˆEÔ!Ð!°ØØ%ð
ñ 
ô 
ð 	
r”   rs  c           
     ó"  — ddl m} i }| j        j        j                             ¦   «         D ])} ||¦  «        }|€Œ|| j        v r| j        |         ||<   Œ*|                      | j        ¦  «        }dd l	}|D ]e}||vr_| 
                    d¦  «        r'|| j        v rt          | j        |         ¦  «        ||<   ŒBt          ||¦  «        rt          ||¦  «        ||<   Œft          | j        | j        | j        || j        | j        | j        |¬¦  «        S )Nr   )Úget_global_source_nameÚ__builtins_dict__)rŠ   rP  rc  ru  rý  r\  r^  rx  )Útorch._dynamo.sourcer®  r­   rd  Úgraph_input_idx_to_local_sourcer[  r`  Ú_get_external_refsrŠ   r+  ra  rª  r«   rN  rs  rP  rc  rý  r\  r^  )r¸   r®  ru  ÚsourceÚglobal_namerx  Ú	_builtinsrÃ   s           r•   Úget_runtime_envz"GraphCaptureOutput.get_runtime_env°  s]  € Ø?Ð?Ð?Ð?Ð?Ð?àˆð ÔÔ.ÔN×UÒUÑWÔWð	Hð 	HØà0Ð0°Ñ8Ô8ˆKØÐ"ØØ˜dœnÐ,Ð,Ø,0¬N¸;Ô,G�˜[Ñ)øð ×/Ò/°´Ñ>Ô>ˆð 	%Ð$Ð$Ð$à ð 	@ð 	@ˆCØ˜,Ð&Ð&Ø—>’>Ð"5Ñ6Ô6ð @¸3À$Ä.Ð;PÐ;PÝ(;¸D¼NÈ3Ô<OÑ(PÔ(P�L Ñ%Ð%Ý˜Y¨Ñ,Ô,ð @Ý(/°	¸3Ñ(?Ô(?�L Ñ%øåØ”]Ø”;ØÔ.Ø%Ø”LØ”LØ”Ø'ð	
ñ 	
ô 	
ð 		
r”   rw  c                ó  — dd l }t          ¦   «         } |j        | ¦  «        D ][}|j        dk    r"|j        r|                     |j        ¦  «         Œ/|j        dk    r!|j        r|                     |j        ¦  «         Œ\|S )Nr   ÚLOAD_GLOBALÚ	LOAD_NAME)Údisrµ   Úget_instructionsÚopnameÚargvalrÅ   )rŠ   rº  rx  Úinstructions       r•   r²  z%GraphCaptureOutput._get_external_refsÖ  sš   € àˆ
ˆ
ˆ
å"%¡%¤%ˆð 0˜3Ô/°Ñ9Ô9ð 	:ð 	:ˆKàÔ! ]Ò2Ð2ØÔ%ð :Ø!×%Ò% kÔ&8Ñ9Ô9Ð9øàÔ# {Ò2Ð2ØÔ%ð :Ø!×%Ò% kÔ&8Ñ9Ô9Ð9øàÐr”   rh  ri  )r˜   rs  )rŠ   r  r˜   rw  )	r�   r‘   r’   rk  r¬  r[  r¶  Ústaticmethodr²  r“   r”   r•   r`  r`  Ž  sê   € € € € € € ðð ð $Ð#Ð#Ñ#Ø"Ð"Ð"Ñ"ØÐÐÑØÐÐÑØ"Ð"Ð"Ñ"Ø#Ð#Ð#Ñ#Ø#Ð#Ð#Ñ#Ø%Ð%Ð%Ñ%ØÐÐÑð
 #ØØ15Ø"ð
ð 
ð 
ð 
ð 
ð$$
ð $
ð $
ð $
ðL ðð ð ñ „\ðð ð r”   r`  c                  ó:   — e Zd ZU dZded<   ded<   ddddœdd„ZdS )ÚCaptureOutputaÐ  
    CaptureOutput should represent all the information produced from torch
    compiler for a single graph capture. This intends to be consumed by
    various compiler frontends so that we can share as much compiler internals
    as possible and avoid great divergence between different stacks.
    This data structure should eventually contain all the information compiler
    produces as more refactors happens to converge different compiler
    frontends.
    r`  rg  zBackendInput | NoneÚbackend_inputNF)r|  rz  r{  r|  úCallable[..., Any] | Nonerz  r_  r{  rÈ   r˜   r}  c               óÆ   — | j                              ¦   «         }| j        €t          d¦  «        ‚| j        j        }|p| j        j        }|                     ||||¬¦  «        S )Nzbackend_input must not be Nonery  )rg  r¶  rÂ  r-  rn  r  rŠ  )r¸   r|  rz  r{  Úruntime_envrn  s         r•   rŠ  zCaptureOutput.forward_callableú  st   € ð Ô/×?Ò?ÑAÔAˆØÔÐ%Ý Ð!AÑBÔBÐBØÔ'Ô2ˆ
Ø!ÐD TÔ%7Ô%DˆØ×+Ò+ØØØ'Ø1ð	 ,ñ 
ô 
ð 	
r”   )r|  rÃ  rz  r_  r{  rÈ   r˜   r}  )r�   r‘   r’   rk  r¬  rŠ  r“   r”   r•   rÁ  rÁ  ê  sc   € € € € € € ðð ð -Ð,Ð,Ñ,à&Ð&Ð&Ñ&ð
 26Ø/3Ø#(ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r”   rÁ  Úmodr
   ú"tuple[FunctionType, object | None]c                óB  — ddl }t          | t          j        j        ¦  «        �r¸| j        }t          |d¦  «        r|j        }| j        }t          |d¦  «        r|j        }t          | j
        ¦  «        dk    �r5t          | j        ¦  «        dk    �rt          t          j        j        j        j        ¦  «        dk    rðt          t          j        j        j        j        ¦  «        dk    rÄt          | j        ¦  «        dk    r¬t          | j        ¦  «        dk    r”t          t          j        j        j        j        ¦  «        dk    rht          t          j        j        j        j        ¦  «        dk    r<|t          j        j        j        k    r"|t          j        j        j        k    r| j        } n.t          | t          j        j        ¦  «        r| j        } n| j        } t          | d¦  «        r| j        | j        fS  |j        | ¦  «        r| dfS t3          d| › �¦  «        ‚)z’
    Utility function to get the function to trace, and optionally a bound self
    object, from a callable (nn.Module, function, or method).
    r   NÚ__self__zUnsupported model code type )ÚinspectrO  rü   rQ  rR  Úforwardr«   Ú__func__r	  ÚlenÚ_forward_pre_hooksÚ_forward_hooksÚmodulesÚmoduleÚ_global_forward_pre_hooksÚ_global_forward_hooksÚ_backward_pre_hooksÚ_backward_hooksÚ_global_backward_pre_hooksÚ_global_backward_hooksr  ÚGraphModuleÚ
_call_implrÉ  Ú
isfunctionr�  )rÆ  rÊ  Úresolved_forwardÚresolved_calls       r•   Úget_traced_fnrÝ    sé  € ð
 €N€N€Nå�#•u”x”Ñ'Ô'ñ  Øœ;ÐÝÐ# ZÑ0Ô0ð 	9à/Ô8ÐàœˆÝ�= *Ñ-Ô-ð 	3Ø)Ô2ˆMõ
 �Ô&Ñ'Ô'¨1Ò,Ñ,Ý�CÔ&Ñ'Ô'¨1Ò,Ñ,Ý•E”HÔ$Ô+ÔEÑFÔFÈ!ÒKÐKÝ•E”HÔ$Ô+ÔAÑBÔBÀaÒGÐGÝ�CÔ+Ñ,Ô,°Ò1Ð1Ý�CÔ'Ñ(Ô(¨AÒ-Ð-Ý•E”HÔ$Ô+ÔFÑGÔGÈ1ÒLÐLÝ•E”HÔ$Ô+ÔBÑCÔCÀqÒHÐHØ ¥E¤H¤OÔ$;Ò;Ð;Ø¥¤¤Ô!9Ò9Ð9ð ”+ˆCˆCÝ˜�UœXÔ1Ñ2Ô2ð 	Ø”.ˆCˆCà”,ˆCåˆs�JÑÔð AØŒ|˜Sœ\Ð)Ð)Ø	ˆÔ	˜CÑ	 Ô	 ð AØ�DˆyÐåÐ?¸#Ð?Ð?Ñ@Ô@Ð@r”   úinspect.Signaturec                ó.   — t          j        | d¬¦  «        S )NF)Úfollow_wrapped)rÊ  Ú	signature)r  s    r•   Ú_get_signaturerâ  ?  s   € ÝÔ˜R°Ð6Ñ6Ô6Ð6r”   r  útuple[Any, ...]r  r_  Ú	FrameInfoc           	     óL  — ddl }t          | ¦  «        \  }}|�|f|z   }|€i }t          |¦  «        } |j        |i |¤Ž}|                     ¦   «          |j        }|j        pd}	|j        j        }
|
s|	r}t          |	¦  «        t          |
¦  «        k    r0t          dt          |	¦  «        › dt          |
¦  «        › d�¦  «        ‚|                     d„ t          |
|	¦  «        D ¦   «         ¦  «         t          |j        |j        ||j        |j        pd|j        |j        ¬¦  «        S )	zL
    Create a frame to trace, given a model, args, and optional kwargs.
    r   Nr“   zclosure length (z) must match freevars length (ú)c                ó$   — i | ]\  }}||j         “ŒS r“   )Úcell_contents)rî   rå   Úcells      r•   r„  z_get_frame.<locals>.<dictcomp>`  s!   € ÐOÐOÐO©*¨$°ˆT�4Ô%ÐOÐOÐOr”   )rý  r\  r^  )r+  rÝ  râ  ÚbindÚapply_defaultsÚ	argumentsÚ__closure__rÖ   Úco_freevarsrÍ  r-  rJ  Úziprä  Ú__globals__Ú__dict__Ú__defaults__r‰  )rÆ  r  r  r+  r  Úself_optrá  Úbound_argumentsrb  rý  Úfreevarss              r•   Ú
_get_framerö  C  s\  € ð €O€O€Oå  Ñ%Ô%�L€BˆØÐØˆ{˜TÑ!ˆØ€~Øˆå˜rÑ"Ô"€IØ$�i”n dÐ5¨fÐ5Ð5€OØ×"Ò"Ñ$Ô$Ð$ØÔ(€HàŒnÐ" €GØŒ{Ô&€HØð 
�7ð 
Ýˆw‰<Œ<�3˜x™=œ=Ò(Ð(Ý Ø_¥3 w¡<¤<Ð_Ð_ÍsÐS[É}Ì}Ð_Ð_Ð_ñô ð ð 	�ŠØOÐO½¸HÀgÑ8NÔ8NÐOÑOÔOñ	
ô 	
ð 	
õ Ø
ŒØ
ŒØØÔØ”Ð$ "Ø”ØÔ$ðñ ô ð r”   ©ÚconstraintsÚ _is_export_deprecated_do_not_userø  úlist[Constraint] | Nonerù  c               óÎ   — t          | ||¦  «        }t          t          t          i ¦  «        ¦  «        ¦  «        5  t	          |||¬¦  «        cddd¦  «         S # 1 swxY w Y   dS )a�  
    This API captures a full graph for a model, given example inputs to trace with.

    Specifically, it takes a callable (nn.Module, method, or function), args, and
    optional kwargs, and returns Dynamo-captured graph along with other important
    compile-time information. This serves as the common graph-capture mechanism
    for different torch compiler AOT frontends (e.g. AOT precompile, export).

    Note that this API doesn't apply context managers like metrics context,
    and the expectation is that the caller will apply them depending
    on the use case.

    The CaptureOutput is separated into two parts:
    1. Frontend specific information, which includes:
        - guards
        - generated bytecode
        - other information tracked by OutputGraphCommon.
    2. Backend specific information (indexed by unique backend id) such as:
        - fx graph
        - example inputs
    r÷  N)rö  r   r   r·  Ú_fullgraph_capture_frame)rÆ  r  r  rø  rù  rï   s         r•   Úfullgraph_capturerý  n  s²   € õ: �s˜D &Ñ)Ô)€Eå	�­°rÑ(:Ô(:Ñ;Ô;Ñ	<Ô	<ð 
ð 
Ý'ØØ#Ø-Mð
ñ 
ô 
ð
ð 
ð 
ð 
ñ 
ô 
ð 
ð 
ð 
ð 
ð 
ð 
øøøð 
ð 
ð 
ð 
ð 
ð 
s   »AÁAÁ!Ac                  óV   — e Zd ZU ded<   ded<   ded<   ded<   ded<   d	ed
<   ded<   dS )rä  r  rÙ   r)  rÐ   r*  r+  r,  rý  r]  r\  r_  r^  N)r�   r‘   r’   r¬  r“   r”   r•   rä  rä  •  sf   € € € € € € àÐÐÑØÐÐÑØÐÐÑØÐÐÑØÐÐÑØ#Ð#Ð#Ñ#Ø%Ð%Ð%Ñ%Ð%Ð%r”   c               ó  ‡‡— ddl mŠ d Šdˆˆfd„}	 t          | j        | j        | j        | j        | j        |||d	t          ¦   «         ¬
¦
  «
        }n‡# t          t          t          f$ rm}t          |¦  «         t          j        r‚ |}|j        �(|j                             d ¦  «         |j        }|j        ­(|                     d ¦  «        |j        ‚d }~ww xY wt#          |                     | j        | j        ¦  «        ‰¦  «        S )Nr   )ÚTracingContextÚgmro  rp  úlist[torch.Tensor]r˜   c                ó>  •— ‰                      ¦   «         }|j        }|j        }|€t          d¦  «        ‚t	          | j        d         t          ¦  «        s*t          dt          | j        d         ¦  «        › �¦  «        ‚t          | j        d         | |||¦  «        Š| S )Nzfake_mode must not be Nonern  z)gm.meta['backend_id'] must be a str, got )	rí  r–   rª   r-  rO  ÚmetarÏ   rS  rm  )r  rp  r©   r–   rª   r   rÂ  s        €€r•   Úfullgraph_compilerz4_fullgraph_capture_frame.<locals>.fullgraph_compilerª  s¬   ø€ ð )×,Ò,Ñ.Ô.ˆØ#Ô-ˆ	Ø+Ô=ÐØÐÝ Ð!=Ñ>Ô>Ð>Ý˜"œ' ,Ô/µÑ5Ô5ð 	Ý ØY½DÀÄÈÔAVÑ<WÔ<WÐYÐYñô ð õ %ØŒG�LÔ! 2 ~°yÐBSñ
ô 
ˆð ˆ	r”   T)r¤   rh  r»  rº  Úrestart_reasons)r  ro  rp  r  r˜   ro  )Útorch._guardsr   Úcompile_framerÙ   rÐ   r*  r+  rý  rµ   rP   rN   rQ   rE   r)   ÚverboseÚ	__cause__Úwith_tracebackrÁ  rg  r\  r^  )	rï   rø  rù  r  Údynamo_outputre  Úcur_exnr   rÂ  s	          @@r•   rü  rü     sL  øø€ ð -Ð,Ð,Ð,Ð,Ð,à)-€Mðð ð ð ð ð ð ð$6å%ØŒJØŒMØŒLØŒNØŒMØ*Ø3Ø*ØÝ™EœEð
ñ 
ô 
ˆˆøõ Õ5µyÐAð 
6ð 
6ð 
6Ý˜AÑÔÐÝŒ>ð 	Øà!"ˆØÔÐ+ØÔ×,Ò,¨TÑ2Ô2Ð2ØÔ'ˆGð ÔÐ+ð ×Ò˜tÑ$Ô$¨!¬+Ð5øøøøð
6øøøõ Ø×*Ò*¨5¬=¸%Ô:JÑKÔKØñô ð s   “>A ÁCÁ)A(CÃCÚcallbackÚConvertFrameProtocolc                óX   ‡ ‡— t          ‰ dd ¦  «        }|�|S d
d„Šdˆ ˆfd	„}|‰ _        |S )NÚ_dynamo_fail_callbackr  r
   r  r˜   r   c                 ó    — t          d¦  «        ‚)Nz¨Dynamo: expected not to compile nested code - this happens because a Dynamo callback was triggered and succeeded in compiling when running fullgraph=True compiled code.)r�  )r  r  s     r•   Úcompile_frame_errorz.get_fail_callback.<locals>.compile_frame_errorã  s   € Ýð9ñ
ô 
ð 	
r”   re   c                 ó‚   •— t          j        t          dz   ‰¦  «        5   ‰| i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nz.compile_frame)Úmockrú  r�   )r  r  r  r  s     €€r•   Úfail_callbackz(get_fail_callback.<locals>.fail_callbackê  s’   ø€ ÝŒZ�Ð#3Ñ3Ð5HÑIÔIð 	-ð 	-Ø�8˜TÐ, VÐ,Ð,ð	-ð 	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-ð 	-ð 	-s   Ÿ4´8»8)r  r
   r  r
   r˜   r   )r  r
   r  r
   r˜   re   )rN  r  )r  r  r  s   ` @r•   Úget_fail_callbackr  Þ  si   øø€ Ý˜HÐ&=¸tÑDÔD€MØÐ ØÐð
ð 
ð 
ð 
ð-ð -ð -ð -ð -ð -ð -ð
 &3€HÔ"ØÐr”   r  rw  c               ó¨  ‡ ‡‡‡‡‡‡‡‡	‡
‡‡‡— t          ¦   «         Šdˆˆˆ ˆˆˆˆ	ˆ
ˆˆˆˆˆfd„}d}t          j        ¦   «         D �]}|t          j        ¦   «         _        	 t          d	|› �d
¬¦  «        5  t          ‰ |¦  «        \  }}|€t          d¦  «        ‚|j	        €t          d¦  «        ‚t          |||j	        j        |¬¦  «        cddd¦  «         c S # 1 swxY w Y   Œ¢# t          j        $ rô}t          |t          j        ¦  «        st!          j        ¦   «          t$                               dt)          t*          |j        ¦  «        ¦  «         t/          |dd¦  «        }|r|                     ¦   «          |                     |j        pt7          t9          |¦  «        ¦  «        ¦  «         t;          j        ¦   «         }|dk    rt=          dddg ¬¦  «         Y d}~�Œ d}~wt          j        $ rZ}t          |t          j        ¦  «        st!          j        ¦   «          t/          |dd¦  «        }|r|                     ¦   «          ‚ d}~ww xY wdS )a  
    A helper function taking a frame and backend, then return the generated bytecode
    and guards as a common data structure.
    This is a shared interface for multiple compiler frontends (e.g. torch.compile,
    torch.export) that needs to capture a graph out of python code.
    r0  r1  r2  rÑ   r˜   rX   c                óÀ   •— t          t          j        ¦  «        }t          ‰‰‰‰‰‰|‰‰| t	          t
          |¦  «        ‰	‰
‰‰‰¬¦  «        }|€t          d¦  «        ‚|S )Nr'  z.tracer_output must not be None after transform)rö   r   rè   rL  r   rW   r-  )r0  r2  r-  r¢   r+  rý  rÙ   r¤   r(  rh  r»  r­  rÐ   r*  rº  r½  r/  s       €€€€€€€€€€€€€r•   Ú	transformz compile_frame.<locals>.transform  s‹   ø€ õ BFÝ/Ô5ñB
ô B
ˆõ $ØØØØØØØØØØÝ•˜lÑ+Ô+ØØ1Ø#Ø/Øð!
ñ 
ô 
ˆð& Ð Ý Ð!QÑRÔRÐRØÐr”   NÚcompile_attempt_T©Úlog_pt2_compile_eventz:tracer_output must not be None after transform_code_objectzGtracer_output.output_graph must not be None after transform_code_object)r¢   rŠ   rP  rQ  zRestarting analysis due to %srK  éd   z!Excessive RestartAnalysis() callsrÛ  z’Dynamo attempted to trace the same frame 100+ times. Giving up on compiling as the compile time tradeoff is likely not worth the performance gain.rÜ  )r0  r1  r2  rÑ   r˜   rX   ) rc   r÷   Úcountr   rí  Úattemptrn   r5   r-  r­   rN  Úoutput_pycoder+   ÚRestartAnalysisrO  r@  r   rŸ   rŽ  r  rv   r'   Ú__traceback__rN  Ú_cleanup_output_graphrÅ   Úrestart_reasonrÏ   rS  r‹  rO   rA  )rÙ   rÐ   r*  r+  rý  r¤   rº  r  rh  r»  r­  r(  r½  r  rQ  r   rŠ   r¢   re  Úfailed_tracer_outputr/  s   ``````` `````       @r•   r  r  ó  s(  øøøøøøøøøøøøø€ õ0 %Ñ&Ô&€Oðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð: #ÐÝ”?Ñ$Ô$ð 3ñ 3ˆØ'.�ÔÑÔÔ$ð0	ÝÐ:°Ð:Ð:ÐRVÐWÑWÔWð ð Ý*?ÀÀiÑ*PÔ*PÑ'�˜-Ø Ð(Ý(ØTñô ð ð !Ô-Ð5Ý(Øañô ð õ $Ø"/Ø%Ø(Ô5ÔCØ,Cð	ñ ô ðð ð ð ñ ô ð ð ð ð ð ð ð ð øøøð ð ð ð ð øõ  Ô"ð 	ð 	ð 	Ý˜a¥Ô!CÑDÔDð 'ÝÔ$Ñ&Ô&Ð&Ý�HŠHØ/ÝÕ1°1´?ÑCÔCñô ð õ
 $+¨1Ð.KÈTÑ#RÔ#RÐ Ø#ð =Ø$×:Ò:Ñ<Ô<Ð<à×Ò Ô 0Ð @µC½¸Q¹¼±L´LÑAÔAÐAå&*¤i¡k¤kÐ#Ø˜Š}ˆ}ÝØ?Øð!2ð ðñ ô ð øøøøùøøøøõ Œ}ð 	ð 	ð 	Ý˜a¥Ô!CÑDÔDð 'ÝÔ$Ñ&Ô&Ð&å#*¨1Ð.KÈTÑ#RÔ#RÐ Ø#ð =Ø$×:Ò:Ñ<Ô<Ð<Øøøøøð	øøøðY3ð 3sK   ÁC%Á3ACÃ
C%ÃC	ÃC%Ã C	Ã!C%Ã%IÃ4C)G#Ç#IÇ5AI
É
I)rÚ   r½  rè  rÓ  rV   rÑ  rÒ  r  úlist[CacheEntry]r  rä  r6   rã  rè  úConvertFrameBox | Nonere   c               ó´  ‡‡‡‡‡‡‡‡
‡‡‡‡‡=‡>‡?‡@‡A— ddl m}m} dŠ?t          d¬¦  «        dMˆ=ˆfd„¦   «         }t          dNˆˆˆ
ˆˆˆˆ>ˆ?ˆˆˆˆˆˆˆAfd„¦   «         Š=t          ¦   «         }‰�‰                     | ¦  «        nt          j        ¦   «         }t          t          j        ¦  «        5  t          t          ‰¦  «        ¦  «        5  t          ddd¬¦  «        5  t          d¦  «                             ¦   «         5  |5  t#          ddd¬¦  «        5  |5  t%          ¦   «         ŠAt'          ¦   «         x}rt)          |t+          ¦   «         ¦  «        Š>nd Š>d }t-          |¦  «        r,|r*t/          ||t1          ‰¦  «        ¦  «        }|sdn|d         }|                     |ddœ¦  «         t5          ¦   «         }|r"d„ |D ¦   «         }|                     d|¦  «         t7          |‰¦  «        \  }Š@|rÀdOd„}t8                               d ‰@t=          t          ‰@¦  «         || ¦  «        |t>          ¦  «         dPˆ@fd"„} 	  | ¦   «          nj# t@          $ r]}!t          j!        rtE          d#¦  «        |!‚|rtE          d$¦  «        |!‚tG          tH          j%        tH          j%        ¦  «        |!_&        ‚ d }!~!ww xY wt8           '                    d%| j(        | j)        | j*        |d&z   d' +                    tY          j-        d&|z   ¬(¦  «         .                    ¦   «         ¦  «        ¦  «         t_          | |¦  «        }"ta          j1        ¦   «         }#d }$d }%d }&d }'d }(td          j3        j4        j5         6                    ¦   «          d })d }*t          j7        st          j8        st          j9        r|d)d*l:m;}+m<},m=}-  |+t          j7        ¦  «        x}.rt}          |.¦  «        ‚ |,t          j8        ¦  «        x}.rt}          |.¦  «        ‚ |-t          j9        ¦  «        x}.rt}          |.¦  «        ‚	  || ||	¦  «        \  })}*t          ¦   «          |*r@|*j@        x}/r7|/ A                    ¦   «         r#t…          | ¦  «         |rd+|v rt‡          ¦   «          t‰          |*‰¦  «         |)td          j3        j
        jE        rWt#          d,d-¬.¦  «        5  t8           F                    d/¦  «         t�          jH        d)¦  «         d d d ¦  «         n# 1 swxY w Y   d }0|*r|*j@        }0|0ri |0_I        |0jJ        x}1ri |1_K        d)d0l4mL}2 t›          |2¦  «        }3|%€Ï|0�Ít�          |0jO        ¦  «        }4t�          |0jP        jO        ¦  «        }5|0 Q                    ¦   «         }6t�          |0jR        jS        ¦  «        }7|0 T                    ¦   «         }8t�          |0jU        ¦  «        }9d1„ |0jV        D ¦   «         }:d2„ |0jW        D ¦   «         };td          j3        j4        j5                             ¦   «          nQd }4d }5d }6d }7i }8d }9t%          i ¦  «        }:t%          i ¦  «        };t%          ¦   «         ŠAta          j1        ¦   «         |#z
  d3z  Š?i d4|3“d5| j(        “d6| j)        “d7| j*        “d8|jX        “d9|jY        “d:|4“d;|5“d<|6“d=|7“d>|9“d?|$“d@|%“dA|'“dB|(“dC|:“dD|;“‰A‰?|)d ut          jZ        dt·          ‰?¦  «        |"t›          |8¦  «        |&dEœ	¥}<|                     |<¦  «         |r|*r|*j\        nt»          ¦   «         |_\        |*�;|*j@        �4|*j@        j^        s(|*j@        j_        j`        ja         6                    ¦   «          t‰          |*‰¦  «         cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         cd d d ¦  «         S # tÄ          $ �rC}!tÇ          |!¦  «        jd        }$t›          |!¦  «        }%tË          jf        ¦   «         g}&tÏ          |!| |‰¬F¦  «         td          jh         i                    dGdH„ dI„ ¬J¦  «         tÕ          jk        |!‰¦  «        \  }'}(t=          |!dKd ¦  «        }*tÙ          |!t@          tÚ          tÜ          tÞ          tà          tâ          tä          tæ          |tè          |tê          tì          tî          f¦  «        r‚ tñ          tÇ          |!¦  «        jd        › dLt›          |!¦  «        › �¦  «         y                    |!jz        ¦  «        d ‚d }!~!ww xY w# td          j3        j
        jE        rWt#          d,d-¬.¦  «        5  t8           F                    d/¦  «         t�          jH        d)¦  «         d d d ¦  «         n# 1 swxY w Y   d }0|*r|*j@        }0|0ri |0_I        |0jJ        x}1ri |1_K        d)d0l4mL}2 t›          |2¦  «        }3|%€Ï|0�Ít�          |0jO        ¦  «        }4t�          |0jP        jO        ¦  «        }5|0 Q                    ¦   «         }6t�          |0jR        jS        ¦  «        }7|0 T                    ¦   «         }8t�          |0jU        ¦  «        }9d1„ |0jV        D ¦   «         }:d2„ |0jW        D ¦   «         };td          j3        j4        j5                             ¦   «          nQd }4d }5d }6d }7i }8d }9t%          i ¦  «        }:t%          i ¦  «        };t%          ¦   «         ŠAta          j1        ¦   «         |#z
  d3z  Š?i d4|3“d5| j(        “d6| j)        “d7| j*        “d8|jX        “d9|jY        “d:|4“d;|5“d<|6“d=|7“d>|9“d?|$“d@|%“dA|'“dB|(“dC|:“dD|;“‰A‰?|)d ut          jZ        dt·          ‰?¦  «        |"t›          |8¦  «        |&dEœ	¥}<|                     |<¦  «         |r|*r|*j\        nt»          ¦   «         |_\        |*�;|*j@        �4|*j@        j^        s(|*j@        j_        j`        ja         6                    ¦   «          t‰          |*‰¦  «         w xY w# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )QNr   )ÚBisectValidationExceptionÚValidationExceptiong        Úcompile_inner)Ú
phase_namerÙ   r   rº  rÈ   rÓ  rV   r˜   ú4tuple[ConvertFrameReturn, DynamoTracerOutput | None]c           
     ó   •— t          j        ¦   «         5 }‰s1|                     t          j                             ¦   «         ¦  «         |                     t          j        j                             t          j
        t          t          j        ¦   «         ¦  «        ¦  «        ¦  «         |                     t          j        ¦   «         ¦  «         |                     t           ¦  «          ‰| ||¦  «        }t          j                             ¦   «         dk    rt'          d¦  «        ‚|cd d d ¦  «         S # 1 swxY w Y   t)          ¦   «         d fS )Nr   zQTorch function mode stack state changed while dynamo tracing, please report a bug)r  r  r  rü   ÚcompilerÚ_compile_session_contextÚ_dynamoÚcallback_handlerÚinstall_callbacksr   ÚDYNAMOrÏ   r   rµ  rl   Úrecordr   r  Ú_len_torch_function_stackr-  re   )rÙ   rº  rÓ  rè   r×   Ú_compile_innerrh  s        €€r•   r,  z_compile.<locals>.compile_innerƒ  st  ø€ õ Ô!Ñ#Ô#ð 	 uð ð OØ×#Ò#¥E¤N×$KÒ$KÑ$MÔ$MÑNÔNÐNØ×ÒÝ”Ô.×@Ò@Ý#Ô*­CµÔ0QÑ0SÔ0SÑ,TÔ,Tñô ñô ð ð
 ×ÒÕ =Ô DÑ FÔ FÑGÔGÐGØ×ÒÕ CÑDÔDÐDØ#�^ D¨)°UÑ;Ô;ˆFÝŒx×1Ò1Ñ3Ô3°qÒ8Ð8Ý$Øgñô ð ð ð+	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ0 Ñ Ô Øð
ð 	
s   •DD5Ä5D9Ä<D9ú-tuple[ConvertFrameReturn, DynamoTracerOutput]c                óº  •‡ ‡— t          j         ¦   «         x}}d8d„} |d‰ j        ‰ j        ‰ j        ‰ ¦  «         d‰ j        v }|r(t          j                             dˆ fd„ˆ fd„¬¦  «         d Šddlm}  |‰ t          j
        ¦  «        }	 |rt          j        |¦  «        nt          j        ¦   «         5  t          ‰ ‰'‰(‰‰‰!|‰*‰$‰%‰&‰"‰)¬¦  «        }	d d d ¦  «         n# 1 swxY w Y   ni# t          j        $ rW}
|rt"                               d¦  «         |
j        €t)          d¦  «        d ‚t+          d|
› �¬¦  «        |
j        fcY d }
~
S d }
~
ww xY w‰"�‰"j        €t)          d¦  «        ‚|	j        Š|	j        }|	j        �|	j        }‰€t)          d¦  «        ‚ |d‰ j        ‰ j        ‰ j        ‰¦  «         |r(t          j                             dˆ fd„ˆfd„¬¦  «         |j        €t)          d¦  «        ‚|j        }t7          |                     ¦   «         ¦  «        t;          j        ‰¦  «        t>          <   tA          tB           "                    ¦   «         ¦  «        D ]U\  }}tG          d|› �d ¬!¦  «        5   |‰ ‰¦  «        }|�|‰urtI          ‰|¦  «         |Šd d d ¦  «         n# 1 swxY w Y   ŒV‰ tJ          ‰<   tL           '                    ‰¦  «         ||z
  Š#dd"l(m)} |‰j*        v rd#d$l+m,}  |‰¦  «         d9d%„}‰€t)          d&¦  «        ‚ |‰ ¦  «        } |‰¦  «        }‰ j-        d |…         ‰j-        d |…         k    r<d'}|d(‰ j-        d |…         › d)�z  }|d*‰j-        d |…         › �z  }t)          |¦  «        ‚‰ j.        ‰j.        k    r,d+}|d,‰ j.        › d)�z  }|d-‰j.        › �z  }t)          |¦  «        ‚‰ j/        ‰j/        k    r,d.}|d/‰ j/        › d)�z  }|d0‰j/        › �z  }t)          |¦  «        ‚|j0        r&| 1                    ¦   «         rt+          d1¬¦  «        |fS |j2        €t)          d2¦  «        ‚|j3        th          j5        ‰<   t          j6        ¦   «         }tn          j8        r&| 9                    to          j:        ¦   «         ¦  «         tG          d3d ¬!¦  «        5  |5  |	 ;                    ‰ |‰)d u‰¬4¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   ‰)�o|j<        €t)          d5¦  «        ‚‰) =                    |j<        ‰¦  «         ‰) >                    |j?        j@        ¦  «         ‰) A                    |jB        jC        ¦  «         ‰ �t‰          ‰ ¦  «        nd6}d7|z   }t‹          ‰|jF        ‰ |¦  «        }| 1                    ¦   «         s!|jG        �| G                    |j2        ¦  «         t‘          |¦  «        |fS ):NÚprefixrÏ   rå   rá   Úline_norÛ   rÙ   r   r˜   r™   c           	     ó¨   — t                                t          j        ¦  «        r-t                                t          | ||||¦  «        ¦  «         d S d S r³   )Úbytecode_logÚisEnabledForÚloggingÚDEBUGÚdebugro   )r;  rå   rá   r<  rÙ   s        r•   Úlog_bytecodez6_compile.<locals>._compile_inner.<locals>.log_bytecode¬  s[   € õ ×(Ò(­¬Ñ7Ô7ð Ý×"Ò"Ý# F¨D°(¸GÀTÑJÔJñô ð ð ð ðð r”   zORIGINAL BYTECODEÚtorch_dynamo_resume_inÚartifactc                 ó   •— ‰ j         dz   ddœS )NÚ_ORIGINAL_BYTECODEÚstring©rå   Úencoding©rú   r  s   €r•   rÀ   z2_compile.<locals>._compile_inner.<locals>.<lambda>Á  ó   ø€ Ø œLÐ+?Ñ?Ø (ð%ð %€ r”   c                 óP   •— t          j        ‰ ¦  «                              ¦   «         S r³   ©rº  ÚBytecoder  s   €r•   rÀ   z2_compile.<locals>._compile_inner.<locals>.<lambda>Å  s   ø€ ¥3¤<°Ñ#5Ô#5×#9Ò#9Ñ#;Ô#;€ r”   ©Úmetadata_fnÚ
payload_fnr(   )Ú)get_dynamo_config_override_for_compile_idr'  z,No graph captured with export/fullgraph=Truez=SkipFrame exception must have _torch_dynamo_tracer_output setz0Dynamo decided to skip the frame while tracing: rÖ  z;compiler collective wasn't run before compilation completedz+out_code must not be None after compilationzMODIFIED BYTECODEc                 ó   •— ‰ j         dz   ddœS )NÚ_MODIFIED_BYTECODErH  rI  rK  r  s   €r•   rÀ   z2_compile.<locals>._compile_inner.<locals>.<lambda>  rL  r”   c                 óP   •— t          j        ‰ ¦  «                              ¦   «         S r³   rN  )Úout_codes   €r•   rÀ   z2_compile.<locals>._compile_inner.<locals>.<lambda>  s   ø€ ¥3¤<°Ñ#9Ô#9×#=Ò#=Ñ#?Ô#?€ r”   z+tracer_output.output_graph must not be NoneÚbytecode_hooks_Tr  )ÚBREAKPOINT_MARKERr   )Úregister_breakpoint_codec                óœ   — dd l }| j        | j        z   t          | j        |j        z  ¦  «        z   t          | j        |j        z  ¦  «        z   S )Nr   )rÊ  r‘  Úco_kwonlyargcountrÈ   Úco_flagsÚ
CO_VARARGSÚCO_VARKEYWORDS)rÙ   rÊ  s     r•   Ú
count_argsz4_compile.<locals>._compile_inner.<locals>.count_args-  sY   € ØˆNˆNˆNð Ô ØÔ(ñ)å�t”} wÔ'9Ñ9Ñ:Ô:ñ;õ �t”} wÔ'=Ñ=Ñ>Ô>ñ?ðr”   z8out_code must not be None after bytecode hook processingzarg mismatch: zold code object has args rŽ  znew code object has args zfree var mismatch: zold code object has free var znew code object has free var zcell var mismatch: zold code object has cell var znew code object has cell var z#export mode produced an empty graphzoutput.guards must not be Noner[  )rÓ  rS  r  z&check_fn.guards_state must not be NoneÚUnknownzTorch-Compiled Region: )r;  rÏ   rå   rÏ   rá   rÏ   r<  rÛ   rÙ   r   r˜   r™   ©rÙ   r   r˜   rÛ   )Ir‹  rú   rû   rù   rü   rý   rþ   Úgraph_id_filterrS  r)   Údebug_dynamo_config_overriderú  r  rû  r  r+   rA  rŽ  rB  rK  r-  re   Ú
all_statesrŠ   r¢   rQ  r­   rX  Ú$get_replayed_side_effect_source_refsr:   r  r  Ú	enumerater  r[  rn   r"  ry   rë  rÅ   Úbytecode_debuggerrY  Ú	co_constsÚtorch._C._dynamo.eval_framerZ  r’  rî  Úco_cellvarsrh  Úis_empty_graphr/  Úcleanupsrk   Úinstancer  r   rè   r  Útemp_restore_stackr[  Úguards_stateÚadd_guarded_codeÚadd_inlined_sourcer©   rf  Úupdate_device_typeÚcurrent_tracerÚgraphrÏ   rU   Úguard_managerÚguard_export_fnrh   )+rÙ   rº  rÓ  rQ  Ú
start_timerC  Úis_resumption_framerS  Údynamo_config_overrider  re  r¢   r:  r¿   r#  Úhook_outputrY  rZ  r`  Útotal_argcount_oldÚtotal_argcount_newÚmsgÚbuild_guards_ctxÚcheck_fnÚcompile_id_strÚannotation_strÚguarded_coderW  r+  r  rÑ  rý  rã  r¤   r(  Údynamo_time_before_restartrh  r»  r­  rÐ   r*  r½  r  s+   `                          @€€€€€€€€€€€€€€€r•   r8  z _compile.<locals>._compile_inner£  sÈ  øøø€ õ 04¬y©{¬{Ð:Ð *ð	ð 	ð 	ð 	ð 	ˆØØŒLØÔØÔØñ	
ô 	
ð 	
ð 7¸$¼,ÐFÐØð 	ÝŒN×+Ò+Øðð ð ð ð <Ð;Ð;Ð;ð ,ñ ô ð ð ˆØNÐNÐNÐNÐNÐNà!JÐ!JØ�Ô;ñ"
ô "
Ðð!	ð *ð.•”Ð3Ñ4Ô4Ð4åÔ+Ñ-Ô-ðð õ
 !.ØØØØØØØØ#Ø!Ø'9Ø +Ø&7Ø#ð!ñ !ô !�ðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð øøõ( Œ}ð 	ð 	ð 	Øð JÝ—	’	ÐHÑIÔIÐIØÔ,Ð4Ý$ØSñô àðõ #Ø VÐSTÐ VÐ Vðñ ô ð Ô-ð	ð ð ð ð ð ð øøøøð	øøøð Ð(Ð->Ô-IÐ-QÝ ØMñô ð ð !Ô)ˆØ%Ô3ˆØÔ0Ð<Ø&3Ô&KÐ#àÐÝ Ð!NÑOÔOÐOØˆØØŒLØÔØÔØñ	
ô 	
ð 	
ð ð 	ÝŒN×+Ò+Øðð ð ð ð @Ð?Ð?Ð?ð ,ñ ô ð ð Ô%Ð-Ý Ð!NÑOÔOÐOØÔ+ˆå�&×=Ò=Ñ?Ô?Ñ@Ô@õ 	Ô  Ñ*Ô*Õ+RÑSõ #¥?×#9Ò#9Ñ#;Ô#;Ñ<Ô<ð 	+ð 	+‰IˆC�ÝÐ5°Ð5Ð5ÈTÐRÑRÔRð +ð +Ø"˜d 4¨Ñ2Ô2�ØÐ*Ø"¨(Ð2Ð2Ý*¨8°[ÑAÔAÐAØ*�Hð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +øð #'��hÑÝ×Ò˜Ñ"Ô"Ð"Ø%<¸zÑ%IÐ"à8Ð8Ð8Ð8Ð8Ð8à Ô 2Ð2Ð2ØLÐLÐLÐLÐLÐLà$Ð$ XÑ.Ô.Ð.ð	ð 	ð 	ð 	ð ÐÝ ØJñô ð ð (˜Z¨Ñ-Ô-ÐØ'˜Z¨Ñ1Ô1ÐàÔÐ0Ð0Ð0Ô1ØÔ#Ð$7Ð%7Ð$7Ô8ò9ð 9ð #ˆCØÐX¨tÔ/?Ð@SÐASÐ@SÔ/TÐXÐXÐXÑXˆCØØW¨HÔ,@ÐATÐBTÐATÔ,UÐWÐWñˆCõ ! Ñ%Ô%Ð%àÔ˜xÔ3Ò3Ð3Ø'ˆCØÐG°4Ô3CÐGÐGÐGÑGˆCØÐI°8Ô3GÐIÐIÑIˆCÝ  Ñ%Ô%Ð%àÔ˜xÔ3Ò3Ð3Ø'ˆCØÐG°4Ô3CÐGÐGÐGÑGˆCØÐI°8Ô3GÐIÐIÑIˆCÝ  Ñ%Ô%Ð%ð Œ=ð 	˜V×2Ò2Ñ4Ô4ð 	å"Ð/TÐUÑUÔUØðð ð
 Œ=Ð Ý Ð!AÑBÔBÐBØ,2¬O�Ô Ñ)õ &Ô/Ñ1Ô1ÐÝ.Ô4ð 	Ø×*Ò*Ý3ÔFÑHÔHñô ð õ ˜.ÀÐEÑEÔEð 	ð 	ÐGWð 	ð 	Ø$×1Ò1ØØØ DÐ(Ø+ð	 2ñ ô ˆHð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð ÐØÔ$Ð,Ý$Ð%MÑNÔNÐNØ×$Ò$ XÔ%:¸HÑEÔEÐEØ×&Ò& vÔ'=Ô'IÑJÔJÐJØ×&Ò& vÔ'<Ô'BÑCÔCÐCà,6Ð,B�˜Z™œ˜È	ˆØ2°^ÑCˆÝ"ØØÔ"ØØñ	
ô 
ˆð ×$Ò$Ñ&Ô&ð 	1¨5Ô+@Ð+Lð ×!Ò! &¤-Ñ0Ô0Ð0å  Ñ.Ô.°Ð=Ð=s‹   Â)C+ Â6CÃC+ ÃC#Ã#C+ Ã&C#Ã'C+ Ã+EÃ:AEÅEÅEÉ8%J)Ê)J-	Ê0J-	Ò*S,Ò-SÓ	S,ÓS	ÓS,ÓS	ÓS,Ó,S0Ó3S0râ  T)Úreset_event_log_on_exitr  z+pytorch.wait_counter.entire_forward_compilez_compile.compile_innerÚentire_frame_compileÚ!dynamo_cumulative_compile_time_us)r-  Údynamo_compile_column_usz$Unable to find recompilation reasonsF)Úrecompile_reasonÚ#inline_inbuilt_nn_modules_candidatec                ó2   — h | ]} |¦   «         d d…         ’ŒS )Né   r“   )rî   Úuser_contexts     r•   ú	<setcomp>z_compile.<locals>.<setcomp>½  s4   € ð !ð !ð !Ø)5��‘”˜t ˜tÔ$ð!ð !ð !r”   Úrecompile_user_contextsrÏ   c                ó8   — d| j         › d| j        › d| j        › d�S )Nú'z' (rç  ræ  )rú   rû   rù   r  s    r•   Úformat_func_infoz"_compile.<locals>.format_func_infoÅ  s+   € ØU˜4œ<ÐUÐU¨DÔ,<ÐUÐU¸tÔ?RÐUÐUÐUÐUr”   z«torch._dynamo hit config.%s (%s)
   function: %s
   last reason: %s
To log all recompilation reasons, use TORCH_LOGS="recompiles".
To diagnose recompilation issues, see %sr   c                 ó†   •— t          dd‰ › �d‰ › dt          t          ‰ ¦  «        › d�d‰ › d�dt          › d	�g¬
¦  «         d S )NzDynamo recompile limit exceededzLimit type: zLDynamo attempted to recompile the code object too many times, exceeding the z$ cache size limit (currently set to zj). Excessive recompilations can degrade performance due to the compilation overhead of each recompilation.z‚To monitor recompilations, enable TORCH_LOGS=recompiles. If recompilations are expected, consider increasing torch._dynamo.config.z to an appropriate value.zSee z) for tips on dealing with recompilations.rÜ  )rO   rN  r)   r}   )Ú
limit_types   €r•   Ú(raise_unimplemented_cache_limit_exceededz:_compile.<locals>.raise_unimplemented_cache_limit_exceeded×  sš   ø€ ÝØ=Ø7¨:Ð7Ð7ð!YØ%/ð!Yð !YÝU\Õ]cÐeoÑUpÔUpð!Yð !Yð !Yð
aà;Eðað að að ^Õ2Ð]Ð]Ð]ð	ðñ ô ð ð ð r”   z/Hard failure due to fail_on_recompile_limit_hitz"Hard failure due to fullgraph=TruezBtorchdynamo start compiling %s %s:%s, stack (elided %s frames):
%sé   rÛ  rß   r(   )Ú_validate_backend_namesÚ_validate_dynamo_config_keysÚ_validate_inductor_config_keyszsize mismatch at indexÚgcÚ
gc_time_us)rˆ  z run_gc_after_compile: running gc)Ú
curr_framec                ó   — h | ]	}|j         ’Œ
S r“   ©r’   ©rî   Úops     r•   rŽ  z_compile.<locals>.<setcomp>›  s   € Ð$XÐ$XÐ$X¸ R¤_Ð$XÐ$XÐ$Xr”   c                ó   — h | ]	}|j         ’Œ
S r“   rž  rŸ  s     r•   rŽ  z_compile.<locals>.<setcomp>œ  s'   € ð (ð (ð (Ø(*�B”Oð(ð (ð (r”   g    eÍÍAÚ	frame_keyrú   rû   rù   rä  rå  Úguard_countÚshape_env_guard_countÚgraph_op_countÚgraph_node_countÚgraph_input_countÚ	fail_typeÚfail_reasonÚfail_user_frame_filenameÚfail_user_frame_linenoÚnon_compliant_opsÚcompliant_custom_ops)	r  Údynamo_time_before_restart_sÚhas_guarded_codeÚspecialize_floatÚ
is_forwardÚ%dynamo_compile_time_before_restart_usÚstack_traceÚgraph_node_shapesÚexception_stack_tracerk  rE  c                 ó   — dddœS )NÚdynamo_errorrH  rI  r“   r“   r”   r•   rÀ   z_compile.<locals>.<lambda>X  s   € Ø*Ø (ð%ð %€ r”   c                 ó(   — t          j        ¦   «         S r³   ©Ú	tracebackÚ
format_excr“   r”   r•   rÀ   z_compile.<locals>.<lambda>\  s   € ¥9Ô#7Ñ#9Ô#9€ r”   rP  rK  z: )rÙ   r   rº  rÈ   rÓ  rV   r˜   r.  )rÙ   r   rº  rÈ   rÓ  rV   r˜   r9  )rÙ   r   r˜   rÏ   )r˜   r   ){rG  r*  r+  r   rs  rr   r:   r  rû  r   r)   Úuse_lazy_graph_moduler   r   rj   r    Úguardrn   rµ   r   r_   rb   r9   rT   rB   Úupdate_outerrq   r8   rŽ  r�  rN  r}   rP   Úfail_on_recompile_limit_hitrG   rg   rf   ÚRUN_ONLYÚframe_exec_strategyrB  rú   rû   rù   r…  r&   ró   Úformatr  r‹  Útime_nsrü   r2  ÚutilsÚReinplaceCountersrŸ   Údebug_backend_overriderd  Údebug_inductor_config_overriderc  r—  r˜  r™  r�  r\   r­   Úhas_outputsr[   rZ   r¯   Úrun_gc_after_compiler  rš  ÚcollectÚlocal_scopeÚroot_txrb  rœ  rÏ   rÍ  r/  rB  Úcount_callsru  ÚnodesÚget_graph_sizes_structuredÚplaceholdersr¬  r­  r÷  rø  r°  r|   r«  ri   rh  r©   Úguards_contextÚdynamo_guardsrf  rS  r’   rº  r»  rm  rý   rþ   r+   Úget_exc_messagerO  rQ   rM   rF   r-  Ú
IndexErrorr   r   rN   rL   rJ   rK   rI   r  r#  )BrÙ   rÐ   r*  r+  rý  r¤   rº  rh  r»  rÓ  rÑ  r  r  rä  rï   r­  rã  rÚ   r½  rè  r*  r+  r,  Úmetrics_contextÚpackage_code_contextÚ
compile_pgr‰  Úreasonsr�  Úuser_contexts_msgÚexceededr’  r•  re  r³  Ústart_time_nsr¨  r©  rµ  rª  r«  rƒ  r¢   r—  r˜  r™  Úerrr­   r:  rD  rœ  r¢  r£  r¤  r¥  r¦  r´  r§  r¬  r­  Úmetricsr8  r(  r„  r”  r  sB    ````` `` ``   `` `                                          @@@@@r•   rü  rü  a  së  øøøøøøøøøøøøøøøøø€ ð2ð ð ð ð ð ð ð ð ),Ðå"¨oÐ>Ñ>Ô>ð
ð 
ð 
ð 
ð 
ð 
ñ ?Ô>ð
õ> ðj>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ð j>ñ „^ðj>õX *Ñ+Ô+€Oà&-Ð&9ˆ×Ò˜TÑ"Ô"Ð"½zÔ?UÑ?WÔ?Wð õ 	�vÔ;Ñ<Ô<ðRGð RGå� zÑ2Ô2Ñ3Ô3ðRGð RGõ 	Ø¨dÈ$ð	
ñ 	
ô 	
ðRGð RGõ 	ÐBÑCÔC×IÒIÑKÔKðRGð RGð 	ðRGð RGõ 	Ø$Ø-Ø%Hð	
ñ 	
ô 	
ðRGð RGð 	ðRGð RGõ %(¡E¤EˆÝ'Ñ)Ô)Ð)ˆ:ð 	%Ý 0°½Z¹\¼\Ñ JÔ JÐÐà $Ðð (,ÐÝ˜JÑ'Ô'ð 	¨Eð 	Ý=Ø)¨5Õ2CÀKÑ2PÔ2Pñô ˆGð ?FÐUÐ6Ð6È7ÐSTÌ:ð ð 	×$Ò$à$4Ø7<ðð ñ	
ô 	
ð 	
õ #FÑ"GÔ"GÐØ"ð 	Nð!ð !Ø9Pð!ñ !ô !Ðð ×ÒÐ 9Ð;LÑMÔMÐMå6°zÀ:ÑNÔNÑˆ�*Øð 4	ðVð Vð Vð Võ
 �KŠKð;ð
 Ý� 
Ñ+Ô+Ø Ð  Ñ&Ô&Ø Ý#ñô ð ðð ð ð ð ð ð Ø8Ð8Ñ:Ô:Ð:Ð:øÝð ð ð ÝÔ5ð Ý1ØIñô àðð ð 	Ý1Ø<ñô àðõ
 ->Ý#Ô,­kÔ.Bñ-ô -�AÔ)ð øøøøðøøøõ  	�	Š	ØQØŒLØÔØÔØ�1‰Hà�GŠGÕ%Ô-°1°t±8Ð<Ñ<Ô<×CÒCÑEÔEÑFÔFñ	
ô 	
ð 	
õ4 ' t¨TÑ2Ô2ˆÝœ™œˆØ $ˆ	Ø"&ˆØ26ÐØ/3Ð Ø-1ÐÝŒÔÔ-×3Ò3Ñ5Ô5Ð5ØˆØˆõ Ô)ð	&åÔ2ð	&õ Ô4ð	&ðð ð ð ð ð ð ð ð ð ð .Ð-­fÔ.KÑLÔLÐLˆsð &Ý  ‘o”oÐ%Ø2Ð2µ6Ô3VÑWÔWÐWˆsð &Ý  ‘o”oÐ%Ø4Ð4ÝÔ5ñô ð ˆsð &õ ! ‘o”oÐ%ðq	GØ*7¨-¸¸iÈÑ*OÔ*OÑ'ˆL˜-õ ÑÔÐàð3à%2Ô%?Ð?�\ð3ð !×,Ò,Ñ.Ô.ð3õ
 ,¨DÑ1Ô1Ð1Ø#ð 3Ð(@ÐDTÐ(TÐ(TÝ0Ñ2Ô2Ð2å*¨=¸+ÑFÔFÐFØõj Œ}Ô#Ô8ð "Ý! $ÀÐNÑNÔNð "ð "Ý—H’HÐ?Ñ@Ô@Ð@Ý”J˜q‘M”M�Mð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð ˆFØð 4Ø&Ô3�Øð )à%'�Ô"à#œ^Ð+�6ð )à&(�F”Oà)Ð)Ð)Ð)Ð)Ð)å˜J™œˆIØÐ" vÐ'9Ý! &¤-Ñ0Ô0�Ý(+¨FÔ,<Ô,CÑ(DÔ(DÐ%Ø!'×!3Ò!3Ñ!5Ô!5�Ý#& v¤|Ô'9Ñ#:Ô#:Ð Ø$*×$EÒ$EÑ$GÔ$GÐ!Ý$'¨Ô(;Ñ$<Ô$<Ð!Ø$XÐ$X¸vÔ?WÐ$XÑ$XÔ$XÐ!ð(ð (Ø.4Ô.Ið(ñ (ô (Ð$õ ”Ô#Ô5×9Ò9Ñ;Ô;Ð;Ð;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ý$'¨¡G¤GÐ!Ý'*¨2¡w¤wÐ$Ý"%¡%¤%�å.2¬l©n¬n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4œ<ðð ˜tÔ/ðð ! $Ô"5ð	ð
 ˜jÔTðð )¨*Ô*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ý$*Ô$;Ø"Ý9BØ.ñ:ô :ð  +Ý%(Ð):Ñ%;Ô%;Ø)>ð9ð ð ˆGðB ×(Ò(¨Ñ1Ô1Ð1ð !ð ð %ð5�MÔ6Ð6å2Ñ4Ô4ð "Ô6ð Ð)Ø!Ô.Ð:Ø%Ô2Ô9ð ;ð Ô*Ô:ÔIÔW×]Ò]Ñ_Ô_Ð_å*¨=¸+ÑFÔFÐFðe
RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGøõr ð -	<ñ -	<ð -	<õ ˜Q™œÔ,ˆIÝ˜a™&œ&ˆKÝ%.Ô%9Ñ%;Ô%;Ð$<Ð!Ý˜a  u°VÐ<Ñ<Ô<Ð<åŒN×+Ò+Øðð ð :Ð9ð ,ñ ô ð õ @CÔ?RØ�:ñ@ô @Ñ<Ð$Ð&<õ $ AÐ'DÀdÑKÔKˆMÝØåÝÝ%Ý)Ý"ÝÝ,Ý/Ø'Ý0Ø-Ý$Ý Ý.ðñô ð <ð& õ /Ý˜A‘w”wÔ+Ð7Ð7­s°1©v¬vÐ7Ð7ñô ç ’. ¤Ñ1Ô1°tð<øøøøðW-	<øøøøõh Œ}Ô#Ô8ð "Ý! $ÀÐNÑNÔNð "ð "Ý—H’HÐ?Ñ@Ô@Ð@Ý”J˜q‘M”M�Mð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð ˆFØð 4Ø&Ô3�Øð )à%'�Ô"à#œ^Ð+�6ð )à&(�F”Oà)Ð)Ð)Ð)Ð)Ð)å˜J™œˆIØÐ" vÐ'9Ý! &¤-Ñ0Ô0�Ý(+¨FÔ,<Ô,CÑ(DÔ(DÐ%Ø!'×!3Ò!3Ñ!5Ô!5�Ý#& v¤|Ô'9Ñ#:Ô#:Ð Ø$*×$EÒ$EÑ$GÔ$GÐ!Ý$'¨Ô(;Ñ$<Ô$<Ð!Ø$XÐ$X¸vÔ?WÐ$XÑ$XÔ$XÐ!ð(ð (Ø.4Ô.Ið(ñ (ô (Ð$õ ”Ô#Ô5×9Ò9Ñ;Ô;Ð;Ð;à"�Ø(,Ð%Ø!%�Ø#'Ð à$&Ð!Ø$(Ð!Ý$'¨¡G¤GÐ!Ý'*¨2¡w¤wÐ$Ý"%¡%¤%�å.2¬l©n¬n¸}Ñ.LÐPSÑ-SÐ*ðØ˜Yðà˜4œ<ðð ˜tÔ/ðð ! $Ô"5ð	ð
 ˜jÔTðð )¨*Ô*Fðð ˜{ðð (Ð)>ðð ! .ðð #Ð$4ðð $Ð%6ðð ˜Yðð ˜{ðð +Ð,Dðð )Ð*@ðð  $Ð%6ð!ð" 'Ð(<ð#ð$ $3Ø0JØ$0¸Ð$<Ý$*Ô$;Ø"Ý9BØ.ñ:ô :ð  +Ý%(Ð):Ñ%;Ô%;Ø)>ð9ð ð ˆGðB ×(Ò(¨Ñ1Ô1Ð1ð !ð ð %ð5�MÔ6Ð6å2Ñ4Ô4ð "Ô6ð Ð)Ø!Ô.Ð:Ø%Ô2Ô9ð ;ð Ô*Ô:ÔIÔW×]Ò]Ñ_Ô_Ð_å*¨=¸+ÑFÔFÐFÐFøøøðe
RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGð RGñ RGô RGð RGð RGð RGð RGð RGð RGð RGøøøð RGð RGð RGð RGð RGð RGs«  Â+qÃp5Ã"pÃ=p	Ä o0ÄoÄD$oÈ;
IÉoÉ
J-ÉAJ(Ê(J-Ê-E(oÐA1^$Ò'oÒ./S)ÓoÓ)S-Ó-oÓ0S-Ó1IoÝoÝo0Ý'p	Ý3pÝ?p5ÞqÞ$c2Þ/D>c-ã-c2ã2c5ã5(n?ä/eån?åeån?åeå In?î?oïoïoï	oï
oïo0ïoïo0ï oï!o0ï$p	ï0o4ï4p	ï7o4ï8p	ï;pðpðpðpðpðp5ðp"ð"p5ð%p"ð&p5ð)qð5p9	ð9qð<p9	ð=qñqñqc                  ó@   — e Zd Z	 	 ddd„Zedd„¦   «         Z	 ddd„ZdS )ÚConvertFrameNr¤   rƒ   rÓ  rV   r½  r¾  r¿  rÀ  r˜   r™   c                ó`   — || _         t          |d||¬¦  «        | _        || _        || _        d S )NF)rº  r½  r¿  )rA  rÍ  Ú_inner_convertÚ_hooksrÆ  )r¸   r¤   rÓ  r½  r¿  s        r•   r¹   zConvertFrame.__init__ê  sF   € ð *5ˆÔ&Ý2ØØØØ+ð	
ñ 
ô 
ˆÔð ˆŒØ /ˆÔÐÐr”   ú*Callable[[WrapBackendDebug], ConvertFrame]c                ó   ‡ — ˆ fd„S )Nc                ó<   •— t          | ‰j        ‰j        ¬¦  «        S rË  )Úconvert_framerâ  rÆ  rÎ  s    €r•   rÀ   z2ConvertFrame._clone_with_backend.<locals>.<lambda>þ  s$   ø€ �}ØØŒKØ Ô1ð 
ñ  
ô  
€ r”   r“   r·   s   `r•   rÐ  z ConvertFrame._clone_with_backendû  s   ø€ ð
ð 
ð 
ð 
ð 	
r”   r   rï   rˆ   rÑ  rÒ  r­  r®  rÚ   rÛ   re   c                óü  ‡— t                                |j        ¦  «         t          d         dxx         dz  cc<   	 |                      |||||dz   ¬¦  «        }t          d         dxx         dz  cc<   |S # t
          $ �ri}t          |t          ¦  «        r‚ | j        j        j	        d u}|€t          d¦  «        d ‚| j        j        j	        r‚ t          |t          ¦  «        r‚ t          |t          t          f¦  «        }	|j        }
|	�r&t          |dd¦  «        �st                               t"          j        ¦  «        rðt'          |d	¦  «        ràt'          |d
¦  «        rÐt)          t+          |j        ¦  «        ¦  «        5  |j        }d                     t3          j        |¦  «        ¦  «        }t7          j        |
¦  «        }d|› d|› �Št:          j                             dd„ ˆfd„¬¦  «         t                                ‰dtB          j"        ¬¦  «         d d d ¦  «         n# 1 swxY w Y   tB          j#        s|	s‚ t          |dd ¦  «        }|j        }
tI          ||
||¦  «        }|	rtJ           &                    |d¬¦  «         ntJ           '                    |d¬¦  «         t          |t6          j(        ¦  «        r"|j)        �tU          |j)        d¬¦  «        cY d }~S Y d }~nd }~ww xY wtU          d¬¦  «        S )NÚframesÚtotalr(   rß   Úokz%error_on_graph_break must not be NoneÚloggedFrã  Ú
real_stackrÛ  zŒGraph break: torch.compile cannot properly resume from this graph break, which results in a skip.
torch.compile will skip tracing the frame zN and fall back to eager.
The graph break occurred in the following user code:
rE  c                 ó   — dddœS )NÚdynamo_graph_break_reasonrH  rI  r“   r“   r”   r•   rÀ   z'ConvertFrame.__call__.<locals>.<lambda>U	  s   € Ø(CØ,4ð1ð 1€ r”   c                 ó4   •— ‰ › dt          j        ¦   «         › �S )Nr�  r¹  )Úuser_stack_traces   €r•   rÀ   z'ConvertFrame.__call__.<locals>.<lambda>Y	  s   ø€ Ð2BÐ/^Ð/^ÅiÔFZÑF\ÔF\Ð/^Ð/^€ r”   rP  T)Úexc_infoÚ
stack_inforl  )rñ  z9compilation failed with a custom frame execution strategy)rÁ  r×  z*an error was suppressed during compilationrÖ  )+rê  rÅ   r^  rm   rá  rf  rO  rK   rÇ  r«  r-  rN   rP   rQ   rN  Úgraph_break_logr?  r@  rA  r«   r   r   rã  rì  r…  rº  Úformat_listr+   Úformat_frame_inforü   rý   rþ   rB  r)   r	  Úsuppress_errorsrH   rŽ  r  r�  ÚTorchDynamoExceptionrÁ  re   )r¸   rï   rÑ  rÓ  r­  rÚ   r×   re  r«  Ú	soft_failrÙ   Ú
user_stackÚuser_stack_formattedÚ
frame_inforl  Ú	error_msgrð  s                   @r•   r	  zConvertFrame.__call__	  sÏ  ø€ õ 	�Š˜œÑ%Ô%Ð%Ý�Ô˜7Ð#Ð#Ô# qÑ(Ð#Ð#Ñ#ðk	Ø×(Ò(Ø�{ E¨;¸TÀA¹Xð )ñ ô ˆFõ �XÔ˜tÐ$Ð$Ô$¨Ñ)Ð$Ð$Ñ$ØˆMøÝð e	ñ e	ð e	å˜!Õ7Ñ8Ô8ð Øð Ô#Ô(Ô=ÀTÐIð !ð $Ð+Ý$Ð%LÑMÔMÐSWÐWØÔ"Ô'Ô<ð ð õ  ˜!Õ9Ñ:Ô:ð Øå" 1¥{µIÐ&>Ñ?Ô?ˆIØ”<ˆDð ñ!å  8¨UÑ3Ô3ñ!õ $×0Ò0µ´Ñ?Ô?ð!õ ˜1˜lÑ+Ô+ð µ¸¸<Ñ0HÔ0Hð Ý(­¸¼Ñ)EÔ)EÑFÔFð ð Ø%&¤\˜
Ø/1¯wªwÝ%Ô1°*Ñ=Ô=ñ0ô 0Ð,õ &)Ô%:¸4Ñ%@Ô%@˜
ð6ØISð6ð 6ð  4ð6ð 6ð )õ œ×7Ò7Ø&ð)ð )ð (_Ð'^Ð'^Ð'^ð 8ñ ô ð õ (×-Ò-Ø,Ø%)Ý'-¤~ð .ñ ô ð ð)ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ4 Ô)ð °)ð Øõ & aÐ):¸DÑAÔAˆOØ”<ˆDÝ(¨¨D°/À5ÑIÔIˆIàð 6Ý—’˜¨T�Ñ2Ô2Ð2Ð2å—’˜I°�Ñ5Ô5Ð5õ ˜1�cÔ6Ñ7Ô7ðàÔ)Ð5å)Ø()Ô(=Ø [ðñ ô ð ð ð ð ð ð øøøøøøøøøðEe	øøøõN "ØDð
ñ 
ô 
ð 	
sD   ½9A7 Á7K+ÂD K&ÆBH&ÈK&È&H*	È*K&È-H*	È.B-K&ËK+Ë&K+rj  )
r¤   rƒ   rÓ  rV   r½  r¾  r¿  rÀ  r˜   r™   )r˜   rã  ©r   r  r  r“   r”   r•   rß  rß  é  sz   € € € € € ð
 *.Ø&*ð0ð 0ð 0ð 0ð 0ð" ð
ð 
ð 
ñ „Xð
ð ðy
ð y
ð y
ð y
ð y
ð y
ð y
r”   rß  c                ó(   — t          | |||¬¦  «        S )zHTry to convert a frame into an FX graph, if error leave frame unmodified)r½  r¿  )rß  )r¤   rÓ  r½  r¿  s       r•   ræ  ræ  €	  s'   € õ ØØØØ'ð	ñ ô ð r”   rá   c                óÐ  — ddl m} t          j        }dt          _        t	          | d¦  «        5 }t          j        |¦  «        }d d d ¦  «         n# 1 swxY w Y   t          t          j	        |j
                             ¦   «         t          ¦   «                              ¦   «         ¦  «        ¦  «        |_
        t          j        d¦  «        5  	 t          |j        |j
        |j        |j        |j        |ddd t'          ¦   «         d g g t)          dd¦  «        d i t+          dd¬¦  «        ¬	¦  «         |t          _        n# |t          _        w xY w	 d d d ¦  «         d S # 1 swxY w Y   d S )
Nr(   )ÚeagerFÚrbr   é*   iç  )r²  r³  )r¤   rº  rh  r»  rÓ  rÑ  r  r  rä  rï   r­  rã  )Úbackends.debuggingr   r)   Úreplay_record_enabledÚopenr]   ÚloadrZ  r÷   ÚchainrÐ   r…  r*   r«  rü  rÙ   r*  r+  rý  rV   r6   r   )rá   r   Úoriginal_replay_valÚin_filer6  s        r•   Úreplayr
  �	  sÜ  € Ø)Ð)Ð)Ð)Ð)Ð)å Ô6ÐØ#(…FÔ Ý	ˆh˜Ñ	Ô	ð / Ý Ô% gÑ.Ô.ˆð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /å�)œ/¨&¬.×*>Ò*>Ñ*@Ô*@Å'Á)Ä)Ç/Â/ÑBSÔBSÑTÔTÑUÔU€F„Nå	Ô	(¨Ñ	/Ô	/ð ?ð ?ð	?ÝØ”Ø”Ø”Ø”Ø”Ø!ØØØ#'Ý‘g”gØ Ø Ø*,Ý4°Q¸Ñ:Ô:ØØÝ$¨bÀ3ÐGÑGÔGð#ñ ô ð ð( ,?�FÔ(Ð(øÐ+>�FÔ(Ð>Ð>Ð>Ð>Ð(ð-?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?ð ?ð ?s<   ¯AÁAÁAÃEÃA"D<Ä/EÄ<E
Å
EÅEÅ"Ec                ó    — t           j        dk     rdS t          j        | ¦  «        D ]}|j        dk    r|j        dz  c S Œt          d¦  «        ‚)N)é   é   r   ÚRESUMEr–  z$RESUME instruction not found in code)ró  Úversion_inforº  r»  r¼  Úoffsetr�  )rÙ   Úinsts     r•   Úfirst_real_inst_idxr  ²	  sc   € Ý
Ô˜'Ò!Ð!ØˆqÝÔ$ TÑ*Ô*ð $ð $ˆØŒ;˜(Ò"Ð"Ø”; !Ñ#Ð#Ð#Ð#ð #å
Ð=Ñ
>Ô
>Ð>r”   c                  ó   — e Zd Zddœdd„ZdS )r  r   rß   rï   rˆ   rÑ  rÒ  rÓ  rV   r­  r®  rÚ   rÛ   r˜   re   c               ó   — d S r³   r“   )r¸   rï   rÑ  rÓ  r­  rÚ   s         r•   r	  zConvertFrameProtocol.__call__¼	  s	   € ð !˜Sr”   Nr  )r�   r‘   r’   r	  r“   r”   r•   r  r  »	  s7   € € € € € ð ð!ð !ð !ð !ð !ð !ð !ð !r”   c                  ó&   — e Zd Zdd„Zdd„Zdd„ZdS )ÚCatchErrorsWrapperr  r  rÓ  rV   r˜   r™   c                ó\   —  t          j        |¦  «        | ¦  «         || _        || _        d S r³   )r?  r@  rA  rÓ  )r¸   r  rÓ  s      r•   r¹   zCatchErrorsWrapper.__init__È	  s/   € Ø!�	Œ˜Ñ!Ô! $Ñ'Ô'Ð'Ø)1ˆÔ&ØˆŒ
ˆ
ˆ
r”   r×   re   rï   rˆ   c                ó¸   — |j         �R|j        €Kt                               d|j        j        |j         |j        j        ¦  «         t          |j         |¦  «         |S )Nz#skipping: %s (reason: %s, file: %s))r×  rƒ  rŽ  rB  r^  rú   rû   r=   )r¸   r×   rï   s      r•   Ú_handle_skipzCatchErrorsWrapper._handle_skipÍ	  s^   € ð ÔÐ)¨fÔ.AÐ.IÝ�IŠIØ5Ø”Ô$ØÔ"Ø”Ô(ñ	ô ð õ ˜FÔ.°Ñ6Ô6Ð6Øˆr”   rÑ  rÒ  r­  r®  c           	     ó"  — |€t          d¦  «        ‚t                               |j        ¦  «         t	          j        |j        |¬¦  «        }t          j        dk    r|j        t          |j        ¦  «        k    }n|j        t          |j        ¦  «        k    }t          j        rt          ¦   «         }nt          ¦   «         }|s&|s$t          j        s|rUt          | j        dd¦  «        s?|rd}n|rd}nt          j        rd}nd	}|                      t%          |¬
¦  «        |¦  «        S |j        j        dk    r|j        j        dk    s/|j        j                             d¦  «        r4|j        j        dk    r$|                      t%          d¬
¦  «        |¦  «        S |j        j        dk    rw|j        j        dk    rg|j        j        r[t1          |j                             |j        j        d         ¦  «        ¦  «        r$|                      t%          d¬
¦  «        |¦  «        S t6          j        j                             ¦   «         dk    rÀt?          j         ¦   «         }|r«tB          5  ddl"m#}	  |	|j$        | j        j        ¬¦  «        }
tK          | j        d¦  «        st          d¦  «        ‚| j         &                    |
j'        ¦  «        }|                       |||| j(        |¦  «        |¦  «        cd d d ¦  «         S # 1 swxY w Y   tB          5  tS          ¦   «         5  |                      ||| j(        |d¬¦  «        }|                      ||¦  «        cd d d ¦  «         cd d d ¦  «         S # 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )Nzframe_state must not be None)rï   )r  é   rÃ  Fz#frame has already started executingz%frame is in the Dynamo skipfiles listzDynamo tracing is disabledzSnon-infra torch dispatch mode present, this is not supported today in torch.compilerÖ  rÚ  Ú__new__zcollections/__init__.pyÚ_makez/frame is a namedtuple __new__/_make constructorr¹   r   z9__init__ of a traceable wrapper subclass cannot be tracedÚddp_optimizer)ÚDDPOptimizer)Úbucket_bytes_capÚbackend_compile_fnrÐ  zJDDPOptimizer only supports callback fns that know how to clone themselves.r(   rß   )*r-  rê  rÅ   r^  r-   r,  ró  r  Úf_lastir  r)   Ú#inline_torch_dispatch_torch_compiler#   r$   ÚdisablerN  rA  r  re   rû   rú   rî  r‘  r’  r%   rb  rí  rü   r2  rÄ  Úget_optimize_ddp_moder!   Ú_get_active_ddp_moduleÚcompile_lockÚ"torch._dynamo.backends.distributedr  r   r«   rÐ  Ú
compile_fnrÓ  r"   )r¸   rï   rÑ  r­  Úis_skipfileÚhas_started_executionÚshould_skip_for_dispatch_moder×  Ú
ddp_moduler  r  Úhijacked_callbackr×   s                r•   r	  zCatchErrorsWrapper.__call__Ú	  sï  € ð ÐÝ Ð!?Ñ@Ô@Ð@Ý�Š˜œÑ%Ô%Ð%å!Ô'¨¬¸EÐBÑBÔBˆÝÔ˜wÒ&Ð&Ø$)¤MÕ4GÈÌÑ4UÔ4UÒ$UÐ!Ð!à$)¤MÕ5HÈÌÑ5VÔ5VÒ$VÐ!õ Ô5ð 	Ý,LÑ,NÔ,NÐ)Ð)õ @ÑAÔAð *ð "ð	Yð ð	Yõ Œ~ð		Yð .ð	Yõ   Ô >À	È5ÑQÔQð	Yð %ð 
ØC��Øð ØE��Ý”ð Ø:��ð8ð ð ×$Ò$Õ%7ÀKÐ%PÑ%PÔ%PÐRWÑXÔXÐXð ŒLÔ$¨
Ò2Ð2°u´|Ô7KÈyÒ7XÐ7XàŒLÔ$×-Ò-Ð.GÑHÔHð 8Yð ”Ô$¨Ò/Ð/à×$Ò$Ý"Ø Qðñ ô ð ñ	ô ð ð ŒLÔ  JÒ.Ð.Ø”Ô(¨1Ò,Ð,Ø”Ô(ð -å-Ø”×"Ò" 5¤<Ô#;¸AÔ#>Ñ?Ô?ñô ð -ð ×$Ò$Ý"Ø [ðñ ô ð ñ	ô ð õ Œ=Ô×4Ò4Ñ6Ô6¸/ÒIÐIÝ0ÔGÑIÔIˆJØð Ý!ð ð ØOÐOÐOÐOÐOÐOà$0 LØ)3Ô)DØ+/Ô+IÔ+cð%ñ %ô %�Mõ #ØÔ6Ð8Mñô ð õ -Øhñô ð ð Ô6×JÒJØ)Ô4ñô ð &ð
  ×,Ò,Ø)Ð)¨%°¸d¼jÈ+ÑVÔVØñô ð%ð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ. ð 	4ð 	4Õ1Ñ3Ô3ð 	4ð 	4à×3Ò3Ø�{ D¤J°À!ð 4ñ ô ˆFð ×$Ò$ V¨UÑ3Ô3ð	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ñ 	4ô 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4ð 	4øøøð 	4ð 	4ð 	4ð 	4ð 	4ð 	4sI   É$BK=Ë=LÌLÌNÌ5M,ÍNÍ,M0	Í0NÍ3M0	Í4NÎNÎNN)r  r  rÓ  rV   r˜   r™   )r×   re   rï   rˆ   r˜   re   )rï   rˆ   rÑ  rÒ  r­  r®  r˜   re   )r�   r‘   r’   r¹   r  r	  r“   r”   r•   r  r  Ç	  sV   € € € € € ðð ð ð ð
ð ð ð ðm4ð m4ð m4ð m4ð m4ð m4r”   r  c                ó"   — t          | |¦  «        S r³   )r  )r  rÓ  s     r•   Úcatch_errors_wrapperr0  J
  s   € õ ˜h¨Ñ.Ô.Ð.r”   )r–   r—   r˜   r™   )r¢   r£   r¤   rƒ   r˜   r™   r³   )rÎ   rÏ   rÐ   rÑ   rÒ   rÓ   r˜   r   rý  )rÙ   r   rÚ   rÛ   r˜   rÜ   )r  r  r˜   r  )rï   rˆ   r˜   rÈ   )NF)
re  rf  rÙ   r   rï   rg  rh  rÈ   r˜   r™   )ro  r  r˜   r  )r­  r®  r˜   r   r
  )r¤   rƒ   rº  rÈ   rh  rÈ   r»  r¼  r½  r¾  r¿  rÀ  r˜   r¹  )rÙ   r  r˜   r  )rÙ   r  r˜   rÈ   )r  r  r  r  r˜   r™   )r#  r†   r˜   r  )"rÙ   r  rÐ   r)  r*  r)  r+  r)  rý  r,  r¤   rƒ   r-  r.  rº  rÈ   r/  rc   r0  r1  r2  rW   rh  rÈ   r»  r¼  r­  r3  r(  r4  r½  r¾  r˜   rX   )r¥  rÑ   r˜   rÑ   )rÆ  r
   r˜   rÇ  )r  r
   r˜   rÞ  )rÆ  r
   r  rã  r  r_  r˜   rä  )rÆ  r
   r  rã  r  r_  rø  rú  rù  rÈ   r˜   rÁ  )rï   rä  rø  rú  rù  rÈ   r˜   rÁ  )r  r  r˜   r  )rÙ   r  rÐ   r)  r*  r)  r+  r)  rý  r,  r¤   rƒ   rº  rÈ   r  rw  rh  rÈ   r»  r¼  r­  r3  r(  r4  r½  r¾  r˜   rN  rj  )*rÙ   r   rÐ   r)  r*  r)  r+  r)  rý  r,  r¤   rƒ   rº  rÈ   rh  rÈ   r»  r¼  rÓ  rV   rÑ  rÒ  r  r'  r  r'  rä  r6   rï   rg  r­  r3  rã  r   rÚ   rÛ   r½  r¾  rè  r(  r˜   re   )
r¤   rƒ   rÓ  rV   r½  r¾  r¿  rÀ  r˜   rß  )rá   rÏ   r˜   r™   rb  )r  r  rÓ  rV   r˜   r  (  rk  Ú
__future__r   Úcollectionsr  r‰  r£  rº  r?  rš  r€  rÊ  r÷   r@  rƒ  rx  r  r•  ró  r†  Ú	threadingr‹  rº  rˆ  ÚtypingÚunittest.mockr  rÂ   r   Úpathlibr   r   r   r   r	   r
   r   r   r   Útyping_extensionsr   r   rü   Útorch._loggingÚtorch._C._dynamo.guardsr   Útorch._dynamo.callbackr   Útorch._dynamo.distributedr   Útorch._dynamo.symbolic_convertr   r  r   r   r   r   r   Útorch._utils_internalr   r   r   Útorch.fx._lazy_graph_moduler   Ú%torch.fx.experimental.symbolic_shapesr   r   Útorch.fx.graph_moduler   rÕ   Útorch.monitorr    Útorch.nn.parallel.distributedr!   Útorch.utils._python_dispatchr"   r#   r$   r%   Útorch.utils._tracebackr&   r'   rÛ  r)   r*   r+   r,   r-   Úbackends.registryr.   Úbytecode_analysisr/   r0   Úbytecode_transformationr1   r2   r3   r4   r5   rä  r6   r7   r8   r9   r:   Ú
eval_framer;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   Úgraph_bytecode_inputsrR   r/  rS   rT   rU   rÓ  rV   r­   rW   rX   rY   ÚpgorZ   r[   r\   Úreplay_recordr]   Úresume_executionr^   Úsymbolic_convertr_   r`   ra   rb   rc   rd   re   rf   rg   rh   rÄ  ri   rj   rk   rl   rm   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   rz   r{   r|   r}   r~   Úvariables.torch_functionr   r¬  Únumpyr€   ÚModuleNotFoundErrorÚTYPE_CHECKINGÚcollections.abcr�   Útorch.utils.weakr‚   rƒ   r½  r„   Úrepro.after_dynamor…   r†   r‡   rˆ   Úvariables.builderr‰   Ú	getLoggerr�   rŽ  rý   ÚgetArtifactLoggerr>  ró  ÚRLockr'  rŒ   r�   r�   r¡   r¯   r±   rê  rë  rÍ   r@  rØ   r  rB  Ú#suppress_torch_distributed_warningsrd  rm  r´  ÚCounterrn  rs  rr  rª  r·  r¹  rÍ  r  Útorch.utils.hooksr  r  r  r  r  r"  r&  rL  rN  rm  rs  rª  r`  rÁ  rÝ  râ  rö  rý  rä  rü  r  r  rü  rß  ræ  r
  r  ÚProtocolr  r  r0  r“   r”   r•   ú<module>r]     s”  ððð ð ð. #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø 	€	€	€	Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø €€€Ø €€€Ø Ð Ð Ð Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ð Ð Ø €€€Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ø >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ð >Ø /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ð /Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 2Ð 2Ð 2Ð 2Ð 2Ð 2Ø 4Ð 4Ð 4Ð 4Ð 4Ð 4Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð
 ?Ð >Ð >Ð >Ð >Ð >ðð ð ð ð ð ð ð ð QÐ PÐ PÐ PÐ PÐ PØ &Ð &Ð &Ð &Ð &Ð &Ø AÐ AÐ AÐ AÐ AÐ Aðð ð ð ð ð ð ð ð ð ð ð ð MÐ LÐ LÐ LÐ LÐ LÐ LÐ Là EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø GÐ GÐ GÐ GÐ GÐ GÐ GÐ Gðð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð 'Ð &Ð &Ð &Ð &Ð &ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð >Ð =Ð =Ð =Ð =Ð =ðð ð ð ð ð ð ð ð ð ð
 Ð Ð Ð Ð Ð Ø LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ LÐ Lðð ð ð ð ð ð ð ð ð ð
 +Ð *Ð *Ð *Ð *Ð *Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð ð ð ð ð "Ð !Ð !Ð !Ð !Ð !Ø XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ XÐ Xðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð0 JÐ IÐ IÐ IÐ IÐ Ið Ð Ð Ñ ðØÐÐÐÐøØð ð ð Ø	€B€B€Bðøøøð 
Ôð 	7Ø(Ð(Ð(Ð(Ð(Ð(à4Ð4Ð4Ð4Ð4Ð4à-Ð-Ð-Ð-Ð-Ð-Ø'Ð'Ð'Ð'Ð'Ð'Ø4Ð4Ð4Ð4Ð4Ð4Ø@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ð@Ø6Ð6Ð6Ð6Ð6Ð6ð €gÔ˜Ñ!Ô!€ØŒ~×/Ò/°¸*ÑEÔE€Ø”.×2Ò2°8¸^ÑLÔL€ð ˆyŒÑ Ô €à€WˆT�]„]€Ø€Yˆt�_„_€ð	ð 	ð 	ð 	ð 	ñ 	ô 	ð 	ð%ð %ð %ð %ð?ð ?ð ?ð ?ð,ð ð ð ð ñ ô ð ð( ˆg‰iŒi€Øˆw‰yŒy€à04Ð Ð 4Ð 4Ð 4Ñ 4ð €„Ð*Ñ+Ô+àJNðð ð ð ñ ,Ô+ððð ð ð ð ðDNð Nð Nð Nðb Ô1ðCð Cð Cñ 2Ô1ðCðR %)Øð	*ð *ð *ð *ð *ð €ØCVÀ;ÔCVÑCXÔCXÐ Ð XÐ XÐ XÑ Xðð ð ð ðIð Ið Ið IðX ð-ð -ð -ð -ð -ñ -ô -ñ „ð-ðð ð ð ð0Oð Oð Oð Oð Oñ Oô Oð Oðh ØØ%)Ø%)Ø"&ðð ð ð ð ð& $Ð #Ð #Ð #Ð #Ð #à -Ð -Ð -Ð -Ð -Ð -ð ,7¨;©=¬=€Ð 8Ð 8Ð 8Ñ 8Ø*FÐ 'ðð ð ð ð$6ð 6ð 6ð 6ð

ð 
ð 
ð 
ðð ð ð ð ð Ø%)Ø?CØ15Ø%)ð#Qð Qð Qð Qð Qñ ÔðQðh ð>
ð >
ð >
ð >
ð >
ñ >
ô >
ñ „ð>
ðB ð+ð +ð +ð +ð +ñ +ô +ñ „ð+ð" €�$ÐÑÔð\ð \ð \ð \ð \ñ \ô \ñ Ôð\ð~ð ð ð ð ðXð Xð Xð Xð Xñ Xô Xñ „ðXðv ð 
ð  
ð  
ð  
ð  
ñ  
ô  
ñ „ð 
ðF.Að .Að .Að .Aðb7ð 7ð 7ð 7ð %)ð(ð (ð (ð (ñ (ð\ %)ð$
ð
 ,0Ø-2ð$
ð $
ð $
ð $
ð $
ñ $
ðN ð&ð &ð &ð &ð &ñ &ô &ñ „ñ&ð ,0Ø-2ð	:ð :ð :ð :ð :ñ :ð|ð ð ñ ð> Ø%)Ø?CØ15Ø%)ðkð kð kð kð kñ kðz %)Ø?Cð!E
Gð& Ø%)ð 15ð/E
Gð E
Gð E
Gð E
Gð E
Gñ E
GðPT
ð T
ð T
ð T
ð T
ñ T
ô T
ñ T
ðt &*Ø"&ð	ð ð ð ñ ð ?ð ?ð ?ñ ?ðD?ð ?ð ?ñ ?ð	!ð 	!ð 	!ð 	!ð 	!˜6�?ñ 	!ô 	!ñ 	!ð@4ð @4ð @4ð @4ð @4ñ @4ô @4ñ @4ðF/ð /ð /ñ /ð /ð /s   ÈH ÈHÈH