Ë
    L²j¥Ÿ ã                  ó@  — 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mZ ddlmZmZmZmZmZmZ ddlm Z  ddl!Z!ddl"Z!ddl#m$Z$m%Z% ddl&m'Z'm(Z( dd	l)m*Z*m+Z+m,Z, dd
l-m.Z. ddl/m0Z0 ddl1m2Z2 ddl3m4Z4m5Z5m6Z6mZ7m8Z8m9Z9 ddl:m;Z;m<Z<m=Z=m>Z> ddl?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZN ddlOmOZO ddlPmQZQ ddlRmSZS ddl5mTZTmUZUmVZVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z] ddl^m_Z_ ddl`maZambZb ddlcmdZdmeZemfZf ddlgmhZhmiZimjZjmkZkmlZl ddlmmnZnmoZo ddlpmqZqmrZrmsZs ddltmuZumvZvmwZwmxZxmyZymzZzm{Z{m|Z| ddl8m}Z}m~Z~ ddlm€Z€m�Z�m‚Z‚mƒZƒm„Z„m…Z…m†Z†m‡Z‡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’m“Z“ dd!l”m•Z• dd"l–m—Z—m˜Z˜m™Z™mšZš dd#l›mœZœ dd$l�mžZžmŸZŸm Z m¡Z¡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®m¯Z¯ dd(l°m±Z±m²Z²m³Z³m´Z´mµZµm¶Z¶m·Z· dd)l¸m¹Z¹mºZº dd*l»m¼Z¼ dd+l½m¾Z¾ dd,l¿mÀZÀmÁZÁmÂZÂ dd-lÃmÄZÄmÅZÅ dd.lÆmÇZÇmÈZÈmÉZÉmÊZÊmËZË erdd/lmÌZÌmÍZÍmÎZÎ dd0lÏmÐZÐ dd1lÑmÒZÒ  e�j¦                  eÔ«      ZÕe!�j¬                  �j¯                  eÔd2«      ZØe!�j¬                  �j¯                  eÔd3«      ZÙe!�j¬                  �j¯                  eÔd4«      ZÚe!�j¬                  �j¯                  eÔd5«      ZÛ e�j¸                  «       ZÝ eÀ�j¼                  «       D � �ci c]  \  } }|  e’|«      �j¾                  “Œ c}} Zàd6eád7<    e’e�jÄ                  «      �j¾                  Zã e’e�jÈ                  «      �j¾                  Zåd8„ eàd9<   d:„ eàd;<   e9�jd                  eÉz  eÊz  Zæd<eád=<   e	�jÎ                  dpd>„«       Zèe�jÒ                   G d?„ d@«      «       Zêe�jÒ                   G dA„ dB«      «       Zëe�jÒ                   G dC„ dD«      «       Zìe�jÒ                   G dE„ dF«      «       Zí G dG„ dH«      Zîe	�jÎ                  dqdI„«       Zïe�jà                  	 	 	 	 drdK„«       Zñe�jà                  	 	 	 	 drdL„«       Zòe�jÒ                   G dM„ dN«      «       Zó G dO„ dPeô«      Zõ G dQ„ dReö«      Z÷ G dS„ dTeö«      ZødsdU„ZùdtdV„Zúe	�jÎ                  dudW„«       Zû	 	 	 	 	 	 	 	 dvdX„ZüdYZýdwdZ„Zþdxdyd[„Zÿ	 	 	 	 	 	 dzd\„�Z 	 	 	 	 	 	 	 	 d{d]„�Z	 	 	 	 	 	 d|d^„�Z G d_„ d`�e«      �Ze�jÒ                   G da„ db«      «       �Z G dc„ dJ�e¬d«      �Z G de„ df�e«      �Ze�j                  dgk\  r9e�j                  D ��cg c]  \  }} �e
�edh|v r|did ndj|did › �«      ‘Œ! c}}�Ze�jà                  	 	 	 	 	 	 	 	 d}dk„«       �Z G dl„ dm�e«      �Z G dn„ do�e«      �Zyc c}} w c c}}w )~a  
Core module responsible for converting Python bytecode into TorchDynamo's symbolic execution format.

This module implements the bytecode-level tracing system that allows TorchDynamo to analyze
and transform Python code. It converts Python bytecode instructions into a symbolic format
that tracks the flow of tensors and other values through the program.

Key components:
- InstructionTranslatorBase: Base class for converting bytecode to symbolic execution
- InstructionTranslator: Main translator for function bytecode
- InliningInstructionTranslator: Handles inlining of called functions
- SpeculationLog: Manages state for speculative execution and rollback

The symbolic conversion process handles:
- Control flow (loops, conditionals, etc.)
- Function inlining and call stack management
- Tracking of program values and side effects
- Graph breaks and resumption points
- Exception handling and stack frame management

This is a core part of TorchDynamo's tracing system that enables ahead-of-time
optimization of PyTorch programs.
é    )ÚannotationsN)Údeque)ÚAnyÚcastÚNoReturnÚTYPE_CHECKINGÚ	TypeAliasÚTypeVar)ÚTypeIs)ÚDynamoProfilerStateÚFunctionTraceTiming)ÚObservedExceptionÚTensorifyScalarRestartAnalysis)ÚInlinedCodeCacheÚtracingÚTracingContext)Ú	dump_file)Ú
guard_bool)Úcache_methodé   )ÚconfigÚexcÚgraph_break_hintsÚloggingÚtrace_rulesÚ	variables)Úget_indexofÚJUMP_OPNAMESÚlivevars_analysisÚpropagate_line_nums)Úcleaned_instructionsÚcreate_binary_sliceÚcreate_call_functionÚcreate_call_function_exÚcreate_copyÚcreate_dup_topÚcreate_instructionÚcreate_jump_absoluteÚcreate_rot_nÚcreate_swapÚget_code_keysÚInstructionÚis_generatorÚis_jump_absoluteÚ	unique_id)Úcode_context)Ú	PyCodegen)Ú%maybe_setup_comprehension_speculation)
Ú!augment_exc_message_with_hop_nameÚBackendCompilerFailedÚcollapse_resume_framesÚformat_frame_infoÚget_stack_above_dynamoÚResumePrologueTracingErrorÚStepUnsupportedÚunimplementedÚUnsupportedÚ	UserError)Úget_funcname)ÚGuardBuilderÚinstall_guard)ÚGraphCompileReasonÚOutputGraphÚStackLocalsMetadata)Úimpl_CONTAINS_OP_fallbackÚimpl_IS_MAPPINGÚimpl_MATCH_CLASSÚimpl_MATCH_KEYSÚimpl_MATCH_SEQUENCE)ÚDummyModuleÚExecutionRecorder)ÚContinueExecutionCacheÚ"IS_TRACING_RESUME_PROLOGUE_VARNAMEÚReenterWith)Ú
AttrSourceÚDictGetItemSourceÚGlobalSourceÚGlobalWeakRefSourceÚLocalCellSourceÚLocalSourceÚSkipGuardSourceÚSource)Úis_builtin_constantÚis_forbidden)	Ú_get_error_on_graph_breakÚcountersÚget_fake_valueÚget_instruction_source_311Úget_metrics_contextÚgraph_break_dup_warning_checkerÚistypeÚ
LazyStringÚproxy_args_kwargs)ÚtypestrÚValueMutationNewÚVariableTracker)ÚFrameStateSizeEntryÚVariableBuilderÚwrap_fx_proxy)ÚBuiltinVariableÚDictBuiltinVariable)ÚConstantVariable)ÚContextWrappingVariableÚGenericContextWrappingVariableÚWithEnterFunctionVariableÚWithExitFunctionVariable©ÚConstDictVariable)ÚBaseUserFunctionVariableÚLocalGeneratorFunctionVariableÚLocalGeneratorObjectVariableÚNestedUserFunctionVariableÚSkipFunctionVariableÚUserFunctionVariableÚUserMethodVariable)ÚMAX_ITERATOR_LIMIT)ÚLazyVariableTracker)ÚBaseListVariableÚIteratorVariableÚListIteratorVariableÚListVariableÚSliceVariableÚTupleVariable)ÚCellVariableÚExceptionVariableÚGetAttrVariableÚNullVariableÚPythonModuleVariableÚTracebackVariableÚUnknownVariable)ÚNNModuleVariableÚUnspecializedNNModuleVariable)ÚSetVariable)ÚSymbolicStreamState)Úsupported_comparison_opsÚSymNodeVariableÚTensorVariable)ÚSymbolicTorchFunctionStateÚTorchFunctionModeVariable)ÚRemovableHandleVariableÚUserDefinedClassVariableÚ!UserDefinedExceptionClassVariableÚ"UserDefinedExceptionObjectVariableÚUserDefinedObjectVariable)ÚCallableÚ	GeneratorÚSequence)ÚFakeTensorMode)ÚCompilePackageÚgraph_breaksÚ
trace_callÚtrace_sourceÚtrace_bytecodeúdict[str, Any]Úcompare_op_handlersc                ó2   — t        | g t        |«      ¢i «      S ©N)Úhandle_containsÚreversed©ÚtxÚargsÚ_s      ú]/var/www/html/ia-enhanced/venv/lib/python3.12/site-packages/torch/_dynamo/symbolic_convert.pyú<lambda>r§   Ú   s   € ´ØÐŒ(�4‹.Ð˜2ó1€ ó    Úinc           
     óJ   — t        | t        | g t        |«      ¢i «      gi «      S rŸ   )Ú
handle_notr    r¡   r¢   s      r¦   r§   r§   Ý   s(   € ´JØŒ˜Ð.œx¨›~Ð.°Ó	3Ð4°bó5€ r¨   znot inr	   ÚExceptionValsc                ó,   — t        j                  | «      S )z´
    Import the named module and cache the result. importlib.import_module()
    seems to do some filesystem checking to validate the name so not caching
    this can be slow.
    )Ú	importlibÚimport_module)Únames    r¦   Ú_import_moduler±   è   s   € ô ×"Ñ" 4Ó(Ð(r¨   c                  óp   — e Zd ZU ded<   ded<   ded<   ded<   dZd	ed
<   dZded<   dZded<   dd„Zdd„Zy)ÚSpeculationEntryÚstrÚfilenameÚintÚlinenoÚinstruction_pointerr,   ÚinstFÚboolÚ_failedNzbool | NoneÚerror_on_graph_breakzGraphCompileReason | NoneÚreasonc                ó”   — d| _         || _        | j                  �| j                  j                  }nd}t        j                  |¬«      ‚)z\
        Start tracing of the current frame over again, and don't take this branch.
        Tz!Unknown fail_and_restart_analysis)Úrestart_reason)r»   r¼   r½   r   ÚSpeculationRestartAnalysis)Úselfr¼   r¿   s      r¦   Úfail_and_restart_analysisz*SpeculationEntry.fail_and_restart_analysisý   sB   € ð ˆŒØ$8ˆÔ!Ø�;‰;Ð"Ø!Ÿ[™[×/Ñ/‰Nà@ˆNÜ×,Ñ,¸NÔKÐKr¨   c                ó\   — | j                   r | j                  €J ‚| j                  |_        yy©NTF)r»   r¼   )rÁ   r£   s     r¦   ÚfailedzSpeculationEntry.failed	  s/   € Ø�<Š<Ø×,Ñ,Ð8Ð8Ð8Ø&*×&?Ñ&?ˆBÔ#ØØr¨   )r¼   rº   ÚreturnÚNone)r£   ÚInstructionTranslatorBaserÆ   rº   )	Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r»   r¼   r½   rÂ   rÅ   © r¨   r¦   r³   r³   ò   sC   … àƒMØƒKØÓØ
ÓØ€GˆTÓà(,Ð˜+Ó,Ø(,€FÐ%Ó,ó
Lôr¨   r³   c                  óÈ   — e Zd ZU dZ ej
                  e¬«      Zded<   dZ	ded<   dZ
d	ed
<    ej
                  e¬«      Zded<   dZd	ed<   dd„Zdd„Z	 	 	 	 	 	 	 	 	 	 dd„Zy)ÚSpeculationLoga3  
    SpeculationLog replaces the prior copy_graphstate/restore_graphstate
    checkpointing.  Rather than saving/restoring state, we restart the
    dynamo conversion process over from the beginning -- but when we
    hit the start of the speculation that failed, we instead generate
    a graph break.
    ©Údefault_factoryzlist[SpeculationEntry]Úentriesr   r¶   ÚindexFrº   Úgraph_break_on_autograd_gradú	list[str]Úautograd_grad_leaked_tensorsÚgraph_break_on_requires_grad_c                ó   — d| _         y ©Nr   )rÓ   ©rÁ   s    r¦   ÚrestartzSpeculationLog.restart'  s	   € Øˆ�
r¨   c                óF   — | j                   j                  «        d| _        y rÙ   )rÒ   ÚclearrÓ   rÚ   s    r¦   rÝ   zSpeculationLog.clear*  s   € Ø�‰×ÑÔØˆ�
r¨   c                ó6  — t        | j                  «      | j                  k(  r'| j                  j                  t	        ||||«      «       | j                  | j                     }d}| j                  dk7  r]| j                  | j                  dz
     }d|j
                  › d|j                  › d|j                  j                  › d|j                  › d�	}|j                  |k(  r|j
                  |k(  r|j                  |k(  s†t        d	| j                  › d
t        | j                  «      › d|j
                  › d|j                  › d|j                  j                  › d|j                  › d|› d|› d|j                  › d|› d|› d�«      ‚| xj                  dz  c_        |S )z’
        Lookup or create a SpeculationEntry() that is shared across
        RestartAnalysis calls.  Args are used only for debug checks.
        Ú r   r   zPrevious instruction: ú:ú(z @ z)
z"
SpeculationLog diverged at index z
 (log had z entries):
- Expected: ú (z at ip=z)
- Actual: a“  
There are two usual reasons why this may have occurred:
- When Dynamo analysis restarted, the second run took a different path than
  the first.  If this occurred, the previous instruction is the critical instruction that
  behaved differently.
- Speculation entries are only added under certain conditions (as seen in
  step()), e.g., there must exist operators in the graph; those conditions may
  have changed on restart.

If this divergence was intentional, clear the speculation log before restarting (do NOT
do this for graph breaks, you will infinite loop).

Otherwise, please submit a bug report, ideally including the contents of TORCH_LOGS=+dynamo
)ÚlenrÒ   rÓ   Úappendr³   rµ   r·   r¹   Úopnamer¸   ÚSpeculationLogDivergence)rÁ   rµ   r·   r¸   r¹   ÚentryÚprev_entry_msgÚ
prev_entrys           r¦   ÚnextzSpeculationLog.next.  s”  € ô ˆt�|‰|Ó §
¡
Ò*Ø�L‰L×ÑÜ  ¨6Ð3FÈÓMôð —‘˜TŸZ™ZÑ(ˆØˆØ�:‰:˜Š?ØŸ™ d§j¡j°1¡nÑ5ˆJà(¨×)<Ñ)<Ð(=¸Q¸z×?PÑ?PÐ>QØ�J—O‘O×*Ñ*Ð+¨3¨z×/MÑ/MÐ.NÈcðSð ð
 ×%Ñ%Ð)<Ò<Ø—‘ (Ò*Ø—‘ Ò&ä*ð"Ø"&§*¡* ¨Z¼¸D¿L¹LÓ8IÐ7Jð KØ�^‰^Ð˜A˜eŸl™l˜^¨2¨e¯j©j×.?Ñ.?Ð-@ÀÈ×HaÑHaÐGbð cØˆ*�A�f�X˜R §¡˜}¨GÐ4GÐ3Hð IØÐ ð ð	óð ð( 	�
Š
�a‰�
Øˆr¨   N©rÆ   rÇ   )
rµ   r´   r·   r¶   r¸   r¶   r¹   r,   rÆ   r³   )rÉ   rÊ   rË   Ú__doc__ÚdataclassesÚfieldÚlistrÒ   rÌ   rÓ   rÔ   rÖ   r×   rÛ   rÝ   rê   rÍ   r¨   r¦   rÏ   rÏ     s”   … ñð '8 k×&7Ñ&7ÈÔ&M€GÐ#ÓMØ€Eˆ3ƒNð */Ð  $Ó.à.?¨k×.?Ñ.?ÐPTÔ.UÐ  )ÓUð +0Ð! 4Ó/óóð-Øð-Ø%(ð-Ø?Bð-ØJUð-à	ô-r¨   rÏ   c                  óF   — e Zd ZU  ej                  e¬«      Zded<   dd„Zy)Ú
LocalStaterÐ   zdict[str, FrameStateSizeEntry]Úautomatic_dynamicc                ób   — dj                  d„ | j                  j                  «       D «       «      S )Nú
c              3  óL   K  — | ]  \  }}|› d |j                  «       › �–— Œ y­w)ú: N)Úrender)Ú.0ÚkÚvs      r¦   ú	<genexpr>z$LocalState.render.<locals>.<genexpr>e  s*   è ø€ ò 
Ù%) Q¨ˆqˆc��A—H‘H“J�<Ô ñ
ùs   ‚"$)Újoinrò   ÚitemsrÚ   s    r¦   r÷   zLocalState.renderd  s/   € Ø�y‰yñ 
Ø-1×-CÑ-C×-IÑ-IÓ-Kô
ó 
ð 	
r¨   N©rÆ   r´   )	rÉ   rÊ   rË   rí   rî   Údictrò   rÌ   r÷   rÍ   r¨   r¦   rñ   rñ   ^  s%   … à8I¸×8IÑ8IØô9ÐÐ5ó ô
r¨   rñ   c                  ó0   — e Zd ZU ded<   ded<   dZded<   y)ÚDistributedStater   Ú
compile_pgrñ   Úlocal_stateNzlist[LocalState] | NoneÚ
all_states)rÉ   rÊ   rË   rÌ   r  rÍ   r¨   r¦   r  r  k  s   … àƒOØÓØ*.€JÐ'Ô.r¨   r  c                  ón   — e Zd ZU  e«       Zded<   edd„«       Zed	d„«       Zed
d„«       Z	edd„«       Z
y)ÚTensorifyStatezset[str]Úforce_specializationsc                ó:   — | j                   j                  |«       y rŸ   )r  Úadd©ÚclsrÓ   s     r¦   Ú
specializezTensorifyState.specializex  s   € à×!Ñ!×%Ñ% eÕ,r¨   c                ó   — || j                   v S rŸ   )r  r
  s     r¦   Úshould_specializez TensorifyState.should_specialize|  s   € à˜×1Ñ1Ð1Ð1r¨   c                ó8   — | j                   j                  «        y rŸ   )r  rÝ   ©r  s    r¦   rÝ   zTensorifyState.clear€  s   € à×!Ñ!×'Ñ'Õ)r¨   c                ó2   — t        | j                  «      dk(  S rÙ   )rã   r  r  s    r¦   ÚemptyzTensorifyState.empty„  s   € ä�3×,Ñ,Ó-°Ñ2Ð2r¨   N)rÓ   r´   rÆ   rÇ   )rÓ   r´   rÆ   rº   rë   ©rÆ   rº   )rÉ   rÊ   rË   Úsetr  rÌ   Úclassmethodr  r  rÝ   r  rÍ   r¨   r¦   r  r  r  s_   … ñ '*£eÐ˜8Ó+àò-ó ð-ð ò2ó ð2ð ò*ó ð*ð ò3ó ñ3r¨   r  c                 ó4   — t        j                  t        «      S rŸ   )Útorchdynamo_loggingÚget_step_loggerÚlogrÍ   r¨   r¦   Ú_step_loggerr  ‰  s   € ä×.Ñ.¬sÓ3Ð3r¨   rÈ   c              #  óD  K  — | j                   j                  }| j                   j                  }	 g | j                   _        d| j                   _        d –— || j                   _        || j                   _        y # || j                   _        || j                   _        w xY w­wrÙ   )Úspeculation_logrÒ   rÓ   )r£   rÒ   rÓ   s      r¦   Ú save_and_restart_speculation_logr  Ž  s‰   è ø€ ð × Ñ ×(Ñ(€GØ×Ñ×$Ñ$€Eð)Ø%'ˆ×ÑÔ"Ø#$ˆ×ÑÔ Ûà%,ˆ×ÑÔ"Ø#(ˆ×ÑÕ øð &-ˆ×ÑÔ"Ø#(ˆ×ÑÕ üs   ‚-B °&A9 Á#B Á9$BÂB c              #  ó²   K  — 	 | j                   j                  }d| j                   _        d –— || j                   _        y # | j                   _        w xY w­w©NF)ÚoutputÚshould_exit)r£   Útmps     r¦   Ú(temporarely_allow_writes_to_output_graphr#  ¢  sA   è ø€ ð$Ø�i‰i×#Ñ#ˆØ %ˆ�	‰	ÔÛà #ˆ�	‰	Õø ˆ�	‰	Õüs   ‚A„+A ¯AÁAÁAc                  ó^   — e Zd ZU ded<   ded<   ded<   dZded	<   dd
„Zdd„Z	 	 	 	 	 	 dd„Zy)ÚBlockStackEntryr,   r¹   zInstruction | NoneÚtargetr¶   Ústack_indexNz?ContextWrappingVariable | GenericContextWrappingVariable | NoneÚwith_contextc                ó   — | j                   d uS rŸ   )r(  rÚ   s    r¦   Úcan_restorezBlockStackEntry.can_restore¶  s   € Ø× Ñ ¨Ð,Ð,r¨   c                ó*  — | j                   €J ‚| j                  rbt        | j                  d«      rL| j                  j                  r6t	        | j                   dz
  t        | j                  j                  «      «      S t	        | j                   dz
  «      S )NÚtarget_valuesr   )r'  r(  Úhasattrr,  rL   ÚtuplerÚ   s    r¦   Ú	resume_fnzBlockStackEntry.resume_fn¹  s‚   € Ø×ÑÐ+Ð+Ð+à×ÒÜ˜×)Ñ)¨?Ô;Ø×!Ñ!×/Ò/äØ× Ñ  1Ñ$¤e¨D×,=Ñ,=×,KÑ,KÓ&Lóð ô ˜t×/Ñ/°!Ñ3Ó4Ð4r¨   c                ó’   — | j                   €J ‚|r| j                   j                  «       s|s| j                   j                  |«      S y rŸ   )r(  Úexit_on_graph_breakÚexit)rÁ   r£   Úis_graph_breaks      r¦   r2  zBlockStackEntry.exitÆ  sG   € ð × Ñ Ð,Ð,Ð,á˜t×0Ñ0×DÑDÔFÙØ×$Ñ$×)Ñ)¨"Ó-Ð-Ør¨   r  )rÆ   rL   )r£   rÈ   r3  rº   rÆ   úVariableTracker | None)rÉ   rÊ   rË   rÌ   r(  r*  r/  r2  rÍ   r¨   r¦   r%  r%  ®  sH   … ð ÓØÓØÓØTX€LÐQÓXó-ó5ðØ+ðØ=Aðà	ôr¨   r%  c                  ó   — e Zd Zy)ræ   N©rÉ   rÊ   rË   rÍ   r¨   r¦   ræ   ræ   Ñ  ó   „ Ør¨   ræ   c                  ó   — e Zd Zy)ÚReturnValueOpNr6  rÍ   r¨   r¦   r9  r9  Õ  r7  r¨   r9  c                  ó   — e Zd ZdZy)ÚYieldValueOpzY
    Signal to the symbolic tracer to stop and return control flow to the
    caller
    N)rÉ   rÊ   rË   rì   rÍ   r¨   r¦   r;  r;  Ù  s   „ òr¨   r;  c                ó®   ‡‡— t        t        j                  | «      j                  «      Št	        | «      Št        j                  | «      dˆˆfd„«       }|S )Nc                óh   •— | j                  ‰j                  | | j                  ‰«      i «      «       y rŸ   )ÚpushÚcall_functionÚpopn)rÁ   r¹   Úfn_varÚnargss     €€r¦   Úimplzstack_op.<locals>.implä  s'   ø€ à�	‰	�&×&Ñ& t¨T¯Y©Y°uÓ-=¸rÓBÕCr¨   )rÁ   ÚInstructionTranslatorr¹   r,   rÆ   rÇ   )rã   ÚinspectÚ	signatureÚ
parametersrf   Ú	functoolsÚwraps)ÚfnrC  rA  rB  s     @@r¦   Ústack_oprK  à  sL   ù€ Ü”×!Ñ! "Ó%×0Ñ0Ó1€EÜ˜RÓ €Fä‡_�_�RÓõDó ðDð €Kr¨   c                ó”   — t        | t        j                  «      sy| j                  j	                  d«      d   t
        j                  v S )NFú.r   )Ú
isinstanceÚtypesÚ
ModuleTyperÉ   ÚsplitÚsysÚstdlib_module_names)Úmods    r¦   Ú	is_stdlibrU  ë  s:   € Ü�cœ5×+Ñ+Ô,ØØ�<‰<×Ñ˜cÓ" 1Ñ%¬×)@Ñ)@Ð@Ð@r¨   c                óè   — | rdd„}ndd„}t        j                  |«      D �cg c]  }|j                  ‘Œ }}t        d„ t	        |«      D «       «      }|j                  d«      }||dz   |dz    S c c}w )Nc                ó   — | sJ d«       ‚y )NÚmsgrÍ   ©Úxs    r¦   rJ  z(get_assert_bytecode_sequence.<locals>.fnõ  s   € ÙˆO�e‹O‘1r¨   c                ó   — | sJ ‚y rŸ   rÍ   rY  s    r¦   rJ  z(get_assert_bytecode_sequence.<locals>.fnù  s	   € ÙˆH‘1r¨   c              3  óJ   K  — | ]  \  }}|j                  d «      sŒ|–— Œ y­w)ÚPOP_JUMPN)Ú
startswith)rø   Úir¹   s      r¦   rû   z/get_assert_bytecode_sequence.<locals>.<genexpr>ÿ  s   è ø€ ÒV™7˜1˜d¸$¿/¹/È*Õ:U”QÑVùs   ‚#œ#ÚRAISE_VARARGSr   )rZ  r   rÆ   rÇ   )ÚdisÚget_instructionsrå   rê   Ú	enumeraterÓ   )Úwith_msgrJ  r¹   ÚinstsÚ	begin_idxÚend_idxs         r¦   Úget_assert_bytecode_sequencerh  ñ  sr   € áô	ó	ô &)×%9Ñ%9¸"Ó%=Ö>˜TˆT�[‹[Ð>€EÐ>ô ÑV¤i°Ó&6ÔVÓV€IØ�k‰k˜/Ó*€Gà�˜Q‘ ¨1¡Ð-Ð-ùò ?s   £A/c                óÐ  — |t         j                  us|ryt        | j                  t        «      sJ ‚| j                  }dD ]Ÿ  }t        |«      }| j                  ||t        |«      z    }|D �cg c]  }|j                  ‘Œ }}||k(  sŒH|r.|j                  d«      }| j                  ||z      j                  }	nd}	| j                  t        j                  | |	«      «        y yc c}w )NF)FTÚ
LOAD_CONSTzassertion errorT)ÚoperatorÚtruthrN  r¸   r¶   rh  Úinstructionsrã   rå   rÓ   Úargvalr>  rb   Úbuild)
rÁ   Útruth_fnr>  Úcurrent_instruction_pointerrd  Úassert_instsÚ	cur_instsr¹   Úload_const_idxÚ	error_msgs
             r¦   Ú&_detect_and_normalize_assert_statementrv    sô   € ð 	œŸ™Ñ&©4Øä�d×.Ñ.´Ô4Ð4Ð4Ø"&×":Ñ":Ðà!ò ˆÜ3°HÓ=ˆØ×%Ñ%Ø'Ð*EÜ�,Óñ+ ð
ˆ	ð .7Ö7 T�T—[“[Ð7ˆ	Ð7Ø˜Ó$ÙØ!-×!3Ñ!3°LÓ!A�Ø ×-Ñ-Ø/°.Ñ@ñç‘&ñ ð .�	Ø�I‰I”o×+Ñ+¨D°)Ó<Ô=Ùð!ð$ ùò 8s   Á-C#Fc                ó¬  — | j                   j                  dd«      xs t        | dd«      }|sy|j                  «       j	                  d«      }d}t        |«      D ]'  \  }}|j                  «       j                  d«      sŒ&|}Œ) |dk  ry||   j                  «       }d}|dz   t        |«      k  r||dz      j                  «       }|› |rd|› �z   S dz   S )	zIExtract the innermost user source location from an FX node's stack trace.Ústack_tracerß   rô   éÿÿÿÿzFile r   r   z, code: )ÚmetaÚgetÚgetattrÚstriprQ  rc  r^  rã   )ÚnÚstÚtrace_linesÚlast_file_idxr_  ÚlineÚ	file_lineÚcodes           r¦   Úget_node_source_infor…  P  sã   € à	
�‰�‰�M 2Ó	&Ò	G¬'°!°]ÀBÓ*G€BÙØØ—(‘(“*×"Ñ" 4Ó(€KØ€MÜ˜[Ó)ò ‰ˆˆ4Ø�:‰:‹<×"Ñ" 7Õ+Ø‰Mðð �qÒØØ˜MÑ*×0Ñ0Ó2€IØ€DØ�qÑœ3˜{Ó+Ò+Ø˜=¨1Ñ,Ñ-×3Ñ3Ó5ˆØˆ[±$˜x¨ vÐ.Ñ?Ð?¸BÑ?Ð?r¨   c                ó´  ‡‡‡‡‡‡	— t        | t        «      sy	 | j                  j                  }g Šg Št	        «       Šd
d„Šdˆˆˆˆˆˆ	fd„Š	 ‰	|«       ‰s‰syg }‰t        t        ‰«      «      z   D ]$  }|j                  |«       |j                  d«       Œ& ddj                  d„ |D «       «      z   S # t        $ r t        j                  dd¬	«       Y yw xY w)zóWalk the FX graph backwards from a TensorVariable to show how it was
    computed, with user source locations. Graph inputs (placeholders) are always
    shown first, followed by operations in dataflow order ending at the branch
    condition.rß   c                óx   — t        | t        j                  j                  «      r| j                  S t        | «      S rŸ   )rN  ÚtorchÚfxÚNoder°   Úrepr)Úas    r¦   Úfmt_argz0format_tensor_computation_trace.<locals>.fmt_args  s&   € Ü'¨¬5¯8©8¯=©=Ô9�1—6‘6ÐF¼tÀA»wÐFr¨   c                ó(  •— | j                   ‰
v ry ‰
j                  | j                   «       t        | «      }| j                  dk(  rUg }|r|j	                  d|› �«       |j	                  | j                   › d| j
                  › d�«       ‰	j	                  |«       y | j                  dk(  rét        ‰«      ‰k  rÚt        | j
                  dt        | j
                  «      «      }dj                  ˆfd„| j                  D «       «      }g }|r|j	                  d|› �«       |j	                  | j                   › d	|› d
|› d�«       ‰j	                  |«       | j                  D ]/  }t        |t        j                  j                  «      sŒ( ‰|«       Œ1 y y y )NÚplaceholderz# z: graph input (ú)r?  rÉ   z, c              3  ó.   •K  — | ]  } ‰|«      –— Œ y ­wrŸ   rÍ   )rø   rŒ  r�  s     €r¦   rû   z@format_tensor_computation_trace.<locals>.walk.<locals>.<genexpr>†  s   øè ø€ Ò$@°A¡W¨Q§ZÑ$@ùs   ƒz = rá   )r°   r	  r…  Úoprä   r&  rã   r|  r´   rü   r¤   rN  rˆ  r‰  rŠ  )r~  ÚsourceÚblockÚtarget_nameÚargs_strrŒ  r�  Ú	max_linesÚ	op_blocksÚplaceholder_blocksÚvisitedÚwalks         €€€€€€r¦   r›  z-format_tensor_computation_trace.<locals>.walkv  sM  ø€ Ø�v‰v˜Ñ ØØ�K‰K˜Ÿ™ÔÜ)¨!Ó,ˆFà�t‰t�}Ò$Ø�ÙØ—L‘L 2 f X Ô/Ø—‘ §¡˜x °q·x±x°jÀÐBÔCØ"×)Ñ)¨%Ô0Øà�t‰t�Ò&¬3¨y«>¸IÒ+EÜ% a§h¡h°
¼CÀÇÁ»MÓJ�ØŸ9™9Ó$@¸¿¹Ô$@Ó@�Ø�ÙØ—L‘L 2 f X Ô/Ø—‘ §¡˜x s¨;¨-°q¸¸
À!ÐDÔEØ× Ñ  Ô'àŸ™ò  �AÜ! !¤U§X¡X§]¡]Õ3Ù˜Q�ñ ð ,FÐ&r¨   z@

  The branch condition involves a tensor computed as follows:
rô   c              3  ó&   K  — | ]	  }d |› �–— Œ y­w)ú    NrÍ   )rø   r‚  s     r¦   rû   z2format_tensor_computation_trace.<locals>.<genexpr>Ÿ  s   è ø€ Ò<¨$˜$˜t˜fœÑ<ùs   ‚z&format_tensor_computation_trace failedT)Úexc_info)rŒ  ÚobjectrÆ   r´   )r~  útorch.fx.NoderÆ   rÇ   )rN  r‹   ÚproxyÚnoder  rï   r¡   Úextendrä   rü   Ú	Exceptionr  Údebug)
Úvaluer—  r¢  Ú	all_linesr”  r�  r˜  r™  rš  r›  s
    `   @@@@@r¦   Úformat_tensor_computation_tracer¨  c  sä   ý€ ô
 �eœ^Ô,Øð9Ø�{‰{×Ñˆð &(ˆ	Ø.0ÐÜ›Eˆó	G÷	 ò 	 ñ6 	ˆTŒ
áÑ!3Øð  "ˆ	Ø'¬$¬x¸	Ó/BÓ*CÑCò 	!ˆEØ×Ñ˜UÔ#Ø×Ñ˜RÕ ð	!ð
 RØ�i‰iÑ<°)Ô<Ó<ñ=ð	
øô ò Ü�	‰	Ð:ÀTˆ	ÔJÙðús   ™?B4 ÁAB4 Â4 CÃCc                óL   ‡ ‡‡‡— dd„Š	 d	 	 	 	 	 	 	 	 	 dˆˆfd„Šdˆˆˆˆ fd„}|S )Nc                ó  — t        | «      }g }t        | t        «      r‘	 | j                  j                  j
                  j                  d«      }|�_|j                  «       dk(  rL|j                  t        j                  t        j                  t        j                  fv r|j                  d«       |j                  t         j"                  «       |j                  d«       t%        dd| › �d|z   |¬«       y # t        $ r Y ŒQw xY w)	NÚexample_valuer   zîThe branch condition uses a scalar integer tensor. Consider rewriting the computation to use plain Python ints (e.g. use int attributes instead of tensor buffers) so the condition becomes a shape guard instead of data-dependent branching.z1Use `torch.cond` to express dynamic control flow.zData-dependent branchingzattempted to jump with zyDetected data-dependent branching (e.g. `if my_tensor.sum() > 0:`). Dynamo does not support tracing dynamic control flow.©Úgb_typeÚcontextÚexplanationÚhints)r¨  rN  r‹   r¡  r¢  rz  r{  ÚdimÚdtyperˆ  rº   Úint32Úint64rä   r¤  r£  r   ÚFUNDAMENTALr:   )r¦  Ú
trace_infor°  Úexamples       r¦   Úraise_jump_graph_breakz,generic_jump.<locals>.raise_jump_graph_break©  sê   € Ü4°UÓ;ˆ
ØˆÜ�eœ^Ô,ðØŸ+™+×*Ñ*×/Ñ/×3Ñ3°OÓD�àÐ'ØŸ™›¨Ò*ØŸ™äŸ
™
ÜŸ™ÜŸ™ðñð —L‘Lð4ôð 	�‰Ô&×2Ñ2Ô3Ø�‰ÐHÔIÜØ.Ø-¨e¨WÐ5ðDØFPñQàö	
øô	 ò Ùðús   ŸBC5 Ã5	DÄ Dc           	     óÞ  •— | j                  «       sJ ‚d }	  ‰|«       |€J ‚| j                  «       r| j	                  | j
                  |«       | j                  | j                  t        |«      |¬«       | j                  |«       t        j                  d«       | j                  j                  | t        dt        |«      › |› �| j!                  «       g«      d¬«      }| j#                  «        | j%                  | j&                  |«      }‰
r| j                  |«       |j(                  €J ‚| j%                  |j(                  |«      }t*        j,                  dk\  r%| j                  j/                  t1        d«      g«       t1        |j2                  |d   ¬	«      }	|	j5                  |«       | j                  j/                  |	g|z   |z   «       y # t        t        f$ r}|}Y d }~�ŒÈd }~ww xY w)
N©r½   r   zgeneric_jump triggered compilezgeneric_jump r   ©r½   Ú
stack_pops©é   é   ÚTO_BOOLr   )r&  )Úshould_compile_partial_graphr;   r<   Úmaybe_has_backedgeÚraise_loop_graph_breakÚf_codeÚlog_graph_breakÚcode_optionsr´   r>  r  r¥  r   Úcompile_subgraphr@   r`   Úframe_summaryÚpopÚcreate_call_resume_atÚnext_instructionr&  rR  Úversion_infoÚadd_output_instructionsr'   rå   Úcopy_positions)rÁ   r¹   r¦  Ú	extra_msgr   ÚeÚall_stack_locals_metadataÚif_nextÚif_jumpÚ	jump_instr>  r¸  s             €€r¦   Újump_graph_breakz&generic_jump.<locals>.jump_graph_breakÌ  sÎ  ø€ ð ×0Ñ0Ô2Ð2Ð2àˆð	Ù" 5Ô)ð ˆÐˆð ×"Ñ"Ô$Ø×'Ñ'¨¯©°SÔ9à×ÑØ×ÑÜ�s“8Øð 	ô 	
ð 	�	‰	�%ÔÜ�	‰	Ð2Ô3Ø$(§K¡K×$@Ñ$@ØÜ%Ø¤¨£Ð/°	¨{Ð;¸d×>PÑ>PÓ>RÐ=Sóð ð %Aó %
Ð!ð 	�‰Œ
à×,Ñ,Ø×!Ñ!Ø%ó
ˆñ Ø�I‰I�eÔØ�{‰{Ð&Ð&Ð&Ø×,Ñ,Ø�K‰KØ%ó
ˆô
 ×Ñ˜wÒ&à�K‰K×/Ñ/Ô1CÀIÓ1NÐ0OÔPä& t§{¡{¸7À1¹:ÔFˆ	Ø× Ñ  Ô&Ø�‰×+Ñ+¨Y¨K¸'Ñ,AÀGÑ,KÕLøôY œYÐ'ò 	ØŽCûð	ús   —G ÇG,ÇG'Ç'G,c                óT  •— | j                  «       }t        j                  �r`t        j                  j
                  dk(  �rBt        | ‰‰«      �r4| j                  «       }|j                  «       rmt        |j                  «       «      r| j                  |«      S | j                  «       r ‰| ||«       y t        dd|› �dg t        j                  ¢d‘d‘d‘¬«       |j                  «       rJ | j                   j"                  d	t$        j&                  gt)        ||fi «      ¢­Ž  | j                  |«       y t+        |t,        «      rš|j.                  }t+        |t$        j0                  «      s|dk7  }t$        j2                  j4                  j6                  j9                  |«      }|s(t        d
t;        |«      dg t        j<                  ¢¬«       | j                  |«       y  | j                   j"                  d	t$        j>                  gt)        |fi «      ¢­Ž }tA        | |tC        |jD                  | «      ¬«      } | j                   j"                  d	t$        j&                  gt)        ||fi «      ¢­Ž  | j                  |«       y |j                  «       rŠt+        |tF        «      r>|jH                  r2tK        |jH                  jM                  tN        jP                  «      «        ‰|j                  «       «      r%‰r| jS                  |«       | j                  |«       y y |j                  «       r| j                  «       r ‰| ||«       y t+        |tT        «      rS| j                   jW                  |jX                  «      } ‰|«      r%‰r| jS                  |«       | j                  |«       y y t+        |tZ        «      �rŒ	 |j]                  | d«      }	t+        |	td        tf        f«      �r1|	ji                  | g i «      }tk        tk        |	dd «      dd «      }
|j                  «       r›|j                  «       }|
dk(  rCt+        |t        «      s3t_        jl                  tn        | dtq        |«      jr                  › �g¬«       t+        |t        tt        f«      r¸ ‰|«      r¯‰r| jS                  |«       | j                  |«       y t+        |t,        «      r5|jw                  «       ri‰r| jS                  |«       | j                  |«       y t        dd|	› d|› �dg ¬«       y  ‰d«      r%‰r| jS                  |«       | j                  |«       y y y y y |j                  «       sW|jy                  | «      rF ‰t{        |j}                  | «      «      «      r%‰r| jS                  |«       | j                  |«       y y t+        |t,        «      r‡	 t+        |j.                  t$        j0                  «      r|jw                  | j                   «      }nt        |j.                  dk7  «      } ‰|«      r%‰r| jS                  |«       | j                  |«       y y t+        |t‚        j„                  «      r. ‰d«      r%‰r| jS                  |«       | j                  |«       y y ddl$mC} |jH                  �N ||jH                  «      r< ‰|j‰                  «       «      r%‰r| jS                  |«       | j                  |«       y y  ‰|«       y # t^        j`                  $ r] t_        jb                  | «       	 |j]                  | d«      }	n0# t^        j`                  $ r t_        jb                  | «       d }	Y nw xY wY �Œ—w xY w# t^        j€                  $ r*}| j                  «       r ‰| ||d|› �¬«      cY d }~S ‚ d }~ww xY w)Nr   z>Data-dependent assertion failed (cannot compile partial graph)zvalue: zuDynamo has determined when encountering a data-dependent assert failure that it should not compile the partial graph.zÎUse `torch._assert()` to raise a hard AssertionError when the check fails. This error will propagate back the user code that called the compiled function (i.e. Dynamo will not trace any exception handling).zRemove the assert statement.z†Move the assert statement outside of any context managers in order to graph break with partial graph compilation (if fullgraph=False).r¬  r?  z#Assertion failed on symbolic shapesrß   )r«  Ú__bool__Ú__len__rJ  rÉ   z&__bool__ should return bool, returned ©r¤   z3Data-dependent branching with non-constant __bool__zmethod: z
, result: z}Attempted to perform data-dependent branching on a user-defined object with a __bool__ method that did not return a constant.Trô   )rÏ  r   )Úis_constant_source)ErÉ  r   Ú rewrite_assert_with_torch_assertrR  ÚflagsÚoptimizerv  Úis_python_constantrº   Úas_python_constantÚjumprÁ  r:   r   rµ  Ú	is_tensorr   Úcreate_proxyrˆ  Ú_assert_asyncr_   rN  rŠ   Úsym_numÚSymBoolr‰  ÚexperimentalÚsymbolic_shapesÚexpect_truer´   Ú
USER_ERRORÚscalar_tensorre   rY   r¢  rn   r“  r?   Ú
make_guardr>   ÚSEQUENCE_LENGTHr>  r…   Úget_submoduleÚ
module_keyr’   Úvar_getattrr   ÚObservedAttributeErrorÚhandle_observed_exceptionr€   ru   r?  r|  Úraise_observed_exceptionÚ	TypeErrorÚtyperÉ   r¶   Úevaluate_exprÚhas_unpack_var_sequencerã   Úunpack_var_sequencer   r<   r   ÚBackwardHookVariablerÚ  Úget_real_value)rÁ   r¹   r¦  ru  Úsym_exprÚresultÚscalar_to_tensor_proxyÚscalar_to_tensorrT  rZ  Úmethod_nameÚresult_valueÚeval_resultrÐ  rÚ  rÕ  r>  r¸  rp  s                  €€€€r¦   Úinnerzgeneric_jump.<locals>.inner  s�  ø€ Ø!%§¡£ˆä×3Ó3Ü—	‘	×"Ñ" aÓ'Ü6°t¸XÀtÕLà)-¯©«ˆIà×'Ñ'Ô)Ü˜×0Ñ0Ó2Ô3ØŸ9™9 T›?Ð*Ø×6Ñ6Ô8Ù$ T¨4°Ô7Øä!Ø `Ø")¨%¨Ð 1ð%HðÜ.×:Ñ:ððuðð
 ;ððNðõð* �‰Ô Ø(�—‘×(Ñ(Ø#Ü×'Ñ'ðô '¨¨yÐ'9¸2Ó>óð
 —	‘	˜$”Øä˜%¤Ô1ð !Ÿ=™=�Ü! (¬E¯M©MÔ:Ø'¨1™}�HäŸ™×.Ñ.×>Ñ>×JÑJÈ8ÓT�ÙÜ!Ø EÜ # H£Ø$&Ø=Ô 1× <Ñ <Ð=õ	ð —	‘	˜$”Øà%= T§[¡[×%=Ñ%=Ø¤×!4Ñ!4ð&Ü7HÈ%ÈÐSUÓ7Vò&Ð"ô  -ØØ&Ü,Ð-C×-HÑ-HÈ$ÓOô Ðð %ˆD�K‰K×$Ñ$ØÜ×#Ñ#ðô #Ð$4°iÐ#@À"ÓEóð
 �I‰I�dŒOØà×#Ñ#Ô%ô ˜%Ô!2Ô3¸¿ºÜ˜eŸl™l×5Ñ5´l×6RÑ6RÓSÔTÙ˜×0Ñ0Ó2Ô3ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð 4ð �_‰_Ô 4×#DÑ#DÔ#FÙ˜T 4¨Õ/Ü˜Ô/Ô0à—+‘+×+Ñ+¨E×,<Ñ,<Ó=ˆCÙ˜Œ}ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð ô ˜Ô8Õ9ð	Ø×%Ñ% d¨JÓ7�ô ˜!œoÔ/AÐBÕCØŸ™¨¨r°2Ó6�Ü%¤g¨a°°tÓ&<¸jÈ$ÓO�Ø×,Ñ,Ô.Ø#)×#<Ñ#<Ó#>�LØ" jÒ0¼ÀLÔRVÔ9WÜ×4Ñ4Ü%Ø à"HÌÈlÓI[×IdÑIdÐHeÐ fð"õô " ,´´s°Ô<ÁÈ,ÔAWÙØ ŸI™I eÔ,ØŸ	™	 $�Ü ¬Ô8Ø×+Ñ+Ô-ÙØ ŸI™I eÔ,ØŸ	™	 $�ä!Ø UØ"*¨1¨#¨Z¸°xÐ @ð%Xà öñ ˜D”>ÙØŸ	™	 %Ô(Ø—I‘I˜d•Oð "ð .ð BXÐ<ð. —‘Ô" u×'DÑ'DÀTÔ'JÙœ˜E×5Ñ5°dÓ;Ó<Ô=ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð >ô ˜œÔ/ðô ˜eŸm™m¬U¯]©]Ô;Ø"'×"5Ñ"5°d·k±kÓ"B‘Kä",¨U¯]©]¸aÑ-?Ó"@�Kñ
 ˜Ô$ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð %ô ˜œy×=Ñ=Ô>Ù˜Œ~ÙØ—I‘I˜eÔ$Ø—	‘	˜$•ð õ
 3à�|‰|Ð'Ñ,>¸u¿|¹|Ô,LÙ˜E×0Ñ0Ó2Ô3ÙØŸ	™	 %Ô(Ø—I‘I˜d•Oð 4ñ
 ' uÕ-øôi ×-Ñ-ò Ü×-Ñ-¨dÔ3ðØ×)Ñ)¨$°	Ó:‘AøÜ×1Ñ1ò Ü×1Ñ1°$Ô7Ø’Aðýðûô| —=‘=ò Ø×4Ñ4Ô6Ù+¨D°$¸È2ÈaÈSÈÔRÕRØûðús[   Î=[7 × A]* Û7(]'Ü \3Ü2]'Ü3*] Ý]'Ý] Ý ]'Ý&]'Ý*^'Ý=^"Þ^'Þ!^"Þ"^')r¦  rb   rÆ   r   )rß   )
rÁ   rÈ   r¹   r,   r¦  rb   rÏ  r´   rÆ   rÇ   ©rÁ   rÈ   r¹   r,   rÆ   rÇ   rÍ   )rp  r>  r  rÕ  r¸  s   `` @@r¦   Úgeneric_jumpr  ¦  s\   û€ ó!
ðN ð	7MØ'ð7Màð7Mð ð7Mð ð	7Mð
 
ö7M÷r|.ð |.ð| €Lr¨   c                ó6  — g }| }|� |j                  |«       |j                  }|�Œ t        |«      D ]å  } | j                  D ]Ô  }t	        |j
                  t        «      r:|j                  |j                  «       j                  |j                  |«      «       ŒW|j
                  €J ‚t	        |j
                  t        «      sJ ‚|j
                  j                  |«       |j                  |j                  «       j                  |j                  |«      «       ŒÖ Œç y)zsGenerates bytecode to restore the block stack for running the unsupported instruction
    in the compiled bytecode.N)rä   Úparentr¡   Úblock_stackrN  r(  r�   Úextend_outputr/  Útry_except_torch_function_moderÆ  ri   Úreconstruct_typeÚtry_finally)r£   ÚcgÚcleanupÚall_txesÚcur_txÚbs         r¦   Ú_reconstruct_block_stackr  Æ  sû   € ð 13€HØ/1€FØ
Ð
Ø�‰˜ÔØ—‘ˆð Ñ
ô �xÓ ò RˆØ—‘ò 	RˆAô ˜!Ÿ.™.Ô*CÔDØ× Ñ Ø—K‘K“M×@Ñ@ØŸ™¨óôð
 Ø—>‘>Ð-Ð-Ð-Ü˜aŸn™nÔ/FÔHÐHÐHØ�N‰N×+Ñ+¨BÔ/Ø×Ñ˜QŸ[™[›]×6Ñ6°r·±ÈÓPÕQñ	RñRr¨   c                ó    ‡ ‡— 	 	 	 	 dˆˆ fd„}|S )Nc                ój   •‡ ‡— t        j                  ‰ «      dˆˆ ˆˆfd„«       }	 	 	 	 	 	 	 	 dˆfd„Š|S )Nc           
     ó"  •— | j                   }‰| _         | j                  «       }|j                  | «      r"|j                  €J ‚ ‰| ||j                  «      S 	  ‰| |«      || _         S # t        t
        f$ �rd}| j                  rg| j                  s| j                  r‚ t        |t        «      r|j                  «        t        dd| j                  › �ddgt        j                  ¢|¬«       t        |dd«      r‚ | j                  «       s‚ | j!                  «       r| j#                  | j$                  |«       | j'                  | j(                  ‰› dt+        |«      › �|¬	«       t        |t        «      r!|j                  «        |j-                  d
«       t/        t        |dt+        |«      «      t        |d| j1                  «       g«      «      |_        Y d }~nd }~ww xY w	 || _         n# || _         w xY w|j3                  | j                  «       y )Nz0Graph break under GenericContextWrappingVariablez!Active generic context managers: z]Attempted to graph break in an active context manager(s) that doesn't support graph breaking.zEMove the offending context manager(s) to outside the compiled region.©r­  r®  r¯  r°  Úfrom_excÚ
skip_frameFz:

rº  Úgraph_breakrX  Ú
real_stack)Úcurrent_instruction_pushÚ	speculaterÅ   r½   r;   r<   Úactive_generic_context_managersÚ	one_graphr¼   rN  Úremove_from_statsr:   r   ÚCAUSED_BY_EARLIER_GRAPH_BREAKr|  rÁ  rÂ  rÃ  rÄ  rÅ  rÆ  r´   Úadd_to_statsr@   rÈ  rÂ   )	rÁ   r¹   Ú	prev_pushÚspeculationÚexcpÚhandle_graph_breakÚinner_fnÚ
msg_prefixr>  s	        €€€€r¦   Úwrapperz>break_graph_if_unsupported.<locals>.decorator.<locals>.wrapperï  sö  ø€ à×5Ñ5ˆIØ,0ˆDÔ)ØŸ.™.Ó*ˆKØ×!Ñ! $Ô'à"×)Ñ)Ð5Ð5Ð5Ù)¨$°°k×6HÑ6HÓIÐIð.:Ù  dÓ+ðZ 1:�Õ-øôY  ¤Ð+ó *Ø×7Ò7à—~’~¨×)BÒ)BØô " $¬Ô4Ø×.Ñ.Ô0Ü!Ø RØ"CÀD×DhÑDhÐCiÐ jð %Dàcðä.×LÑLðð "&õ	ô ˜4 ¨uÔ5Øà×8Ñ8Ô:Øà×*Ñ*Ô,Ø×/Ñ/°·±¸TÔBà×$Ñ$Ø×%Ñ%Ø(˜\¨¬s°4«y¨kÐ:Øð %ô ô ˜d¤KÔ0Ø×*Ñ*Ô,Ø×%Ñ% mÔ4Ü%7Ü˜D %¬¨T«Ó3Ü˜D ,°×1CÑ1CÓ1EÐ0FÓGó&�×"Ñ"ûðO*úðN #ð
 1:�Õ-ø°	�Õ-úØ×1Ñ1°$×2KÑ2KÕLs+   ÁA) Á)GÁ9EGÇG) ÇGÇG) Ç)	G2c                ó<  •— t         j                  dk\  r†t         j                  dk  rs|j                  dk(  rdt        j                  t        j
                  d   |j                  «      t        j                  t        j
                  d   |j                  «      z   }n*t        j                  |j                  |j                  «      }t        j                  d|j                  «       | j                  j                  | |t        ‰
«      |z
  ¬«      }t        | j                  j                  «      }g }t        | ||«       | j                  j!                  |j#                  «       «       ~t         j                  dk\  rÕ|j                  dk(  rÆ| j$                  �| j$                  j'                  «       nd}t)        |«      dkD  r<t         j                  d	k  sJ ‚| j                  j!                  t+        d
|¬«      g«       |j                  €J ‚t-        |j                  d«      }|d   j/                  |«       | j                  j!                  |«       nF|j0                  �J ‚t3        j2                  |«      }	d |	_        | j                  j!                  |	g«       | j                  j!                  |«       | j7                  t        ‰
«      |z
  «       ‰
r| j9                  t;        «       «       | j                  j!                  | j=                  | j>                  |«      «       y )N©r¾  é   ©r¾  é   ÚCALLÚPRECALLz%s triggered compiler»  rÍ   r   r½  ÚKW_NAMES©rn  Fry  ) rR  rÌ  rå   ra  Ústack_effectÚopmapÚargÚopcoder  r¥  r   rÇ  r¶   r1   Úroot_txr  rÍ  rb  Úkw_namesrß  rã   r'   r#   rÎ  r&  ÚcopyÚexn_tab_entryr@  r>  r„   rÊ  rË  )rÁ   r¹   r½   r0  rÑ  r  r  r5  Ú
call_instsÚ	inst_copyr>  s             €r¦   r#  zIbreak_graph_if_unsupported.<locals>.decorator.<locals>.handle_graph_break)  sy  ø€ ô × Ñ  GÒ+Ü×$Ñ$ wÒ.Ø—K‘K 6Ò)ô  #×/Ñ/Ü—I‘I˜iÑ(¨$¯(©(ó ä×$Ñ$¤S§Y¡Y¨vÑ%6¸¿¹ÓAñ B‘ô  #×/Ñ/°·±¸T¿X¹XÓF�ä�I‰IÐ,¨d¯k©kÔ:Ø(,¯©×(DÑ(DØ˜V´°D³	¸LÑ0Hð )Eó )Ð%ô ˜4Ÿ;™;×.Ñ.Ó/ˆBØ)+ˆGÜ$ T¨2¨wÔ7Ø�K‰K×/Ñ/°×0CÑ0CÓ0EÔFØä×Ñ 7Ò*¨t¯{©{¸fÒ/Dð —}‘}Ð0ð —M‘M×4Ñ4Ô6àð ô
 �x“= 1Ò$ä×+Ñ+¨gÒ5Ð5Ð5Ø—K‘K×7Ñ7Ü+¨J¸xÔHÐIôð —x‘xÐ+Ð+Ð+Ü1°$·(±(¸EÓB�
Ø˜2‘×-Ñ-¨dÔ3Ø—‘×3Ñ3°JÕ?ð —{‘{Ð*Ð*Ð*Ü ŸI™I d›O�	Ø*.�	Ô'Ø—‘×3Ñ3°Y°KÔ@à�K‰K×/Ñ/°Ô8à�I‰I”c˜$“i ,Ñ.Ô/ÙØ—	‘	œ/Ó+Ô,Ø�K‰K×/Ñ/Ø×*Ñ*Ø×)Ñ)Ø-óõr¨   r  )rÁ   rÈ   r¹   r,   r½   r@   rÆ   rÇ   )rH  rI  )r$  r&  r#  r%  r>  s   ` @€€r¦   Ú	decoratorz-break_graph_if_unsupported.<locals>.decoratorì  sT   ú€ ô 
�‰˜Ó	"÷7	Mó 
#ð7	Mðr<	Ø+ð<	àð<	ð 'ð<	ð õ	<	ð| ˆr¨   )r$  úCallable[..., None]rÆ   ú8Callable[[InstructionTranslatorBase, Instruction], None]rÍ   )r>  r%  r:  s   `` r¦   Úbreak_graph_if_unsupportedr=  ç  s$   ù€ ð
{Ø%ð{à	Aö{ðz Ðr¨   c                  ó$   ‡ — e Zd ZdZdˆ fd„Zˆ xZS )ÚBytecodeDispatchTableMetazTInstalls a `cls.dispatch_table` on every subclass to speed up calls to self.OPCODE()c                ó@  •— t         ‰	| �  |||«       dd„}t        j                  j	                  «       D ��ci c]'  \  }}|t        | |t        j                  ||«      «      “Œ) }}}t        d«      D �cg c]  }|j                  |«      ‘Œ c}| _
        y c c}}w c c}w )Nc                ó^   — t        d| › d|› �d| › d�d| › d�gt        j                  ¢¬«       y )NzMissing bytecode handlerz with args z=Dynamo does not know how to handle the bytecode instruction `ú`.z%Do not trace code that produces the `z_` bytecode instruction (see https://docs.python.org/3/library/dis.html for bytecode semantics).r¬  )r:   r   ÚSUPPORTABLE)rå   r¤   s     r¦   Ú_missingz4BytecodeDispatchTableMeta.__init__.<locals>._missingr  sS   € ÜØ2Ø!˜( +¨d¨VÐ4Ø[Ð\bÐ[cÐceÐfà;¸F¸8ð D_ð _ðô '×2Ñ2ðö		r¨   é   )rå   r´   r¤   r   rÆ   rÇ   )ÚsuperÚ__init__ra  r1  rý   r|  rH  ÚpartialÚranger{  Údispatch_table)
r  r°   ÚbasesÚdctrD  rå   r’  rJ  r_  Ú	__class__s
            €r¦   rG  z"BytecodeDispatchTableMeta.__init__o  s’   ø€ Ü‰Ñ˜˜u cÔ*ó
	ô "Ÿi™iŸo™oÓ/÷
á�˜ð ”˜˜V¤Y×%6Ñ%6°xÀÓ%HÓIÑIð
ˆñ 
ô >CÀ4»[ÖI¸˜n×0Ñ0°Õ3ÒIˆÕùó	
ùò Js   ¸,BÁ4B)
r  rô  r°   r´   rK  r   rL  r   rÆ   rÇ   )rÉ   rÊ   rË   rì   rG  Ú__classcell__©rM  s   @r¦   r?  r?  l  s   ø„ Ù^÷Jñ Jr¨   r?  c                  óê   — e Zd ZU dZ ej
                  e¬«      Zded<    ej
                  d¬«      Z	ded<   dd	„Z
dd
„Zdd„Zdd„Z	 	 	 	 	 	 dd„Zdd„Z	 	 	 	 dd„Zdd„Zdd„Zdd„Zdd„Zdd„ZeZy)ÚExceptionStackzU
    Exception stack that it is shared among all InstructionTranslator instances
    rÐ   zlist[ExceptionVals]Ú
_exc_stackN)ÚdefaultzExceptionVals | NoneÚ_current_exceptionc                ó   — d | _         y rŸ   ©rT  rÚ   s    r¦   Úclear_current_exceptionz&ExceptionStack.clear_current_exception™  s
   € Ø"&ˆÕr¨   c                ó4   — | j                  |«       || _        y rŸ   )Ú._set_context_and_break_context_reference_cyclerT  ©rÁ   Úvals     r¦   Úset_current_exceptionz$ExceptionStack.set_current_exceptionœ  s   € Ø×;Ñ;¸CÔ@Ø"%ˆÕr¨   c                óv   — | j                   €J ‚| j                  | j                   «       | j                  «        y rŸ   )rT  rä   rW  rÚ   s    r¦   Úmove_current_exception_to_stackz.ExceptionStack.move_current_exception_to_stack   s2   € Ø×&Ñ&Ð2Ð2Ð2Ø�‰�D×+Ñ+Ô,Ø×$Ñ$Õ&r¨   c                ó6   — | j                   €J ‚| j                   S rŸ   rV  rÚ   s    r¦   Úget_current_exceptionz$ExceptionStack.get_current_exception¥  s    € Ø×&Ñ&Ð2Ð2Ð2Ø×&Ñ&Ð&r¨   c                óð   — |j                   x}rt        |«      t        ur|S t        | j                  «      |z   dkD  r9| j                  |   }| j                  ||dz
  «       ||ur|j                  |«       |S ©Nr   r   )Ú__context__rô  rh   rã   rR  Ú_set_context_recursiveÚset_context)rÁ   r[  Úprev_idxÚctxÚprevs        r¦   rd  z%ExceptionStack._set_context_recursive©  st   € ð —?‘?Ð"ˆCÐ"¬¨S«	Ô9IÑ(IØˆJÜˆt�‰Ó (Ñ*¨QÒ.Ø—?‘? 8Ñ,ˆDØ×'Ñ'¨¨h¸©lÔ;Ø˜3‰Ø—‘ Ô%Øˆ
r¨   c                óÐ   — |x}}d}	 |j                   }t        |«      t        u ry ||u r%|j                  t        j                  d «      «       y |}||u ry |r|j                   }| }Œ`r  )rc  rô  rh   re  Úcreate)rÁ   r[  ÚoÚslow_oÚslow_update_toggler®  s         r¦   Ú_break_context_reference_cyclez-ExceptionStack._break_context_reference_cycleµ  s   € ð
 ÐˆˆFØ"ÐØØ—m‘mˆGÜ�G‹}Ô 0Ñ0Øà˜#‰~Ø—‘Ô.×5Ñ5°dÓ;Ô<ØàˆAØ�F‰{ð á!à×+Ñ+�Ø%7Ð!7Ðð% r¨   c                óv   — | j                  |t        | j                  «      dz
  «       | j                  |«       y ©Nr   )rd  rã   rR  rn  rZ  s     r¦   rY  z=ExceptionStack._set_context_and_break_context_reference_cycleÐ  s0   € ð 	×#Ñ# C¬¨T¯_©_Ó)=ÀÑ)AÔBØ×+Ñ+¨CÕ0r¨   c                ó6   — | j                   j                  «       S rŸ   )rR  rÉ  rÚ   s    r¦   rÉ  zExceptionStack.pop×  s   € Ø�‰×"Ñ"Ó$Ð$r¨   c                ó:   — | j                   j                  |«       y rŸ   )rR  rä   rZ  s     r¦   rä   zExceptionStack.appendÚ  s   € Ø�‰×Ñ˜sÕ#r¨   c                ó,   — t        | j                  «      S rŸ   )rã   rR  rÚ   s    r¦   rØ  zExceptionStack.__len__Ý  s   € Ü�4—?‘?Ó#Ð#r¨   c                ó    — | j                   |   S rŸ   )rR  )rÁ   rÓ   s     r¦   Ú__getitem__zExceptionStack.__getitem__à  s   € Ø�‰˜uÑ%Ð%r¨   c                ó:   — d| j                   ›d| j                  ›�S )Nzself._exc_stack=z - self._current_exception=)rR  rT  rÚ   s    r¦   Ú__str__zExceptionStack.__str__ã  s"   € Ø"�$—/‘/Ð#Ð#? t×'>Ñ'>Ð&@ÐAÐAr¨   rë   )r[  r¬   rÆ   rÇ   )rÆ   r¬   )r[  r¬   rf  r¶   rÆ   r¬   )rÆ   r¶   )rÓ   r¶   rÆ   r¬   rþ   )rÉ   rÊ   rË   rì   rí   rî   rï   rR  rÌ   rT  rW  r\  r^  r`  rd  rn  rY  rÉ  rä   rØ  ru  rw  Ú__repr__rÍ   r¨   r¦   rQ  rQ  …  s¦   … ñð '8 k×&7Ñ&7ÈÔ&M€JÐ#ÓMØ/@¨{×/@Ñ/@ÈÔ/NÐÐ,ÓNó'ó&ó'ó
'ð
Ø ð
Ø,/ð
à	ó
ó8ð61Ø ð1à	ó1ó%ó$ó$ó&óBð �Hr¨   rQ  c                  ón  ‡ — 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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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ed-<   d.ed/<   d0ed1<   d2ed3<   dòd4„Zdód5„Zdôd6„Zdôd7„Zdôd8„Zdòd9„Z		 	 	 	 	 	 	 	 dõd:„Z
	 	 	 	 	 	 	 	 död;„Z	 	 	 	 	 	 	 	 d÷d<„Zdødùd=„Zdúd>„Zdûd?„Zdód@„Zej$                  dAk\  rdüdB„ZndüdC„ZedýdD„«       ZdþdE„ZdÿdF„ZdòdG„Z�d dH„Z�ddI„Z�ddJ„Z�ddK„ZdüdL„ZdüdM„ZdüdN„ZdüdO„Z �ddP„Z!düdQ„Z"eZ#�ddR„Z$düdS„Z%düdT„Z&e'jP                  �ddU„«       Z)düdV„Z*düdW„Z+e,�ddX„«       Z-�ddY„Z.dúdZ„Z/düd[„Z0e0Z1düd\„Z2e,�dd]„«       Z3düd^„Z4�d	d_„Z5e5Z6e5Z7 e8e9jt                  d`«      Z; e8e9jx                  d`«      Z= e8e9jt                  da«      Z> e8e9jx                  da«      Z?düdb„Z@düdc„ZAdüdd„ZBdüde„ZCdüdf„ZDdüdg„ZE�d
dh„ZF�ddi„ZG�ddj„ZHdüdk„ZIdüdl„ZJdüdm„ZK�ddn„ZLdüdo„ZM�ddp„ZNdüdq„ZOdüdr„ZPdóds„ZQdüdt„ZRdüdu„ZSdüdv„ZTdüdw„ZU eVdadx¬y«      düdz„«       ZW eVdad{¬y«      düd|„«       ZX eVdad}¬y«      düd~„«       ZYdüd„ZZdüd€„Z[düd�„Z\düd‚„Z]�ddƒ„Z^düd„„Z_ eVd`d…¬y«      düd†„«       Z`düd‡„Za�ddˆ„Zbec	 	 	 	 	 	 �dd‰„«       Zd	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 �ddŠ„Ze	 	 	 	 	 	 �dd‹„Zfec	 	 	 	 	 	 	 	 �ddŒ„«       Zgdód�„Zh eVd`dŽ¬y«      düd�„«       Zidüd�„Zj	 	 	 	 	 	 �dd‘„Zkdüd’„Zldüd“„Zmdód”„Zndüd•„Zodüd–„Zpeqf�dd—„Zrdüd˜„ZsesZtdüd™„Zudüdš„ZvevZwdüd›„Zxdüdœ„Zydüd�„Zzdüdž„Z{düdŸ„Z|düd „Z}düd¡„Z~düd¢„Z eVd`d£¬y«      düd¤„«       Z€düd¥„Z�düd¦„Z‚düd§„Zƒdüd¨„Z„düd©„Z…düdª„Z†düd«„Z‡�dd¬„Zˆ�dd­„Z‰düd®„ZŠdüd¯„Z‹düd°„ZŒdüd±„Z�düd²„ZŽdüd³„Z�düd´„Z�düdµ„Z‘e‘Z’düd¶„Z“düd·„Z”düd¸„Z•düd¹„Z–düdº„Z—düd»„Z˜düd¼„Z™düd½„Zš e›e9�j8                  «      Z� e›e9�j<                  «      ZŸ e›e9jt                  «      Z  e›e9�jB                  «      Z¢ e›e9�jF                  «      Z¤ e›e9�jJ                  «      Z¦ e›e9�jN                  «      Z¨ e›e9�jR                  «      Zª e›e9�jV                  «      Z¬ e›e9�jZ                  «      Z® e›e9�jZ                  «      Z¯ e›e9�j`                  «      Z± e›e9�jd                  «      Z³  eVdad¾¬y«       e›e9�jh                  «      «      Zµ e›e9�jl                  «      Z· e›e9�jp                  «      Z¹ e›e9�jt                  «      Z» e›e9�jx                  «      Z½ e›e9�j|                  «      Z¿ e›e9�j€                  «      ZÁ e›e9�j„                  «      ZÃ e›e9�jˆ                  «      ZÅ e›e9�jŒ                  «      ZÇ e›e9�j�                  «      ZÉ e›e9�j”                  «      ZË e›e9�j”                  «      ZÌ e›e9�jš                  «      ZÎ e›e9�jž                  «      ZÐ e›e9�j¢                  «      ZÒ e›e9�j¦                  «      ZÔ e›e9�jª                  «      ZÖ e›e9�j®                  «      ZØ e›e9�j²                  «      ZÚdüd¿„ZÛej$                  dAk\  rdüdÀ„ZÜdüdÁ„ZÝdüdÂ„ZÞdüdÃ„Zß�d�ddÄ„Zà eVdadÅ¬y«      düdÆ„«       ZádüdÇ„ZâdüdÈ„Zãe5Zäe5Zå e8e9jx                  d`«      Zæ e8e9jx                  d`«      Zç e8e9jt                  d`«      Zè e8e9jt                  d`«      ZédüdÉ„ZêdüdÊ„Zë	 	 	 	 	 	 �ddË„Zìec�ddÌ„«       ZídüdÍ„ZîdüdÎ„ZïdüdÏ„ZðdüdÐ„ZñdüdÑ„ZòdüdÒ„ZódüdÓ„ZôdüdÔ„ZõdüdÕ„ZödüdÖ„Z÷düd×„ZødüdØ„Zù eVdadÙ¬y«      düdÚ„«       ZúdüdÛ„ZûdüdÜ„ZüdüdÝ„ZýdüdÞ„Zþdüdß„Zÿe�Z e��Ze‚�Zdà�Zdüdá„�Zdüdâ„�Zdã�Zdüdä„�Zdódå„�Z	 dø	 	 	 �ddæ„�Z	�ddç„�Z
dódè„�Z�ddé„�Ze�d dê„«       �Z�e�j                  	 	 	 	 �d!dë„«       �Z�d"dì„�Z	 	 	 	 	 	 	 	 �d#dí„�Z	 	 	 	 �d$dî„�Z	 	 	 	 	 	 	 	 �d%dï„�Zec	 	 	 	 	 	 �d&dð„«       �Z	 	 	 �d'	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 �d(ˆ fdñ„�Zˆ x�ZS ()  rÈ   rA   r   údict[str, VariableTracker]Úsymbolic_localsÚsymbolic_globalsrŒ   Úsymbolic_torch_function_staterˆ   Úsymbolic_stream_statez!dict[str, VariableTracker] | NoneÚpost_prune_cell_and_freevarsúlist[VariableTracker]Ústackú
int | Noner¸   r,   Úcurrent_instructionrº   r  zlist[BlockStackEntry]r  r¶   r·   zConstantVariable | Noner5  Úaccept_prefix_instúlist[Instruction]Úprefix_instsÚinline_depthÚinconsistent_side_effectszSpeculationEntry | NoneÚcurrent_speculationz	list[Any]rJ  rQ  Úexn_vt_stackzExecutionRecorder | NoneÚexec_recorderz(Callable[[VariableTracker], bool] | NoneÚstrict_checks_fnÚstart_pointÚhas_no_inlined_callsz InstructionTranslatorBase | Noner  Úis_child_tracer_activez3list[tuple[VariableTracker, list[VariableTracker]]]Údebug_localsúCompilePackage | NoneÚpackagez
deque[str]Úlatest_bytecode_queuec                ó   — d| _         y)zÒ
        InstructionTranslator has encountered instructions which may cause
        dynamo to see a different version of history from eager
        See: https://github.com/pytorch/pytorch/issues/110765
        TN)rˆ  rÚ   s    r¦   Úmark_inconsistent_side_effectsz8InstructionTranslatorBase.mark_inconsistent_side_effects  s   € ð *.ˆÕ&r¨   c                ó  — | }|�‡|j                   j                  }|j                  €J ‚|j                  |j                  d  D ]8  }|j                  dv r n(|j                  t
        v sŒ&|j                  }||k  sŒ8 y |j                  }|�Œ‡y)N)ÚRETURN_VALUEÚRETURN_CONSTTF)rƒ  Úoffsetr¸   rm  rå   r   rn  r  )rÁ   r  Ú
cur_offsetr¹   Újump_offsets        r¦   rÂ  z,InstructionTranslatorBase.maybe_has_backedge  s�   € ð* 48ˆØÐ Ø×3Ñ3×:Ñ:ˆJØ×-Ñ-Ð9Ð9Ð9Ø×+Ñ+¨F×,FÑ,FÐ,HÐIò $�Ø—;‘;Ð"BÑBÙØ—;‘;¤,Ò.Ø"&§+¡+�KØ" ZÓ/Ù#ð$ð —]‘]ˆFð Ñ ð r¨   c                ó    — | j                   d   S )NÚco_cellvars©rÆ  rÚ   s    r¦   Úcellvarsz"InstructionTranslatorBase.cellvars9  ó   € Ø× Ñ  Ñ/Ð/r¨   c                ó    — | j                   d   S )NÚco_freevarsrž  rÚ   s    r¦   Úfreevarsz"InstructionTranslatorBase.freevars<  r   r¨   c                ó~   — t        | d«      s&| j                  «       | j                  «       z   | _        | j                  S )NÚ_cell_and_freevars)r-  rŸ  r£  r¥  rÚ   s    r¦   Úcell_and_freevarsz+InstructionTranslatorBase.cell_and_freevars?  s2   € Ü�tÐ1Ô2Ø&*§m¡m£o¸¿¹»Ñ&GˆDÔ#Ø×&Ñ&Ð&r¨   c                óV  — | j                   j                  «       D ��ci c]  \  }}|| j                  «       v r||“Œ c}}| _        t	        | j
                  | j                  «      }| j                   j                  «       D ��ci c]  \  }}||v sŒ||“Œ c}}| _         y c c}}w c c}}w rŸ   )r{  rý   r¦  r  r   rm  rƒ  )rÁ   rù   rú   Úreadss       r¦   Úprune_dead_localsz+InstructionTranslatorBase.prune_dead_localsD  s    € ð ×,Ñ,×2Ñ2Ó4÷-
á��1Ø�D×*Ñ*Ó,Ñ,ð ˆq‰Dó-
ˆÔ)ô " $×"3Ñ"3°T×5MÑ5MÓNˆà!×1Ñ1×7Ñ7Ó9÷ 
Ù�Q˜¸QÀ%ºZˆAˆq‰Dó 
ˆÕùó-
ùó 
s   žBÂB%ÂB%c                óÐ  — t        |t        «      sJ ‚t        |t        «      sJ ‚t        |t        «      sJ ‚t	        d„ t        j                  ||j                  «       «      D «       «      sJ ‚d }t        |d«      r|j                  }t        |d«      r|j                  }|r$t        |«      rt        |«      rt        d|› �«      ‚| j                  |j                  | ||«      «       y )Nc              3  ó<   K  — | ]  }t        |t        «      –— Œ y ­wrŸ   )rN  rb   )rø   rZ  s     r¦   rû   z:InstructionTranslatorBase.call_function.<locals>.<genexpr>Z  s   è ø€ ò 
àô �qœ/×*ñ
ùó   ‚r¦  rJ  z$Attempt to trace forbidden callable )rN  rb   rï   rÿ   ÚallÚ	itertoolsÚchainÚvaluesr-  r¦  rJ  ÚcallablerV   ÚAssertionErrorr>  r?  )rÁ   rJ  r¤   Úkwargsr$  s        r¦   r?  z'InstructionTranslatorBase.call_functionQ  sÐ   € ô ˜"œoÔ.Ð.Ð.Ü˜$¤Ô%Ð%Ð%Ü˜&¤$Ô'Ð'Ð'Üñ 
ä—_‘_ T¨6¯=©=«?Ó;ô
ô 
ð 	
ð 
ð ˆÜ�2�wÔØ—x‘xˆHÜ�2�tÔØ—u‘uˆHÙœ Ô*¬|¸HÔ/EÜ Ð#GÈÀzÐ!RÓSÐSØ�	‰	�"×"Ñ" 4¨¨vÓ6Õ7r¨   c                ó^   — t        |t        «      st        |«      }|j                  | ||«      S )zD
        Redirect the call to the generator "call_function"
        )rN  rp   r?  ©rÁ   rJ  r¤   r³  s       r¦   Úinline_generator_functionz3InstructionTranslatorBase.inline_generator_functiong  s.   € ô ˜"Ô<Ô=Ü/°Ó3ˆBØ×Ñ  d¨FÓ3Ð3r¨   c                óª   — t         j                  r,t        |j                  «       «      r| j	                  |||«      S t
        j                  | |||«      S )zF
        A call to some user defined function by inlining it.
        )r   Ú"enable_faithful_generator_behaviorr-   Úget_coder¶  ÚInliningInstructionTranslatorÚinline_callrµ  s       r¦   Úinline_user_function_returnz5InstructionTranslatorBase.inline_user_function_returnt  sF   € ô ×4Ò4¼ÀbÇkÁkÃmÔ9TØ×1Ñ1°"°d¸FÓCÐCä0×<Ñ<¸TÀ2ÀtÈVÓTÐTr¨   c                ó   — |€| j                   }| j                  dkD  rd| j                  › d�nd}t        | j                  j                  |«      }|€dnd|› d�}| j                  j                  › d|› d| j                  j
                  › |› |› �S )Nr   z (inline depth: r�  rß   râ   rà   z in )r·   r‡  r=   rÄ  Úco_filenameÚco_name)rÁ   r·   Úinline_depth_strÚfuncnameÚfuncname_strs        r¦   Úget_line_of_code_headerz1InstructionTranslatorBase.get_line_of_code_header‚  s�   € Øˆ>Ø—[‘[ˆFà7;×7HÑ7HÈ1Ò7LÐ˜t×0Ñ0Ð1°Ñ3ÐRTð 	ô   §¡× 7Ñ 7¸Ó@ˆØ%Ð-‘r°R¸°zÀÐ3CˆØ—+‘+×)Ñ)Ð*¨!¨F¨8°4¸¿¹×8KÑ8KÐ7LÈ\ÈNÐ[kÐZlÐmÐmr¨   c                óÂ   — d| j                  «       › d�}t        j                  | j                  j                  | j
                  «      j                  «       }|d|› �z  }|S )NzTRACE starts_line rô   r�  )rÃ  Ú	linecacheÚgetlinerÄ  r¾  r·   Úrstrip)rÁ   Úlog_strr‚  s      r¦   Úget_log_starts_line_log_strz5InstructionTranslatorBase.get_log_starts_line_log_strŒ  sX   € Ø& t×'CÑ'CÓ'EÐ&FÀbÐIˆÜ× Ñ  §¡×!8Ñ!8¸$¿+¹+ÓF×MÑMÓOˆØ�T˜$˜�=Ñ ˆØˆr¨   c                ó  — | j                   |k(  ry || _         t        j                  | j                  j                  || j                  j
                  «       | j                  r*t        j                  dt        | j                  «      «       y y )Nú%s)r·   r   Úset_current_locrÄ  r¾  r¿  Úis_trace_source_log_enabledÚtrace_source_logr¥  r^   rÉ  )rÁ   r·   s     r¦   Ústarts_linez%InstructionTranslatorBase.starts_line’  sl   € Ø�;‰;˜&Ò ØØˆŒÜ×&Ñ&Ø�K‰K×#Ñ# V¨T¯[©[×-@Ñ-@ô	
ð ×+Ò+Ü×"Ñ" 4¬°D×4TÑ4TÓ)UÕVð ,r¨   c                ó¬  — t        «       | _        | j                  }|€y| j                  |   x| _        }|dz   | _        |j
                  r| j                  |j
                  «       | j                  sb| j                  «       rR| j                  «       rB| j                  «       | _
        | j                  j                  | «      r| j                  |«       y| j                  r?t        j                  d|j                   |j"                  t%        | j                  «      «       t&        j(                  rW	 t%        | j                  «      }| j,                  j/                  d|j                   › dt%        |j"                  «      › d|› �«       | j1                  |«       	  | j2                  |j4                     | |«       | j6                  j8                   S # t*        $ r d}Y Œ—w xY w# t:        $ r ‚ t<        j>                  $ r}| jA                  |«       Y d}~yd}~wtB        tD        f$ r Y ytF        tH        tJ        f$ rô}| jL                  s%| j                  s| jN                  stQ        |d	d«      r2tS        |tJ        «      r!tU        d
ddddgtV        jX                  ¢¬«       ‚ | j                  €OtZ        j                  d«       tS        |tJ        «      r"tU        dddddgtV        jX                  ¢d¬«       d|_.        ‚ dt_        |«      › �}| ja                  | jb                  ||¬«       Y d}~nd}~ww xY w| j                  je                  | j                  «       y)z<Process exactly one instruction, return False we should exitNFr   zTRACE %s %s %sz0<self.stack repr truncated due to large integer>zTRACE ú Tr  z3cannot resume from torch._dynamo.step_unsupported()rß   z‡traced torch._dynamo.step_unsupported(), but Dynamo is instructed to error on graph break. This graph break is used for debugging only.z1Remove the torch._dynamo.step_unsupported() call.z9Make sure fullgraph=False and error_on_graph_break=False.r¬  z1empty checkpoint - cannot resume from graph breakz6torch._dynamo.step_unsupported() with empty checkpointzŠtraced torch._dynamo.step_unsupported(), but there is no checkpoint to step_graph_break from. This graph break is used for debugging only.z¨Include at least one checkpoint: (1) include at least 2 ops and (2) make sure there is some line of code that is not in a try/with block, and has an empty Python stack.)r­  r®  r¯  r°  r  z¤Encountered graph break that we cannot resume from. Compiling up to the previous resumable state, then skipping the rest of the function. Graph break encountered:

rº  )3rW   r¼   r¸   rm  rƒ  rÏ  r�  rÁ  Úis_non_empty_graphr  r‰  rÅ   Ústep_graph_breakÚis_trace_bytecode_log_enabledÚtrace_bytecode_logr¥  rå   rn  r‹  r   ÚverboseÚ
ValueErrorr“  rä   Úupdate_block_stackrJ  r3  r   r!  r   r   r   Úexception_handlerr9  r;  r;   r<   r9   r  Úis_tracing_resume_prologuer|  rN  r:   r   Ú
DYNAMO_BUGr  r  r´   rÅ  rÆ  rÂ   )rÁ   Úipr¹   Ú
stack_reprrÐ  r½   s         r¦   ÚstepzInstructionTranslatorBase.step�  s"  € ä$=Ó$?ˆÔ!à×%Ñ%ˆØˆ:ØØ*.×*;Ñ*;¸BÑ*?Ð?ˆÔ  4Ø#%¨¡6ˆÔ à×ÒØ×Ñ˜T×-Ñ-Ô.ð —
’
Ø×1Ñ1Ô3Ø×'Ñ'Ô)à'+§~¡~Ó'7ˆDÔ$Ø×'Ñ'×.Ñ.¨tÔ4Ø×%Ñ% dÔ+Øà×-Ò-Ü×$Ñ$Ø  $§+¡+¨t¯{©{¼DÀÇÁÓ<Lôô �>Š>ðPÜ! $§*¡*Ó-�
ð ×&Ñ&×-Ñ-Ø˜Ÿ™˜ Q¤t¨D¯K©KÓ'8Ð&9¸¸:¸,ÐGôð 	×Ñ Ô%ðA	Ø,ˆD×Ñ §¡Ñ,¨T°4Ô8Ø—{‘{×.Ñ.Ð.Ð.øô ò PàO’
ðPûô .ò 	ØÜ×$Ñ$ò 	Ø×"Ñ" 1Ô%ÜûÜœ|Ð,ò 	ÙÜœY¬Ð8ò 7	ð —’Ø×,Ò,Ø×2Ò2Ü˜1˜l¨EÔ2ä˜a¤Ô1Ü!Ø UØ "ð%`ð PØWðô /×9Ñ9ðõ
ð Ø×'Ñ'Ð/Ü—	‘	ÐMÔNÜ˜a¤Ô1Ü!Ø XØ "ð%að Pðkðô /×9Ñ9ð	ð $(õð  $�”Øð/ô 03°1«v¨hð8ð ð × Ñ Ø×!Ñ!ØØð !÷ ñ ûðg7	úðr 	× Ñ ×:Ñ:¸4×;TÑ;TÔUØs=   Ä0G Æ6G  ÇGÇGÇ L-Ç<HÈL-È&L-È9C*L(Ì(L-r(  c                óÀ  — |j                   }|r€t        | j                  «      dk\  rg|j                  | j                  d   j                  urA|j                  | j                  d   j                  u r| j                  j	                  «        y y y y | j                  rD|j
                  dvr5t        | j                  «      dk(  sJ ‚| j                  j	                  «        y y y )Né   ry  éþÿÿÿ)ÚNOPÚJUMP_BACKWARDÚ	NOT_TAKENr   )r7  rã   r  r&  rÉ  rå   )rÁ   r¹   rç   s      r¦   rØ  z,InstructionTranslatorBase.update_block_stack  sÖ   € ð ×&Ñ&ˆEÙô ˜×(Ñ(Ó)¨QÒ.ØŸ™¨D×,<Ñ,<¸RÑ,@×,GÑ,GÑGØŸ™¨×(8Ñ(8¸Ñ(<×(CÑ(CÑCð ×$Ñ$×(Ñ(Õ*ð Dð Hð /ð" ×#Ò#¨¯©ð <ñ )ô ˜t×/Ñ/Ó0°AÒ5Ð5Ð5Ø×$Ñ$×(Ñ(Õ*ð)Ð#r¨   c                 ó   — y rŸ   rÍ   ©rÁ   r¹   s     r¦   rØ  z,InstructionTranslatorBase.update_block_stack=  s   € Ør¨   c                óP   — | j                   €J ‚| j                  | j                      S rŸ   )r¸   rm  rÚ   s    r¦   rË  z*InstructionTranslatorBase.next_instruction@  s+   € à×'Ñ'Ð3Ð3Ð3Ø× Ñ  ×!9Ñ!9Ñ:Ð:r¨   c           	     ó*
  — | j                   j                  rJ ‚| j                  €J ‚| j                  rJ ‚t        j                  d«       | j                   j                  | t        d| j                  «       g«      ¬«      }| j                  �rJddl
m} t        j                  sJ ‚t        | j                   j                  «      }|j!                  g t#        d«      ¢|j%                  d«      ‘|j'                  «       ‘t)        dd¬	«      ‘t#        d«      ¢|j%                  d«      ‘|j'                  «       ‘t)        dd¬	«      ‘«       | j+                  d||d   g |d
d«      \  }} ||«       g }t-        | j                  ||«       | j/                  |g|g|«       |j!                  |«       |j!                  g t#        d«      ¢|j%                  d«      ‘t)        d«      ‘t#        d«      ¢|j%                  d«      ‘t)        d«      ‘«       |d   j0                  }|j!                  g t#        d«      ¢|j%                  d«      ‘|j'                  «       ‘t3        d|«      ¢«       |j!                  g t5        d«      ¢t)        dd¬	«      ‘«       | j                  j7                  t9        «       «       |d   xj0                  dz  c_        |dkD  rp|j!                  g t#        d«      ¢|j%                  d«      ‘|j'                  «       ‘t3        |d «      ¢t#        d«      ¢|j%                  d«      ‘t)        d«      ‘«       |j!                  t)        d|dz   ¬	«      t)        d|dz   ¬	«      t)        d|dz   ¬	«      g«       | j                   j;                  |j=                  «       | j                  j?                  | j                  j@                  |dd  «      z   «       y | j                   j;                  g t5        d«      ¢t)        d«      ‘«       t        | j                   j                  «      }| j                   j;                  |j%                  d«      |j'                  «       g«       |d   jB                  jE                  «       D ]X  \  }	}
| j                   j;                  tG        «       |j%                  |
«      |j'                  «       |jI                  |	«      g«       ŒZ | j                   j;                  t)        d«      tK        |«      g| jL                  ¢«       y )Nzstep triggered compileÚstep_unsupported)r½   r   )Ú	skip_coderà  r   Ú
BUILD_LIST©r2  TFÚDELETE_SUBSCRr¾  ÚLIST_APPENDÚSTORE_SUBSCRÚUNPACK_SEQUENCEÚPOP_TOPry  )'r   Úoutput_instructionsr‰  r�  r  r¥  rÇ  r@   rÈ  r  Ú
eval_framerê  r   Únested_graph_breaksr1   r4  r  r%   Úcreate_load_constÚcreate_binary_subscrr'   Úcreate_resumer  Úcodegen_call_resumeÚ	num_stackr"   r*   r>  r„   rÍ  rb  rÊ  rË  Úlocals_namesrý   r&   Úcreate_storer(   rm  )rÁ   Úcontinue_instrÑ  rê  r  Úleaf_resume_codeÚleaf_resume_namer  rù  ÚlocalÚidxs              r¦   rÓ  z*InstructionTranslatorBase.step_graph_breakE  s9  € à—;‘;×2Ò2Ð2Ð2Ø×'Ñ'Ð3Ð3Ð3ð —:’:Ðˆ~ô 	�	‰	Ð*Ô+Ø$(§K¡K×$@Ñ$@ØÜ%Ð&8¸4×;MÑ;MÓ;OÐ:PÓQð %Aó %
Ð!ð �;‹;Ý-ô ×-Ò-Ð-Ð-Ü˜4Ÿ;™;×.Ñ.Ó/ˆBð ×Ñð	Ü  “^ð	à×(Ñ(¨Ó+ð	ð ×+Ñ+Ó-ð	ô ' |¸Ô;ð		ô
 ! “^ð	ð ×(Ñ(¨Ó+ð	ð ×+Ñ+Ó-ð	ô ' |¸Ô;ð	ôð 26×1CÑ1CØ�=Ð";¸AÑ">ÀÀBÈÈeó2Ñ.ÐÐ.ñ Ð&Ô'à)+ˆGÜ$ T§[¡[°"°gÔ>ð ×$Ñ$Ð&6Ð%7Ð:JÐ9KÈRÔPà×Ñ˜WÔ%ð ×ÑðÜ  “^ðà×(Ñ(¨Ó+ðô ' Ó7ðô ! “^ð	ð
 ×(Ñ(¨Ó+ðô ' Ó7ðô	ð 2°!Ñ4×>Ñ>ˆIØ×ÑðÜ  “^ðà×(Ñ(¨Ó+ðð ×+Ñ+Ó-ðô )¨¨IÓ6ð	ôð ×ÑðÜ  “^ðä& }¸!Ô<ðôð �K‰K×Ñœ_Ó.Ô/Ø% aÑ(×2Ò2°aÑ7Õ2ð
 ˜1Š}Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨QÓ/ðð ×/Ñ/Ó1ðô -¨Y¸Ó=ð	ô
 % Q›ðð ×,Ñ,¨QÓ/ðô +¨>Ó:ðôð  ×Ñä&Ð'8¸iÈ!¹mÔLÜ& |¸ÀQ¹ÔGÜ&Ð'8¸iÈ!¹mÔLðôð" �K‰K×/Ñ/Ø×#Ñ#Ó%Ø—+‘+×3Ñ3Ø—K‘K×0Ñ0Ð2KÈAÈBÐ2Oóñõð �K‰K×/Ñ/ðÜ  “^ðä& yÓ1ðôô ˜4Ÿ;™;×.Ñ.Ó/ˆBØ�K‰K×/Ñ/à×(Ñ(¨Ó,Ø×+Ñ+Ó-ðôð 8¸Ñ;×HÑH×NÑNÓPò ‘
��sØ—‘×3Ñ3ä&Ó(Ø×,Ñ,¨SÓ1Ø×/Ñ/Ó1ØŸ™¨Ó.ð	õðð �K‰K×/Ñ/ä& yÓ1Ü(¨Ó7ðð ×&Ñ&ðõr¨   c                ó,   — t        j                  d «      S rŸ   )r   Úcurrent_framerÚ   s    r¦   Úrun_ctx_mgrz%InstructionTranslatorBase.run_ctx_mgr  s   € ô ×+Ñ+¨DÓ1Ð1r¨   c           
     óú  — | j                  «       5  t        | j                  j                  «       	 | j                  j                  | «       | j                  | _        	 | j                  «       r	 | j                  «       rŒ| j                  jY                  «        t)        | t.        «      r5| j                  j[                  «        | j                  j]                  «        	 d d d «       y # t        $ rY}| j                  rGt        dt        |«      j                  › dt        |«      › �«      j                  |j                   «      d ‚‚ d }~ww xY w# t"        $ r ‚ t$        $ r ‚ t&        $ �r*}t)        |t*        t,        f«      rTt)        | t.        «      rD| j0                  s8| j2                  s,dt        |«      › �}| j5                  | j6                  ||¬«       t)        |t8        j:                  «      s$| j                  j<                  j?                  «        tA        |d«      rpd|jB                  v rbtD        jF                  jI                  | j                  jJ                  | j                  jL                  «      jO                  ddd¬	«      }||_(        ‚ ‚ d }~wt        $ ro}| jR                  r| jR                  jU                  «       |_+        t)        |t8        j:                  «      s$| j                  j<                  j?                  «        ‚ d }~ww xY w# | j                  jY                  «        t)        | t.        «      r5| j                  j[                  «        | j                  j]                  «        w w xY w# 1 sw Y   y xY w)
NzˆError while tracing through a Dynamo-generated resume function prologue. Errors are not allowed when tracing resume function prologues.
rö   ztFailed to handle graph break gracefully. Skipping the function and falling back to eager. Graph break encountered:

rº  rX  zData-dependentFT)Úprint_outputÚinclude_strideÚinclude_device)/r  r   rÄ  r¾  r   Úpush_txr¸   r�  rÞ  r¤  rÚ  r8   rô  rË   r´   Úwith_tracebackÚ__traceback__r   r4   ÚRuntimeErrorrN  r;   r<   rD  r¼   r  rÅ  rÆ  r   ÚRestartAnalysisÚside_effectsÚlog_side_effects_summaryr-  rX  rˆ  r‰  ÚGraphModuleÚ
nn_modulesÚgraphÚprint_readableÚpartial_fx_graphr‹  Ú
get_recordÚexec_recordÚpop_txr  Úmark_bytecode_tracing_stop)rÁ   rÐ  r½   Úreadable_graphs       r¦   ÚrunzInstructionTranslatorBase.run  sè  € Ø×ÑÓñ L	=Ü�d—k‘k×-Ñ-Ô.ðJ=Ø—‘×#Ñ# DÔ)Ø#'×#;Ñ#;�Ô ð
ØŸ)™)œ+Øð Ÿ)™)�+ðt —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Õ<÷YL	=ð L	=øô !ò Ø×6Ò6Ü8ð_ä# A›w×3Ñ3Ð4°B´s¸1³v°hð@ó÷ )™.¨¯©Ó9¸tð	Dð
 ûðûô 2ò ØÜ(ò ØÜó #ô ˜q¤;´	Ð":Ô;Ü" 4Ô)>Ô?Ø ×5Ò5Ø ŸNšNð7ä7:¸1³v°hð@ð ð
 ×(Ñ(Ø×)Ñ)Ø%Øð )ô ô " !¤S×%8Ñ%8Ô9Ø—K‘K×,Ñ,×EÑEÔGä˜1˜eÔ$Ð)9¸Q¿U¹UÑ)BÜ%*§X¡X×%9Ñ%9ØŸ™×.Ñ.°·±×0AÑ0Aó&ç$‘nØ%*¸4ÐPTð %ó ð #ð
 *8�AÔ&ØàûÜò Ø×%Ò%Ø$(×$6Ñ$6×$AÑ$AÓ$C�A”MÜ! !¤S×%8Ñ%8Ô9Ø—K‘K×,Ñ,×EÑEÔGàûðûð —‘×"Ñ"Ô$ô ˜dÔ$9Ô:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Õ<ð ;ú÷ML	=ð L	=úsi   ‘ M1²,EÁ!C)ÂAM1Ã)	EÃ2AEÅEÅEÅL
Å*D%JÊL
ÊA*LÌL
Ì
LÌA!M.Í.M1Í1M:c                ó€   — t        |t        «      sJ dt        |«      › �«       ‚| j                  j	                  |«       y )Nz"push expects VariableTracker, got )rN  rb   r`   r�  rä   rZ  s     r¦   r>  zInstructionTranslatorBase.push]  s;   € Ü˜#œÔ/ð 	
Ø0´¸³°Ð?ó	
Ð/ð 	�
‰
×Ñ˜#Õr¨   c                ó4   — |D ]  }| j                  |«       Œ y rŸ   )r>  )rÁ   Úvalsr[  s      r¦   Ú	push_manyz#InstructionTranslatorBase.push_manyc  s   € Øò 	ˆCØ�I‰I�c�Nñ	r¨   c                ó6   — | j                   j                  «       S rŸ   )r�  rÉ  rÚ   s    r¦   rÉ  zInstructionTranslatorBase.popg  s   € Ø�z‰z�~‰~ÓÐr¨   c                óp   — g t        t        |«      D �cg c]  }| j                  «       ‘Œ c}«      ¢S c c}w rŸ   )r¡   rI  rÉ  )rÁ   r~  r¥   s      r¦   r@  zInstructionTranslatorBase.popnj  s*   € Ø:”¬u°Q«xÖ8¨!˜4Ÿ8™8�:Ò8Ó9Ð:Ð:ùÒ8s   ”3
c           	     ó²  — |j                   }| j                  r7|| j                  v r)| j                  j                  || j                  |   «       	 | j	                  | j
                  |   j                  «       «       |j                  d«      r| j
                  j                  |«       y y # t        $ r¢ |j                  d«      rh	 |j                  dd«      }| j	                  | j
                  |   «       n\# t        $ r* t        dd|› �d|› d�dgt        j                  ¢¬«       Y n*w xY wt        d	d|› �d
|› d�g t        j                  ¢¬«       Y ŒØw xY w)NrM  Úimplicitz5Attempted to read undefined local variable (implicit)z
LOAD_FAST z5Could not find an implicit local variable with name `ú`z(This happens in dict/list comprehensionsr¬  z*Attempted to read undefined local variablez+Could not find a local variable with name `Ú__stack)rn  r‹  Úf_localsÚadd_local_varr>  r{  ÚunwrapÚKeyErrorr^  Úreplacer:   r   ré  rÉ  )rÁ   r¹   r°   Únew_names       r¦   Ú	LOAD_FASTz#InstructionTranslatorBase.LOAD_FASTm  sP  € Ø�{‰{ˆØ×Ò $¨$¯-©-Ñ"7Ø×Ñ×,Ñ,¨T°4·=±=ÀÑ3FÔGð	Ø�I‰I�d×*Ñ*¨4Ñ0×7Ñ7Ó9Ô:ð4 �?‰?˜9Ô%Ø× Ñ ×$Ñ$ TÕ*ð &øô3 ò 	Ø�‰˜sÔ#ðà#Ÿ|™|¨C°Ó<�HØ—I‘I˜d×2Ñ2°8Ñ<Õ=øÜò 	Ü!Ø WØ",¨T¨FÐ 3Ø&[Ð\`Ð[aÐabÐ$càFðä.×9Ñ9ð÷	ð	úô ØHØ(¨¨Ð/Ø"MÈdÈVÐSTÐ UØ9Ô-×8Ñ8Ð9õ	ùð#	ús6   Á,B+ Â+EÃ0C7Ã6EÃ70D*Ä'EÄ)D*Ä*)EÅEc                ó¤  — |j                   | j                  «       v sJ ‚| j                  |j                      }| j                  j                  j                  |«      }| j                  |«       | j                  rW|j                   | j                  v r>| j                  j                  |j                   | j                  |j                      «       y y y rŸ   )
rn  r¦  r{  r   r  Ú	load_cellr>  r‹  r$  r%  )rÁ   r¹   ÚcellÚcontents_vars       r¦   Ú
LOAD_DEREFz$InstructionTranslatorBase.LOAD_DEREF�  sž   € Ø�{‰{˜d×4Ñ4Ó6Ñ6Ð6Ð6Ø×#Ñ# D§K¡KÑ0ˆØ—{‘{×/Ñ/×9Ñ9¸$Ó?ˆØ�	‰	�,Ôà×Ò $§+¡+°·±Ñ">Ø×Ñ×,Ñ,¨T¯[©[¸$¿-¹-ÈÏÉÑ:TÕUð #?Ðr¨   c                óä   — |j                   }| j                  «       }|j                  |«       || j                  |<   |t        k(  r+|j                  «       }t        |«      t        u sJ ‚|| _        y y rŸ   )	rn  rÉ  Úset_name_hintr{  rK   rß  rô  rº   rÚ  )rÁ   r¹   r°   Ú	loaded_vtr[  s        r¦   Ú
STORE_FASTz$InstructionTranslatorBase.STORE_FAST™  sj   € Ø�{‰{ˆØ—H‘H“Jˆ	Ø×Ñ Ô%Ø%.ˆ×Ñ˜TÑ"ØÔ5Ò5Ø×.Ñ.Ó0ˆCÜ˜“9¤Ñ$Ð$Ð$Ø.1ˆDÕ+ð 6r¨   c                ó¾   — | j                   j                  |j                  «      }t        |t        «      r| j                  |«       | j                   |j                  = y rŸ   )r{  r{  rn  rN  r‹   Ú_maybe_emit_sync_dealloc)rÁ   r¹   Úvars      r¦   ÚDELETE_FASTz%InstructionTranslatorBase.DELETE_FAST£  sF   € Ø×"Ñ"×&Ñ& t§{¡{Ó3ˆÜ�cœ>Ô*Ø×)Ñ)¨#Ô.Ø× Ñ  §¡Ñ-r¨   c                ó^  — ddl m}m} |j                  }|�|j                  dvry |j
                  j                  }|j                  j                  di «      j                  dd «      }t        |j                  j                  «       «      }|sy d }| j                  j                  j                  D ]	  }	|	|v sŒ|	}Œ |�|j                  dk(  ry |j                  j                  di «      j                  dd «      }
||
k(  ry |€ ||«      }|
€ ||«      }
 |«       }| j                  j!                  dt"        j$                  j&                  j(                  ||
fi «       | j                  j!                  dt"        j$                  j&                  j*                  |||j-                  «       fi «       y )Nr   )Úget_current_streamÚ	new_event)ÚcudaÚxpuÚcustomÚstreamr   r?  )Úvariables.streamsr9  r:  Údevicerô  r¡  r¢  rz  r{  r  ÚusersÚkeysr   r  Únodesr’  râ  rˆ  ÚopsÚstreamsÚrecord_eventÚsync_deallocÚas_proxy)rÁ   r6  r9  r:  r@  r¢  Úalloc_streamrA  Ú	last_userr~  Úlast_use_streamÚ	event_idxs               r¦   r5  z2InstructionTranslatorBase._maybe_emit_sync_dealloc©  su  € ßDà—‘ˆØˆ>˜VŸ[™[°Ñ?Øà�y‰y�~‰~ˆØ—y‘y—}‘} X¨rÓ2×6Ñ6°xÀÓFˆä�D—J‘J—O‘OÓ%Ó&ˆÙØØˆ	Ø—‘×"Ñ"×(Ñ(ò 	ˆAØ�EŠzØ‘	ð	ð Ð 	§¡°Ò 8Øà#Ÿ.™.×,Ñ,¨X°rÓ:×>Ñ>¸xÈÓNˆØ˜?Ò*ØàÐÙ-¨fÓ5ˆLØÐ"Ù0°Ó8ˆOá“Kˆ	Ø�‰× Ñ ØÜ�I‰I×Ñ×*Ñ*Ø˜Ð(Øô		
ð 	�‰× Ñ ØÜ�I‰I×Ñ×*Ñ*Ø˜ c§l¡l£nÐ5Øõ		
r¨   c                óR  — |j                   | j                  «       v sJ ‚| j                  |j                      }| j                  «       }| j                  j
                  j                  ||«       t        |t        «      sJ ‚|j                  �|j                  |j                  «       y y rŸ   )rn  r¦  r{  rÉ  r   r  Ú
store_cellrN  r~   Ú
local_namer1  )rÁ   r¹   r-  r[  s       r¦   ÚSTORE_DEREFz%InstructionTranslatorBase.STORE_DEREFÔ  s‡   € Ø�{‰{˜d×4Ñ4Ó6Ñ6Ð6Ð6Ø×#Ñ# D§K¡KÑ0ˆØ�h‰h‹jˆØ�‰× Ñ ×+Ñ+¨D°#Ô6ä˜$¤Ô-Ð-Ð-Ø�?‰?Ð&Ø×Ñ˜dŸo™oÕ.ð 'r¨   c                ó  — |j                   }|€ t        j                  |j                  ¬«      S | j                  |   }|s<t        j                  |j                  ¬«      | j                  |<   | j                  |   }|€J ‚|S )N©r¦  )r2  rh   rj  rn  Ú_constants_cache)rÁ   r¹   r_  r[  s       r¦   Ú_load_constz%InstructionTranslatorBase._load_constà  sv   € Ø�H‰HˆØˆ9Ü#×*Ñ*°·±Ô=Ð=Ø×#Ñ# AÑ&ˆÙÜ'7×'>Ñ'>ÀTÇ[Á[Ô'QˆD×!Ñ! !Ñ$Ø×'Ñ'¨Ñ*ˆCØˆÐˆØˆ
r¨   c                óD   — | j                  | j                  |«      «       y rŸ   )r>  rT  ræ  s     r¦   rj  z$InstructionTranslatorBase.LOAD_CONSTë  s   € Ø�	‰	�$×"Ñ" 4Ó(Õ)r¨   c           	     óž  — |j                   }| j                  rn|| j                  v r*| j                  j                  || j                  |   «       n6|| j                  v sJ ‚| j                  |   | j                  j
                  |<   || j                  vr| j                  |«      S || j                  v r\| j                  j                  | j                  |      }| j                  | j                  j                  j                  ||«      «       y | j                  |   }| j                  t        j                  | |t        |«      «      «       y rŸ   )rn  r‹  Ú	f_globalsÚadd_global_varÚ
f_builtinsÚbuiltinsÚload_builtinr|  r   r  r>  Úload_globalrb   ro  rO   )rÁ   r¹   r°   Úvariabler¦  s        r¦   Ú_load_globalz&InstructionTranslatorBase._load_globalî  s  € Ø�{‰{ˆà×ÒØ�t—~‘~Ñ%Ø×"Ñ"×1Ñ1°$¸¿¹ÀtÑ8LÕMà˜tŸ™Ñ.Ð.Ð.Ø48·O±OÀDÑ4I�×"Ñ"×+Ñ+¨DÑ1à�t—~‘~Ñ%Ø×$Ñ$ TÓ*Ð*à�4×(Ñ(Ñ(Ø—{‘{×/Ñ/°×0EÑ0EÀdÑ0KÑLˆHØ�I‰I�d—k‘k×.Ñ.×:Ñ:¸8ÀTÓJÔKØà—‘˜tÑ$ˆØ�	‰	”/×'Ñ'¨¨e´\À$Ó5GÓHÕIr¨   c                ól   — d}| j                  |«      }t        |«      }t        j                  | ||«      S )Nztorch.nn.modules.module)Úimport_sourcer±   rb   ro  )rÁ   Úmodule_nameÚmodule_sourceÚfglobals_values       r¦   Únn_modules_globals_vtz/InstructionTranslatorBase.nn_modules_globals_vt  s6   € à/ˆØ×*Ñ*¨;Ó7ˆÜ'¨Ó4ˆÜ×$Ñ$ T¨>¸=ÓIÐIr¨   c                ó8  — |j                   €J ‚t        j                  dk\  r3t        j                  dk  r |j                   dz  r| j                  |«       | j	                  |«       t        j                  dk\  r"|j                   dz  r| j                  |«       y y y )Nr(  r½  rà  )r2  rR  rÌ  Ú	PUSH_NULLr^  ræ  s     r¦   ÚLOAD_GLOBALz%InstructionTranslatorBase.LOAD_GLOBAL
  s~   € Ø�x‰xÐ#Ð#Ð#Ü×Ñ˜wÒ&¬3×+;Ñ+;¸gÒ+EÈ$Ï(É(ÐUVÊ,Ø�N‰N˜4Ô Ø×Ñ˜$ÔÜ×Ñ˜wÒ&¨4¯8©8°aª<Ø�N‰N˜4Õ ð ,8Ð&r¨   c                óŽ  — | j                  «       }|j                  }t        |«      }|| j                  vrt	        «       | j                  |<   | j
                  j                  j                  || j                  |   «      }t        |t        «      rt        d|dg ¬«       | j
                  j                  j                  |||«       y )Nz%Storing Tensor hook handle in globalsúThis is not supported.r¬  )rÉ  rn  rO   r|  rŸ  r   r  Útrack_global_existingrN  rŽ   r:   Ústore_global)rÁ   r¹   r¦  r°   r“  r]  s         r¦   ÚSTORE_GLOBALz&InstructionTranslatorBase.STORE_GLOBAL  s©   € Ø—‘“
ˆØ�{‰{ˆÜ˜dÓ#ˆØ�t×,Ñ,Ñ,Ü*0«(ˆD×!Ñ! $Ñ'Ø—;‘;×+Ñ+×AÑAØ�D×)Ñ)¨$Ñ/ó
ˆô �eÔ4Ô5ÜØ?ØØ4Øõ	ð 	�‰× Ñ ×-Ñ-¨h¸¸eÕDr¨   c                ó  — d|v rZt         j                  j                  j                  |   }|j	                  dd«      j	                  dd«      j	                  dd«      }n t        |«      }d|j	                  dd«      › �}| j                  �| j                  j                  ||«       || j                  j                  |<   | j                  j                  }||vs	||   |u sJ ‚|||<   | j                  j                  |«       t        |«      S )z-Create an alias to a module for use in guardsÚtorch_packageú>r¥   ú<rM  Ú_dot_Ú	__import_)rˆ  r’  Úpackage_importerÚ_package_imported_modulesr(  r±   Úadd_import_sourcer   Úimport_sourcesÚglobal_scopeÚupdate_co_namesrO   )rÁ   ra  r¦  ÚaliasrW  s        r¦   r`  z'InstructionTranslatorBase.import_source&  s  € ð ˜kÑ)Ü—M‘M×2Ñ2×LÑLØñˆEð ×#Ñ# C¨Ó-×5Ñ5°c¸3Ó?×GÑGÈÈWÓUñ ô # ;Ó/ˆEØ × 3Ñ 3°C¸Ó AÐBÐCˆEà�<‰<Ð#Ø�L‰L×*Ñ*¨5°+Ô>Ø,7ˆ�‰×"Ñ" 5Ñ)Ø—K‘K×,Ñ,ˆ	Ø˜IÑ%¨°5Ñ)9¸UÑ)BÐBÐBØ ˆ	�%ÑØ�‰×#Ñ# EÔ*Ü˜EÓ"Ð"r¨   c                ó~   — |j                  d|dz
  «      }t        |«      |k  rt        d«      ‚|d   }|r|› d|› �S |S )zú
        Copied from the Cpython implementation of __import__
        Resolve a relative module name to an absolute one.
        https://github.com/python/cpython/blob/5a094f0255eea1db58fb2cf14c200971e64ec36e/Lib/importlib/_bootstrap.py#L902
        rM  r   z2attempted relative import beyond top-level packager   )Úrsplitrã   ÚImportError)rÁ   r°   r’  ÚlevelÚbitsÚbases         r¦   Úresolve_namez&InstructionTranslatorBase.resolve_name=  sQ   € ð �~‰~˜c 5¨1¡9Ó-ˆÜˆt‹9�uÒÜÐRÓSÐSØ�A‰wˆÙ#'�$��q˜˜ÐÐ1¨TÐ1r¨   c                óŽ  — | j                   j                  d«      }| j                   j                  d«      }|�6|�2||j                  k7  r#t        j	                  d||j                  d¬«       |S |�|j                  S t        j	                  dd¬«       | j                   d   }d| j                   vr|j                  d	«      d
   }|S )zÀ
        Copied from the Cpython implementation of __import__
        https://github.com/python/cpython/blob/5a094f0255eea1db58fb2cf14c200971e64ec36e/Lib/importlib/_bootstrap.py#L1090
        Ú__package__Ú__spec__z)__package__ != __spec__.parent (%r != %r)r¾  )Ú
stacklevelzYcan't resolve package from __spec__ or __package__, falling back on __name__ and __path__rÉ   Ú__path__rM  r   )rW  r{  r  r  ÚwarningÚ
rpartition)rÁ   r’  Úspecs      r¦   Úcalc_packagez&InstructionTranslatorBase.calc_packageI  sÊ   € ð
 —.‘.×$Ñ$ ]Ó3ˆØ�~‰~×!Ñ! *Ó-ˆØÐØÐ G¨t¯{©{Ò$:Ü—‘Ø?ØØ—K‘KØ ð	 ô ð ˆNØÐØ—;‘;Ðä�K‰Kð8àð ô ð
 —n‘n ZÑ0ˆGØ §¡Ñ/Ø!×,Ñ,¨SÓ1°!Ñ4�Øˆr¨   c           
     ól  — | j                  d«      \  }}|j                  «       }|j                  «       }|j                  }t        j                  › d|› d|› d|› �}|| j
                  v r| j
                  |   }t        |«      }n{	 t        |||| j
                  ¬«      }|d
k7  r#| j                  «       }| j                  |||«      }|s&|j                  d«      d
   }	| j                  |	«      }n| j                  |«      }| j                   r| j                   j#                  |«       t%        t&        j(                  t*        f«      r| j-                  t/        ||¬«      «       y t        dt1        |«      dg ¬	«       y # t        $ r, t        dd|› d|› d|› �dg t        j                  ¢¬	«       Y �Œw xY w)Nrà  r¥   )Úfromlistr}  ÚglobalszImport failurezmodule_name: z, fromlist: z, level=z"Failure when attempting to import.r¬  r   rM  ©r“  zBad import resultz%Import result is not a Python module.)r@  rß  rn  rI   ÚLOCAL_MOD_PREFIXrW  rO   Ú
__import__r|  r:   r   ré  r‰  r€  Ú	partitionr`  r‹  Úadd_local_modrN  rO  rP  rH   r>  r‚   r`   )
rÁ   r¹   r}  r‹  ra  Úrecorded_namer¦  r“  ÚpkgÚtop_level_module_names
             r¦   ÚIMPORT_NAMEz%InstructionTranslatorBase.IMPORT_NAMEf  sº  € ØŸ)™) A›,‰ˆˆxØ×(Ñ(Ó*ˆØ×.Ñ.Ó0ˆØ—k‘kˆô !×1Ñ1Ð2°!°E°7¸!¸H¸:ÀQÀ{ÀmÐTð 	ð ˜DŸN™NÑ*Ø—N‘N =Ñ1ˆEÜ! -Ó0‰FðÜ"ØØ%ØØ ŸN™Nô	�ð ˜ŠzØ×'Ñ'Ó)�Ø"×/Ñ/°¸SÀ%ÓH�ñ Ø(3×(=Ñ(=¸cÓ(BÀ1Ñ(EÐ%Ø×+Ñ+Ð,AÓB‘à×+Ñ+¨KÓ8�à×Òà×Ñ×,Ñ,¨]¸EÔBô �eœe×.Ñ.´Ð<Ô=à�I‰IÔ*¨5¸Ô@ÕAäØ+ä ›ØCØöøôA ò ÜØ,Ø+¨K¨=¸ÀXÀJÈhÐW\ÐV]Ð^Ø DØ9Ô-×8Ñ8Ð9÷	ð ðús   ÂE> Å>1F3Æ2F3c                ó\   — | j                  |«       | j                  |j                  «       y rŸ   )ÚDUP_TOPÚ
_load_attrrn  ræ  s     r¦   ÚIMPORT_FROMz%InstructionTranslatorBase.IMPORT_FROM¦  s   € Ø�‰�TÔØ�‰˜Ÿ™Õ$r¨   c                ób  — || j                   vr#t        ddd|› d�g t        j                  ¢¬«       | j                   |   }t	        |«      rBt        | j                  j                  «      }t        ||«      }t        j                  | ||«      S t        |«      sJ ‚t        j                  | |«      S )Nz%failed to find name in frame builtinsrß   zFailed to find name `z` in frame's builtins.r¬  )rY  r:   r   rÛ  r±  rO   r   Ú%name_of_builtins_dict_key_in_fglobalsrN   rb   ro  rU   )rÁ   rn  r[  Úbuiltins_sourceÚ
var_sources        r¦   Úload_builtin_from_argvalz2InstructionTranslatorBase.load_builtin_from_argval¬  s®   € à˜Ÿ™Ñ(ÜØ?ØØ3°F°8Ð;QÐRðÜ&×1Ñ1ðõ	ð �o‰o˜fÑ%ˆä�CŒ=Ü*Ø—‘×AÑAóˆOô +¨?¸FÓCˆJÜ"×(Ñ(¨¨s°JÓ?Ð?ä& sÔ+Ð+Ð+Ü"×(Ñ(¨¨sÓ3Ð3r¨   c                óX   — | j                  | j                  |j                  «      «       y rŸ   )r>  rž  rn  ræ  s     r¦   r[  z&InstructionTranslatorBase.load_builtinÃ  s   € Ø�	‰	�$×/Ñ/°·±Ó<Õ=r¨   c                ó  — | j                   €J ‚| j                  €J ‚|j                  €J ‚t        «       j	                  d| j                   | j                  z
  «       | j
                  |j                     | _         | j                   | _        y )NÚir_count)r¸   r�  r&  r[   Ú	incrementÚindexofræ  s     r¦   rà  zInstructionTranslatorBase.jumpÆ  s‚   € Ø×'Ñ'Ð3Ð3Ð3Ø×ÑÐ+Ð+Ð+Ø�{‰{Ð&Ð&Ð&ÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ð $(§<¡<°·±Ñ#<ˆÔ Ø×3Ñ3ˆÕr¨   FTc           	     ó¦   — |j                   €J ‚| j                  j                  t        ||j                   t	        | j
                  «      «      «       y rŸ   ©r&  r  rä   r%  rã   r�  ræ  s     r¦   Ú
SETUP_LOOPz$InstructionTranslatorBase.SETUP_LOOPØ  ó;   € à�{‰{Ð&Ð&Ð&Ø×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr¨   c           	     ó¦   — |j                   €J ‚| j                  j                  t        ||j                   t	        | j
                  «      «      «       y rŸ   r¥  ræ  s     r¦   ÚSETUP_EXCEPTz&InstructionTranslatorBase.SETUP_EXCEPTÝ  r§  r¨   c                ó8   — | j                   j                  «        y rŸ   )r  rÉ  ræ  s     r¦   Ú	POP_BLOCKz#InstructionTranslatorBase.POP_BLOCKâ  s   € Ø×Ñ×ÑÕr¨   c                ó&   — | j                  |«       y rŸ   ©Úsetup_or_before_withræ  s     r¦   Ú
SETUP_WITHz$InstructionTranslatorBase.SETUP_WITHå  ó   € Ø×!Ñ! $Õ'r¨   c           	     ó¦   — |j                   €J ‚| j                  j                  t        ||j                   t	        | j
                  «      «      «       y rŸ   r¥  ræ  s     r¦   ÚSETUP_FINALLYz'InstructionTranslatorBase.SETUP_FINALLYè  s;   € Ø�{‰{Ð&Ð&Ð&Ø×Ñ×Ñ¤°°d·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr¨   c                ó  — | j                  «       j                  «       }| j                  |«       	 |j                  | «      }| j                  |«       y # t        t
        j                  f$ r’}t        |t
        j                  «      rt        j                  | «       t        j                  dk\  r%| j                  t        j                  d «      «       n| j                  «        | j                  |«       Y d }~y d }~ww xY w©Nr*  )rÉ  Úrealizer>  Únext_variableÚStopIterationr   ÚObservedUserStopIterationrN  rñ  rR  rÌ  rh   rj  rà  )rÁ   r¹   Úitr[  rÐ  s        r¦   ÚFOR_ITERz"InstructionTranslatorBase.FOR_ITERì  sº   € Ø�X‰X‹Z×ÑÓ!ˆØ�	‰	�"Œð	Ø×"Ñ" 4Ó(ˆCØ�I‰I�c�NøÜœs×<Ñ<Ð=ò 	Ü˜!œS×:Ñ:Ô;Ü×-Ñ-¨dÔ3ä×Ñ 7Ò*ð
 —	‘	Ô*×1Ñ1°$Ó7Õ8ð —‘”
Ø�I‰I�d�O‰Oûð	ús   ±"A ÁC?Á-BC:Ã:C?c                ól   — t        |t        j                  t        f«      r|j	                  | g i «      }|S rŸ   )rN  r   rf   r�   r?  rZ  s     r¦   Ú_create_exception_typez0InstructionTranslatorBase._create_exception_type	  s6   € ÜØ”)×+Ñ+Ô-NÐOô
ð
 ×#Ñ# D¨"¨bÓ1ˆCØˆ
r¨   c                óü   — | j                  «       } |j                  | d«      }t        |t        t        f«      sJ ‚t	        j
                  ||«      } |j                  | dt        j                  | d«      |gi «       y )Nr
  Ú__setattr__)	rÈ  rï  rN  rh   rƒ   Úfrom_frame_summaryÚcall_methodrb   ro  )rÁ   r   rÈ  ÚtbÚnew_tbs        r¦   Ú_attach_traceback_to_exceptionz8InstructionTranslatorBase._attach_traceback_to_exception
	  s†   € à×*Ñ*Ó,ˆØˆS�_‰_àØó
ˆô
 ØÔ!Ô#4Ð5ô
ð 	
ð 
ô #×5Ñ5°mÀRÓHˆØˆ�‰àØÜ×"Ñ" 4¨Ó9¸6ÐBØõ	
r¨   c                óÖ  — | j                  |«      }t        | j                  «      rWt        |t        j
                  «      r=|j                  t        u r+t        j                  | t        «      j                  | g i «      }| j                  |«      r:t        |dd «      €-t        j                  j                   j#                  «       |_        | j                  |«      rb| j&                  j)                  |«       t+        j,                  |j                  «      }t        |dd «      } |d|j/                  «       › �|¬«      ‚t+        j0                  t2        | d|j5                  «       › �g¬«       y )NÚpython_stackúraised exception )r  z/exceptions must derive from BaseException, not rÙ  )r¼  r-   rÄ  rN  r   r   Úexc_typer·  rb   ro  r  r?  Ú_isinstance_exceptionr|  rˆ  Ú_guardsr   Úextract_stackrÅ  rŠ  r\  r   Úget_dynamo_observed_exceptionÚ
debug_reprrò  ró  Úpython_type_name)rÁ   r[  Úobserved_exception_typerÅ  s       r¦   Ú_raise_exception_variablez3InstructionTranslatorBase._raise_exception_variable	  s2  € ð ×)Ñ)¨#Ó.ˆô
 ˜Ÿ™Ô%Ü˜3¤	× ;Ñ ;Ô<Ø—‘¤Ñ-ä!×'Ñ'¨¬lÓ;×IÑIÈ$ÐPRÐTVÓWˆCð ×&Ñ& sÔ+Ü˜˜^¨TÓ2Ð:ä$Ÿ}™}×;Ñ;×IÑIÓKˆCÔð ×%Ñ% cÔ*à×Ñ×3Ñ3°CÔ8ä&)×&GÑ&GÈÏÉÓ&UÐ#ä" 3¨¸Ó=ˆLÙ)Ø# C§N¡NÓ$4Ð#5Ð6À<ôð ô 	×$Ñ$ÜØàAÀ#×BVÑBVÓBXÐAYÐZðö	
r¨   c           
     óD  — |j                   dk(  r‚t        | j                  «      st        j                  t
        | dg¬«       t        | j                  «      sJ ‚| j                  d   }| j                  |«      sJ |«       ‚| j                  |«       y |j                   dk(  rM| j                  d   }	 | j                  |«       | j                  j                  «       }| j                  |«       y | j                  «       }| j                  «       }	 | j                  |«       | j                  j                  «       }| j                  |«       | j                  |«      }|j                  | dt        j                  | d«      |gi «       y # | j                  j                  «       }| j                  |«       w xY w# | j                  j                  «       }| j                  |«       | j                  |«      }|j                  | dt        j                  | d«      |gi «       w xY w)Nr   zNo active exception to reraiserÙ  ry  r   r¾  Ú	__cause__)r2  rã   rŠ  r   rò  r  rÈ  rÏ  r�  r`  rÃ  rÉ  r¼  rÀ  rb   ro  )rÁ   r¹   r[  Úcurr_excÚfrom_vtÚcauses         r¦   r`  z'InstructionTranslatorBase.RAISE_VARARGSN	  sâ  € Ø�8‰8�qŠ=Ü�t×(Ñ(Ô)Ü×,Ñ,Ü  $Ð.NÐ-Oõô �t×(Ñ(Ô)Ð)Ð)Ø×#Ñ# BÑ'ˆCØ×-Ñ-¨cÔ2Ð7°CÓ7Ð2Ø×*Ñ*¨3Õ/Ø�X‰X˜Š]à—*‘*˜R‘.ˆCð>Ø×.Ñ.¨sÔ3ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ð —h‘h“jˆGØ—(‘(“*ˆCðØ×.Ñ.¨sÔ3ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×$Ñ$ØØ!Ü$×*Ñ*¨4°Ó=¸uÐEØõ	øð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ûð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×$Ñ$ØØ!Ü$×*Ñ*¨4°Ó=¸uÐEØõ	ús   Â1F ÄF7 Æ-F4Æ7A(Hc                ó¬   — | j                   d   }t        |t        «      sJ ‚|j                  t        u rt        dddg ¬«       y | j                  |«       y )Nry  z CLEANUP_THROW with StopIterationrß   zRReceived StopIteration when handling generator.throw/close. This is not supported.r¬  )r�  rN  r   rÇ  r·  r:   ÚRERAISE©rÁ   r¹   Útoss      r¦   ÚCLEANUP_THROWz'InstructionTranslatorBase.CLEANUP_THROWv	  sN   € à�j‰j˜‰nˆÜ˜#Ô0Ô1Ð1Ð1Ø�<‰<œ=Ñ(ÜØ:ØØpØö	ð �L‰L˜Õr¨   c                ón  — t         j                  dk\  ra| j                  «       }|j                  r"| j                  «       }| j	                  |«       y | j                  |«       | j	                  |«       y | j                  «       }| j                  «       }| j                  «       }| j	                  |«       y )Nr(  )rR  rÌ  rÉ  rn  rÏ  r>  )rÁ   r¹   r[  r¥   Ú_excÚ_tbs         r¦   rÖ  z!InstructionTranslatorBase.RERAISE„	  s‡   € ô ×Ñ˜wÒ&à—(‘(“*ˆCØ�{Š{à—H‘H“J�Ø×.Ñ.¨sÕ3ð —	‘	˜#”Ø×.Ñ.¨sÕ3à—8‘8“:ˆDØ—(‘(“*ˆCØ—(‘(“*ˆCØ×*Ñ*¨3Õ/r¨   c                ó"   — t        |t        «      S rŸ   )rN  r¬   rZ  s     r¦   rÈ  z/InstructionTranslatorBase._isinstance_exception›	  s   € Ü˜#œ}Ó-Ð-r¨   c                óú  — g }t         j                  dk\  rÙt         j                  dk  rdnd}t        | j                  «      |k\  sJ ‚| j                  |    }| j                  d   }| j	                  |«      sJ ‚t        |j                  «      }|j                  | d«      }t         j                  dk\  r®t        | j                  d   t        «      s‘|j                  | j                  d   «       nrt        | j                  «      dk\  sJ ‚| j                  d	   }| j                  d
   }| j	                  |«      sJ ‚t        |j                  «      }|j                  | d«      }||||gz  }| j                  ||i «       y )Nr(  ©r¾  é   é   é   ry  r
  éüÿÿÿé   iùÿÿÿrá  )rR  rÌ  rã   r�  rÈ  rf   rÇ  rï  rN  r�   rä   r?  )rÁ   r¹   r¤   Úfn_locrJ  r[  ÚtyprÁ  s           r¦   ÚWITH_EXCEPT_STARTz+InstructionTranslatorBase.WITH_EXCEPT_STARTž	  sN  € Ø&(ˆÜ×Ñ˜wÒ&Ü×*Ñ*¨WÒ4‘Q¸!ˆFô �t—z‘z“? fÒ,Ð,Ð,Ø—‘˜V˜GÑ$ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ð2Ð2Ü! #§,¡,Ó/ˆCØ—‘àØóˆBô
 ×Ñ 7Ò*Ü! $§*¡*¨R¡.´,Ô?Ø—K‘K §
¡
¨2¡Õ/ä�t—z‘z“? aÒ'Ð'Ð'Ø—‘˜B‘ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨cÔ2Ð2Ð2Ü! #§,¡,Ó/ˆCà—‘  Ó7ˆBà��c˜2�ÑˆØ×Ñ˜2˜t RÕ(r¨   c           	     óü	  ‡ ‡‡	— dŠ	dˆ	ˆˆ fd„}t         j                  dk\  �rL‰ j                  j                  }|rÕt	        ‰ j
                  «      |j                  kD  r3‰ j                  «        t	        ‰ j
                  «      |j                  kD  rŒ3|j                  r9‰ j                  t        j                  ‰ ‰ j                  j                  «      «       ‰ j                  ‰ j                  j                  «       «       ‰ j                  |«       y ‰ j
                  j!                  «        ‰ j                  j                  «       }‰ j#                  |«       t%        ‰ «      t&        u r |«        ‰‚t	        ‰ j(                  «      �rF‰ j(                  j                  «       }|j*                  j,                  dk(  rÐ‰ j/                  d«       ‰ j                  j                  «        t	        ‰ j(                  «      dk(  rY‰ j
                  j!                  «        t%        ‰ «      t&        u r,t1        dt3        ‰«      ‰	dz   g t4        j6                  ¢‰¬	«       ‰‚‰ j(                  j                  «       }|j*                  j,                  dk(  rŒÐ‰ j                  j                  «       }‰ j                  j9                  «        t	        ‰ j
                  «      |j:                  kD  r3‰ j                  «        t	        ‰ j
                  «      |j:                  kD  rŒ3t=        t?        d
«      dd d«      }‰ j(                  jA                  tC        |d t	        ‰ j
                  «      «      «       t	        ‰ j                  «      dk\  rr‰ j                  d   }‰ j                  tE        jF                  «       «       ‰ j                  |«       ‰ j                  tE        jH                  |jJ                  «      «       nl‰ j                  tM        jN                  d «      «       ‰ j                  tM        jN                  d «      «       ‰ j                  tM        jN                  d «      «       ‰ j                  tE        jF                  «       «       ‰ j                  |«       ‰ j                  tE        jH                  |jJ                  «      «       ‰ j                  |«       y ‰ j
                  j!                  «        t%        ‰ «      t&        u r |«        ‰‚)NzšDynamo found no exception handler at the top-level compiled function when encountering an exception. Exception will propagate outside the compiled region.c                 ó  •— ‰j                   j                  «       } t        j                  | j	                  «       «      }t        ‰|«      sJ ‚t        dd| j                  «       › �‰g t        j                  ¢t        j                  ¢‰¬«       y )NzObserved exceptionrÆ  r  )rŠ  r`  r   rË  Úpython_typerN  r:   rÌ  r   ré  rC  )rÒ  Ú
dynamo_excÚobserved_exn_gb_explanationÚraised_exceptionrÁ   s     €€€r¦   Úbubble_exception_to_interpreterzTInstructionTranslatorBase.exception_handler.<locals>.bubble_exception_to_interpreterÊ	  s‰   ø€ à×(Ñ(×>Ñ>Ó@ˆHÜ×:Ñ:¸8×;OÑ;OÓ;QÓRˆJÜÐ.°
Ô;Ð;Ð;ÜØ,Ø+¨H×,?Ñ,?Ó,AÐ+BÐCØ7ðÜ&×1Ñ1ðä&×2Ñ2ðð *ö	r¨   r(  ÚEXCEPT_HANDLERr¾  r   z#Observed exception (EXCEPT_HANDLER)z  This graph break is unexpected.r  g    €„.Arà  rá  rë   )(rR  rÌ  rƒ  r7  rã   r�  ÚdepthrÉ  Úlastir>  rb   ro  r™  rŠ  r`  rà  rÝ   rÃ  rô  rD  r  r¹   rå   r@  r:   r´   r   rÛ  r^  r'  r,   r¶   rä   r%  r   r„   rf   rÇ  rh   rj  )
rÁ   rí  rî  r7  rÒ  Úblock_stack_entryÚexception_varÚexcept_handler_instÚold_exceptionrì  s
   ``       @r¦   rÙ  z+InstructionTranslatorBase.exception_handlerÄ	  sÜ  ú€ ðdð 	$÷
	ô  ×Ñ˜wÓ&Ø ×4Ñ4×BÑBˆMÙô
 ˜$Ÿ*™*“o¨×(;Ñ(;Ò;Ø—H‘H”Jô ˜$Ÿ*™*“o¨×(;Ñ(;Ó;ð !×&Ò&Ø—I‘IÜ'×-Ñ-¨d°D×4LÑ4L×4SÑ4SÓTôð
 —	‘	˜$×+Ñ+×AÑAÓCÔDð —	‘	˜-Õ(ð —
‘
× Ñ Ô"ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=ä˜“:Ô!6Ñ6Ù3Ô5Ø&Ð&ä�4×#Ñ#Õ$ð %)×$4Ñ$4×$8Ñ$8Ó$:Ð!à'×,Ñ,×3Ñ3Ð7GÒGð —I‘I˜a”LØ×%Ñ%×)Ñ)Ô+Ü˜4×+Ñ+Ó,°Ò1ð Ÿ
™
×(Ñ(Ô*Ü ›:Ô)>Ñ>Ü)Ø(MÜ(+Ð,<Ó(=Ø,GØ"Dñ-Eà&EÔ(9×(DÑ(DÐ&EØ)9õð /Ð.Ø(,×(8Ñ(8×(<Ñ(<Ó(>Ð%ð) (×,Ñ,×3Ñ3Ð7GÓGð, !%× 1Ñ 1× GÑ GÓ I�Ø×!Ñ!×AÑAÔCô ˜$Ÿ*™*“oÐ(9×(EÑ(EÒEØ—H‘H”Jô ˜$Ÿ*™*“oÐ(9×(EÑ(EÓEô
 '2´#°c³(Ð<LÈdÐTUÓ&VÐ#Ø× Ñ ×'Ñ'Ü#Ð$7¸¼sÀ4Ç:Á:»ÓOôô
 �t×(Ñ(Ó)¨QÒ.Ø$(×$5Ñ$5°bÑ$9�Mð —I‘Iœi×7Ñ7Ó9Ô:Ø—I‘I˜mÔ,à—I‘Iœi×7Ñ7¸×8NÑ8NÓOÕPð —I‘IÔ.×5Ñ5°dÓ;Ô<Ø—I‘IÔ.×5Ñ5°dÓ;Ô<Ø—I‘IÔ.×5Ñ5°dÓ;Ô<ð —	‘	œ)×3Ñ3Ó5Ô6Ø—	‘	˜-Ô(à—	‘	œ)×3Ñ3°M×4JÑ4JÓKÔLð —	‘	Ð+Õ,ð —
‘
× Ñ Ô"Ü˜“:Ô!6Ñ6Ù3Ô5Ø&Ð&r¨   c                ó  — | j                  «       }t        | j                  «      dk(  rt        j                  d «      }n| j                  d   }| j                  |«       | j                  |«       | j                  j                  «        y )Nr   ry  )rÉ  rã   rŠ  rh   rj  r>  r^  )rÁ   r¹   r[  Úprev_excs       r¦   ÚPUSH_EXC_INFOz'InstructionTranslatorBase.PUSH_EXC_INFOG
  sk   € ð( �h‰h‹jˆÜˆt× Ñ Ó! QÒ&Ü(8×(?Ñ(?ÀÓ(E‰Hà×(Ñ(¨Ñ,ˆHØ�	‰	�(ÔØ�	‰	�#ŒØ×Ñ×9Ñ9Õ;r¨   c                óü  — t         j                  dk\  rB| j                  «       }t        | j                  «      sJ ‚| j                  j                  «        y t        | j
                  «      dkD  sJ ‚| j
                  d   j                  j                  dk7  rt        d«      ‚| j
                  j                  «        | j                  d«       t        | j                  «      sJ ‚| j                  j                  «        y )Nr(  r   ry  rï  zYBug in Dynamo tracing of exception handling.Top of the block stack is not EXCEPT_HANDLER.r¾  )
rR  rÌ  rÉ  rã   rŠ  r  r¹   rå   r²  r@  )rÁ   r¹   r¥   s      r¦   Ú
POP_EXCEPTz$InstructionTranslatorBase.POP_EXCEPTd
  sÔ   € Ü×Ñ˜wÒ&Ø—‘“
ˆAä�t×(Ñ(Ô)Ð)Ð)Ø×Ñ×!Ñ!Õ#ä�t×'Ñ'Ó(¨1Ò,Ð,Ð,Ø×Ñ Ñ#×(Ñ(×/Ñ/Ð3CÒCÜ$ðDóð ð ×Ñ× Ñ Ô"à�I‰I�aŒLô �t×(Ñ(Ô)Ð)Ð)Ø×Ñ×!Ñ!Õ#r¨   c                óÆ  — t        | j                  «      dk\  sJ ‚| j                  «       }t        j                  dk\  r| j                  d   }n| j                  j                  «       }t        |t        t        t        t        f«      s,t        dt        |«      d|› d�g t        j                  ¢¬«       t        j                  dk\  r=| j                  |«      s,t        dt        |«      d	|› d�g t        j                  ¢¬«       t        |t        «      r|j                  }n|g}|D ]¹  }t        |t        t        t        f«      s,t        d
t        |«      d|› d�g t        j                  ¢¬«       | j                  |«      r"t!        |j"                  |j$                  «      r yt        |t&        j                  «      sŒ˜t!        |j$                  |j$                  «      sŒ¹ y y)Nrà  r(  ry  z Exception with bad expected typez"`except ...` has unsupported type rM  r¬  zCaught non-Exception valuezCExcept expects to receive an object of Exception type but received z#Exception with non-type expectationz!`except ...` expects a non-type: TF)rã   r�  rÉ  rR  rÌ  rN  rf   r}   r�   r‘   r:   r´   r   ré  rÈ  rý   Ú
issubclassrÇ  rJ  r   )rÁ   Úexpected_exc_typesÚexc_instanceÚexpected_typesÚexpected_types        r¦   Úcheck_if_exc_matchesz.InstructionTranslatorBase.check_if_exc_matchesy
  sÓ  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø!ŸX™X›ZÐÜ×Ñ˜wÒ&ð  Ÿ:™: b™>‰Lð
  Ÿ:™:Ÿ>™>Ó+ˆLô ØäÜÜ1Ü2ð	ô
ô Ø:ÜÐ.Ó/Ø@ÐASÐ@TÐTUÐVØ5Ô)×4Ñ4Ð5õ	ô ×Ñ˜wÒ&Ø×-Ñ-¨lÔ;ÜØ8Ü Ó-Ø"eÐfrÐesÐstÐ uØ9Ô-×8Ñ8Ð9õ	ô Ð(¬-Ô8Ø/×5Ñ5‰Nð #ðˆNð ,ò 	ˆMÜØä#Ü6Ü5ðôô ØAÜ Ó.Ø"CÀMÀ?ÐRSÐ TØ9Ô-×8Ñ8Ð9õ	ð ×)Ñ)¨,Ô7¼JØ×%Ñ%Ø× Ñ ô=ñ Ü˜L¬)×*CÑ*CÕDÌØ—‘à× Ñ õJñ
 ð3	ð6 r¨   c                ój   — | j                  t        j                  | | j                  «       «      «       y rŸ   )r>  rb   ro  r  ræ  s     r¦   ÚCHECK_EXC_MATCHz)InstructionTranslatorBase.CHECK_EXC_MATCHÌ
  s$   € Ø�	‰	”/×'Ñ'¨¨d×.GÑ.GÓ.IÓJÕKr¨   c                óH   — | j                  «       s| j                  |«       y y rŸ   )r  rà  ræ  s     r¦   ÚJUMP_IF_NOT_EXC_MATCHz/InstructionTranslatorBase.JUMP_IF_NOT_EXC_MATCHÏ
  s   € Ø×(Ñ(Ô*Ø�I‰I�d�Oð +r¨   c                ó¶   — |j                   dk(  r| j                  |«       y | j                  t        |j                      | | j	                  d«      i «      «       y )Nzexception matchrà  )rn  r  r>  r�   r@  ræ  s     r¦   Ú
COMPARE_OPz$InstructionTranslatorBase.COMPARE_OPÓ
  sD   € Ø�;‰;Ð+Ò+Ø× Ñ  Õ&à�I‰IÔ)¨$¯+©+Ñ6°t¸T¿Y¹YÀq»\È2ÓNÕOr¨   c                óx   — | j                  t        j                  | t        «      | j	                  «       gi «       y rŸ   )r?  rb   ro  ÚiterrÉ  ræ  s     r¦   ÚGET_ITERz"InstructionTranslatorBase.GET_ITERÙ
  s)   € Ø×Ñœ?×0Ñ0°´tÓ<¸t¿x¹x»z¸lÈBÕOr¨   zjEncountered graph break when attempting to trace CALL_FUNCTION: a call to a regular function, e.g. f(x, y))r>  r%  c                ó€   — | j                  |j                  «      }| j                  «       }| j                  ||i «       y rŸ   )r@  rn  rÉ  r?  )rÁ   r¹   r¤   rJ  s       r¦   ÚCALL_FUNCTIONz'InstructionTranslatorBase.CALL_FUNCTIONÜ
  s3   € ð
 �y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆØ×Ñ˜2˜t RÕ(r¨   zjEncountered graph break when attempting to trace CALL_FUNCTION_EX: a variadic function call, e.g. f(*args)c           	     óv  — |j                   dk(  rt        i «      }| j                  «       }n—|j                   dk(  st        j                  dk\  r<| j                  «       }t        |t        «      rt        i «      }| j                  «       }n9t        dd|j                   › �d|j                   › �g t        j                  ¢¬«       t        j                  dk\  r"| j                  «       }t        |t        «      sJ ‚| j                  «       }t        j                  d	k\  r5t        j                  dk  r"| j                  «       }t        |t        «      sJ ‚t        t        «      s+|j                  | «      rt        |j                  | «      «      }t        t        «      rt        j                   | t"        |«      }t        |t        «      rt        |t        «      s7t        d
dt%        |«      › dt%        |«      › �dg t        j&                  ¢¬«       |j)                  «       }| j+                  ||j,                  |«       y )Nr   r   rß  z%Variadic function call with bad flagszflags: zHAttempted to call a variadic function (CALL_FUNCTION_EX) with bad flags r¬  r½  r(  z0Variadic function call with bad args/kwargs typezargs type: z, kwargs type: z2Expected args to be a list and kwargs to be a dict)rn  rn   rÉ  rR  rÌ  rN  r�   r:   r   rÛ  rx   Úhas_force_unpack_var_sequencer}   Úforce_unpack_var_sequencer’   rg   Úcall_custom_dictrÿ   r`   ré  Úkeys_as_python_constantr?  rý   )rÁ   r¹   Ú
kwargsvarsÚargsvarsÚnullrJ  s         r¦   ÚCALL_FUNCTION_EXz*InstructionTranslatorBase.CALL_FUNCTION_EXå
  sÞ  € ð �;‰;˜!ÒÜ*¨2Ó.ˆJØ—x‘x“z‰HØ�[‰[˜AÒ¤×!1Ñ!1°WÒ!<àŸ™›ˆJÜ˜*¤lÔ3Ü.¨rÓ2�
Ø—x‘x“z‰HäØ?Ø! $§+¡+ Ð/ØfÐgk×grÑgrÐfsÐtØ5Ô)×4Ñ4Ð5õ	ô ×Ñ˜wÒ&à—8‘8“:ˆDÜ˜d¤LÔ1Ð1Ð1à�X‰X‹Zˆä×Ñ˜wÒ&¬3×+;Ñ+;¸gÒ+EØ—8‘8“:ˆDÜ˜d¤LÔ1Ð1Ð1äØÜô
ð ×4Ñ4°TÔ:Ü$ X×%GÑ%GÈÓ%MÓNˆHô �jÔ";Ô<Ü,×=Ñ=¸dÄDÈ*ÓUˆJô ˜(Ô$4Ô5¼ZàÜô>
ô
 ØJà%¤g¨hÓ&7Ð%8¸ÌÐPZÓH[ÐG\Ð]ØPØ5Ô)×4Ñ4Ð5õð  ×7Ñ7Ó9ˆ
à×Ñ˜2˜xŸ~™~¨zÕ:r¨   zyEncountered graph break when attempting to trace CALL_FUNCTION_KW: a function call with keyword arguments, e.g. f(x=True)c                óœ  — | j                  «       }| j                  |j                  «      }| j                  «       }t        |t        «      r|j                  «       sJ ‚|j                  «       }|d t        |«        |t        |«       d  }}t        t        ||«      «      }t        |«      t        |«      k(  sJ ‚| j                  |||«       y rŸ   )rÉ  r@  rn  rN  r}   rÞ  rß  rã   rÿ   Úzipr?  )rÁ   r¹   Úargnamesr¤   rJ  Úkwargs_listr³  s          r¦   ÚCALL_FUNCTION_KWz*InstructionTranslatorBase.CALL_FUNCTION_KW%  s³   € ð —8‘8“:ˆØ�y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆÜ˜(¤MÔ2°x×7RÑ7RÔ7TÐTÐTØ×.Ñ.Ó0ˆØ Ð!1¤C¨£M >Ð2°D¼#¸h»-¸Ð9IÐ4JˆkˆÜ”c˜( KÓ0Ó1ˆÜ�6‹{œc (›mÒ+Ð+Ð+Ø×Ñ˜2˜t VÕ,r¨   c                ó(  — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }t
        j                  dk  r| j                  |«       y | j                  t        j                  ||¬«      «       y )Nrà  r/  r   Úco_namesr(  )	r  rí   r(  rn  rÆ  rR  rÌ  r˜  ÚLOAD_METHOD©rÁ   r¹   r2  rn  s       r¦   ÚLOAD_METHOD_SUPERz+InstructionTranslatorBase.LOAD_METHOD_SUPER5  st   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆÜ×Ñ˜gÒ%Ø�O‰O˜FÕ#à×Ñœ[×0Ñ0°¸fÔEÕFr¨   c                ó´   — | j                  t        j                  |d¬«      «       |j                  d   }| j                  d   |   }| j                  |«       y )Nrà  r/  r   r  )r  rí   r(  rn  rÆ  r˜  r  s       r¦   ÚLOAD_ATTR_SUPERz)InstructionTranslatorBase.LOAD_ATTR_SUPER>  sK   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆØ�‰˜Õr¨   c                óF  — | j                  |j                  «       | j                  «       }t        j                  dk\  r#| j                  |«       | j                  |«       y t        j                  dk\  r#| j                  |«       | j                  |«       y t        d«      ‚)Nr½  r(  zPLOAD_METHOD should have been rewritten to LOAD_ATTR. We should never reach here.)r˜  rn  rÉ  rR  rÌ  r>  rf  r²  ©rÁ   r¹   Úobjs      r¦   r  z%InstructionTranslatorBase.LOAD_METHODD  sy   € Ø�‰˜Ÿ™Ô$Ø�h‰h‹jˆÜ×Ñ˜wÒ&Ø�I‰I�cŒNØ�N‰N˜4Õ Ü×Ñ Ò(ð �N‰N˜4Ô Ø�I‰I�c�Nä Øbóð r¨   c                ó   — t        d«      ‚)Nz^CALL_METHOD should have been rewritten to CALL_FUNCTION. This function should never be called.)r²  ræ  s     r¦   ÚCALL_METHODz%InstructionTranslatorBase.CALL_METHODU  s   € ÜØló
ð 	
r¨   c                óÈ   — | j                  «       }t        j                  | t        «      j	                  | |t        j                  | |«      gi «      }| j                  |«       y rŸ   )rÉ  rb   ro  r|  r?  r>  )rÁ   Úattrr$  rû  s       r¦   r˜  z$InstructionTranslatorBase._load_attrZ  sS   € Ø�h‰h‹jˆÜ ×&Ñ& t¬WÓ5×CÑCØØ”/×'Ñ'¨¨dÓ3Ð4Øó
ˆð
 	�	‰	�&Õr¨   c                ó¢   — t         j                  dk\  r!|j                  dz  r| j                  |«       y | j	                  |j
                  «       y )Nr*  rà  )rR  rÌ  r2  r  r˜  rn  ræ  s     r¦   Ú	LOAD_ATTRz#InstructionTranslatorBase.LOAD_ATTRc  s<   € Ü×Ñ˜wÒ&à�x‰x˜!Š|Ø× Ñ  Ô&ØØ�‰˜Ÿ™Õ$r¨   zkEncountered graph break when attempting to trace STORE_ATTR: storing an object's attribute, e.g. x.attr = yc                óÄ   — | j                  d«      \  }}t        j                  | t        «      j	                  | |t        j                  | |j
                  «      |gi «       y )Nrà  )r@  rb   ro  Úsetattrr?  rn  )rÁ   r¹   r[  r$  s       r¦   Ú
STORE_ATTRz$InstructionTranslatorBase.STORE_ATTRk  sQ   € ð
 —9‘9˜Q“<‰ˆˆSÜ×Ñ˜d¤GÓ,×:Ñ:ØØ”/×'Ñ'¨¨d¯k©kÓ:¸CÐ@Øõ	
r¨   c                óò   — | j                  «       }| j                  ||j                  «       t        j                  | t
        «      j                  | |t        j                  | |j                  «      gi «       y rŸ   )rÉ  Ú_maybe_sync_dealloc_attrrn  rb   ro  Údelattrr?  r#  s      r¦   ÚDELETE_ATTRz%InstructionTranslatorBase.DELETE_ATTRw  s[   € Ø�h‰h‹jˆØ×%Ñ% c¨4¯;©;Ô7Ü×Ñ˜d¤GÓ,×:Ñ:ØØ”/×'Ñ'¨¨d¯k©kÓ:Ð;Øõ	
r¨   c                óâ   — | j                   j                  j                  ||«      rI| j                   j                  j                  ||«      }t	        |t
        «      r| j                  |«       y y y rŸ   )r   r  Úhas_pending_mutation_of_attrÚ	load_attrrN  r‹   r5  )rÁ   r$  r°   Úattr_vars       r¦   r/  z2InstructionTranslatorBase._maybe_sync_dealloc_attr€  s]   € ð �;‰;×#Ñ#×@Ñ@ÀÀdÔKØ—{‘{×/Ñ/×9Ñ9¸#¸tÓDˆHÜ˜(¤NÔ3Ø×-Ñ-¨hÕ7ð 4ð Lr¨   c                ó  — g }|dk  sJ ‚|dk(  r|j                  t        d«      «       | j                  dk(  rt        d«      nt        d| j                  ¬«      }|j                  t        d«      t        d«      |g«       |S )aÐ  
        Debug CPython expects the stack to be empty after the return.
        Calling compile_subgraph will push cells and frame values to TOS.
        This function will pop those 2 values from the stack before actually returning.

        Expects the stack to be:
            cells, frame values, current frame stack (0 or 1 values)

        Pops cells and frame values, leaving the current frame stack as TOS.
        A return instruction is included.
        r   r¾  r—  r˜  r/  rñ  )r£  r*   rå   r'   rn  )r¹   rù  re  Úreturn_insts       r¦   Úcodegen_return_with_popsz2InstructionTranslatorBase.codegen_return_with_pops‰  sƒ   € ð ˆð ˜AŠ~Ðˆ~Ø˜Š>Ø�L‰Lœ Q›Ô(ð �{‰{˜nÒ,ô ˜~Ô.ä# N¸4¿;¹;ÔGð 	ð
 	�‰Ü 	Ó*Ô,>¸yÓ,IÈ;ÐWô	
ð ˆr¨   c                óL  ‡ ‡‡— |�r™t        |j                  |j                  «      D ]¨  \  \  }}	}
t        t        ‰ j
                  |
   «      }|j                  t        «       «       |j                  |«       |j                  g t        d«      ¢|j                  |«      ‘|j                  «       ‘|j                  |«      ‘t        d«      ‘«       Œª |j                  D ]¿  \  }}	t        t        ‰ j                  |   «      }|j                  t        «       «       |j                  |«       |j                  g t        d«      ¢|j                  |«      ‘|j                  «       ‘|j                  |j                   |j"                  |   z   «      ‘t        d«      ‘«       ŒÁ t%        |«      r|j&                  sJ ‚|j&                  }t)        d|j*                  › �«      }|�rlt-        ‰ j.                  |«      Št1        ˆˆ fd„‰ j                  D «       «      }t3        |j4                  «      Št1        ˆfd„|D «       «      }t1        ˆfd„|D «       «      }|j                  t        «       |j                  |«      |j                  «       t        «       g«       |D ]`  }|j                  t        «       |j                  |j                   |j"                  |   z   «      |j                  «       gt        d«      ¢«       Œb |j                  t        d«      t        dt7        |«      ¬	«      gt        d«      ¢t9        |j                   d
d«      ¢«       n8t1        |j"                  j;                  «       «      }t1        |j4                  «      }t<        j>                  dk  rt7        |«      dk(  sJ d«       ‚t7        ‰ j
                  «      t7        |j@                  «      z
  }‰ jB                  j*                  €J ‚tE        jF                  ‰ jH                  ‰ jJ                  ‰ jB                  j*                  |j*                  t1        d„ ‰ jL                  D «       «      |||t1        d„ ‰ jL                  D «       «      |t1        |j                  «      t1        |j                  «      t1        |j@                  «      t1        |«      ‰ jN                   «      } tQ        jR                  ‰ jH                  «      jU                  dd„ «      «       }|�+tW        jX                  |«      tQ        jR                  |«      d<   ‰ jZ                  j]                  ||‰ j^                  «       ‰ j`                  �*‰ j`                  jc                  |‰ j^                  d   |«       td        d   |jf                  xx   dz  cc<   ||fS )a.  
        Creates the resume function for the frame corresponding to `self`.

        Expects the TOS to be:
            [frame N cells, ..., frame 1 cells],
            [
                frame N stack + locals,
                ...,
                frame 1 stack + locals
            ]

        Some additional codegen may happen to prepare the frame stack + locals values for the generated resume function:
        - inactive context variables in the stack and locals will be replaced by their types
        - if the frame is a leaf frame, prune dead locals

        Regardless of codegen, the stack will be left in the same state as before.

        Args:
            - idx: depth of this frame: 0 corresponds to the leaf frame (frame N), N-1 to the root frame (frame 1).
            - resume_inst: the instruction that this frame should resume at
            - meta: metadata for this frame returned from OutputGraph.compile_subgraph
            - resume_codes: nested resume code objects generated from previous create_resume calls.
            - cg: codegen object to output to
            - is_leaf: True if `self` corresponds to the leaf frame.
            - handle_inactive_ctx: If True, handles inactive context variables as described above. This is necessary
                iff the resume function is traced
        rà  rï  Ú__resume_at_c              3  óN   •K  — | ]  }|‰v r|‰j                  «       vr|–— Œ y ­wrŸ   )r¦  )rø   rù   r¨  rÁ   s     €€r¦   rû   z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>  s0   øè ø€ ò !àØ˜‘: !¨4×+AÑ+AÓ+CÑ"Cô ñ!ùs   ƒ"%c              3  ó,   •K  — | ]  }|‰vsŒ|–— Œ y ­wrŸ   rÍ   ©rø   rù   Úargnames_null_sets     €r¦   rû   z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>
  s   øè ø€ ÒS 1¸ÐARÒ8RœQÑSùó   ƒ	�c              3  ó,   •K  — | ]  }|‰v sŒ|–— Œ y ­wrŸ   rÍ   r=  s     €r¦   rû   z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>  s   øè ø€ Ò!T¨¸QÐBSÒ=S¤!Ñ!Tùr?  rñ  rë  rì  NTr*  r   z&variables should not be NULL in < 3.12c              3  óH   K  — | ]  }|j                   j                  –— Œ y ­wrŸ   )r&  r™  ©rø   r  s     r¦   rû   z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>?  s   è ø€ Ò< a�!—(‘(—/•/Ñ<ùs   ‚ "c              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wrŸ   )r/  rB  s     r¦   rû   z:InstructionTranslatorBase.create_resume.<locals>.<genexpr>C  s   è ø€ Ò: A�!—+‘+—-Ñ:ùr¬  Úorig_graphmodulec                  ó   — y rŸ   rÍ   rÍ   r¨   r¦   r§   z9InstructionTranslatorBase.create_resume.<locals>.<lambda>O  ó   � r¨   rÉ   Úresumesr   )4r  Ústack_ctx_argsÚstack_ctx_idxes_origr   ri   r�  Úappend_outputr&   r	  r  r*   rõ  rö  r'   Úlocals_ctx_argsr{  rù  rú  r.   r&  r/   r™  r   rm  r.  r  Úlocals_null_keysrã   r"   rB  rR  rÌ  Ústack_null_idxesrƒ  rJ   ÚlookuprÄ  r·   r  r  r0   Úget_contextr{  ÚweakrefÚrefr   Úinstall_resume_function_globalrW  r’  Úadd_resume_functionrX   r¿  )rÁ   r   Úresume_instrz  Úresume_codesr  Úis_leafÚhandle_inactive_ctxÚjr¥   Új_origrg  r°   Úresume_nameÚall_argnamesr  Úargnames_nullr2  Ú	stack_lenÚnew_codeÚorig_graphmodule_mayber>  r¨  s   `                    @@r¦   r÷  z'InstructionTranslatorBase.create_resume©  s5  ú€ òT Ü"% d×&9Ñ&9¸4×;TÑ;TÓ"Uò ‘‘��A˜äÔ2°D·J±J¸vÑ4FÓG�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨QÓ/ð	ô
 +¨>Ó:ðõðð   ×/Ñ/ò ‘��aäÔ2°D×4HÑ4HÈÑ4NÓO�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨T¯^©^¸d×>OÑ>OÐPTÑ>UÑ-UÓVð	ô
 +¨>Ó:ðõðô( ˜KÔ(Ø×%Ò%Ð%Ð%Ø%×,Ñ,ˆKä ,¨{×/AÑ/AÐ.BÐ CÓDˆò Ü% d×&7Ñ&7¸ÓEˆEÜ ô !à×-Ñ-ô!ó ˆLô
 !$ D×$9Ñ$9Ó :ÐÜÓS¨ÔSÓSˆHÜ!Ó!T¨\Ô!TÓTˆMð ×Ñä"Ó$Ø×(Ñ(¨Ó-Ø×+Ñ+Ó-Ü"Ó$ð	ôð  ò 	�à× Ñ ä&Ó(Ø×,Ñ,¨T¯^©^¸d×>OÑ>OÐPSÑ>TÑ-TÓUØ×/Ñ/Ó1ðô % Q›ð	õð	ð ×Ñä& yÓ1Ü& |¼¸X»ÔGðô ! “^ðô
 )¨¯©¸¸tÓDðõ	ô ˜T×.Ñ.×3Ñ3Ó5Ó6ˆHÜ! $×"7Ñ"7Ó8ˆMä×Ñ˜gÒ%Ü�}Ó%¨Ò*ÐTÐ,TÓTÐ*ô ˜Ÿ
™
“O¤c¨$×*?Ñ*?Ó&@Ñ@ˆ	à×'Ñ'×.Ñ.Ð:Ð:Ð:Ü#9×#@Ñ#@Ø�K‰KØ�K‰KØ×$Ñ$×+Ñ+Ø×ÑäÑ<¨4×+;Ñ+;Ô<Ó<ØØØÜÑ:¨×)9Ñ)9Ô:Ó:ØÜ�$×%Ñ%Ó&Ü�$×&Ñ&Ó'Ü�$×'Ñ'Ó(Ü�,ÓØ×-Ñ-Ð-ó!$
ˆð*"
¤×!9Ñ!9¸$¿+¹+Ó!F×!JÑ!JØ¡ó"
ó "Ðð "Ð-ÜELÇ[Á[Ø&óFŒL×$Ñ$ XÓ.Ð/AÑBð
 	�‰×2Ñ2Ø˜ 4§>¡>ô	
ð �<‰<Ð#Ø�L‰L×,Ñ,Ø˜$Ÿ.™.¨Ñ4°kôô 	�Ñ˜H×,Ñ,Ó-°Ñ2Ó-à˜Ð$Ð$r¨   c           
     óª  — d| _         t        | j                  j                  «      }g }g }g }| }d}|�i|| u r|}	n|j                  }	|	j
                  dk7  r3|j                  |«       |j                  |«       |j                  |	«       |j                  }|dz  }|�Œit        | j                  «      t        |d   j                  «      z
  }
|s{|
dk\  sJ ‚|j                  t        |
dz   «      «       t        |
dz   «      D ]  }|j                  t        d«      «       Œ |j                  t        d«      «       |j!                  «       S |d   | u r)|j                  t        d|
¬«      «       d}|
|d   _        n¬|j                  t        |
«      «       t        |
dz
  «      D ]  }|j                  t        d«      «       Œ |j                  t        dd¬«      «       ||d      j"                  }||d      xj"                  dz  c_        |d   j%                  t'        «       «       |j                  g t)        d«      ¢|j+                  |d   «      ‘|j-                  «       ‘t/        ||d	«      ¢«       g }|D ]F  }|j1                  t3        «       |j+                  |«      |j-                  «       gt        d«      ¢«       ŒH |j1                  t        d«      t        dt        |«      ¬«      g«       |j                  |«       |j                  g t        d«      ¢t5        j6                  |«      ¢t        d«      ¢«       g }g }t9        |«      D ]L  \  }}|j;                  |||   |||      |||| u d	«      \  }}|j                  |«       |j                  |«       ŒN | j=                  |||«       |j                  t        d«      «       |j!                  «       S )
aP  
        Codegen all resume function(s) from the frame stack starting at `self`, call them,
        and return the result.
        Assumes that the unsupported instruction has already been run.

        Expects the TOS to be:
            [
                frame N locals,
                frame N-1 stack + locals,
                ...,
                frame 1 stack + locals
            ], *(frame N stack (post-unsupported instruction))

        Leaves the result of calling the resume functions on the stack and returns it
        (empty stack after return).

        Args:
            - inst: the instruction of the current (deepest) frame to resume at
            - all_stack_locals_metadata: metadata returned from OutputGraph.compile_subgraph - contains
                metadata such as local names, NULL positions, stack length, etc.
        Nr   r—  r   rà  rñ  rë  rì  T)r¸   r1   r   r4  rË  rå   rä   r  rã   r�  rM  r  r*   rI  rJ  r'   rb  rù  r>  r„   r%   rõ  rö  r"   r£  r&   r6  Údeepcopyrc  r÷  rø  )rÁ   r¹   rÑ  r  ÚtxesÚidxesÚresume_instsr  r   rT  Úcurrent_num_stackr¥   Ústack_insert_idxÚfilter_instsrU  Úresume_namesr_  Úresume_coderZ  s                      r¦   rÊ  z/InstructionTranslatorBase.create_call_resume_atc  s  € ð6 $(ˆÔ ä�t—{‘{×*Ñ*Ó+ˆð 13ˆØˆØ*,ˆØ37ˆØˆØÐ Ø˜‰~Ø"‘à$×5Ñ5�Ø×!Ñ! ^Ò3Ø—‘˜FÔ#Ø—‘˜SÔ!Ø×#Ñ# KÔ0à—]‘]ˆFØ�1‰HˆCð Ñ ô   §
¡
›O¬cØ% aÑ(×9Ñ9ó/
ñ 
Ðñ
 ð
 %¨Ò)Ð)Ð)Ø×Ñœ[Ð):¸QÑ)>Ó?Ô@ÜÐ,¨qÑ0Ó1ò @�Ø× Ñ Ô!3°IÓ!>Õ?ð@à×ÑÔ/°Ó?Ô@à×&Ñ&Ó(Ð(ð �‰7�d‰?ð ×ÑÔ/°ÐBSÔTÔUà ÐØ5FÐ% aÑ(Õ2ð
 ×Ñœ[Ð):Ó;Ô<ÜÐ,¨qÑ0Ó1ò @�Ø× Ñ Ô!3°IÓ!>Õ?ð@à×ÑÔ/°À!ÔDÔEà8¸¸q¹ÑB×LÑLÐØ% e¨A¡hÑ/×9Ò9¸QÑ>Õ9Ø�‰G�L‰LœÓ*Ô+ð 	×ÑðÜ˜Q“ðð ×$Ñ$ U¨1¡XÓ.ðð ×'Ñ'Ó)ð	ô
 %Ð%5Ð7GÈÓNðô
	
ð ˆØò 	ˆCØ×Ñä"Ó$Ø×(Ñ(¨Ó-Ø×+Ñ+Ó-ðô ! “^ð	õð	ð 	×Ñä" 9Ó-Ü" <´S¸³ZÔ@ðô	
ð 	×Ñ˜Ô&ð 	×ÑðÜ˜Q“ðä—‘˜|Ó,ðô ˜Q“ðô	
ð .0ˆØˆÜ" 4›ò 	-‰IˆAˆvØ'-×';Ñ';ØØ˜Q‘Ø)¨%°©(Ñ3ØØØ˜$�Øó(Ñ$ˆK˜ð ×Ñ Ô,Ø×Ñ Õ,ð	-ð 	× Ñ  ¨|¸RÔ@Ø
×ÑÔ+¨NÓ;Ô<à×"Ñ"Ó$Ð$r¨   c           	     óæ  — |j                  t        d«      «       t        t        || «      «      D ]Ø  \  }\  }}|t	        |«      dz
  k(  r n¿|j
                  ru|j                  t        «       |j                  |«      |j                  «       g«       |j                  |j                  |d¬«      gt        d«      ¢t        dd¬«      ¢«       n"|j                  |j                  |dd«      «       |j                  t        d«      «       ŒÚ |j                  t        d«      t        d	t	        | «      dz
  ¬
«      g«       |j                  t        d«      «       | d   j
                  r‹|j                  |j                  d«      |j                  «       g«       |j                  |j                  |d   d¬«      gt        d«      ¢t        dd¬«      ¢«       |j                  g t        d«      ¢«       n;|j                  t        d«      g|j                  |d   d«      ¢t        d«      ¢«       |j                  t        «       t        «       |j                  d«      |j                  «       gt        d«      ¢|j                  d«      ‘t        d«      ‘«       |j                  g t        d«      ¢t        d	d¬
«      ‘t        d«      ¢t        dd¬
«      ‘«       |j                  t        dd«      «       y)aŒ  
        Calls the provided resume functions.

        Expects the TOS to be in the state:
            [frame N cells, ..., frame 1 cells],
            [
                frame N stack + locals,
                frame N-1 stack + locals,
                ...,
                frame 1 stack + locals
            ]

        Pops the cells and frame values, leaving the result of calling the resume functions on TOS.

        Args:
            - resume_codes: list of resume function code objects to call
            - resume_names: list of the corresponding names of the resume functions
            - cg: PyCodegen object to output instructions to
        rà  r   T)r	  )Ú	push_nullFr   rñ  rë  rì  r¾  ry  rí  ÚLIST_EXTENDN)r  r%   rc  r  rã   r¢  r&   rõ  rö  Úcreate_load_globalr*   r#   Úload_function_namer'   r)   r$   )rU  rh  r  r_  r°   r„  s         r¦   rø  z-InstructionTranslatorBase.codegen_call_resume  s  € ð4 	×Ñœ Q›Ô(Ü(¬¨\¸<Ó)HÓIò 	-‰OˆA‰|��dØ”C˜Ó%¨Ñ)Ò)Ùà×ÒØ× Ñ ä&Ó(Ø×,Ñ,¨QÓ/Ø×/Ñ/Ó1ðôð × Ñ à×-Ñ-¨d¸Ð-Ó=ðä$ Q›ðô .¨a¸4Ô@ðõð × Ñ  ×!6Ñ!6°t¸UÀAÓ!FÔGØ×Ñœ[¨›^Õ,ð/	-ð0 	×Ñä" 9Ó-Ü" <´S¸Ó5FÈÑ5JÔKðô	
ð 	×Ñœ Q›Ô(Ø˜Ñ×'Ò'Ø×Ñà×(Ñ(¨Ó,Ø×+Ñ+Ó-ðôð ×Ñà×)Ñ)¨,°rÑ*:ÀÐ)ÓEðä  “^ðô *¨!°tÔ<ðôð ×ÑðÜ! !“_ðõð ×Ñä& yÓ1ðà×*Ñ*¨<¸Ñ+;¸UÓCðô " !“_ðôð( 	×ÑäÓ ÜÓ à×$Ñ$ RÓ(Ø×'Ñ'Ó)ðô ˜Q“ðð ×$Ñ$ RÓ(ðô # ?Ó3ðô	
ð  	×ÑðÜ˜a“ðä" <°QÔ7ðô ˜Q“ðô
 # =°aÔ8ðô	
ð 	×ÑÔ0°¸Ó=Õ>r¨   c                óÐ  — t         j                  dk\  rJ| j                  j                  }|r2| j                  r%|j
                  | j                  d   j
                  uryt        d„ | j                  D «       «      xrl | j                   xr] | j                  xs | j                   xr@ | j                   xr1 | j                   xr" | j                  j                  j                  d u S )Nr(  ry  Fc              3  ó<   K  — | ]  }|j                  «       –— Œ y ­wrŸ   )r*  rB  s     r¦   rû   zIInstructionTranslatorBase.should_compile_partial_graph.<locals>.<genexpr>™  s   è ø€ Ò: A�—‘—Ñ:ùr¬  )rR  rÌ  rƒ  r7  r  r&  r­  r  r�  r¼   rÚ  r  r   Úcurrent_tracerr  )rÁ   rç   s     r¦   rÁ  z6InstructionTranslatorBase.should_compile_partial_graph�  s×   € Ü×Ñ˜wÒ&à×,Ñ,×:Ñ:ˆEÙØ×$Ò$¨¯©¸D×<LÑ<LÈRÑ<P×<WÑ<WÑ(WàäÑ:¨×)9Ñ)9Ô:Ó:ò :Ø—N‘NÐ"ò:ð ×,Ñ,ÒM°D×4MÑ4MÐ0Mò:ð ×3Ñ3Ð3ò	:ð
 ×8Ñ8Ð8ò:ð —‘×*Ñ*×1Ñ1°TÐ9ð		
r¨   ziEncountered graph break when attempting to trace STORE_SUBSCR: trying to store subscript, e.g. x[key] = yc                óZ   — | j                  d«      \  }}}|j                  | d||gi «       y )Nr¾  Ú__setitem__)r@  rÀ  )rÁ   r¹   r[  r$  Úkeys        r¦   rï  z&InstructionTranslatorBase.STORE_SUBSCR£  s-   € ð
 Ÿ	™	 !›‰ˆˆS�#Ø�‰˜˜m¨c°3¨Z¸Õ<r¨   c                óz   — | j                  d«      \  }}| j                  ||«       |j                  | d|gi «       y )Nrà  Ú__delitem__)r@  Ú_maybe_sync_dealloc_subscrrÀ  )rÁ   r¹   r$  rt  s       r¦   rí  z'InstructionTranslatorBase.DELETE_SUBSCR«  s9   € Ø—9‘9˜Q“<‰ˆˆSð 	×'Ñ'¨¨SÔ1Ø�‰˜˜m¨c¨U°BÕ7r¨   c                óü   — ddl m} ddlm} d }	 t	        ||«      r|j                  | |«      }nt	        ||«      r|j                  |«      }t	        |t        «      r| j                  |«       y y # t        $ r Y Œ.w xY w)Nr   rm   )rx   )
Úvariables.dictsrn   Úvariables.listsrx   rN  Úgetitem_constÚmaybe_getitem_constr¤  r‹   r5  )rÁ   r$  rt  rn   rx   Úitem_vars         r¦   rw  z4InstructionTranslatorBase._maybe_sync_dealloc_subscr³  s…   € õ 	7Ý5àˆð		Ü˜#Ð/Ô0Ø×,Ñ,ØØó‘ô ˜CÐ!2Ô3Ø×2Ñ2°3Ó7�ô �h¤Ô/Ø×)Ñ)¨(Õ3ð 0øô ò 	Ùð	ús   �<A/ Á/	A;Á:A;c                ón   — | j                  |j                  «      }| j                  t        |«      «       y rŸ   )r@  rn  r>  r}   ©rÁ   r¹   rý   s      r¦   ÚBUILD_TUPLEz%InstructionTranslatorBase.BUILD_TUPLEÇ  s%   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- Ó&Õ'r¨   c                ór   — | j                  |j                  «      }| j                  t        || ¬«      «       y )N)r£   )r@  rn  r>  r|   r  s      r¦   ÚBUILD_SLICEz%InstructionTranslatorBase.BUILD_SLICEË  s'   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- ¨$Ô/Õ0r¨   c                 ó   — y)z�Check if comprehension speculation is allowed in nested context.

        For the base class (non-inlined), this always returns False.
        FrÍ   rÚ   s    r¦   Ú#_can_speculate_comprehension_nestedz=InstructionTranslatorBase._can_speculate_comprehension_nestedÏ  s   € ð
 r¨   c                óž   — t        | |«      ry | j                  |j                  «      }| j                  t	        j
                  | |«      «       y rŸ   )r2   r@  rn  r>  rb   ro  r  s      r¦   rë  z$InstructionTranslatorBase.BUILD_LISTÖ  s:   € Ü0°°tÔ<Øà—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”/×'Ñ'¨¨eÓ4Õ5r¨   c                óÄ   — t         j                  rt        dddg ¬«       | j                  |j                  «      }t        |t        «       ¬«      }| j                  |«       y )Nzmissing BUILD_SET handlerrß   z:Missing BUILD_SET bytecode handler (for testing purposes).r¬  ©Úmutation_type)r   Ú+inject_BUILD_SET_unimplemented_TESTING_ONLYr:   r@  rn  r‡   ra   r>  )rÁ   r¹   rý   Únew_sets       r¦   Ú	BUILD_SETz#InstructionTranslatorBase.BUILD_SETÝ  sO   € Ü×=Ò=ÜØ3ØØXØõ	ð —	‘	˜$Ÿ+™+Ó&ˆÜ˜eÔ3CÓ3EÔFˆØ�	‰	�'Õr¨   c           	     óD  — | j                  |j                  «      }g }|D ]#  }	 |j                  |j                  | «      «       Œ% | j                   ||t        «       ¬«      «       y # t        $ r. t        dt        |«      |› d�g t        j                  ¢¬«       Y Œ~w xY w)Nz-Failed to unpack object for BUILD_LIST_UNPACKzU cannot be unpacked into a list for the BUILD_LIST_UNPACK bytecode (`[*x, *y, ...]`).r¬  r‡  )r@  rn  r£  r  ÚNotImplementedErrorr:   r´   r   ré  r>  ra   )rÁ   r¹   r  Úseqsrý   Úseqs         r¦   ÚBUILD_LIST_UNPACKz+InstructionTranslatorBase.BUILD_LIST_UNPACKé  sž   € Ø�y‰y˜Ÿ™Ó%ˆØˆØò 
	ˆCð	Ø—‘˜S×:Ñ:¸4Ó@ÕAð
	ð 	�	‰	‘#�eÔ+;Ó+=Ô>Õ?øô 'ò ÜØKÜ ›HØ#& %ð (2ð !2à9Ô-×8Ñ8Ð9÷ðús   ¤ A(Á(4BÂBc                ó2   — | j                  |t        ¬«       y )Nr  )r�  r}   ræ  s     r¦   ÚBUILD_TUPLE_UNPACKz,InstructionTranslatorBase.BUILD_TUPLE_UNPACKù  s   € Ø×Ñ˜t¬ÐÕ7r¨   c           	     óæ   — t        | |«      ry | j                  |j                  dz  «      }t        t	        |d d d…   |dd d…   «      «      }| j                  t        j                  | |«      «       y )Nrà  r   )r2   r@  rn  rÿ   r  r>  rb   ro  )rÁ   r¹   rý   Úds       r¦   Ú	BUILD_MAPz#InstructionTranslatorBase.BUILD_MAPþ  sa   € Ü0°°tÔ<Øà—	‘	˜$Ÿ+™+¨™/Ó*ˆÜ”�U™3˜Q˜3‘Z  q t¨! t¡Ó-Ó.ˆØ�	‰	”/×'Ñ'¨¨aÓ0Õ1r¨   c                ól  — | j                  |j                  «      }|D �cg c].  }t        j                  | t        «      j                  | |gi «      ‘Œ0 }}i }|D ]/  }t        |t        «      sJ ‚|j                  |j                  «       Œ1 | j                  t        j                  | |«      «       y c c}w rŸ   )r@  rn  rb   ro  rÿ   r?  rN  rn   Úupdaterý   r>  )rÁ   r¹   rý   rZ  rû  s        r¦   ÚBUILD_MAP_UNPACKz*InstructionTranslatorBase.BUILD_MAP_UNPACK  s¯   € Ø—	‘	˜$Ÿ+™+Ó&ˆð ö
àô ×!Ñ! $¬Ó-×;Ñ;¸DÀ1À#ÀrÕJð
ˆð 
ð "$ˆØò 	#ˆAÜ˜aÔ!2Ô3Ð3Ð3Ø�M‰M˜!Ÿ'™'Õ"ð	#ð 	�	‰	Ü×!Ñ!ØØóõ	
ùò
s    3B1c                óf  — | j                  «       }| j                  |j                  «      }t        |t        «      sJ ‚|j                  «       sJ ‚|j                  | «      }t        |«      t        |«      k(  sJ ‚| j                  t        j                  | t        t        ||«      «      «      «       y rŸ   )rÉ  r@  rn  rN  r}   rÞ  r  rã   r>  rb   ro  rÿ   r  )rÁ   r¹   rB  r°  s       r¦   ÚBUILD_CONST_KEY_MAPz-InstructionTranslatorBase.BUILD_CONST_KEY_MAP  s“   € Ø�x‰x‹zˆØ—‘˜4Ÿ;™;Ó'ˆÜ˜$¤Ô.Ð.Ð.Ø×&Ñ&Ô(Ð(Ð(à×-Ñ-¨dÓ3ˆÜ�4‹yœC ›KÒ'Ð'Ð'à�	‰	Ü×!Ñ!ØÜ”S˜˜vÓ&Ó'óõ	
r¨   c                ó
  — | j                  d«      \  }}|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  | d||fi «       y )Nrà  r   rs  )r@  rn  r2  r�  rµ  rN  rn   rÀ  )rÁ   r¹   rù   rú   r$  s        r¦   ÚMAP_ADDz!InstructionTranslatorBase.MAP_ADD*  sw   € Ø�y‰y˜‹|‰ˆˆ1Ø�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ð1Ð1Ø�‰˜˜m¨a°¨V°RÕ8r¨   c                ó  — | j                  «       }|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y )Nr   r	  ©rÉ  rn  r2  r�  rN  r‡   Ú
is_mutablerÀ  ©rÁ   r¹   rú   r$  s       r¦   ÚSET_ADDz!InstructionTranslatorBase.SET_ADD2  su   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ð+Ð+Ø�~‰~ÔÐÐØ�‰˜˜e a S¨"Õ-r¨   c                ó  — | j                  «       }|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y ©Nr   r—  rž  r   s       r¦   Ú
SET_UPDATEz$InstructionTranslatorBase.SET_UPDATE;  su   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{Ô+Ð+Ð+Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r¨   c                óz  — | j                  «       }|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  «       sJ ‚| j                  j                  j                  |«       |j                  j                  |«       y rÙ   )rÉ  rn  r2  r�  rµ  rN  r{   rŸ  r   r  Úmutationrý   rä   r   s       r¦   rî  z%InstructionTranslatorBase.LIST_APPENDD  s”   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#œ|Ô,Ð,Ð,Ø�~‰~ÔÐÐØ�‰× Ñ ×)Ñ)¨#Ô.Ø�	‰	×Ñ˜Õr¨   c                óR  — |j                   }t        j                  dk  r| j                  «       }| j                  «       }t        j                  dk\  rBt	        |j
                  d«      sJ ‚t        j                  | |j
                  j                  «      }d }d }d }d }t        j                  dk  rV|�T|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }|dz  r| j                  «       }t        || j                  |||«      }	|rut        |t        «      sJ ‚|j                  }
t        t        t!        |
d d d…   |
dd d…   d¬	«      «      t#        «       ¬
«      }|	j%                  | «      j'                  d|«       | j)                  |	«       y )Nr(  Úco_qualnamer½  é   rá  rà  r   T©Ústrictr‡  rÌ   )r2  rR  rÌ  rÉ  r-  r¦  rb   ro  r¨  rr   rW  rN  r}   rý   rn   rÿ   r  ra   Úget_dict_vtÚsetitemr>  )rÁ   r¹   rÜ  Úfn_namer„  ÚdefaultsÚclosurer   Ú
kwdefaultsrJ  rý   Úanns               r¦   ÚMAKE_FUNCTIONz'InstructionTranslatorBase.MAKE_FUNCTIONN  s  € Ø—‘ˆÜ×Ñ˜gÒ%Ø—h‘h“jˆGØ�x‰x‹zˆÜ×Ñ˜wÒ&ô ˜4Ÿ:™: }Ô5Ð5Ð5Ü%×+Ñ+¨D°$·*±*×2HÑ2HÓIˆGØˆØˆØˆØˆ
ä×Ñ˜gÒ%àÐ Ø˜4’<Ø"Ÿh™h›j�GØ˜4’<Ø"&§(¡(£*�KØ˜4’<Ø!%§¡£�JØ˜4’<Ø#Ÿx™x›z�Hä'ØØØ�N‰NØØØó
ˆñ Ü˜k¬=Ô9Ð9Ð9ð  ×%Ñ%ˆEÜ#Ü”S˜™s ˜s™ U¨1¨4¨a¨4¡[¸Ô>Ó?Ü.Ó0ôˆCð �N‰N˜4Ó ×(Ñ(Ø! 3ôð 	�	‰	�"�r¨   c           	     ó0  — | j                  «       }|j                  «       r'|j                  | t        |j                  «      ¬«      }nÖt        |t        «      rx|j                  j                  «       r^t        |j                  j                  «       |j                  «      }t        |j                  «      D �cg c]  }t        | ||   «      ‘Œ }}nN|j                  | «      r|j                  | «      }n+t        dt        |«      |› d�g t         j"                  ¢¬«       t%        «      |j                  k7  r;t        dd|j                  › dt%        |«      › �|› d�g t         j&                  ¢¬«       t)        |«      D ]  }| j+                  |«       Œ y c c}w )	N)rc  z+Failed to unpack object for UNPACK_SEQUENCEzV cannot be unpacked into a list for the UNPACK_SEQUENCE bytecode (i.e. `a, b, c = d`).r¬  z9Length mismatch when unpacking object for UNPACK_SEQUENCEzexpected length: z
, actual: za unpacked to a list for the UNPACK_SEQUENCE bytecode (i.e. `a, b, c = d`) with unexpected length.)rÉ  rá  r÷  rI  rn  rN  r€   r$  r|  rH  r°   re   r  r  r:   r´   r   ré  rã   rÛ  r¡   r>  )rÁ   r¹   r�  r[  r¡  r_  s         r¦   rð  z)InstructionTranslatorBase.UNPACK_SEQUENCE  sX  € Ø�h‰h‹jˆØ�=‰=Œ?Ø×)Ñ)¨$´e¸D¿K¹KÓ6HÐ)ÓI‰CÜ˜œ_Ô-°#·'±'×2CÑ2CÔ2Eä˜CŸG™G×,Ñ,Ó.°·±Ó9ˆEÜ:?ÀÇÁÓ:LÖM°Q”=  u¨Q¡xÕ0ÐMˆCÑMØ×.Ñ.¨tÔ4Ø×/Ñ/°Ó5‰CäØEÜ˜C›Ø"˜eð $(ð (à5Ô)×4Ñ4Ð5õô ˆs‹8�t—{‘{Ò"ÜØSØ+¨D¯K©K¨=¸
Ä3ÀsÃ8À*ÐMØ"˜eð $?ð ?à5Ô)×4Ñ4Ð5õô ˜#“ò 	ˆAØ�I‰I�a�Lñ	ùò' Ns   Â7Fc                ón  — d|j                   cxk  rdk  sJ ‚ J ‚|j                   dz  }|j                   dz	  }| j                  «       }|j                  | «      r±t        |j	                  | «      «      }t        |«      ||z   k\  sJ ‚|d | }||t        |«      |z
   }|t        |«      |z
  d  }t        |«      D ]  }	| j                  |	«       Œ | j                  t        |«      «       t        |«      D ]  }	| j                  |	«       Œ y t        dt        |«      |› d�g t        j                  ¢¬«       y )Nr   iÿÿ  éÿ   r©  z%Failed to unpack object for UNPACK_EXz; cannot be unpacked into a list for the UNPACK_EX bytecode.r¬  )rn  rÉ  r  rï   r  rã   r¡   r>  r}   r:   r´   r   ré  )
rÁ   r¹   ÚprefixÚsuffixr�  r  Úvals_prefixÚ	vals_listÚvals_suffixÚitems
             r¦   Ú	UNPACK_EXz#InstructionTranslatorBase.UNPACK_EXœ  s2  € Ø�D—K‘KÔ) 6Ò)Ð)Ñ)Ð)Ð)Ø—‘˜tÑ#ˆØ—‘ Ñ!ˆØ�h‰h‹jˆØ×,Ñ,¨TÔ2Ü˜×5Ñ5°dÓ;Ó<ˆDÜ�t“9 ¨¡Ò/Ð/Ð/Ø˜w ˜-ˆKØ˜V¤c¨$£i°&Ñ&8Ð9ˆIØœs 4›y¨6Ñ1Ð3Ð4ˆKÜ  Ó-ò  �Ø—	‘	˜$•ð à�I‰I”m IÓ.Ô/Ü  Ó-ò  �Ø—	‘	˜$•ñ ô Ø?Ü˜C›Ø"˜eÐ#^Ð_Ø5Ô)×4Ñ4Ð5ö	r¨   z-Encountered intentional debugging graph breakc                ó>   — | j                   rt        ddddg¬«       y y )Nz#Forced graph break on leaf functionrß   zSForced graph break on non-inlining function for nested graph break testing purposeszGSet torch._dynamo.config.debug_force_graph_break_on_leaf_return = Falser¬  )rŽ  r:   ræ  s     r¦   Úgraph_break_on_leaf_functionz6InstructionTranslatorBase.graph_break_on_leaf_function´  s0   € ð ×$Ò$ÜØ=Øð6ð ^ðöð %r¨   c                óF   — |j                   dk(  r| j                  |«       y y )NÚGRAPH_BREAK_IF_LEAF)rn  r¿  ræ  s     r¦   râ  zInstructionTranslatorBase.NOPÃ  s"   € à�;‰;Ð/Ò/Ø×-Ñ-¨dÕ3ð 0r¨   c                ó$   — | j                  «        y rŸ   ©rÉ  ræ  s     r¦   rñ  z!InstructionTranslatorBase.POP_TOPÈ  ó   € Ø�‰�
r¨   c                óˆ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       y rŸ   ©rÉ  r>  ©rÁ   r¹   rŒ  r  s       r¦   ÚROT_TWOz!InstructionTranslatorBase.ROT_TWOË  s.   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r¨   c                óÊ   — | j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       y rŸ   rÆ  )rÁ   r¹   rŒ  r  Úcs        r¦   Ú	ROT_THREEz#InstructionTranslatorBase.ROT_THREEÑ  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¨   c                ó  — | j                  «       }| j                  «       }| j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y rŸ   rÆ  )rÁ   r¹   rŒ  r  rÊ  r”  s         r¦   ÚROT_FOURz"InstructionTranslatorBase.ROT_FOURÙ  sZ   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¨   c                óh   — | j                  «       }| j                  |«       | j                  |«       y rŸ   rÆ  )rÁ   r¹   rŒ  s      r¦   r—  z!InstructionTranslatorBase.DUP_TOPã  s#   € Ø�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r¨   c                óÌ   — | j                  «       }| j                  «       }| j                  |«       | j                  |«       | j                  |«       | j                  |«       y rŸ   rÆ  rÇ  s       r¦   ÚDUP_TOP_TWOz%InstructionTranslatorBase.DUP_TOP_TWOè  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¨   c                ó,  — |dk(  r,t        j                  | t        «      j                  | |gi «      S |dk(  r,t        j                  | t        «      j                  | |gi «      S |dk(  r,t        j                  | t
        «      j                  | |gi «      S |S )Nr   rà  r¾  )rb   ro  r´   r?  r‹  Úascii)rÁ   r¦  Úflags      r¦   Ú_convert_valuez(InstructionTranslatorBase._convert_valueð  s‹   € Ø�1Š9Ü"×(Ñ(¨¬sÓ3×AÑAÀ$ÈÈÐQSÓTÐTØ�QŠYÜ"×(Ñ(¨¬tÓ4×BÑBÀ4È%ÈÐRTÓUÐUØ�QŠYÜ"×(Ñ(¨¬uÓ5×CÑCÀDÈ5È'ÐSUÓVÐVØˆr¨   c                ó˜  — | j                  «       }t        |t        «      r?ddlm}m}  |j                   |||«      |j                  ¬«      }| j                  |«       y | j                  ||dz  «      }t        j                  | d|j                  «       z   dz   «      }| j                  t        t        j                   «      ||gi «       y )Nr   )ÚLazySymNodeFormatStringrw   r�  r¾  z{:ú})rÉ  rN  rŠ   Útorch._dynamo.variables.lazyrÖ  rw   rj  r“  r>  rÔ  rb   ro  rß  r?  rf   r´   Úformat)rÁ   Úfmt_specrÜ  r¦  rÖ  rw   Úfmt_vars          r¦   Ú_format_valuez'InstructionTranslatorBase._format_valueù  s²   € Ø—‘“
ˆÜ�eœ_Ô-÷ð
 /Ð'×.Ñ.Ù'¨¨xÓ8ÀÇÁôˆEð �I‰I�eÔØà×#Ñ# E¨5°4©<Ó8ˆä!×'Ñ'Ø�$˜×4Ñ4Ó6Ñ6¸Ñ<ó
ˆð 	×Ñœ?¬3¯:©:Ó6¸À%Ð8HÈ"ÕMr¨   c                ó¤   — |j                   }|€J ‚|dz  dk(  r| j                  «       }nt        j                  | d«      }| j	                  ||«      S )Nrá  rß   )r2  rÉ  rb   ro  rÜ  )rÁ   r¹   rÜ  rÚ  s       r¦   ÚFORMAT_VALUEz&InstructionTranslatorBase.FORMAT_VALUE  sS   € Ø—‘ˆØÐ Ð Ð Ø�D‰L˜TÒ!Ø—x‘x“z‰Hä&×,Ñ,¨T°2Ó6ˆHØ×!Ñ! (¨EÓ2Ð2r¨   c           
     ó\  — g }g }i }|j                   €J ‚| j                  |j                   «      D �]:  }|j                  «       r#|j                  d«       |j                  |«       Œ7t	        |t
        j                  «      rÂ|j                  |j                  «       |j                  |j                  «       t        |j                  «       «      t        |j                  j                  «       «      z  r2t        dd|› d|› d|j                  › �dg t        j                  ¢¬«       |j!                  |j                  «       �Œt        dt#        |«      d	g t        j                  ¢¬«       �Œ= | j%                  t
        j                  j'                  d
j)                  |«      ||«      «       y )Nz{}zBUILD_STRING key conflictzformat_string_parts: z
, kwargs: z, part.sym_kwargs: z1Failed to build format string due to key conflictr¬  zBUILD_STRING type errorzLFormat string part type is not correct - expected constant or format string.rß   )r2  r@  rÞ  rä   rN  r   ÚStringFormatVariableÚformat_stringr£  Úsym_argsr  rB  Ú
sym_kwargsr:   r   ré  r—  r´   r>  rj  rü   )rÁ   r¹   Úformat_string_partsr¤   r³  Úparts         r¦   ÚBUILD_STRINGz&InstructionTranslatorBase.BUILD_STRING  su  € Ø)+ÐØ&(ˆØ-/ˆØ�x‰xÐ#Ð#Ð#Ø—I‘I˜dŸh™hÓ'ó 	ˆDØ×&Ñ&Ô(Ø#×*Ñ*¨4Ô0Ø—‘˜DÕ!Ü˜D¤)×"@Ñ"@ÔAØ#×*Ñ*¨4×+=Ñ+=Ô>Ø—‘˜DŸM™MÔ*Ü�v—{‘{“}Ó%¬¨D¯O©O×,@Ñ,@Ó,BÓ(CÒCÜ!Ø ;Ø"7Ð8KÐ7LÈJÐW]ÐV^Ð^qÐrv÷  sBñ  sBð  rCð  !DØ$WØ=Ô 1× <Ñ <Ð=õ	ð —‘˜dŸo™oÖ.äØ5Ü ›IØ nØ9Ô-×8Ñ8Ð9÷	ð!	ð, 	�	‰	Ü×*Ñ*×1Ñ1Ø—‘Ð+Ó,¨d°Fóõ	
r¨   c                ó¨   — |j                   dk(  s|j                   dk(  sJ ‚|j                   dk(  rd}nd}t        d|¬«      }| j                  |«       y )Nr   r   Úiszis notr  r/  )rn  r'   r  )rÁ   r¹   Ú
new_argvalÚnew_insts       r¦   ÚIS_OPzInstructionTranslatorBase.IS_OP9  sM   € Ø�{‰{˜aÒ 4§;¡;°!Ò#3Ð3Ð3Ø�;‰;˜!ÒØ‰Jà!ˆJÜ% l¸:ÔFˆØ�‰˜Õ!r¨   c           	     ó  — |j                   dk(  s|j                   dk(  sJ ‚| j                  d«      \  }}|j                   }	 | j                  |j                  | d|gi «      «       |dk(  r| j                  |«       y y # t        j
                  t        f$ rs}t        |t        «      r|j                  r‚ |j                  «        | j                  | j                  t        j                  | t        «      ||gi «      «       Y d }~ŒŸd }~ww xY w)Nr   r   rà  Ú__contains__)rn  r@  r>  rÀ  r   ÚObservedTypeErrorr;   rN  r  r  r¼  rb   ro  rC   Ú	UNARY_NOT)rÁ   r¹   ÚleftÚrightr’  r"  s         r¦   ÚCONTAINS_OPz%InstructionTranslatorBase.CONTAINS_OPB  sõ   € Ø�{‰{˜aÒ 4§;¡;°!Ò#3Ð3Ð3Ø—i‘i “l‰ˆˆeØ�[‰[ˆð	Ø�I‰I�e×'Ñ'¨¨n¸t¸fÀbÓIÔJð* �Š7Ø�N‰N˜4Õ ð øô% ×!Ñ!ô ð
ò 	ô ˜$¤Ô,Ø—?’?àØ×&Ñ&Ô(Ø�I‰IØ×0Ñ0Ü#×)Ñ)¨$Ô0IÓJØ˜5�MØó÷ñ ûð	ús   Á$A> Á>D
ÂA)DÄD
c                ó  — | j                  «       }|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      }t	        |t
        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y )Nr   r£  )rÉ  rn  r2  r�  rN  r{   rŸ  rÀ  r   s       r¦   rl  z%InstructionTranslatorBase.LIST_EXTEND_  su   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ|Ô,Ð,Ð,Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r¨   c                ó–   — | j                  t        j                  | t        «      j	                  | | j                  «       gi «      «       y rŸ   )r>  rb   ro  r.  r?  rÉ  ræ  s     r¦   ÚLIST_TO_TUPLEz'InstructionTranslatorBase.LIST_TO_TUPLEh  s6   € Ø�	‰	Ü×!Ñ! $¬Ó.×<Ñ<¸TÀDÇHÁHÃJÀ<ÐQSÓTõ	
r¨   c                ó¨  — | j                   d   }| j                  |«      sJ ‚|j                  t        u ržt	        j
                  | t        «      j                  | t	        j
                  | d«      gi «      }|j                  | t	        j
                  | d«      |«       |j                  | t	        j
                  | d«      |«       || j                   d<   y y )Nry  zgenerator raised StopIterationrc  rÑ  )	r�  rÈ  rÇ  r·  rb   ro  r  r?  Úcall_setattr)rÁ   r¹   r[  Únew_vals       r¦   ÚSTOPITERATION_ERRORz-InstructionTranslatorBase.STOPITERATION_ERRORm  s¼   € ð �j‰j˜‰nˆØ×)Ñ)¨#Ô.Ð.Ð.Ø�<‰<œ=Ñ(Ü%×+Ñ+¨D´,Ó?×MÑMØÜ ×&Ñ& tÐ-MÓNÐOØóˆGð
 × Ñ  ¤×'<Ñ'<¸TÀ=Ó'QÐSVÔWØ× Ñ  ¤×'<Ñ'<¸TÀ;Ó'OÐQTÔUØ$ˆD�J‰J�rŠNð )r¨   c                ó$  — | j                  «       }|j                  dkD  sJ ‚|j                  €J ‚| j                  |j                      j	                  «       }t        |t        «      sJ ‚|j                  «       sJ ‚|j                  | d|gi «       y r£  )	rÉ  rn  r2  r�  rµ  rN  rn   rŸ  rÀ  r   s       r¦   Ú
DICT_MERGEz$InstructionTranslatorBase.DICT_MERGE  s   € Ø�H‰H‹JˆØ�{‰{˜QŠÐˆØ�x‰xÐ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0Ô1Ð1Ð1Ø�~‰~ÔÐÐØ�‰˜˜h¨¨¨RÕ0r¨   c                ó$   — | j                  «        y rŸ   rÃ  ræ  s     r¦   Ú	GEN_STARTz#InstructionTranslatorBase.GEN_STARTŠ  rÄ  r¨   c           	     ó  — | j                   d   }|j                  «       r=| j                  t        j                  | t        |j                  «       «      «      «       y | j                  |j                  | dg i «      «       y )Nry  rØ  )r�  rÞ  r>  rb   ro  rã   rß  rÀ  r×  s      r¦   ÚGET_LENz!InstructionTranslatorBase.GET_LEN�  s]   € Ø�j‰j˜‰nˆØ×!Ñ!Ô#Ø�I‰I”o×+Ñ+¨D´#°c×6LÑ6LÓ6NÓ2OÓPÕQà�I‰I�c—o‘o d¨I°r¸2Ó>Õ?r¨   c                ó˜   — | j                   d   }| j                  | j                  t        j                  | t
        «      |gi «      «       y)zr
        If STACK[-1] is an instance of collections.abc.Mapping, push True.
        Otherwise, push False
        ry  N)r�  r>  r¼  rb   ro  rD   r×  s      r¦   ÚMATCH_MAPPINGz'InstructionTranslatorBase.MATCH_MAPPING”  sC   € ð
 �j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ñ% d¬OÓ<Ø�Øóõ	
r¨   c                ó˜   — | j                   d   }| j                  | j                  t        j                  | t
        «      |gi «      «       y ©Nry  )r�  r>  r¼  rb   ro  rG   r×  s      r¦   ÚMATCH_SEQUENCEz(InstructionTranslatorBase.MATCH_SEQUENCE¢  sB   € Ø�j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ñ% dÔ,?Ó@Ø�Øóõ	
r¨   c           	     ó˜  — | j                  d«      \  }}}t        j                  | |j                  «      }| j	                  | j                  t        j                  | t        «      ||||gi «      «       t        j                  dk  rD| j                  d   }| j	                  t        j                  | t        |t        «       «      «       y y )Nr¾  r(  ry  )r@  rb   ro  r2  r>  r¼  rE   rR  rÌ  r�  r]   rh   )rÁ   r¹   Úsubjectr  Únamesr2  rØ  s          r¦   ÚMATCH_CLASSz%InstructionTranslatorBase.MATCH_CLASS¬  s¬   € Ø"Ÿi™i¨›lÑˆ��eÜ×#Ñ# D¨$¯(©(Ó3ˆØ�	‰	Ø×,Ñ,Ü×%Ñ% dÔ,<Ó=Ø˜#˜s EÐ*Øóô	
ô ×Ñ˜gÒ%à—*‘*˜R‘.ˆCØ�I‰I”o×+Ñ+¨D´f¸SÔBRÓ6SÐ2SÓTÕUð &r¨   c           	     óŠ  — | j                   d   }| j                   d   }t        |t        «      sJ ‚| j                  | j	                  t        j                  | t        «      ||gi «      «       t        j                  dk  rD| j                   d   }| j                  t        j                  | t        |t        «       «      «       y y )Nry  rá  r(  )r�  rN  r}   r>  r¼  rb   ro  rF   rR  rÌ  r]   rh   )rÁ   r¹   rB  r$  rØ  s        r¦   Ú
MATCH_KEYSz$InstructionTranslatorBase.MATCH_KEYS¼  s¤   € Ø�z‰z˜"‰~ˆØ�j‰j˜‰nˆä˜$¤Ô.Ð.Ð.à�	‰	Ø×,Ñ,Ü×%Ñ% d¬OÓ<¸sÀD¸kÈ2óô	
ô ×Ñ˜gÒ%à—*‘*˜R‘.ˆCØ�I‰I”o×+Ñ+¨D´f¸SÔBRÓ6SÐ2SÓTÕUð &r¨   c                óD   — | j                  | j                  d«      «       y )Nr²  ©r>  rž  ræ  s     r¦   ÚLOAD_ASSERTION_ERRORz.InstructionTranslatorBase.LOAD_ASSERTION_ERRORÍ  s   € Ø�	‰	�$×/Ñ/Ð0@ÓAÕBr¨   c                óD   — | j                  | j                  d«      «       y )NÚ__build_class__r  ræ  s     r¦   ÚLOAD_BUILD_CLASSz*InstructionTranslatorBase.LOAD_BUILD_CLASSÐ  s   € Ø�	‰	�$×/Ñ/Ð0AÓBÕCr¨   z`Encountered graph break when attempting to trace BINARY_SUBSCR: a binary subscript, e.g. x[attr]c                óp   — |j                   dk(  r| j                  |«       d| _        y | j                  rJ ‚y )Nr   F)r2  Úappend_prefix_instr„  ræ  s     r¦   ÚRESUMEz InstructionTranslatorBase.RESUMEü  s5   € Ø�8‰8�qŠ=Ø×#Ñ# DÔ)Ø&+ˆDÕ#à×.Ò.Ð.Ð.Ð.r¨   c                óP   — |j                   €J ‚t        |j                      | |«      S rŸ   )r2  Ú_binary_op_lookupræ  s     r¦   Ú	BINARY_OPz#InstructionTranslatorBase.BINARY_OP  s(   € Ø—8‘8Ð'Ð'Ð'Ü$ T§X¡XÑ.¨t°TÓ:Ð:r¨   c                 ó   — y rŸ   rÍ   ræ  s     r¦   r-  z!InstructionTranslatorBase.PRECALL	  ó   € Ør¨   c                óä   — | j                   d   |j                     }t        |t        «      sJ ‚|D ]  }t        |t        «      rŒJ ‚ | j
                  �J ‚t        j                  |¬«      | _        y )NÚ	co_constsrR  )rÆ  r2  rN  r.  r´   r5  rh   rj  )rÁ   r¹   r5  r°   s       r¦   r.  z"InstructionTranslatorBase.KW_NAMES  sl   € Ø×$Ñ$ [Ñ1°$·(±(Ñ;ˆÜ˜(¤EÔ*Ð*Ð*Øò 	)ˆDÜ˜d¤CÕ(Ð(Ð(ð	)à�}‰}Ð$Ð$Ð$Ü(×/Ñ/°hÔ?ˆ�r¨   c                ó6   — | j                  t        «       «       y rŸ   )r>  r�   ræ  s     r¦   rf  z#InstructionTranslatorBase.PUSH_NULL  s   € Ø�	‰	”,“.Õ!r¨   c                ó  — |rXt         j                  dk\  sJ ‚| j                  «       }t        |t        «      r|j                  «       sJ ‚|j                  «       }n$| j                  r| j                  j                  nd}|j                  €J ‚| j                  |j                  dz   «      }t         j                  dk\  r!|d   }t        |d   t        «      rg n|d   g}n&t        |d   t        «      r|d   }g }n|d   }|d   g}|rO||dt        |«        z   }|t        |«       d  }t        t        ||«      «      }t        |«      t        |«      k(  sJ ‚||dd  z   }i }	 | j                  |||«       d | _        y # d | _        w xY w)Nr½  rÍ   rà  r   r   )rR  rÌ  rÉ  rN  r}   rÞ  rß  r5  r¦  r2  r@  r�   rã   rÿ   r  r?  )	rÁ   r¹   Úcall_kwr5  ÚcontentsrJ  r¤   r  r³  s	            r¦   Ú_callzInstructionTranslatorBase._call  s~  € ñ ä×#Ñ# wÒ.Ð.Ð.Ø—x‘x“zˆHÜ˜h¬Ô6¸8×;VÑ;VÔ;XÐXÐXØ×2Ñ2Ó4‰Hà.2¯mªm�t—}‘}×*Ò*ÀˆHà�x‰xÐ#Ð#Ð#Ø—9‘9˜TŸX™X¨™\Ó*ˆÜ×Ñ˜wÒ&à˜!‘ˆBÜ# H¨Q¡K´Ô>‘2ÀXÈaÁ[ÀM‰Dä˜( 1™+¤|Ô4Ø˜a‘[�à‘à˜a‘[�Ø  ™�}�áØ˜( 1¬¨H« ~Ð6Ñ6ˆDà"¤C¨£M >Ð#3Ð4ˆKäœ#˜h¨Ó4Ó5ˆFä�v“;¤# h£-Ò/Ð/Ð/à˜( 1 2˜,Ñ&ˆDàˆFð	!ð ×Ñ˜r 4¨Ô0à ˆD�Mø˜DˆD�Mús   Å!E< Å<	FzTEncountered graph break when attempting to trace CALL: a function call, e.g. f(x, y)c                ó&   — | j                  |«       y rŸ   ©r  ræ  s     r¦   r,  zInstructionTranslatorBase.CALLF  s   € ð
 	�
‰
�4Õr¨   c                ór   — |j                   €J ‚| j                  | j                  |j                       «       y rŸ   )r2  r>  r�  ræ  s     r¦   ÚCOPYzInstructionTranslatorBase.COPYM  s-   € Ø�x‰xÐ#Ð#Ð#Ø�	‰	�$—*‘*˜dŸh™h˜YÑ'Õ(r¨   c                ó¾   — |j                   €J ‚| j                  |j                       | j                  d   c| j                  d<   | j                  |j                    <   y r  )r2  r�  ræ  s     r¦   ÚSWAPzInstructionTranslatorBase.SWAPQ  sM   € Ø�x‰xÐ#Ð#Ð#Ø04·
±
¸D¿H¹H¸9Ñ0EÀtÇzÁzÐRTÁ~Ð-ˆ�
‰
�2‰˜Ÿ
™
 D§H¡H 9Ò-r¨   c                 ó   — y rŸ   rÍ   ræ  s     r¦   ÚCACHEzInstructionTranslatorBase.CACHE]  r  r¨   c                ó&   — | j                  |«       y rŸ   r­  ræ  s     r¦   ÚBEFORE_WITHz%InstructionTranslatorBase.BEFORE_WITH`  r°  r¨   c           	     ó
  — t        |t        «      r+|j                  «       s| j                  j	                  |«       t
        j                  dk\  rƒ|j                  r>| j                  r/|j                  j                  | j                  d   j                  urd }nE| j                  j                  €J ‚| j                  j                  j                  }n|j                  }|r”t        | t        «      st        j                  r;| j                  j	                  t        ||t        | j                   «      |«      «       n9| j                  j	                  t        ||t        | j                   «      «      «       |j#                  | «      S )Nr(  ry  )rN  rj   Úsupports_graph_breaksr  rä   rR  rÌ  r7  r  r&  rË  rD  r   rô  r%  rã   r�  Úenter)rÁ   rg  r¹   r&  s       r¦   Ú	enter_ctxz#InstructionTranslatorBase.enter_ctxc  s(  € ô �sÔ:Ô;Ø×-Ñ-Ô/à×0Ñ0×7Ñ7¸Ô<ä×Ñ˜wÒ&ð
 ×!Ò!Ø×$Ò$Ø×%Ñ%×,Ñ,°D×4DÑ4DÀRÑ4H×4OÑ4OÑOà‘à×,Ñ,×:Ñ:ÐFÐFÐFØ×.Ñ.×<Ñ<×CÑC‘à—[‘[ˆFáÜ˜$Ô 5Ô6¼&×:TÒ:TØ× Ñ ×'Ñ'Ü# D¨&´#°d·j±j³/À3ÓGõð × Ñ ×'Ñ'¬¸¸fÄcÈ$Ï*É*ÃoÓ(VÔWà�y‰y˜‹Ðr¨   c                óP   — t        dd| › �d| j                  «       › d�g d¢¬«       y )NzUnsupported context managerz1Attempted SETUP_WITH/BEFORE_WITH/LOAD_SPECIAL on z%Dynamo does not know how to enter a `z` context manager.)z,Avoid using the unsupported context manager.aE  If the context manager seems like it should be supported (e.g. torch.set_grad_enabled), then it may be the case that it was created outside the compiled region, which Dynamo does not support. Supported context managers can cross graph break boundaries only if they are local non-closure variables, or are intermediate values.zŒFile an issue to PyTorch. Simple context managers can potentially be supported, but note that context managers can't be supported in generalr¬  )r:   rÍ  )rg  s    r¦   Úunsupported_ctx_graph_breakz5InstructionTranslatorBase.unsupported_ctx_graph_breakˆ  s3   € äØ1ØGÈÀuÐMØ?À×@TÑ@TÓ@VÐ?WÐWiÐjòö		
r¨   c                ó.  — | j                  «       }t        |t        t        f«      s| j	                  |«       t        |t        t        f«      sJ ‚| j                  t        ||j                  «      «       | j                  | j                  ||«      «       y rŸ   )	rÉ  rN  ri   rj   r/  r>  rl   r&  r-  )rÁ   r¹   rg  s      r¦   r®  z.InstructionTranslatorBase.setup_or_before_with™  s‚   € Ø�h‰h‹jˆÜØÔ)Ô+IÐJô
ð ×,Ñ,¨SÔ1ô ØÔ)Ô+IÐJô
ð 	
ð 
ð 	�	‰	Ô*¨3°·±Ó<Ô=Ø�	‰	�$—.‘.  dÓ+Õ,r¨   c                óV   — | j                   sJ ‚| j                  j                  |«       y rŸ   )r„  r†  rä   ræ  s     r¦   r  z,InstructionTranslatorBase.append_prefix_inst¨  s%   € Ø×&Ò&Ð&Ð&Ø×Ñ× Ñ  Õ&r¨   c                ó.  — t         j                  dk\  rq| j                  set        | j                  |j
                     t        «      sJ ‚| j                  j                  j                  «       | j                  |j
                  <   y | j                  |«       y r´  )rR  rÌ  r„  rN  r{  rn  r�   r   r  Útrack_cell_newr  ræ  s     r¦   Ú	MAKE_CELLz#InstructionTranslatorBase.MAKE_CELL¬  ss   € Ü×Ñ˜wÒ&¨t×/FÒ/Fô ˜d×2Ñ2°4·;±;Ñ?ÄÔNÐNÐNà—‘×(Ñ(×7Ñ7Ó9ð × Ñ  §¡Ò-ð ×#Ñ# DÕ)r¨   c                ó&   — | j                  |«       y rŸ   ©r  ræ  s     r¦   ÚCOPY_FREE_VARSz(InstructionTranslatorBase.COPY_FREE_VARS·  ó   € Ø×Ñ Õ%r¨   c                ó&   — | j                  |«       y rŸ   r6  ræ  s     r¦   ÚRETURN_GENERATORz*InstructionTranslatorBase.RETURN_GENERATORº  r8  r¨   c                ó2  — t         j                  dk\  r| j                  «        n| j                  d«       t         j                  dk\  rO| j                  |   }|| j
                  v r1| j
                  j                  |«       | xj                  dz  c_        y y y )Nr½  rà  r*  r   )rR  rÌ  rÉ  r@  r£  Ú_comprehension_end_for_ipsÚdiscardÚ_comprehension_depth)rÁ   r¹   Ú
current_ips      r¦   ÚEND_FORz!InstructionTranslatorBase.END_FORÁ  s   € Ü×Ñ˜wÒ&Ø�H‰H�Jà�I‰I�aŒLô ×Ñ˜wÒ&ØŸ™ dÑ+ˆJØ˜T×<Ñ<Ñ<Ø×/Ñ/×7Ñ7¸
ÔCØ×)Ò)¨QÑ.Ö)ð =ð 'r¨   c                óú   — t        | j                  j                  |j                  d «      t        «      r6t        d|j                  d|j                  › �g t        j                  ¢¬«       | j                  |«       y )Nz)LOAD_FAST_CHECK on uninitialized variablez/Attempted to load uninitialized local variable r¬  )	r]   r{  r{  rn  r�   r:   r   ré  r*  ræ  s     r¦   ÚLOAD_FAST_CHECKz)InstructionTranslatorBase.LOAD_FAST_CHECKÎ  s`   € Ü�$×&Ñ&×*Ñ*¨4¯;©;¸Ó=¼|ÔLÜØCØŸ™ØMÈdÏkÉkÈ]Ð[Ø5Ô)×4Ñ4Ð5õ	ð 	�‰�tÕr¨   c                óÌ   — |j                   | j                  vr| j                  t        «       «       n| j	                  |«       t        «       | j                  |j                   <   y rŸ   )rn  r{  r>  r�   r*  ræ  s     r¦   ÚLOAD_FAST_AND_CLEARz-InstructionTranslatorBase.LOAD_FAST_AND_CLEARØ  sD   € Ø�;‰;˜d×2Ñ2Ñ2Ø�I‰I”l“nÕ%à�N‰N˜4Ô Ü,8«Nˆ×Ñ˜TŸ[™[Ò)r¨   c                óä   — | j                  t        j                  |d¬«      «       |j                  €J ‚|j                  dz  r| j	                  |«       y | j                  |j                  «       y )Nrà  r/  r   )r  rí   r(  r2  r  r˜  rn  ræ  s     r¦   ÚLOAD_SUPER_ATTRz)InstructionTranslatorBase.LOAD_SUPER_ATTRß  sV   € Ø×Ñœ;×.Ñ.¨t¸AÔ>Ô?Ø�x‰xÐ#Ð#Ð#Ø�8‰8�aŠ<Ø×Ñ˜TÕ"à�O‰O˜DŸK™KÕ(r¨   c                óD  — |j                   dk(  r| j                  |«       y |j                   dk(  r| j                  |«       y |j                   dk(  r8| j                  t	        | j                  «       j                  | «      «      «       y |j                   dk(  rN| j                  «       j                  «       }t        j                  t        |«      «      }| j                  |«       y t        dd|j                   › �d|j                   › d�g t        j                  ¢¬	«       y )
Nr¾  râ  é   rä  z Missing CALL_INTRINSIC_1 handlerzCALL_INTRINSIC_1 operand: z,No handler implemented for CALL_INTRINSIC_1 ú instruction.r¬  )rn  rù  ÚUNARY_POSITIVEr>  r}   rÉ  r  rß  r   ÚTypingVariabler
   r:   r   rC  )rÁ   r¹   rú   Útvs       r¦   ÚCALL_INTRINSIC_1z*InstructionTranslatorBase.CALL_INTRINSIC_1ç  sÜ   € Ø�;‰;˜!Òà×$Ñ$ TÕ*Ø�[‰[˜AÒà×Ñ Õ%Ø�[‰[˜AÒà�I‰I”m D§H¡H£J×$HÑ$HÈÓ$NÓOÕPØ�[‰[˜AÒà—‘“
×-Ñ-Ó/ˆAÜ×)Ñ)¬'°!«*Ó5ˆBØ�I‰I�b�MäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ö	r¨   c                óp  — | j                  «       }| j                  «       }|j                  dk(  rMt        |t        «      sJ ‚|j	                  | dt        j                  d«      |gi «       | j                  |«       y t        dd|j                  › �d|j                  › d�g t        j                  ¢¬«       y )	Nrá  r¾  Ú__type_params__z Missing CALL_INTRINSIC_2 handlerzCALL_INTRINSIC_2 operand: z,No handler implemented for CALL_INTRINSIC_2 rI  r¬  )rÉ  rn  rN  ro   rÀ  rh   rj  r>  r:   r   rC  )rÁ   r¹   Úarg2Úarg1s       r¦   ÚCALL_INTRINSIC_2z*InstructionTranslatorBase.CALL_INTRINSIC_2þ  s¨   € Ø�x‰x‹zˆØ�x‰x‹zˆØ�;‰;˜!Òô ˜dÔ$<Ô=Ð=Ð=Ø×ÑØØÜ!×(Ñ(Ð):Ó;¸TÐBØô	ð �I‰I�d�OäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ö	r¨   c                óf   — | j                  «       }| j                  «        | j                  |«       y rŸ   rÆ  r×  s      r¦   ÚEND_SENDz"InstructionTranslatorBase.END_SEND  s!   € Ø�h‰h‹jˆØ�‰Œ
Ø�	‰	�#�r¨   zpEncountered graph break when attempting to trace CALL_KW: a function call with keyword arguments, e.g. f(x=True)c                ó*   — | j                  |d¬«       y )NT)r  r!  ræ  s     r¦   ÚCALL_KWz!InstructionTranslatorBase.CALL_KW  s   € ð 	�
‰
�4 ˆ
Õ&r¨   c                ó8   — | j                   j                  dv sJ ‚y )N)ÚPOP_JUMP_IF_TRUEÚPOP_JUMP_IF_FALSErï  )rË  rå   ræ  s     r¦   rÀ  z!InstructionTranslatorBase.TO_BOOL$  s'   € ð ×$Ñ$×+Ñ+ð 0
ñ 
ð 	
ñ 
r¨   c                óÄ  — |j                   }|€J ‚| j                  «       }t        |t        «      sJ ‚| j                  «       }|dz  rgt        j
                  dk\  sJ ‚|j                  | t        j                  | d«      gi «      }|j                  | dt        j                  d«      |gi «       n¡|dz  r||_        n”|dz  rvt        |t        «      sJ ‚|j                  }t        t!        t#        |d d d…   |dd d…   d	¬
«      «      t%        «       ¬«      }|j'                  | «      j)                  d|«       n|dz  r||_        n|dz  r||_        | j/                  |«       y )Né   rß  r   r¾  rÌ   r©  rá  rà  Trª  r‡  )r2  rÉ  rN  rr   rR  rÌ  r?  rb   ro  rÀ  rh   rj  r°  r}   rý   rn   rÿ   r  ra   r¬  r­  r±  r¯  r>  )rÁ   r¹   rÜ  rJ  r(  rý   r²  s          r¦   ÚSET_FUNCTION_ATTRIBUTEz0InstructionTranslatorBase.SET_FUNCTION_ATTRIBUTE.  sT  € Ø—‘ˆØÐ Ð Ð Ø�X‰X‹ZˆÜ˜"Ô8Ô9Ð9Ð9Ø�x‰x‹zˆà�4Š<Ü×#Ñ# wÒ.Ð.Ð.ð ×%Ñ% d¬_×-BÑ-BÀ4ÈÓ-KÐ,LÈbÓQˆDØ�N‰NØØÜ!×(Ñ(Ð):Ó;¸TÐBØõ	ð �TŠ\ØˆB�JØ�TŠ\Ü˜d¤MÔ2Ð2Ð2ð —J‘JˆEÜ#Ü”S˜™s ˜s™ U¨1¨4¨a¨4¡[¸Ô>Ó?Ü.Ó0ôˆCð �N‰N˜4Ó ×(Ñ(Ø! 3õð �TŠ\Ø ˆB�MØ�TŠ\ØˆBŒKà�	‰	�"�r¨   c                ó’   — |j                   €J ‚| j                  | j                  | j                  «       |j                   «      «       y rŸ   )r2  r>  rÔ  rÉ  ræ  s     r¦   ÚCONVERT_VALUEz'InstructionTranslatorBase.CONVERT_VALUEV  s5   € Ø�x‰xÐ#Ð#Ð#Ø�	‰	�$×%Ñ% d§h¡h£j°$·(±(Ó;Õ<r¨   c                óP   — | j                  t        j                  | d«      d«       y )Nrß   r   )rÜ  rb   ro  ræ  s     r¦   ÚFORMAT_SIMPLEz'InstructionTranslatorBase.FORMAT_SIMPLEZ  s   € Ø×Ñœ?×0Ñ0°°rÓ:¸AÕ>r¨   c                óD   — | j                  | j                  «       d«       y rÙ   )rÜ  rÉ  ræ  s     r¦   ÚFORMAT_WITH_SPECz*InstructionTranslatorBase.FORMAT_WITH_SPEC]  s   € Ø×Ñ˜4Ÿ8™8›: qÕ)r¨   )Ú	__enter__Ú__exit__Ú
__aenter__Ú	__aexit__c                ó`  — t        |j                  t        «      sJ d«       ‚| j                  |j                     }|dv r­| j	                  «       }t        |t
        t        f«      s| j                  |«       t        |t
        t        f«      sJ ‚|dk(  r,| j                  t        |«      «       | j                  |«       y | j                  t        |d «      «       | j                  |«       y | j                  |«       | j	                  «       }| j                  |«       | j                  |«       y )Nz*expected LOAD_SPECIAL arg to be set to int)rc  rd  rc  )rN  r2  r¶   Ú_load_special_namesrÉ  ri   rj   r/  r>  rk   rf  rl   r˜  )rÁ   r¹   r(  rg  r$  s        r¦   ÚLOAD_SPECIALz&InstructionTranslatorBase.LOAD_SPECIALo  s  € Ü˜$Ÿ(™(¤CÔ(ÐVÐ*VÓVÐ(Ø×'Ñ'¨¯©Ñ1ˆØÐ,Ñ,Ø—(‘(“*ˆCÜØÔ-Ô/MÐNôð ×0Ñ0°Ô5ô ØÔ-Ô/MÐNôð ð ð �{Ò"Ø—	‘	Ô3°CÓ8Ô9Ø—‘˜tÕ$ð —	‘	Ô2°3¸Ó=Ô>Ø—‘˜tÕ$ð �O‰O˜DÔ!Ø—(‘(“*ˆCØ�I‰I�cŒNØ�N‰N˜4Õ r¨   c                ób   — | j                  t        j                  | |j                  «      «       y rŸ   )r>  rb   ro  rn  ræ  s     r¦   ÚLOAD_SMALL_INTz(InstructionTranslatorBase.LOAD_SMALL_INT‹  s   € Ø�	‰	”/×'Ñ'¨¨d¯k©kÓ:Õ;r¨   )r²  r�  r.  r­  Úanyc                ó´   — t        |j                  t        «      sJ d«       ‚| j                  | j	                  | j
                  |j                     «      «       y )Nz2expected LOAD_COMMON_CONSTANT arg to be set to int)rN  r2  r¶   r>  rž  Ú_common_constantsræ  s     r¦   ÚLOAD_COMMON_CONSTANTz.InstructionTranslatorBase.LOAD_COMMON_CONSTANTš  sH   € Ü˜$Ÿ(™(¤CÔ(ð 	
Ø@ó	
Ð(ð 	�	‰	�$×/Ñ/°×0FÑ0FÀtÇxÁxÑ0PÓQÕRr¨   c                óP   — | j                   j                  «       dkD  r	d„ | _        yy)Nr   c                  ó   — y©NTrÍ   rÍ   r¨   r¦   r§   z>InstructionTranslatorBase.is_non_empty_graph.<locals>.<lambda>£  rF  r¨   TF)r   Úcount_callsrÒ  rÚ   s    r¦   rÒ  z,InstructionTranslatorBase.is_non_empty_graph   s%   € Ø�;‰;×"Ñ"Ó$ qÒ(á&2ˆDÔ#ØØr¨   c           
     óš   — |€g }dj                  t        j                  | j                  «       gt	        t        |«      «      z   «      «      S )Nrß   )rü   Ú	tracebackÚformat_listrÈ  rï   r¡   )rÁ   Úadditional_stack_framess     r¦   Úformat_frame_summaryz.InstructionTranslatorBase.format_frame_summary§  sN   € ð #Ð*Ø&(Ð#Ø�w‰wÜ×!Ñ!Ø×#Ñ#Ó%Ð&¬¬hÐ7NÓ.OÓ)PÑPóó
ð 	
r¨   c           	     óœ   — t        j                  t        | j                  dd«      | j                  t        | j                  dd«      d¬«      S )Nr¾  ú	<unknown>r¿  F)Úlookup_line)ru  ÚFrameSummaryr|  rÄ  r·   rÚ   s    r¦   rÈ  z'InstructionTranslatorBase.frame_summary²  s?   € Ü×%Ñ%Ü�D—K‘K °Ó<Ø�K‰KÜ�D—K‘K ¨KÓ8Øô	
ð 	
r¨   c                ó€   — t        | j                  dd«      }t        j                  d«      }|j	                  |«      d uS )Nr¾  rz  z.*torch/nn/modules.*)r|  rÄ  ÚreÚcompileÚmatch)rÁ   rµ   Únn_modules_patterns      r¦   Úis_co_filename_from_nn_modulesz8InstructionTranslatorBase.is_co_filename_from_nn_modulesº  s:   € Ü˜4Ÿ;™;¨°{ÓCˆÜŸZ™ZÐ(?Ó@ÐØ!×'Ñ'¨Ó1¸Ð=Ð=r¨   c                óÆ   — | j                   j                  |t        j                  |«      «      }t	        t        |«      j                  t        j                  «      «       |S rŸ   )	r   Úinstall_global_by_idrP  rQ  r?   rP   rë  r>   ÚWEAKREF_ALIVE)rÁ   r·  r¦  Úglobal_names       r¦   Ústore_global_weakref_by_idz4InstructionTranslatorBase.store_global_weakref_by_id¿  sJ   € Ø—k‘k×6Ñ6°v¼w¿{¹{È5Ó?QÓRˆÜÜ Ó,×7Ñ7¼×8RÑ8RÓSô	
ð Ðr¨   c                óB   — | j                   j                  j                  S rŸ   )r   Útracing_contextÚ	fake_moderÚ   s    r¦   rŠ  z#InstructionTranslatorBase.fake_modeÆ  s   € à�{‰{×*Ñ*×4Ñ4Ð4r¨   c              #  ób   K  — | j                   }|| _         	 d–— || _         y# || _         w xY w­w)zx
        Strict mode is enabled on a per-VariableTracker level depending on the return value of check_fn(node).
        N)rŒ  )rÁ   Úcheck_fnÚpriors      r¦   Ústrict_translation_modez1InstructionTranslatorBase.strict_translation_modeÊ  s3   è ø€ ð ×%Ñ%ˆØ (ˆÔð	*Ûà$)ˆDÕ!ø EˆDÕ!üs   ‚/—# ›/£	,¬/c                ó  — | j                   €J ‚| j                   dkD  sJ ‚| j                  j                  | j                  j                  | j
                  | j                   dz
  | j                  | j                   dz
     «      S rb  )r¸   r  rê   rÄ  r¾  r·   rm  rÚ   s    r¦   r  z#InstructionTranslatorBase.speculateØ  s|   € Ø×'Ñ'Ð3Ð3Ð3Ø×'Ñ'¨!Ò+Ð+Ð+Ø×#Ñ#×(Ñ(Ø�K‰K×#Ñ#Ø�K‰KØ×$Ñ$ qÑ(Ø×Ñ˜d×6Ñ6¸Ñ:Ñ;ó	
ð 	
r¨   c                ó    — |�|dk  r||fS ||fS rÙ   rÍ   )rÁ   rµ   r·   Úfallback_linenos       r¦   Ú_make_frame_locz)InstructionTranslatorBase._make_frame_locâ  s%   € ð ˆ>˜V ašZØ˜oÐ.Ð.Ø˜&Ð!Ð!r¨   c                ód  — g }t         j                  rs| j                  }|�e| j                  |j                  j
                  |j                  |j                  j                  «      }|j                  |«       |j                  }|�Œe|j                  «        |j                  |«       t        |«      S rŸ   )r   rô  r  r’  rÄ  r¾  r·   Úco_firstlinenorä   Úreverser.  )rÁ   Ú	frame_locÚframe_loc_chain_listÚ
current_txÚparent_frame_locs        r¦   Ú_get_frame_loc_chainz.InstructionTranslatorBase._get_frame_loc_chainé  s¦   € ð 79Ðä×%Ò%Ø;?¿;¹;ˆJØÐ(Ø#'×#7Ñ#7Ø×%Ñ%×1Ñ1Ø×%Ñ%Ø×%Ñ%×4Ñ4ó$Ð ð
 %×+Ñ+Ð,<Ô=Ø'×.Ñ.�
ð Ñ(ð 	×$Ñ$Ô&Ø×#Ñ# IÔ.ÜÐ)Ó*Ð*r¨   c                óœ  ‡— |j                   ry t        |dd «      }|€(t        j                  j                  j                  «       }	 t        j                  rR| j                  �F| j                  | j                  j                  | j                  | j                  j                  «      }n-| j                  |d   j                  |d   j                  d«      }| j!                  |«      }d}t        j"                  r/t%        «       }dj'                  t)        j*                  |«      «      }nt%        «       |z   }t-        |«      }dj'                  t)        j*                  |«      «      }	|�t/        ||«      }d|d   › d|d	   › d
|› d�Št        j"                  r‰|› d|	› d�z  Šn‰t1        |	«      z  Št        j2                  j5                  dd„ ˆfd„¬«       t7        |t8        «      r|j:                  n
t=        |«      }
t>        jA                  tB        jD                  «      rptF        sjtI        jJ                  |
|f«      rSt        j"                  r&‰dz  Š‰dj'                  | jL                  «      dz   z  Št>        jO                  ‰«       d|_         y t>        jO                  d|d   |d	   |«       d|_         y # t        $ r |d   |d   f}Y �Œôw xY w)Nr  ry  r   r¾  r”  rß   zGraph break in user code at rà   r   z
Graph Break Reason: z

User code traceback:
zQ
========== most recent `torch.compile` tracing attempt started here ==========

a}  
NOTE: the most recent `torch.compile` tracing attempt might not be where you applied `torch.compile`! This is due to how graph breaks are implemented - the optimized code object returned by Dynamo will call another Dynamo-generated resume function and tracing is re-enabled by calling the resume function as a normal Python function, which Dynamo intercepts as a top-level frame.
Úartifactc                 ó   — dddœS )NÚdynamo_graph_break_reasonÚstring)r°   ÚencodingrÍ   rÍ   r¨   r¦   r§   z;InstructionTranslatorBase.log_graph_break.<locals>.<lambda>C  s   € Ø3Ø$ñ!€ r¨   c                 ó6   •— ‰ › dt        j                  «       › �S )Nrô   )ru  Ú
format_exc)Úuser_stack_traces   €r¦   r§   z;InstructionTranslatorBase.log_graph_break.<locals>.<lambda>G  s   ø€ Ð"2Ð!3°2´i×6JÑ6JÓ6LÐ5MÐN€ r¨   )Úmetadata_fnÚ
payload_fnz4
Most recent bytecode instructions traced (max 20):
rô   zmGraph break (user stack suppressed due to duplicate graph break) in user code at %s:%s
Graph Break Reason: %sT)(Úloggedr|  rˆ  rÉ  r   rÊ  r   rô  r  r’  rÄ  r¾  r·   r”  rµ   Ú
IndexErrorrš  rÖ  r7   rü   ru  rv  r5   r3   r´   Ú_loggingÚtrace_structuredrN  r;   r­  rô  Úgraph_break_logÚisEnabledForr   ÚDEBUGÚexplainr\   r	  r“  r¥  )rÁ   rÆ  r½   r   Ú
user_stackr–  Úframe_loc_chainÚstack_above_dynamo_formattedÚstack_above_dynamoÚuser_stack_formattedr­  r£  s              @r¦   rÅ  z)InstructionTranslatorBase.log_graph_breaký  sÉ  ø€ ð �:Š:Øä˜S ,°Ó5ˆ
àÐÜŸ™×5Ñ5×CÑCÓEˆJð	Ü×)Ò)¨d¯k©kÐ.EØ ×0Ñ0Ø—K‘K×+Ñ+Ø—K‘KØ—K‘K×.Ñ.ó‘	ð !×0Ñ0Ø˜r‘N×+Ñ+Ø˜r‘N×)Ñ)Øó�	ð ×3Ñ3°IÓ>ˆØ')Ð$Ü�>Š>Ü!7Ó!9ÐØ+-¯7©7Ü×%Ñ%Ð&8Ó9ó,Ñ(ô 0Ó1°JÑ>ˆJÜ/°
Ó;ˆJØ!Ÿw™w¤y×'<Ñ'<¸ZÓ'HÓIÐð ˆ?Ü6°s¸FÓCˆFð +¨9°Q©<¨.¸¸)ÀA¹,¸ð H#Ø#) (ð +'ð'ð 	ô �>Š>ØØ/Ð0ð 1eà'Ð(ð )LðLñÑð ¤Ð$8Ó 9Ñ9Ðä�‰×'Ñ'Øñó Oð 	(ô 	
ô ",¨C´Ô!=�#—+’+Ä4ÈÃ9ˆä×(Ñ(¬¯©Ô7ÝÜ/×3Ñ3°W¸oÐ4NÔOô
 �~Š~Ø ØLñÐ ð ! D§I¡I¨d×.HÑ.HÓ$IÈDÑ$PÑPÐ ä×!Ñ!Ø ôð ˆ�
ô ×!Ñ!ð AØ˜!‘Ø˜!‘Øô	ð ˆ�
øôc ò 	ð ˜]Ñ+ØÐ-Ñ.ð‹Ið	ús   ÁBJ4 Ê4KË
Kc                ó^   — t        ddt        | «      › �dg t        j                  ¢|d¬«       y )Nzgraph break in loopzframe skipped: z“torch.compile detected a graph break in a for/while loop. Skipping the frame and falling back to eager, as graph breaks in loops are not supported.T)r­  r®  r¯  r°  r  r  )r:   r6   r   r  )r„  r   s     r¦   rÃ  z0InstructionTranslatorBase.raise_loop_graph_breakk  s;   € ô 	Ø)Ø%Ô&7¸Ó&=Ð%>Ð?ðhàDÔ%×CÑCÐDØØö	
r¨   c                óü  •— t         ‰| �  «        || _        || _        || _        || _        || _        |	| _        |
| _        d | _	        g | _
        d| _        d | _        t        d«      | _        d| _        g | _        g | _        d| _        d | _        d| _        g | _        || _        t/        d¬«      | _        d| _        t5        «       | _        || _        |�|nt;        | j8                  «      | _        || _        || _         || _!        || _"        || _#        || _$        |�$tJ        jL                  rtO        |||¬«      | _(        nd | _(        i | _)        i | _*        || _+        d| _,        d| _-        d| _.        d | _/        d | _0        d| _1        d | _2        d| _3        g | _4        || _5        d	d
l6m7}m8}m9}m:} |jv                  ||z  |z  |z  z  r| jy                  t{        d «      «       || _>        d| _?        d gt�        |j‚                  «      z  | _B        t†        j‰                  tŠ        jŒ                  «      | _G        t�        j‰                  tŠ        jŒ                  «      | _I        t•        j–                  |j˜                  |«       y )Nr   râ  Try  é   )Úmaxlen)r„  r°  rÆ  Fr   )ÚCO_ASYNC_GENERATORÚCO_COROUTINEÚCO_GENERATORÚCO_ITERABLE_COROUTINE)MrF  rG  r  Údistributed_stater   r{  r|  r}  r~  r  r�  r¸   r�  r'   rƒ  r  r  r  r·   r5  r„  r†  rŠ  r   r“  r>  r  r<  rm  r   r£  r$  rW  rY  rÆ  rÄ  r°  r   Úreplay_record_enabledrI   r‹  Únn_module_stackÚ	num_callsÚexportr  r¼   rÚ  r‰  rŒ  rŽ  r  r�  r�  r’  Úresume_executionr·  r¸  r¹  rº  Úco_flagsr>  rf   r‡  rˆ  rã   r  rS  rÕ  r«  r   r¬  rÔ  rÎ  rÍ  rÅ  Ú	lazycacher¾  )rÁ   r   rm  r$  rW  rY  rÆ  r{  r|  r}  r~  rÄ  r¿  r‡  r  rŠ  r»  r°  r’  r£  r·  r¸  r¹  rº  rM  s                           €r¦   rG  z"InstructionTranslatorBase.__init__y  s…  ø€ ô0 	‰ÑÔØ.ˆÔØ!2ˆÔð ˆŒØ.ˆÔØ 0ˆÔØ-JˆÔ*Ø%:ˆÔ"ð -1ˆÔ)Ø,.ˆŒ
Ø#$ˆÔ ØˆÔÜ#5°eÓ#<ˆÔ Ø(,ˆÔ%ØˆÔàUWˆÔ,ØˆŒØˆŒØ"&ˆÔØˆÔØ(ˆÔÜ%*°"Ô%5ˆÔ"Ø$%ˆÔ!Ü47³EˆÔ'ð 0<ˆÔàÐ*‰G´¸D×<MÑ<MÓ0Nð 	Œð ð 	Œð *3ˆŒØ*4ˆŒØ,8ˆÔØ&,ˆŒØˆŒð Ð¤6×#?Ò#?Ü!2Ø W¸<ô"ˆDÕð "&ˆDÔð BDˆÔØ)+ˆŒàˆŒð ˆŒØ$)ˆÔ!à*/ˆÔ'à#'ˆÔ à $ˆÔà$(ˆÔ!ØˆŒØ&+ˆÔ#ØˆÔàˆŒ÷	
ó 	
ð �?‰?Ø˜<Ñ'Ð*?Ñ?ÐBTÑTò
ð �I‰I”o dÓ+Ô,à(ˆÔØ).ˆÔ&àðP
ä�× Ñ Ó!ñP"ˆÔô
 ×+Ñ+¬G¯M©MÓ:ð 	Ô*ô 9I×8UÑ8UÜ�M‰Mó9
ˆÔ(ô 	×Ñ˜F×.Ñ.°	Õ:r¨   rë   r  )rÆ   rÕ   )rJ  rb   r¤   r€  r³  rz  rÆ   rÇ   )rJ  ro   r¤   úSequence[VariableTracker]r³  rz  rÆ   rb   )rJ  ro   r¤   rÃ  r³  rz  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[  rb   rÆ   rÇ   )r  r€  rÆ   rÇ   ©rÆ   rb   )r~  r¶   rÆ   r€  )r6  r‹   rÆ   rÇ   )r¹   r,   rÆ   rb   )ra  r´   rÆ   rO   )r°   r´   r’  r´   r}  r¶   rÆ   r´   )rn  r   rÆ   rb   )r¹   zInstruction | BlockStackEntryrÆ   rÇ   )r[  rb   rÆ   rb   )r   r¬   rÆ   rÇ   )r[  rb   rÆ   r   )r[  rb   rÆ   zTypeIs[ExceptionVals])rí  r   rÆ   rÇ   )r(  r   rÆ   rÇ   )r$  rb   r°   r´   rÆ   rÇ   )r¹   r,   rù  r¶   rÆ   r…  )r   r¶   rT  r,   rz  rB   rU  úlist[types.CodeType]r  r1   rV  rº   rW  rº   rÆ   ztuple[types.CodeType, str]©r¹   r,   rÑ  zlist[StackLocalsMetadata]rÆ   r…  )rU  rÇ  rh  rÕ   r  r1   rÆ   rÇ   )r$  rb   rt  rb   rÆ   rÇ   )r¹   r,   r  rô  rÆ   rÇ   )r¦  rb   rÓ  r¶   rÆ   rb   )rÚ  rb   rÜ  r¶   rÆ   rÇ   )F)r¹   r,   r  rº   rÆ   rÇ   )rg  z8ContextWrappingVariable | GenericContextWrappingVariabler¹   r,   rÆ   rb   )rg  rb   rÆ   r   )rw  zlist[Any] | NonerÆ   r´   )rÆ   ztraceback.FrameSummary)r·  r´   r¦  r   rÆ   r´   ©rÆ   zFakeTensorMode | None)rŒ  z!Callable[[VariableTracker], bool]rÆ   r   )rÆ   r³   )rµ   r´   r·   r‚  r‘  r¶   rÆ   útuple[str, int])r–  rÊ  rÆ   ztuple[tuple[str, int], ...])rÆ  rœ   r½   r´   r   z)Unsupported | UserError | StepUnsupportedrÆ   rÇ   )r„  útypes.CodeTyper   zUnsupported | UserErrorrÆ   r   )NNN)(r   rA   rm  r…  r$  rœ   rW  rœ   rY  rœ   rÆ  rœ   r{  rz  r|  rz  r}  rŒ   r~  rˆ   rÄ  rË  r¿  rº   r‡  r¶   r  rÏ   rŠ  rQ  r»  úDistributedState | Noner°  ztuple[types.CellType] | Noner’  r‘  r£  zdict[Instruction, int] | NonerÆ   rÇ   (  rÉ   rÊ   rË   rÌ   r•  rÂ  rŸ  r£  r¦  r©  r?  r¶  r¼  rÃ  rÉ  rÏ  rÞ  rR  rÌ  rØ  ÚpropertyrË  rÓ  r  r  r>  r  rÉ  r@  r*  r/  r3  r7  r5  rP  ÚLOAD_CLOSURErT  rj  r^  rH  Úcached_propertyrd  rg  rl  r   r`  r€  r‰  r•  ÚEAGER_IMPORT_NAMEr™  rž  r[  rà  ÚJUMP_FORWARDÚJUMP_ABSOLUTEr  rk  Únot_rY  rl  rX  ÚJUMP_IF_FALSE_OR_POPÚJUMP_IF_TRUE_OR_POPr¦  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-  r1  r/  Ústaticmethodr8  r÷  rÊ  rø  rÁ  rï  rí  rw  r€  r‚  r„  rë  r‹  r{   r�  r’  ÚBUILD_TUPLE_UNPACK_WITH_CALLr•  r˜  ÚBUILD_MAP_UNPACK_WITH_CALLrš  rœ  r¡  r¤  rî  r³  rð  r½  r¿  râ  rñ  rÈ  rË  rÍ  r—  rÐ  rÔ  rÜ  rÞ  ræ  rë  rò  rl  rõ  rù  rû  ÚDICT_UPDATErý  rÿ  r  r  r  r
  r  r  rK  ÚposrJ  ÚnegÚUNARY_NEGATIVErï  ÚinvertÚUNARY_INVERTÚpowÚBINARY_POWERÚmulÚBINARY_MULTIPLYÚmatmulÚBINARY_MATRIX_MULTIPLYÚfloordivÚBINARY_FLOOR_DIVIDEÚtruedivÚBINARY_TRUE_DIVIDErT  ÚBINARY_MODULOÚBINARY_REMAINDERr	  Ú
BINARY_ADDÚsubÚBINARY_SUBTRACTÚgetitemÚBINARY_SUBSCRÚlshiftÚBINARY_LSHIFTÚrshiftÚBINARY_RSHIFTÚand_Ú
BINARY_ANDÚor_Ú	BINARY_ORÚxorÚ
BINARY_XORÚipowÚINPLACE_POWERÚimulÚINPLACE_MULTIPLYÚimatmulÚINPLACE_MATRIX_MULTIPLYÚ	ifloordivÚINPLACE_FLOOR_DIVIDEÚitruedivÚINPLACE_TRUE_DIVIDEÚimodÚINPLACE_MODULOÚINPLACE_REMAINDERÚiaddÚINPLACE_ADDÚisubÚINPLACE_SUBTRACTÚilshiftÚINPLACE_LSHIFTÚirshiftÚINPLACE_RSHIFTÚiandÚINPLACE_ANDÚixorÚINPLACE_XORÚiorÚ
INPLACE_ORr  r  r-  r.  rf  r  r,  r#  r%  rã  ÚJUMP_BACKWARD_NO_INTERRUPTÚPOP_JUMP_FORWARD_IF_TRUEÚPOP_JUMP_BACKWARD_IF_TRUEÚPOP_JUMP_FORWARD_IF_FALSEÚPOP_JUMP_BACKWARD_IF_FALSEr'  r)  r-  r/  r®  r  r4  r7  r:  r@  rB  rD  rF  rM  rR  rT  rV  rÀ  r\  r^  r`  rb  ÚLOAD_FAST_BORROWrä  ÚPOP_ITERrh  ri  rk  rn  ro  rÒ  rx  rÈ  r‚  r‡  rŠ  Ú
contextlibÚcontextmanagerrŽ  r  r’  rš  rÅ  rÃ  rG  rN  rO  s   @r¦   rÈ   rÈ   é  sÊ  ø… ð ÓØ/Ó/Ø0Ó0Ø#=Ó=Ø.Ó.Ø"CÓCØ Ó Ø#Ó#Ø$Ó$Ø"Ó"Ø&Ó&ØƒKØ%Ó%ØÓØ#Ó#ØÓØ#Ó#Ø0Ó0ØÓØ Ó Ø+Ó+Ø>Ó>ØÓàÓØ,Ó,ð !Ó ØEÓEØ"Ó"Ø%Ó%ó.ó!óF0ó0ó'ó

ð8àð8ð $ð8ð +ð	8ð
 
ó8ð,4à$ð4ð (ð4ð +ð	4ð
 
ó4ðUà$ðUð (ðUð +ð	Uð
 
óUônóó	Wónð` ×Ñ˜7Ò"ô*	+ó\	ð ò;ó ð;óAóF2óM=ô^ôô ô;ó!+óFVó2ó.ô)
óV/ð €Lô	ó*óJð* ×ÑóJó ðJó!óEð( ó#ó ð#ô,
2óó:;ð| $Ðó%ð ó4ó ð4ó,>ô4ð €LØ€Má$ X§]¡]°EÓ:ÐÙ# H§N¡N°EÓ:ÐÙ'¨¯©°tÓ<ÐÙ& x§~¡~°tÓ<ÐóUó
Uó
ó(óUóô*ô
ô(.
ó`&óPó0ô..ó$)ôLA'óF<ó:$ó*QófLóóPóPñ  ØØôò)ó	ð)ñ
  ØØôò:;ó	ð:;ñx  ØðAôò
	-óð
	-óGó óó"
ô
ó%ñ  Øð Aôò
ó	ð
ó
ô8ð ðØðØ&)ðà	óó ðð>x%àðx%ð !ðx%ð "ð	x%ð
 +ðx%ð ðx%ð ðx%ð "ðx%ð 
$ôx%ðtg%àðg%ð $=ðg%ð 
ô	g%ðR ðA?Ø*ðA?Ø:CðA?ØIRðA?à	óA?ó ðA?óF
ñ&  ØØ~ôò=ó	ð=ó8ð4Ø"ð4Ø)8ð4à	ô4ó((ó1óó6ó
ð @Lõ @ó 8ð $6Ð ó2ó
ð$ "2Ðó
ó 9ó.ó1óó/óbó:ñ0  ØÐNôò
óð
ó4ó
óóóóó
ôôNó,3ó
óB"ó!ó:1ó
ó
%ó$1ð €Kóó@ó
ó
óVó Vó"CóDñ ˜hŸlšlÓ+€NÙ˜hŸlšlÓ+€NÙ˜Ÿ™Ó'€IÙ˜HŸOšOÓ,€Lá˜HŸLšLÓ)€LÙ˜xŸ|š|Ó,€OÙ% h§o¢oÓ6ÐÙ" 8×#4Ò#4Ó5ÐÙ! (×"2Ò"2Ó3ÐÙ˜XŸ\š\Ó*€MÙ §¢Ó-ÐÙ˜(Ÿ,š,Ó'€JÙ˜xŸ|š|Ó,€OðÑ.ØØuôñ ˆx×ÒÓ ó"€Mñ ˜XŸ_š_Ó-€MÙ˜XŸ_š_Ó-€MÙ˜(Ÿ-š-Ó(€JÙ˜ŸšÓ&€IÙ˜(Ÿ,š,Ó'€Já˜XŸ]š]Ó+€MÙ §¢Ó.ÐÙ& x×'7Ò'7Ó8ÐÙ# H×$6Ò$6Ó7ÐÙ" 8×#4Ò#4Ó5ÐÙ˜hŸmšmÓ,€NÙ  §¢Ó/ÐÙ˜8Ÿ=š=Ó)€KÙ §¢Ó.ÐÙ˜h×.Ò.Ó/€NÙ˜h×.Ò.Ó/€NÙ˜8Ÿ=š=Ó)€KÙ˜8Ÿ=š=Ó)€KÙ˜(Ÿ,š,Ó'€Jó/ð ×Ñ˜7Ò"ó	;óó@ó"ö-!ñ^  ØØiôòó	ðó)óVð €MØ!%Ðá+¨H¯N©N¸EÓBÐÙ ,¨X¯^©^¸UÓ CÐÙ ,¨X¯]©]¸EÓ BÐÙ!-¨h¯m©m¸UÓ!CÐóó(ð#àEð#ð ð#ð 
ô	#ðJ ó
ó ð
ó -ó'ó	*ó&ó&ó/óó;ó)óó.ó,ñ  ØðAôò
'óð
'ó
ó&óP=ó?ó*ð !ÑØ�IØ�Hð
Ñô!ô8<ðÑôSôð ;?ð	
Ø'7ð	
à	õ	
õ
ô>õ
ð ó5ó ñ5ñ ×Òð*Ø9ð*à	ó*ó ñ*õ
ð"Øð"Ø%/ð"ØBEð"à	õ"ð+Ø(ð+à	$õ+ð(là$ðlð ðlð 7ð	lð
 
õlð\ ð
Øð
Ø#:ð
à	ó
ó ñ
ð@ 15Ø)-à15ñ-@;àð@;ð (ð@;ð !ð	@;ð
 "ð@;ð #ð@;ð %ð@;ð 4ð@;ð 5ð@;ð (Bð@;ð  3ð@;ð ð@;ð ð@;ð ð@;ð (ð@;ð  %ð!@;ð" 3ð#@;ð& .ð'@;ð( 'ð)@;ð, /ð-@;ð. 
÷/@;ô @;r¨   )Ú	metaclassc                  óØ   ‡ — e Zd Zedd„«       Zej                  dd„«       Z	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd„Zdd„Z	dd„Z
dd„Zdd„Zdd„Zdd	„Zdd
„Zˆ xZS )rD  c                 ó"   — t         j                  S rŸ   )Útlsr˜  rÍ   r¨   r¦   r˜  z InstructionTranslator.current_txý  s   € ä�~‰~Ðr¨   c              #  ó„   K  — t        t        dd «      }| t        _        	 d –— |t        _        y # |t        _        w xY w­w)Nr˜  )r|  r!  r˜  )rÁ   r�  s     r¦   Úset_current_txz$InstructionTranslator.set_current_tx  s1   è ø€ äœ˜\¨4Ó0ˆØŒŒð	#Ûà"ŒC�Nø˜UŒC�Nüs   ‚A  0 ¤A °=½A c                óÄ  •—  t        «       t        j                  d|j                  › d|d   › d|d   › �«       t        ‰| �  t        ||	| ||||||||
|¬«      ||||||i i d d ||d||||¬«       | j                  «        t        | j                  j                  «      5  | j                  «       5  |
| _        || _        | j                  r| j                  sJ d	«       ‚i | _        t        | j!                  «       «      }t#        j$                  |«      j'                  d
d «      }|j)                  «       D ]h  \  }}||vsŒd }|r)t+        |j'                  |i «      j)                  «       «      }t-        j.                  |t1        |d|¬«      «      }|| j                  |<   Œj | j                  j2                  }| j5                  «       D ]x  }||v rL||   }t1        |dd¬«      }t-        j.                  ||«      }|j7                  «       }|j9                  ||«       n|j7                  «       }||_        || j                  |<   Œz |€J ‚t=        | j?                  «       |«      D ]g  \  }}tA        |«      }t1        |d¬«      }	 t-        j.                  |jB                  |«      }|jK                  |||«      }||_        || j                  |<   Œi tM        |«      | _'        tQ        «       | _)        |r.tF        j,                  jU                  | j                  «      | _        d d d «       d d d «       y # tD        $ r tG        jH                  «       }Y Œªw xY w# 1 sw Y   Œ5xY w# 1 sw Y   y xY w)Nztorchdynamo start tracing rÑ  r¾  rà   r”  )Úlocal_scoperw  rÄ  Útorch_function_mode_stackr  r’  r   )r   rm  r$  rW  rY  r°  rÆ  r{  r|  r}  r~  rÄ  r¿  r‡  r  rŠ  r»  r’  z4Export without one graph - something has gone wrong.ÚdynamismT)Úis_inputr'  )r(  Úis_derefed_cell_contents)r)  )+r  r   ÚINFOr¿  rF  rG  rA   Ú_throw_if_in_functorchr   r   r‰  r#  r  r¿  r{  r  r¦  r0   rO  r{  rý   Ú	frozensetrw   rj  rR   r  rŸ  r3  rN  rO  r  r£  rQ   Úcell_contentsr×  r   ÚDeletedVariableÚtrack_cell_existingrŒ   r}  rˆ   r~  Úrealize_all)rÁ   rm  rÄ  r$  rW  rY  r°  r&  rÆ  Úcompiler_fnr  r¿  Úexport_constraintsÚframe_stater  rŠ  r»  r’  r¦  r'  r°   r¦  Úlocal_dynamismr6  r  Úcontents_sourcer.  Úcell_varr-  Úcell_sourcerM  s                                 €r¦   rG  zInstructionTranslator.__init__
  s¯  ø€ ð( 	Œ‹Ü�L‰LØ(¨¯©Ð(8¸¸,À}Ñ:UÐ9VÐVWÐXdÐeuÑXvÐWwÐxô	
ô 	‰ÑÜØØØØØ"ØØ$Ø&ØØ*CØ#Øôð &ØØØ!ØØ%ØàØ*.Ø"&ØØØØ+Ø%Ø/ØðA 	ô !	
ðF 	×#Ñ#Ô%ô �T—[‘[×0Ñ0Ó1ñ d	°4×3FÑ3FÓ3Hñ d	Ø#,ˆDŒNØ ˆDŒKØ�{Š{Ø—~’~ð ØJó�~ð $&ˆDÔ ä*-¨d×.DÑ.DÓ.FÓ*GÐä#×/Ñ/°Ó7×;Ñ;¸JÈÓMˆHØ'Ÿ~™~Ó/ò 5‘��eØÐ0Ò0Ø%)�NÙÜ)2°8·<±<ÀÀbÓ3I×3OÑ3OÓ3QÓ)R˜Ü-×4Ñ4ØÜ#Ø Ø%)Ø%3ôó�Cð 25�D×(Ñ(¨Ò.ð5ð"  Ÿ;™;×3Ñ3ˆLØŸ™›ò %6�Ø˜8Ñ#à$ T™N�Eô* '2ØØ!%Ø15ô'�Oô
 5H×4NÑ4NØ˜ó5�Lð  ,×:Ñ:Ó<�HØ ×+Ñ+¨H°lÕCà+×:Ñ:Ó<�HØ&*�Ô#Ø-5�×$Ñ$ TÒ*ðK%6ðR Ð&Ð&Ð&Ü! $§-¡-£/°7Ó;ò 6‘
��dÜ-¨dÓ3�Ü"-¨dÈTÔ"R�ð?Ü#6×#=Ñ#=Ø×*Ñ*¨Oó$�Lð (×;Ñ;Ø  |ó�ð '+�Ô#Ø-5�×$Ñ$ TÒ*ð6ô  2LØ)ó2ˆDÔ.ô *=Ó)>ˆDÔ&áô (1×'DÑ'D×'PÑ'PØ×(Ñ(ó(�Ô$÷Ed	÷ d	ð d	øô` "ò ?ä#,×#<Ñ#<Ó#>’Lð?ú÷ad	ð d	ú÷ d	ð d	úsQ   ÂMÂ0BM
Ä>D=M
É< L'ÊA:M
ÌMÌ'M	ÍM
ÍM	ÍM
Í
M	ÍMÍMc                óÞ  — t         j                  j                  d«      }t        j                  | j
                  j                  d| j
                  j                  «      }t         j                  j                  j                  «       }t         j                  j                  j                  j                  t         j                  j                  j                  j                  t         j                  j                  j                  j                  f}|�\|j                  «       |v rI||urD|j                  «       j                  j!                  «       }d|› d|› d|› d�}t#        dd|g ¬	«       y y y y )
NÚeagerr1  zhIf you are reaching here, it means dynamo failed for one of the following reasons:
- Calling torch.func.zP(compiled_fn) function from eager mode is not supported. Ensure that torch.func.zp is also wrapped within a torch.compile function. For more information, see PyTorch issue #128711.
- torch.func.z2(fn) requires the function to be inlined by dynamoz%Unsupported functorch tracing attemptrß   r¬  )rˆ  Ú_dynamoÚlookup_backendrE  Úgetattr_staticr   r1  Ú_CÚ
_functorchÚpeek_interpreter_stackÚTransformTypeÚVmapÚGradÚJvprt  r°   Úlowerr:   )rÁ   r9  r1  ÚciÚforbidden_keysr°   rX  s          r¦   r+  z,InstructionTranslator._throw_if_in_functorch¯  s0  € ä—‘×,Ñ,¨WÓ5ˆÜ×,Ñ,Ø�K‰K×#Ñ# ]°D·K±K×4KÑ4Kó
ˆô �X‰X× Ñ ×7Ñ7Ó9ˆä�H‰H×Ñ×-Ñ-×2Ñ2Ü�H‰H×Ñ×-Ñ-×2Ñ2Ü�H‰H×Ñ×-Ñ-×1Ñ1ð
ˆð ˆ>˜bŸf™f›h¨.Ñ8¸[ÐPUÑ=UØ—6‘6“8—=‘=×&Ñ&Ó(ˆDð(à(, vð .*Ø*.¨ð 0 ð !%˜vÐ%WðYð ô Ø?ØØØö	ð >VÐ8ˆ>r¨   c                ó²   — t        |t        «      r| j                  |j                     S t        |t        «      r| j
                  |j                     S t        ‚rŸ   )rN  rR   r$  rO  rO   rW  r†  r'  )rÁ   r“  s     r¦   Úget_example_valuez'InstructionTranslator.get_example_valueÎ  sE   € Ü�fœkÔ*Ø—=‘= ×!2Ñ!2Ñ3Ð3Ü�fœlÔ+Ø—>‘> &×"4Ñ"4Ñ5Ð5Üˆr¨   c                óÌ   — | j                   j                  «       D ]G  }t        |t        «      sŒt	        |j                  «       t        j                  j                  «      sŒG y yrÄ   )	r{  r°  rN  r�   rü  rß  rˆ  ÚnnÚModule)rÁ   rú   s     r¦   Ú$symbolic_locals_contain_module_classz:InstructionTranslator.symbolic_locals_contain_module_classÕ  sR   € Ø×%Ñ%×,Ñ,Ó.ò 	ˆAÜ˜!Ô5Õ6¼:Ø×$Ñ$Ó&¬¯©¯©õ<ñ ð		ð
 r¨   c                óØ   — t        | j                  «      rU| j                  d   x}rCt        |t        «      r2t	        |j                  | «      t        «       ¬«      | j                  d<   y y y y )Nry  r‡  )rã   r�  rN  rq   rz   r  ra   )rÁ   rØ  s     r¦   Ú"replace_tos_if_return_is_generatorz8InstructionTranslator.replace_tos_if_return_is_generatorÝ  s`   € ä�—
‘
ŒOØŸ
™
 2™Ð&�Ð&Ü˜3Ô <Ô=ä1Ø×-Ñ-¨dÓ3Ü.Ó0ôˆD�J‰J�rŠNð >ð 'ð r¨   c                ó  — | j                  «        | j                  €J ‚| j                  €J ‚t        «       j	                  d| j                  | j                  z
  «       t
        j                  s”| j                  j                  «       dk(  rw| j                  sk| j                  «       s[| j                  sO| j                  sC| j                  s7| j                  s+t        j                   dt#        | j$                  «      › �«      ‚d | _         t'        «       t(        j*                  d| j$                  j,                  › d|j.                  › d�«       t0        j3                  d«       | j                  j5                  | t7        d| j9                  «       gd	¬
«      |j.                  dk(  rdnd¬«      }t;        |«      dk(  sJ ‚|d   j<                  rJ ‚| j                  j?                  | jA                  ||d   jB                  «      «       tD        ‚)Nr¡  r   zhNo ops traced for the FX graph. `torch.compile` will skip the frame and fall back to eager.
Frame info: ztorchdynamo done tracing râ   r�  zreturn triggered compileÚreturn_valueF)r  r—  r   r»  )#rN  r¸   r�  r[   r¢  r   Úallow_empty_graphsr   rs  rˆ  rL  r¿  r  r¼   rÚ  r   Ú	SkipFramer6   rÄ  r  r   r*  r¿  rå   r  r¥  rÇ  r@   rÈ  rã   rM  rÍ  r8  rù  r9  )rÁ   r¹   rÑ  s      r¦   Ú_returnzInstructionTranslator._returnè  sÑ  € Ø×/Ñ/Ô1Ø×'Ñ'Ð3Ð3Ð3Ø×ÑÐ+Ð+Ð+ÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ô
 ×)Ò)Ø—‘×'Ñ'Ó)¨QÒ.Ø×2Ò2Ø×=Ñ=Ô?Ø—K’KØ—N’NØ×-Ò-Ø×3Ò3ä—-‘-ðÜ0°·±Ó=Ð>ð@óð ð
 $(ˆÔ ØŒ‹Ü�L‰LØ'¨¯©×(;Ñ(;Ð'<¸B¸t¿{¹{¸mÈ1ÐMô	
ô 	�	‰	Ð,Ô-Ø$(§K¡K×$@Ñ$@ØÜ%Ø ×!3Ñ!3Ó!5Ð 6ÀEôð !ŸK™K¨>Ò9‘q¸qð %Aó %
Ð!ô Ð,Ó-°Ò2Ð2Ð2Ø,¨QÑ/×@Ò@Ð@Ð@Ø�‰×+Ñ+Ø×)Ñ)¨$Ð0IÈ!Ñ0L×0VÑ0VÓWô	
ô Ðr¨   c                ó&   — | j                  |«       y rŸ   ©rS  ræ  s     r¦   r—  z"InstructionTranslator.RETURN_VALUE  ó   € Ø�‰�TÕr¨   c                ó&   — | j                  |«       y rŸ   rU  ræ  s     r¦   r˜  z"InstructionTranslator.RETURN_CONST  rV  r¨   )rÆ   rD  rÅ  )$rm  r…  rÄ  rË  r$  rœ   rW  rœ   rY  rœ   r°  ztuple[Any, ...] | Noner&  r   rÆ  rœ   r1  r   r  rº   r¿  rº   r2  r   r3  r   r  rÏ   rŠ  rQ  r»  rÌ  r’  r‘  rÆ   rÇ   rë   )r“  rT   rÆ   r   r  rÄ  )rÉ   rÊ   rË   rÖ  r˜  r  r  r#  rG  r+  rH  rL  rN  rS  r—  r˜  rN  rO  s   @r¦   rD  rD  ü  s  ø„ Øòó ðð ×Ñò#ó ð#ðcà'ðcð ðcð !ð	cð
 "ðcð #ðcð (ðcð $'ðcð %ðcð ðcð ðcð ðcð  ðcð ðcð (ðcð  %ð!cð" 3ð#cð$ 'ð%cð& 
õ'cóJó>óó	ó,ó\÷r¨   rD  r(  ÚINPLACEr¾  ÚBINARY_c              #  ód  K  — t         j                  sd–— y| j                  €t        «       | _        | j                  j	                  «       }| j                  j                  «       }| j                  j                  |j                  |j                  |j                  t        j                  «       «       d}	 d–— d}| j                  j                  «       }t        j                  «       }|rÆ|�Ã |«       }||j                  z
  }	|	|j                  z
  }
t        |j                   |j"                  |j$                  |	|
t'        |j(                  «      ||r|d   nd|r|d   nd|r|d   nd|j*                  |¬«      }| j                  j-                  |«       | j                  j/                  |	«       yyy# | j                  j                  «       }t        j                  «       }|rÆ|�Ã |«       }||j                  z
  }	|	|j                  z
  }
t        |j                   |j"                  |j$                  |	|
t'        |j(                  «      ||r|d   nd|r|d   nd|r|d   nd|j*                  |¬«      }| j                  j-                  |«       | j                  j/                  |	«       w w w xY w­w)a[  
    Context manager for profiling inline calls.

    Args:
        output: The OutputGraph containing profiler_state
        code: The code object being inlined (for timing metadata)
        get_inline_depth: Callable that returns inline_depth (called after work completes)

    Yields:
        None (profiling happens around the with block)
    NFTr   r   rà  )Ú	func_namerµ   ÚfirstlinenoÚ
cumtime_nsÚ
tottime_nsÚbytecode_countr‡  Úcaller_func_nameÚcaller_filenameÚcaller_firstlinenoÚis_primitive_callÚ
call_stack)r   Údynamo_profilerÚprofiler_stater   Úget_current_callerÚget_call_stackr>  r¿  r¾  r”  ÚtimeÚtime_nsrÉ  Ústart_time_nsÚchild_time_nsr   r[  rµ   r\  rã   Úco_coderc  Úrecord_timingÚadd_child_time)r   r„  Úget_inline_depthÚcaller_inford  Útrace_successÚstack_entryÚtrace_end_nsr‡  r]  r^  Útimings               r¦   Úprofile_inline_callrv  '  sn  è ø€ ô" ×!Ò!ÛØà×ÑÐ$Ü 3Ó 5ˆÔà×'Ñ'×:Ñ:Ó<€KØ×&Ñ&×5Ñ5Ó7€Jà
×Ñ×ÑØ�‰�d×&Ñ&¨×(;Ñ(;¼T¿\¹\»^ôð €Mð=ÛØˆà×+Ñ+×/Ñ/Ó1ˆÜ—|‘|“~ˆá˜[Ð4Ù+Ó-ˆLØ%¨×(AÑ(AÑAˆJØ# k×&?Ñ&?Ñ?ˆJä(Ø%×/Ñ/Ø$×-Ñ-Ø'×3Ñ3Ø%Ø%Ü" 4§<¡<Ó0Ø)Ù3> ¨Q¢ÀDÙ2= ¨A¢À4Ù5@ ;¨q¢>ÀdØ"-×"?Ñ"?Ø%ôˆFð ×!Ñ!×/Ñ/°Ô7Ø×!Ñ!×0Ñ0°Õ<ð) 5ˆ=øð ×+Ñ+×/Ñ/Ó1ˆÜ—|‘|“~ˆá˜[Ð4Ù+Ó-ˆLØ%¨×(AÑ(AÑAˆJØ# k×&?Ñ&?Ñ?ˆJä(Ø%×/Ñ/Ø$×-Ñ-Ø'×3Ñ3Ø%Ø%Ü" 4§<¡<Ó0Ø)Ù3> ¨Q¢ÀDÙ2= ¨A¢À4Ù5@ ;¨q¢>ÀdØ"-×"?Ñ"?Ø%ôˆFð ×!Ñ!×/Ñ/°Ô7Ø×!Ñ!×0Ñ0°Õ<ð) 5ˆ=üs    ‚B5J0Â8F5 Â>C7J0Æ5C8J-Ê-J0c                  óF  ‡ — e Zd ZU dZded<   ded<   e	 	 	 	 	 	 	 	 	 	 dd„«       Ze	 	 	 	 dd„«       Ze	 	 	 	 	 	 	 	 	 	 dd„«       Z	dd	„Z
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dˆ fd
„Zedd„«       Zdd„Zdd„Zdˆ fd„Z	 	 	 	 	 	 dˆ fd„Zdd„Zdd„Z	 	 	 	 dd„Zdˆ fd„Zdˆ fd„Zˆ xZS ) rº  z Trace and inline a called methodr4  Úsymbolic_resultrÈ   r  c                óÌ   ‡— d }t        ‰j                  |j                  «       ˆfd„«      5  | j                  ‰|||«      }|j	                  «       cd d d «       S # 1 sw Y   y xY w)Nc                 ó"   •— ‰ j                   dz   S rp  ©r‡  )r  s   €r¦   r§   z;InliningInstructionTranslator.inline_call.<locals>.<lambda>v  s   ø€ °F×4GÑ4GÈ!Ñ4K€ r¨   )rv  r   r¹  Úbuild_inline_tracerÚinline_call_)r  r  Úfuncr¤   r³  Útracers    `    r¦   r»  z)InliningInstructionTranslator.inline_calll  s]   ø€ ð ˆÜ Ø�M‰M˜4Ÿ=™=›?Ó,Kó
ñ 	)ð ×,Ñ,¨V°T¸4ÀÓHˆFØ×&Ñ&Ó(÷		)÷ 	)ò 	)ús   ¬$AÁA#c                óŽ  — | j                  «       rt        dt        | «      dg ¬«       t        | t        «      r†t        j                  | j                  «       dd«      rat        j                  | j                  «       dd «      }t        dt        | j                  «       «      d| j                  «       › d	|› d
�dg¬«       t        j                  | d¬«      }|j                  rãddlm} t        | d«      rDt        | j                  d«      r.| j                  j                  |u rt        j                   dd«      S t        | d«      r| j                  j"                  nd}d|› d�g}d| j%                  «       vr|d|› d�dgz  }t        dd|› d| j'                  «       › d| j%                  «       › d|j(                  › �d|› d �|¬«       |S )!NzInline attempt with __self__z–Attempted to inline a function with the `__self__` attribute. Dynamo is expected to decompose method calls into function calls with a `self` argument.r¬  Ú_torchdynamo_disableFÚ_torchdynamo_disable_msgz2Skip inlining `torch.compiler.disable()`d functionzSkip inlining function z= since it was wrapped with `torch.compiler.disable` (reason: r�  z(Remove the `torch.compiler.disable` callT)Úis_inlined_callr   )Ú!produce_trampoline_autograd_applyrJ  Ú_originz"allowlist in dynamo known functionrß   zAvoid calling the function `rB  r:  z:Apply `@torch._dynamo.dont_skip_tracing` to the function `zw` to force tracing into the function. More graph breaks may occur as a result of attempting to trace into the function.z Please file an issue to PyTorch.z.Attempted to inline function marked as skippedz
qualname: z, name: z, filename: `z`, skip reason: z?Dynamo developers have intentionally marked that the function `z` should not be traced.)Úhas_selfr:   r´   rN  rt   rE  r<  Úget_functionr   Úcheck_verboseÚskippedÚtorch._dynamo.variables.miscr„  r-  rJ  r…  Ú
SkipResultrË   Úget_filenameÚget_namer½   )r~  rX  rû  r„  Úfn_qualnamer°  s         r¦   Úcheck_inlineablez.InliningInstructionTranslator.check_inlineable{  s÷  € ð �=‰=Œ?ÜØ6Ü˜D›	ðkàõô �dÔ0Ô1´g×6LÑ6LØ×ÑÓÐ!7¸ô7
ô ×(Ñ(Ø×!Ñ!Ó#Ð%?ÀóˆCô ØLÜ˜D×-Ñ-Ó/Ó0Ø5°d×6GÑ6GÓ6IÐ5Jð K:Ø:=¸¸aðAð ?ðõô ×*Ñ*¨4ÀÔFˆØ�>Š>ÝVô
 ˜˜dÔ#Ü˜DŸG™G YÔ/Ø—G‘G—O‘OÐ'HÑHô #×-Ñ-ØÐ?óð ô 3:¸$ÀÔ2E˜$Ÿ'™'×.Ò.È2ˆKà.¨{¨m¸2Ð>ðˆEð  × 1Ñ 1Ó 3Ñ3ØØPÐQ\ÐP]ð ^hð hð 7ð	ñ �ô ØHØ$ [ M°¸$¿-¹-»/Ð9Jð KØ"×/Ñ/Ó1Ð2Ð2BÀ6Ç=Á=À/ðSà]Ð^iÐ]jð k(ð (àõð ˆr¨   c                ó:
  ‡ ‡‡‡— t        |t        t        t        f«      sJ ‚|j	                  «       Šd }‰ j
                  j                  }t        j                  s"|r |j                  j                  ‰d «      x}r|}|€Ft        j                  |«      }|j                  du sJ ‚t        j                  s|r||j                  ‰<   d }	 |j                  ‰ ||«      }|€J ‚t/        j0                  |j3                  «       «      D ]8  }
t        |
t4        «      rŒt!        dd|› d|
› �dg t*        j6                  ¢¬«       Œ: ‰j8                  dv rL|rt        |d   t:        j<                  «      s-t!        dd‰j8                  › d|› �d‰j8                  › d�g ¬«       d}t>        j@                  jB                  jD                  jG                  d«      r&dtI        jJ                  ‰«      jI                  «       › �}tL        jN                  dk\  r@‰ jP                  Š‰ jR                  Šd ˆˆˆ ˆfd„}tT        jW                  dtY        |«      «       tZ        jW                  d‰||j\                  «       |�r‡|d   }d}t        |t^        «      rU|ja                  «       sEtc        |je                  «       t>        jf                  jh                  «      r|jk                  «       }nd}|�rt        |tl        «      r‰‰ j
                  jo                  |jp                  «      }t        |t>        jr                  jt                  «      r¿tw        jx                  |«      t{        j|                  |j~                  j€                  «      d<   nt        |t‚        «      ro|j„                  }t        |t>        jr                  jt                  «      r?tw        jx                  |«      t{        j|                  |j~                  j€                  «      d<   t        |t†        «      rJ ‚t‰        ‰«      r1t‹        ‰ ‰|‰ jŒ                  ‰ jŽ                  ‰ j�                  |«      }|S t        ‰ ‰|‰ jŒ                  ‰ jŽ                  ‰ j�                  |«      }|S # t        $ r¢}t!        dd|j#                  «       › d|j%                  «       › d|j	                  «       j&                  › d|D �	cg c]  }	|	j)                  «       ‘Œ nc c}	w c}	› d|› �
d|j#                  «       › d	�g t*        j,                  ¢|¬
«       Y d }~�Œ;d }~ww xY w)!NFz2failed to bind arguments when attempting to inlinezfunc='z' rà   z	; args = z; kwargs = z4Argument mismatch when attempting to trace function rM  r  z:Encountered unconverted argument when attempting to inlinezfunc: z, arg: zWAn argument to an inlined function was not successfully converted to a VariableTracker.r¬  )rs  r¾  r   z2Unsupported __setitem__/__setattr__ inline attemptzcode name: z, args: zAttempted to inline z: where first argument (self) is not a user-defined object.rß   Úbytecoderô   r(  c                 ó®   •— ‰j                  ‰j                  j                  ¬«      } t        ‰‰«      j	                  «       }d‰j
                  › d| › d|› �S )N)r·   zTRACE inlined call z from rô   )rÃ  Ú	positionsr·   rZ   rÇ  r¿  )Úheaderr‚  r„  Úcur_instr  Úparent_codes     €€€€r¦   Úget_trace_call_log_strzQInliningInstructionTranslator.build_inline_tracer.<locals>.get_trace_call_log_str  s[   ø€ Ø×7Ñ7Ø#×-Ñ-×4Ñ4ð 8ó �ô 2°+¸xÓH×OÑOÓQ�Ø,¨T¯\©\¨N¸&ÀÀÈÈ4È&ÐQÐQr¨   rË  zINLINING %s%s, %sTrD  rþ   )IrN  rt   rr   rp   r¹  r   r‰  r   Údont_skip_tracingÚpreviously_inlined_functionsr{  rº  r�  r‰  Ú	bind_argsró  r:   r�  rŒ  r”  rê  r   ré  r®  r¯  r°  rb   rÛ  r¿  r   r’   rˆ  r¨  Ú	_internalÚ	log_stateÚis_artifact_enabledra  ÚBytecoderR  rÌ  rƒ  rÄ  Útrace_call_logr¥  r^   r  r½   rw   Úis_realizedrü  Ú	peek_typerJ  rK  rµ  r…   rí  rî  r‰  r  rP  rQ  r0   rO  ÚforwardÚ__code__r†   r¦  rs   r-   Ú&InliningGeneratorInstructionTranslatorr|  r}  r~  )r  r~  r¤   r³  rû  Útracing_ctxÚprevious_resultÚ
sub_localsrÐ  r2  rú   r¸  r—  Úarg0Úshould_checkÚmoduler  r„  r•  r–  s   `                @@@r¦   r|  z1InliningInstructionTranslator.build_inline_tracer½  s•  û€ ô Øä$Ü*Ü.ðô
ð 	
ð 
ð  $Ÿ}™}›ˆØˆØ—m‘m×3Ñ3ˆô
 ×'Ò'©KØ"-×"JÑ"J×"NÑ"NØ�dó#ð ˆð ð )�àˆ>Ü2×CÑCÀDÓIˆFØ—>‘> UÑ*Ð*Ð*ä×+Ò+±ØAG�×8Ñ8¸Ñ>àˆ
ð	ØŸ™¨°°fÓ=ˆJð Ð%Ð%Ð%ä—‘ ×!2Ñ!2Ó!4Ó5ò 	ˆAÜ˜a¤Õ1ÜØXØ$ T F¨'°!°Ð5Ø yØ9Ô-×8Ñ8Ð9ö	ð	ð �<‰<Ð9Ñ9Ù”Z  Q¡¬×)LÑ)LÔMäØLØ% d§l¡l ^°8¸D¸6ÐBØ2°4·<±<°.Ð@zÐ{Øõ	ð ˆô �>‰>×#Ñ#×-Ñ-×AÑAÀ*ÔMØœ#Ÿ,™, tÓ,×0Ñ0Ó2Ð3Ð4ˆFÜ×Ñ˜wÒ&Ø×1Ñ1ˆHØ Ÿ-™-ˆK÷Rð Rô × Ñ  ¤zÐ2HÓ'IÔJÜ�	‰	Ð% t¨V°V·]±]ÔCò Ø˜‘7ˆDØˆLÜ˜$Ô 3Ô4¸T×=MÑ=MÔ=OÜ˜dŸn™nÓ.´·±·±Ô@ØŸ<™<›>‘Dà#(�LâÜ˜dÔ$4Ô5Ø#Ÿ]™]×8Ñ8¸¿¹ÓI�FÜ! &¬%¯(©(×*>Ñ*>Ô?ô $ŸK™K¨Ó/ô %×0Ñ0°·±×1HÑ1HÓIØ.òô   Ô&CÔDØ!ŸZ™Z�FÜ! &¬%¯(©(×*>Ñ*>Ô?ô $ŸK™K¨Ó/ô %×0Ñ0°·±×1HÑ1HÓIØ.ñô ˜dÔ$8Ô9Ð9Ð9ä˜ÔÜ;ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØóˆFð& ˆô 3ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØóˆFð ˆøôK ò 
	ÜØLØ  §¡£Ð 1°°D×4EÑ4EÓ4GÐ3HÈÈ$Ï-É-Ë/×JhÑJhÐIið jØ8<Ö=°˜3Ÿ?™?Õ,Ñ=ùÔ=Ð>¸kÈ&ÈðSàRÐSW×S`ÑS`ÓSbÐRcÐcdÐeðÜ&×1Ñ1ðð ÷	ó 	ûð
	ús%   ÃQ/ Ñ/	TÑ8ATÓ SÓ8TÔTc                óN  — | j                   }d|_        d|_        | j                  }t	        j
                  «       }|j                  r| j                  |j                  «      }	 |5  | j                  «        d d d «       | j"                  |_        d|_        | j$                  j&                  rt)        j*                  d «      S | j,                  €J ‚| j.                  |j.                  u r%|j0                  j3                  | j0                  «       |xj4                  | j4                  z  c_        t        j                  d|«       | j$                  j6                  j8                  j;                  |«       t<        j>                  stA        | tB        «      r—| jD                  r‹tG        |«      rttA        | tB        «      rd| jH                  rXtA        | tB        «      sJ ‚g }| j,                  jK                  «       s| j,                  g}t        jL                  tN        | |¬«       y | j,                  S tG        |«      rMtA        | tB        «      sJ ‚| j,                  jK                  «       sJ ‚tQ        | jR                  tU        «       ¬«      S | j,                  S # 1 sw Y   �ŒxY w# t        j                  $ r#}d|› d|› �}t        j                  |«       ‚ d }~wt        t        f$ r}d|_        ‚ d }~wt         $ r t        j                  d|«       ‚ w xY w# | j"                  |_        d|_        w xY w)	NFTz!Observed exception DURING INLING z : zFAILED INLINING %szDONE INLINING %srÙ  r‡  )+r  rŽ  r�  rÄ  r  ÚnullcontextrŒ  rŽ  r  r   r   r  r¥  r;   r<   r  r¤  r¼   r   r!  rh   rj  rx  rW  r|  r—  rˆ  r‰  Útraced_coderä   r   r¸  rN  r¤  Úis_generator_from_ctx_managerr-   Úgenerator_exhaustedÚis_constant_nonerò  r·  rz   Úgenerated_itemsra   )rÁ   r  r„  Ú
strict_ctxrÐ  rX  r¤   s          r¦   r}  z*InliningInstructionTranslator.inline_call_J  sž  € Ø—‘ˆØ&+ˆÔ#Ø(,ˆÔ%Ø�{‰{ˆä$×0Ñ0Ó2ˆ
Ø×"Ò"Ø×5Ñ5°f×6MÑ6MÓNˆJð	2Øñ Ø—‘”
÷ð& +/×*CÑ*CˆFÔ'Ø,1ˆFÔ)à�;‰;×"Ò"ä#×*Ñ*¨4Ó0Ð0à×#Ñ#Ð/Ð/Ð/à�>‰>˜V×-Ñ-Ñ-à×#Ñ#×*Ñ*¨4×+@Ñ+@ÔAà×(Ò(¨D×,JÑ,JÑJÕ(ä�	‰	Ð$ dÔ+Ø�‰×#Ñ#×/Ñ/×6Ñ6°tÔ<ä×4Ò4Ü�tÔCÔDØ×2Ò2ô ˜TÔ"Ü˜tÔ%KÔLØ×,Ò,ä! $Ô(NÔOÐOÐOð �Ø×+Ñ+×<Ñ<Ô>Ø ×0Ñ0Ð1�DÜ×,Ñ,¬]¸DÀtÖLà×+Ñ+Ð+ä˜DÔ!Ü! $Ô(NÔOÐOÐOØ×+Ñ+×<Ñ<Ô>Ð>Ð>Ü+Ø×(Ñ(Ü"2Ó"4ôð ð
 ×+Ñ+Ð+÷Añ ûä×$Ñ$ò 	Ø5°d°V¸3¸q¸cÐBˆCÜ�I‰I�cŒNàûÜœYÐ'ò 	ð !ˆAŒLØûÜò 	Ü�I‰IÐ*¨DÔ1Øð	ûð +/×*CÑ*CˆFÔ'Ø,1ˆFÕ)úsH   Á#J Á%JÁ6J ÊJÊJ ÊLÊ+K	Ë	LËK#Ë#$LÌL
 Ì
L$c                ój  •— |j                  «       }|d   }	t        |	t        «      s|	j                  }	|j                  j
                  }
|
r|
j                  j                  |«      nd }|�%|j                  }|j                  }|j                  }n`t        |«      }t        |«       t        |«      }t        «       D �ci c]  }|t        ||«      “Œ }}|
rt!        |||¬«      |
j                  |<   t"        ‰| �I  |j                  i ||	||||||||j&                  |j(                  dz   |j*                  |j,                  |j.                  |j0                  |¬«       || _        || _        |j6                  | _        d | _        |j:                  j=                  «       | _        |j>                  | _        y c c}w )NÚ__builtins__)rm  r£  rÆ  r   )r   r$  rW  rY  r{  r|  r}  r~  rm  rÆ  rÄ  r¿  r‡  r  rŠ  r»  r’  r£  ) Úget_globalsrN  rÿ   Ú__dict__r   r‰  Úinlined_code_cacher{  rm  r£  rÆ  r!   r    r   r+   r|  r   rF  rG  r¿  r‡  r  rŠ  r»  r’  Úfuncvarr  r¾  rx  r½  r6  r  )rÁ   r  r„  r{  r|  r}  r~  r¸  rW  rY  r¥  Úcachedrm  r£  rÆ  rù   rM  s                   €r¦   rG  z&InliningInstructionTranslator.__init__—  s£  ø€ ð ×'Ñ'Ó)ˆ	Ø˜~Ñ.ˆ
Ü˜*¤dÔ+Ø#×,Ñ,ˆJð —m‘m×3Ñ3ˆÙ=H�×/Ñ/×3Ñ3°DÔ9ÈdˆàÐØ!×.Ñ.ˆLØ—n‘nˆGØ!×.Ñ.‰Lä/°Ó5ˆLÜ Ô-Ü! ,Ó/ˆGÜ9F»ÖI°A˜Aœw t¨QÓ/Ñ/ÐIˆLÐIÙÜ7GØ!-Ø#Ø!-ô8�×.Ñ.¨tÑ4ô 	‰ÑØ—=‘=ØØØ!Ø+Ø-Ø*GØ"7Ø%Ø%ØØ—=‘=Ø×,Ñ,¨qÑ0Ø"×2Ñ2Ø×,Ñ,Ø$×6Ñ6Ø—N‘NØð% 	ô 	
ð( ˆŒØˆŒØ×)Ñ)ˆŒØ#ˆÔØ%×5Ñ5×:Ñ:Ó<ˆÔØ×)Ñ)ˆ�ùòC Js   Â<F0c                ó.   — | j                   j                  S rŸ   )r  rŠ  rÚ   s    r¦   rŠ  z'InliningInstructionTranslator.fake_modeÖ  s   € à�{‰{×$Ñ$Ð$r¨   c                ó\   — t        j                  | j                  j                  «       «      S rŸ   )r   r  r  rÈ  rÚ   s    r¦   r  z)InliningInstructionTranslator.run_ctx_mgrÚ  s    € Ü×+Ñ+¨D¯K©K×,EÑ,EÓ,GÓHÐHr¨   c                ó’   — t         j                  sy| j                  j                  «       sy| j                  j                  «       syy)z«Check if comprehension speculation is allowed in this inlined context.

        Unlike should_compile_partial_graph(), this skips the exception table entry check.
        FT)r   rô  r¸  Ú should_allow_nested_graph_breaksr  rÁ  rÚ   s    r¦   r„  zAInliningInstructionTranslator._can_speculate_comprehension_nestedÝ  s9   € ô
 ×)Ò)ØØ�|‰|×<Ñ<Ô>ØØ�{‰{×7Ñ7Ô9ØØr¨   c                ó®   •— t         j                  rD| j                  j                  «       sy| j                  j                  «       syt        ‰| �  «       S yr  )r   rô  r¸  r½  r  rÁ  rF  ©rÁ   rM  s    €r¦   rÁ  z:InliningInstructionTranslator.should_compile_partial_graphê  sC   ø€ Ü×%Ò%Ø—<‘<×@Ñ@ÔBØØ—;‘;×;Ñ;Ô=ØÜ‘7Ñ7Ó9Ð9Ør¨   c                ód   •— t         j                  rt        ‰| �  ||«      S t	        dddg ¬«       y )NzGraph break in inlined functionrß   z2Graph breaks in an inlined call are not supported.r¬  )r   rô  rF  rÊ  r:   )rÁ   r¹   rÑ  rM  s      €r¦   rÊ  z3InliningInstructionTranslator.create_call_resume_ató  s5   ø€ ô
 ×%Ò%Ü‘7Ñ0°Ð7PÓQÐQÜØ5ØØLØö		
r¨   c                óF   — | j                  «       | _        d | _        t        ‚rŸ   )rÉ  rx  r¸   r9  ræ  s     r¦   r—  z*InliningInstructionTranslator.RETURN_VALUE  s   € Ø#Ÿx™x›zˆÔØ#'ˆÔ ÜÐr¨   c                óH   — | j                  |«      | _        d | _        t        ‚rŸ   )rT  rx  r¸   r9  ræ  s     r¦   r˜  z*InliningInstructionTranslator.RETURN_CONST  s#   € Ø#×/Ñ/°Ó5ˆÔØ#'ˆÔ ÜÐr¨   c                ó2  — d| j                   v r”| j                   d   j                  d«      sv| j                   d   }| j                  |«      }d|v r(t        j                  j
                  j                  |   }nt        |«      } t        | |«      |«      }t        ||«      }n[| j                  j                  d| j                   «      }t        |«      }| j                   } t        | |«      |«      }t        ||«      }t        |«      rt        |«      }|||fS )NrÉ   Únamedtuple_rn  Ú___unnamed_scope)rW  r^  r`  rˆ  r’  rs  rt  r±   rd   rM   r   r„  rO   rN   rU  rS   )	rÁ   r°   ra  rb  rc  Úfglobals_vtÚglobal_sourceÚglobals_nameÚglobals_sources	            r¦   Úget_globals_source_and_valuez:InliningInstructionTranslator.get_globals_source_and_value  s  € ð ˜Ÿ™Ñ'°·±¸zÑ0J×0UÑ0UØô1
ð Ÿ.™.¨Ñ4ˆKØ ×.Ñ.¨{Ó;ˆMØ +Ñ-ä—M‘M×2Ñ2×LÑLØ#ññ ô "0°Ó!<�ð ?œ/¨$°Ó>¸~ÓNˆKÜ& }°dÓ;‰MàŸ;™;×;Ñ;Ø" D§N¡NóˆLô *¨,Ó7ˆNØ!Ÿ^™^ˆNð @œ/¨$°Ó?ÀÓOˆKÜ-¨n¸dÓCˆMä�^Ô$ô ,¨MÓ:ˆMà˜{¨MÐ9Ð9r¨   c                ó  •— |j                   }|| j                  vr| j                  |«      S | j                  j                  | j                  u rt
        ‰| �  |«       y | j                  |«      \  }}}| j                  j                  j                  ||«      r6| j                  | j                  j                  j                  ||«      «       y | j                  |   }| j                  t        j                  | ||«      «       y rŸ   )rn  rW  r[  r   rw  rF  r^  rÊ  r  r3  r>  r4  rb   ro  )rÁ   r¹   r°   r¥   rÆ  rÇ  r¦  rM  s          €r¦   r^  z*InliningInstructionTranslator._load_global5  sÌ   ø€ Ø�{‰{ˆØ�t—~‘~Ñ%Ø×$Ñ$ TÓ*Ð*à�;‰;×#Ñ# t§~¡~Ñ5ô ‰GÑ  Õ&à,0×,MÑ,MÈdÓ,SÑ)ˆAˆ{˜MØ�{‰{×'Ñ'×DÑDÀ[ÐRVÔWØ—	‘	˜$Ÿ+™+×2Ñ2×<Ñ<¸[È$ÓOÕPàŸ™ tÑ,�Ø—	‘	œ/×/Ñ/°°e¸]ÓKÕLr¨   c                ól  •— | j                   j                  | j                  u rt        ‰| �  |«       y | j                  «       }t        |t        «      rt        d|j                  dg ¬«       |j                  }| j                  |«      \  }}}| j                   j                  j                  |||«       y )Nz3Storing Tensor hook handle in globals (inline call)ri  r¬  )r   rw  rW  rF  rl  rÉ  rN  rŽ   r:   rn  rÊ  r  Ú
store_attr)rÁ   r¹   r¦  r°   Ú_fglobals_valuerÆ  r¥   rM  s          €r¦   rl  z*InliningInstructionTranslator.STORE_GLOBALF  s•   ø€ Ø�;‰;×#Ñ# t§~¡~Ñ5ô ‰GÑ  Õ&à—H‘H“JˆEÜ˜%Ô!8Ô9ÜØQØ ŸK™KØ 8Øõ	ð —;‘;ˆDØ.2×.OÑ.OÐPTÓ.UÑ+ˆO˜[¨!Ø�K‰K×$Ñ$×/Ñ/°¸TÀ5ÕIr¨   )
r  r   r~  ro   r¤   rÃ  r³  rz  rÆ   rb   )r~  ro   rÆ   ztrace_rules.SkipResult)
r  r   r~  ro   r¤   rÃ  r³  rz  rÆ   rº  rÆ  )r  rÈ   r„  rË  r{  rz  r|  rz  r}  rŒ   r~  rˆ   r¸  z7BaseUserFunctionVariable | LocalGeneratorObjectVariablerÆ   rÇ   rÉ  rÅ  r  rÈ  rÄ  )r°   r´   rÆ   z#tuple[Any, VariableTracker, Source])rÉ   rÊ   rË   rì   rÌ   r  r»  rÖ  r�  r|  r}  rG  rÍ  rŠ  r  r„  rÁ  rÊ  r—  r˜  rÊ  r^  rl  rN  rO  s   @r¦   rº  rº  e  s—  ø… Ù*à+Ó+à%Ó%àð)àð)ð 'ð)ð (ð	)ð
 +ð)ð 
ò)ó ð)ð ð?Ø&ð?à	ò?ó ð?ðB ðJØðJà&ðJð (ðJð +ð	Jð
 
'òJó ðJóXK,ðZ=*à)ð=*ð ð=*ð 4ð	=*ð
 5ð=*ð (Bð=*ð  3ð=*ð Ið=*ð 
õ=*ð~ ò%ó ð%óIóõð
àð
ð $=ð
ð 
õ	
óó
ð
(:Øð(:à	,ó(:õTM÷"Jñ Jr¨   rº  c                  óx   ‡ — e Zd ZU ded<   dˆ fd„Zdˆ fd„Zdd„Zdd„Zdd„Zdˆ fd„Z	dˆ fd	„Z
dd
„Zdd„Zˆ xZS )r¤  r€  r±  c                óN   •— t        ‰| �  |i |¤Ž g | _        d| _        d| _        y r  )rF  rG  r±  r¯  r®  )rÁ   r¤   r³  rM  s      €r¦   rG  z/InliningGeneratorInstructionTranslator.__init__]  s-   ø€ Ü‰Ñ˜$Ð) &Ò)Ø!ˆÔØ#(ˆÔ Ø-2ˆÕ*r¨   c                ó–   •‡ — t        ‰ j                  ‰ j                  ˆ fd„«      5  t        ‰‰ �  «       cd d d «       S # 1 sw Y   y xY w)Nc                 ó   •— ‰ j                   S rŸ   r{  rÚ   s   €r¦   r§   zEInliningGeneratorInstructionTranslator.inline_call_.<locals>.<lambda>d  s   ø€ À4×CTÑCT€ r¨   )rv  r   rÄ  rF  r}  r¿  s   `€r¦   r}  z3InliningGeneratorInstructionTranslator.inline_call_c  s8   ù€ Ü  §¡¨d¯k©kÓ;TÓUñ 	*Ü‘7Ñ'Ó)÷	*÷ 	*ò 	*ús	   §?¿Ac                 ó   — yr  rÍ   rÚ   s    r¦   rÁ  zCInliningGeneratorInstructionTranslator.should_compile_partial_graphg  s   € àr¨   c                óL  — | j                  «       }| j                  j                  |«       t        | j                  «      t        kD  rt
        j                  ‚| j                  t        j                  d «      «       t        j                  s| j                  r|| _        t        ‚y rŸ   )rÉ  r±  rä   rã   rv   r   ÚInfiniteGeneratorErrorr>  rh   rj  r   r¸  r®  rx  r;  )rÁ   r¹   Útops      r¦   ÚYIELD_VALUEz2InliningGeneratorInstructionTranslator.YIELD_VALUEk  s~   € Ø�h‰h‹jˆØ×Ñ×#Ñ# CÔ(Üˆt×#Ñ#Ó$Ô'9Ò9Ü×,Ñ,Ð,Ø�	‰	Ô"×)Ñ)¨$Ó/Ô0ä×5Ò5Ø×1Ò1à#&ˆDÔ äÐð	 2r¨   c                óÞ   — | j                   d   }t        |t        «      sN| j                  «        t	        j
                  | t        «      j                  | |gi «      }| j                  |«       y y r  )	r�  rN  rz   rÉ  rb   ro  r	  r?  r>  )rÁ   r¹   rØ  Úress       r¦   ÚGET_YIELD_FROM_ITERz:InliningGeneratorInstructionTranslator.GET_YIELD_FROM_ITERy  sV   € Ø�j‰j˜‰nˆÜ˜#Ô3Ô4Ø�H‰HŒJÜ!×'Ñ'¨¬dÓ3×AÑAÀ$ÈÈÈrÓRˆCØ�I‰I�c�Nð 5r¨   c                ó0   •— d| _         t        ‰| �	  |«      S rr  )r¯  rF  r—  ©rÁ   r¹   rM  s     €r¦   r—  z3InliningGeneratorInstructionTranslator.RETURN_VALUE€  ó   ø€ Ø#'ˆÔ Ü‰wÑ# DÓ)Ð)r¨   c                ó0   •— d| _         t        ‰| �	  |«      S rr  )r¯  rF  r˜  rÜ  s     €r¦   r˜  z3InliningGeneratorInstructionTranslator.RETURN_CONST„  rÝ  r¨   c                óÂ  — t        | j                  «      dk\  sJ ‚| j                  «       }| j                  d   }|j                  «       st	        dddg ¬«       	 |j                  | «      }t        | j                  t        «      r| j                  dkD  sJ ‚| xj                  dz  c_        | j                  |«       | j                  |«       y # t        t        j                  f$ rw}t        |t        j                  «      rt        j                  | «       | j                  «        | j                  t        j                   |j"                  «      «       Y d }~y d }~ww xY w)	Nrà  ry  úUnreachable sub-generator coderß   ú@Should only be encountered while implementing generator support.r¬  r   r   )rã   r�  rÉ  r°  r:   r¶  rN  r¸   r¶   r>  r×  r·  r   r¸  rñ  rh   rj  r¦  ©rÁ   r¹   r[  rØ  Úexs        r¦   Ú
YIELD_FROMz1InliningGeneratorInstructionTranslator.YIELD_FROMˆ  s"  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆØ×#Ñ#Ô%ô Ø8ØØ^Øõ	ð	#Ø×#Ñ# DÓ)ˆCô ˜4×3Ñ3´SÔ9Ø×,Ñ,¨qÒ0ðð1ð ×$Ò$¨Ñ)Õ$à�I‰I�cŒNà×Ñ˜TÕ"øô# œs×<Ñ<Ð=ò 	9Ü˜"œc×;Ñ;Ô<Ü×-Ñ-¨dÔ3ð �H‰HŒJØ�I‰IÔ&×-Ñ-¨b¯h©hÓ7×8Ñ8ûð	9ús   ÁC ÃEÃ'A-EÅEc                ó  — t        | j                  «      dk\  sJ ‚| j                  «       }| j                  d   }t        |t        t
        f«      s>t        |t        «      rrt        |j                  t        j                  j                  «      rD|j                  «       r$	 |j                  | «      }| j                  |«       y t-        dddg ¬«       y t-        dd	t/        |«      › �d
t/        |«      › d�g ¬«       y # t        t        j                   f$ rl}t"        j$                  dk  r| j                  «        | j                  t'        j(                  |j                  «      «       | j+                  |«       Y d }~y d }~ww xY w)Nrà  ry  r*  rà  rß   rá  r¬  zSEND with bad typez
TOS type: z(Attempted to SEND with unsupported type rM  )rã   r�  rÉ  rN  ry   rq   r’   r¦  ÚcollectionsÚabcÚIteratorr°  r¶  r>  r·  r   r¸  rR  rÌ  rh   rj  rà  r:   r`   râ  s        r¦   ÚSENDz+InliningGeneratorInstructionTranslator.SEND®  s6  € Ü�4—:‘:‹ !Ò#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆÜ�cÔ,Ô.JÐKÔLÜ�sÔ5Ô6Ü˜3Ÿ9™9¤k§o¡o×&>Ñ&>Ô?à×#Ñ#Ô%ð#Ø×+Ñ+¨DÓ1�Cð —I‘I˜c•Nô Ø<ØØ bØö	ô Ø,Ø$¤W¨S£\ NÐ3ØFÄwÈsÃ|ÀnÐTUÐVØö	øô5 &¤s×'DÑ'DÐEò 
$ô ×'Ñ'¨'Ò1ØŸ™œ
Ø—I‘IÔ.×5Ñ5°b·h±hÓ?Ô@Ø—I‘I˜d—O‘Oûð
$ús   ÂC; Ã;F ÄA"E;Å;F )r¤   r   r³  r   rÆ   rÇ   rÆ  r  rÄ  )rÉ   rÊ   rË   rÌ   rG  r}  rÁ  r×  rÚ  r—  r˜  rä  ré  rN  rO  s   @r¦   r¤  r¤  Y  s7   ø… Ø*Ó*õ3õ*óóóõ*õ*ó$#÷L*r¨   r¤  )r°   r´   rÆ   ztypes.ModuleType)rÆ   r;  )r£   rÈ   rÆ   úGenerator[None, None, None])rJ  zCallable[..., object]rÆ   zCallable[..., Any])rT  rŸ  rÆ   rº   )rd  rº   rÆ   rÕ   )rÁ   rÈ   rp  úCallable[[object], bool]r>  rº   rÆ   rº   )r~  r   rÆ   r´   )rµ  )r¦  rb   r—  r¶   rÆ   r´   )rp  rë  r>  rº   rÆ   r<  )r£   rÈ   r  r1   r  r…  rÆ   rÇ   )r>  rº   r%  r´   rÆ   zYCallable[[Callable[..., None]], Callable[[InstructionTranslatorBase, Instruction], None]])r   rA   r„  rË  rp  zCallable[[], int]rÆ   rê  (  rì   Ú
__future__r   ræ  Úcollections.abcr  r6  rí   ra  rH  r®   rE  r®  rÅ  r   rk  r~  rR  Ú	threadingri  ru  rO  rP  r   Útypingr   r   r   r   r	   r
   Útyping_extensionsr   rˆ  Útorch._loggingÚtorch._dynamo.dynamo_profilerr   r   Útorch._dynamo.excr   r   Útorch._guardsr   r   r   Útorch._logging.structuredr   Ú%torch.fx.experimental.symbolic_shapesr   Útorch.utils._functoolsr   rß   r   r   r   r  r   r   Úbytecode_analysisr   r   r   r    Úbytecode_transformationr!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   Úcodegenr1   Úcomprehension_graph_breakr2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   Úfuncname_cacher=   Úguardsr>   r?   Úoutput_graphr@   rA   rB   Ú	polyfillsrC   rD   rE   rF   rG   Úreplay_recordrH   rI   rÀ  rJ   rK   rL   r“  rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   ÚutilsrW   rX   rY   rZ   r[   r\   r]   r^   r_   Úvariables.baser`   ra   rb   Úvariables.builderrc   rd   re   Úvariables.builtinrf   rg   Úvariables.constantrh   Úvariables.ctx_managerri   rj   rk   rl   ry  rn   Úvariables.functionsro   rp   rq   rr   rs   rt   ru   Úvariables.iterrv   Úvariables.lazyrw   rz  rx   ry   rz   r{   r|   r}   Úvariables.miscr~   r   r€   r�   r‚   rƒ   r„   Úvariables.nn_moduler…   r†   Úvariables.setsr‡   r?  rˆ   Úvariables.tensorr‰   rŠ   r‹   Úvariables.torch_functionrŒ   r�   Úvariables.user_definedrŽ   r�   r�   r‘   r’   r“   r”   r•   Útorch._subclasses.fake_tensorr–   r’  r—   Ú	getLoggerrÉ   r  r¨  ÚgetArtifactLoggerrª  rŸ  rÎ  rÕ  rÿ  r!  rý   r?  r�   rÌ   Úcontainsr    rÓ  r«   r¬   Úcacher±   Ú	dataclassr³   rÏ   rñ   r  r  r  r  r  r#  r%  r²  ræ   r¤  r9  r;  rK  rU  rh  rv  r­  r…  r¨  r  r  r=  rô  r?  rQ  rÈ   rD  rÌ  Ú_nb_opsr|  r  rv  rº  r¤  )rù   rú   rå   r¥   s   0000r¦   ú<module>r     sï  ðòõ0 #ã Û Û Û Û Û 
Û Û Û Û Û Û Û Û 	Û 
Û Û Û Û Û Ý ß I× IÝ $ã Û ß Rß Oß CÑ CÝ /Ý <Ý /÷÷ ÷ó ÷÷ ÷ ÷ ñ õ" 'Ý Ý L÷÷ ÷ õ )ß /ß NÑ N÷õ ÷ :÷ñ ÷
	÷ 	ó 	÷ ;÷
÷ 
õ 
÷ GÑ Fß RÑ Rß CÝ 0÷ó õ /÷÷ ñ õ /Ý /÷÷ ÷÷ ñ ÷ QÝ 'Ý 2ß WÑ W÷÷õ ñ ß=Ñ=å<å'à€g×Ò˜Ó!€Ø—.’.×2Ò2°8¸^ÓL€Ø—’×1Ò1°(¸LÓI€Ø—>’>×3Ò3°H¸nÓMÐ Ø—^’^×5Ò5°hÐ@PÓQÐ Ø€i‡o‚oÓ€à4RÐ4L×4RÒ4RÓ4T÷'Ù,0¨A¨q€A��qÓ×'Ò'Ñ'ó'Ð �^ó ñ " (×"3Ò"3Ó4×BÒB€Ù˜XŸ]š]Ó+×9Ò9€
ñÐ �DÑ ñ!Ð �HÑ ð
 ×ÒØ'ñ(à(ñ)ð ˆyó ð ‡‚ò)ó ð)ð ×Ò÷ð ó ðð< ×Ò÷Ið Ió ðIðX ×Ò÷
ð 
ó ð
ð ×Ò÷/ð /ó ð/÷3ñ 3ð. ‡‚ò4ó ð4ð ×Òð)Ø!ð)à ò)ó ð)ð& ×Òð$Ø!ð$à ò$ó ð$ð ×Ò÷ð ó ðôD	˜~ô 	ô	�Iô 	ô�9ô óóAð ‡‚ò.ó ð.ð&'Ø
#ð'à&ð'ð ð'ð 
ó	'ðT €óB@ô&@ðF]Ø&ð]Ø.2ð]à=ô]ð@	RØ!ðRØ'0ðRØ;LðRà	ôRðBBØðBØ"ðBðôBôJJ¡õ Jð2 ×Ò÷`ð `ó ñ`ôFP8;Ù'öP8;ôfp^Ñ5õ ^ðB	 ×Ò�wÒð Ÿš÷ñ
 ˆF�Aò	 	Ù!Ø# vÑ-ˆF�1�2‰J°W¸VÀAÀB¸Z¸LÐ3Iõ	
óÑð ×Òð:=Øð:=à
ð:=ð (ð:=ð !ò	:=ó ñ:=ôzqJÑ$=õ qJôhÑ-Jö ùóIl'ùóRZs   Ë.VÔ3$V