ó
    Eñiœà ã                  óÈ  • % S r SSKJr  SSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKJr  SSKJrJrJrJrJrJrJr  SSK J!r!  SSK"r"SSK#r"SSK$J%r%J&r&  SSK'J(r(J)r)  SS	K*J+r+J,r,J-r-  SS
K.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5J6r6J7r7Jr8J9r9J:r:  SSK;J<r<J=r=J>r>J?r?  SSK@JArAJBrBJCrCJDrDJErEJFrFJGrGJHrHJIrIJJrJJKrKJLrLJMrMJNrNJOrO  SSKPJPrP  SSKQJRrR  SSK6JSrSJTrTJUrUJVrVJWrWJXrXJYrYJZrZJ[r[  SSK\J]r]  SSK^J_r_J`r`  SSKaJbrbJcrcJdrd  SSKeJfrfJgrgJhrhJiriJjrj  SSKkJlrlJmrm  SSKnJoroJprpJqrqJrrr  SSKsJtrtJuruJvrvJwrwJxrxJyryJzrzJ{r{  SSK9J|r|J}r}  SSK~JrJ€r€J�r�J‚r‚JƒrƒJ„r„J…r…J†r†J‡r‡  SSKˆJ‰r‰JŠrŠJ‹r‹  SSKŒJ�r�JŽrŽJ�r�  SSK�J‘r‘  SS K’J“r“J”r”  SS!K•J–r–J—r—J˜r˜J™r™  SS"KšJ›r›Jœrœ  SS#K�JžržJŸrŸJ r J¡r¡J¢r¢J£r£J¤r¤  SS$K¥J¦r¦  SS%K§J¨r¨  SS&K©JªrªJ«r«J¬r¬J­r­J®r®J¯r¯  SS'K°J±r±J²r²J³r³J´r´JµrµJ¶r¶J·r·  SS(K¸J¹r¹Jºrº  SS)K»J¼r¼  SS*K½J¾r¾J¿r¿  SS+KÀJÁrÁJÂrÂ  SS,KÃJÄrÄJÅrÅJÆrÆJÇrÇJÈrÈ  \(       a  SS-KJÉrÉJÊrÊJËrË  SS.KÌJÍrÍ  SS/KÎJÏrÏ  \GR                   " \Ñ5      rÒ\"GR¦                  GR©                  \ÑS05      rÕ\"GR¦                  GR©                  \ÑS15      rÖ\"GR¦                  GR©                  \ÑS25      r×\"GR¦                  GR©                  \ÑS35      rØ\GR²                  " 5       rÚ\¾GR¶                  " 5        V Vs0 s H  u  pU \‘" U5      GR¸                  _M     snn rÝS4\ÞS5'   \‘" \GR¾                  5      GR¸                  rà\‘" \GRÂ                  5      GR¸                  râS6 \ÝS7'   S8 \ÝS9'   \\:GRd                  \Æ\Ç4   rãS:\ÞS;'   \	GRÈ                  SpS< j5       rå\GRÌ                   " S= S>5      5       rç\GRÌ                   " S? S@5      5       rè\GRÌ                   " SA SB5      5       ré\GRÌ                   " SC SD5      5       rê " SE SF5      rë\	GRÈ                  SqSG j5       rì\GRÚ                      SrSI j5       rî\GRÚ                      SrSJ j5       rï\GRÌ                   " SK SL5      5       rð " SM SN\ñ5      rò " SO SP\ó5      rô " SQ SR\ó5      rõSsSS jröStST jr÷\	GRÈ                  SuSU j5       rø\	GRÈ                  SvSV j5       rù\	GRÈ                  SwSW j5       rú\GRÌ                   " SX SY5      5       rû        SxSZ jrüS[rý      SyS\ jrþ        SzS] jrÿ      S{S^ jGr  " S_ S`G\5      Gr\GRÌ                   " Sa Sb5      5       Gr " Sc SHG\Sd9Gr " Se SfG\5      Gr\GR                  Sg:¼  a=  \GR                   VVs/ s H!  u  p#G\" G\ShU;   a  USiS OSjUSiS  35      PM#     snnGr	\GRÚ                          S|Sk j5       Gr
 " Sl SmG\5      Gr " Sn SoG\5      Grgs  snn f s  snnf )}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ÚOptionalÚTYPE_CHECKINGÚ	TypeAliasÚUnion)Ú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)	Ú!augment_exc_message_with_hop_nameÚBackendCompilerFailedÚcollapse_resume_framesÚformat_frame_infoÚget_stack_above_dynamoÚResumePrologueTracingErrorÚStepUnsupportedÚunimplementedÚUnsupported)Ú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ÚTORCH_DYNAMO_RESUME_IN_PREFIX)Ú
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)ÚCONSTANT_VARIABLE_NONEÚConstantVariable)ÚContextWrappingVariableÚGenericContextWrappingVariableÚWithEnterFunctionVariableÚWithExitFunctionVariable)ÚConstDictVariableÚSetVariable)Ú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)ÚSymbolicStreamState)Úsupported_comparison_opsÚSymNodeVariable)Ú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   • [        U / [        U5      Q0 5      $ ©N)Úhandle_containsÚreversed©ÚtxÚargsÚ_s      Ú[/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_dynamo/symbolic_convert.pyÚ<lambda>r¥   Ø   s   € ´ØÐŒ(�4‹.Ð˜2ô1ó    Úinc           
     óJ   • [        U [        U / [        U5      Q0 5      /0 5      $ r�   )Ú
handle_notrž   rŸ   r    s      r¤   r¥   r¥   Û   s&   € ´JØŒ˜Ð.œx¨›~Ð.°Ó	3Ð4°bô5r¦   znot inr
   ÚExceptionValsc                ó.   • [         R                  " U 5      $ )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                  ó|   • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	rS
\S'   SrS\S'   SrS\S'   SS jrSS jr	Sr
g)ÚSpeculationEntryéð   ÚstrÚfilenameÚintÚlinenoÚinstruction_pointerr-   ÚinstFÚboolÚ_failedNzOptional[bool]Úerror_on_graph_breakzOptional[GraphCompileReason]Úreasonc                ó�   • SU l         Xl        U R                  b  U R                  R                  nOSn[        R                  " US9e)zL
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_analysisÚ*SpeculationEntry.fail_and_restart_analysisû   s@   € ð ˆŒØ$8Ô!Ø�;‰;Ñ"Ø!Ÿ[™[×/Ñ/‰Nà@ˆNÜ×,Ò,¸NÑKÐKr¦   c                óh   • U R                   (       a!  U R                  c   eU R                  Ul        gg©NTF©rº   r»   )rÀ   r¡   s     r¤   ÚfailedÚSpeculationEntry.failed  s/   € Ø�<�<Ø×,Ñ,Ñ8Ð8Ð8Ø&*×&?Ñ&?ˆBÔ#ØØr¦   rÅ   )r»   r¹   ÚreturnÚNone)r¡   ÚInstructionTranslatorBaserÈ   r¹   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__rº   r»   r¼   rÁ   rÆ   Ú__static_attributes__© r¦   r¤   r±   r±   ð   sC   ‡ àƒMØƒKØÓØ
ÓØ€GˆTÓà+/Ð˜.Ó/Ø+/€FÐ(Ó/ô
L÷r¦   r±   c                  ó’   • \ rS rSr% Sr\R                  " \S9rS\	S'   Sr
S\	S'   S	rS
\	S'   SS jrSS jr          SS jrSrg)ÚSpeculationLogi  a  
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_gradc                ó   • SU l         g ©Nr   ©r×   ©rÀ   s    r¤   ÚrestartÚSpeculationLog.restart  s	   € Øˆ�
r¦   c                óF   • U R                   R                  5         SU l        g rÚ   )rÖ   Úclearr×   rÜ   s    r¤   rà   ÚSpeculationLog.clear"  s   € Ø�‰×ÑÔØˆ�
r¦   c                ó<  • [        U R                  5      U R                  :X  a%  U R                  R                  [	        XX45      5        U R                  U R                     nSnU R                  S:w  a]  U R                  U R                  S-
     nSUR
                   SUR                   SUR                  R                   SUR                   S3	nUR                  U:X  a   UR
                  U:X  a  UR                  U:X  d†  [        S	U R                   S
[        U R                  5       SUR
                   SUR                   SUR                  R                   SUR                   SU SU SUR                   SU SU S35      eU =R                  S-  sl        U$ )zz
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¤   ÚnextÚSpeculationLog.next&  s�  € ô ˆt�|‰|Ó §
¡
Ó*Ø�L‰L×ÑÜ  Ð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¦   rÛ   N©rÈ   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Ó     sl   ‡ ñð '2×&7Ò&7ÈÑ&M€GÐ#ÓMØ€Eˆ3ƒNð */Ð  $Ó.ôôð-Øð-Ø%(ð-Ø?Bð-ØJUð-à	÷-r¦   rÓ   c                  óJ   • \ rS rSr% \R
                  " \S9rS\S'   SS jr	Sr
g)	Ú
LocalStateiV  rÔ   zdict[str, FrameStateSizeEntry]Úautomatic_dynamicc                ób   • SR                  S U R                  R                  5        5       5      $ )NÚ
c              3  óP   #   • U  H  u  pU S UR                  5        3v •  M     g7f)ú: N)Úrender)Ú.0ÚkÚvs      r¤   Ú	<genexpr>Ú$LocalState.render.<locals>.<genexpr>]  s'   é € ð 
Ú-K¡T Qˆqˆc��A—H‘H“J�<Õ Ò-Kùs   ‚$&)Újoinr÷   ÚitemsrÜ   s    r¤   rü   ÚLocalState.render\  s/   € Ø�y‰yñ 
Ø-1×-CÑ-C×-IÑ-IÔ-Kó
ó 
ð 	
r¦   rÑ   N©rÈ   r³   )rË   rÌ   rÍ   rÎ   rò   ró   Údictr÷   rÏ   rü   rÐ   rÑ   r¦   r¤   rö   rö   V  s#   ‡ à8C×8IÒ8IØñ9ÐÐ5ó ÷
r¦   rö   c                  ó8   • \ rS rSr% S\S'   S\S'   SrS\S'   S	rg)
ÚDistributedStateic  r   Ú
compile_pgrö   Úlocal_stateNzOptional[list[LocalState]]Ú
all_statesrÑ   )rË   rÌ   rÍ   rÎ   rÏ   r  rÐ   rÑ   r¦   r¤   r  r  c  s   ‡ àƒOØÓØ-1€JÐ*Ö1r¦   r  c                  ó~   • \ rS rSr% \" 5       rS\S'   \S
S j5       r\SS j5       r	\SS j5       r
\SS j5       rSrg	)ÚTensorifyStateij  zset[str]Úforce_specializationsc                ó:   • U R                   R                  U5        g r�   )r  Úadd©Úclsr×   s     r¤   Ú
specializeÚTensorifyState.specializep  s   € à×!Ñ!×%Ñ% eÕ,r¦   c                ó   • XR                   ;   $ r�   )r  r  s     r¤   Úshould_specializeÚ TensorifyState.should_specializet  s   € à×1Ñ1Ñ1Ð1r¦   c                ó8   • U R                   R                  5         g r�   )r  rà   ©r  s    r¤   rà   ÚTensorifyState.clearx  s   € à×!Ñ!×'Ñ'Õ)r¦   c                ó2   • [        U R                  5      S:H  $ rÚ   )rç   r  r  s    r¤   ÚemptyÚTensorifyState.empty|  s   € ä�3×,Ñ,Ó-°Ñ2Ð2r¦   rÑ   N)r×   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  j  s_   ‡ ñ '*£eÐ˜8Ó+àó-ó ð-ð ó2ó ð2ð ó*ó ð*ð ó3ó ó3r¦   r  c                 ó6   • [         R                  " [        5      $ r�   )Útorchdynamo_loggingÚget_step_loggerÚlogrÑ   r¦   r¤   Ú_step_loggerr%  �  s   € ä×.Ò.¬sÓ3Ð3r¦   rÊ   c              #  ó<  #   • U R                   R                  nU R                   R                  n / U R                   l        SU R                   l        S v •  XR                   l        X R                   l        g ! XR                   l        X R                   l        f = f7frÚ   )Úspeculation_logrÖ   r×   )r¡   rÖ   r×   s      r¤   Ú save_and_restart_speculation_logr(  †  s€   é € ð × Ñ ×(Ñ(€GØ×Ñ×$Ñ$€Eð)Ø%'ˆ×ÑÔ"Ø#$ˆ×ÑÔ Ûà%,×ÑÔ"Ø#(×ÑÕ øð &-×ÑÔ"Ø#(×ÑÕ üs   ‚-B°&A7 Á!BÁ7"BÂBc              #  ó°   #   •  U R                   R                  nSU R                   l        S v •  XR                   l        g ! WU R                   l        f = f7f©NF)ÚoutputÚshould_exit)r¡   Útmps     r¤   Ú(temporarely_allow_writes_to_output_graphr.  š  s>   é € ð$Ø�i‰i×#Ñ#ˆØ %ˆ�	‰	ÔÛà #�	‰	Õø ˆ�	‰	Õüs   ‚A„+A  ¯AÁ AÁAc                  ól   • \ rS rSr% S\S'   S\S'   S\S'   SrS	\S
'   SS jrSS jr      SS jrSr	g)ÚBlockStackEntryi¦  r-   r¸   zInstruction | NoneÚtargetrµ   Ústack_indexNzHOptional[Union[ContextWrappingVariable, GenericContextWrappingVariable]]Úwith_contextc                ó   • U R                   S L$ r�   )r3  rÜ   s    r¤   Úcan_restoreÚBlockStackEntry.can_restore°  s   € Ø× Ñ ¨Ð,Ð,r¦   c                óJ  • U R                   c   eU R                  (       al  [        U R                  S5      (       aQ  U R                  R                  (       a6  [	        U R                   S-
  [        U R                  R                  5      5      $ [	        U R                   S-
  5      $ )NÚtarget_valuesr   )r2  r3  Úhasattrr8  rK   ÚtuplerÜ   s    r¤   Ú	resume_fnÚBlockStackEntry.resume_fn³  s…   € Ø×ÑÑ+Ð+Ð+à××Ü˜×)Ñ)¨?×;Ñ;Ø×!Ñ!×/×/äØ× Ñ  1Ñ$¤e¨D×,=Ñ,=×,KÑ,KÓ&Lóð ô ˜t×/Ñ/°!Ñ3Ó4Ð4r¦   c                ó²   • U R                   c   eU(       a  U R                   R                  5       (       d  U(       d  U R                   R                  U5      $ g r�   )r3  Úexit_on_graph_breakÚexit)rÀ   r¡   Úis_graph_breaks      r¤   r?  ÚBlockStackEntry.exitÀ  sJ   € ð × Ñ Ñ,Ð,Ð,æ˜t×0Ñ0×DÑD×FÑFÞØ×$Ñ$×)Ñ)¨"Ó-Ð-Ør¦   rÑ   r  )rÈ   rK   )r¡   rÊ   r@  r¹   rÈ   zVariableTracker | None)
rË   rÌ   rÍ   rÎ   rÏ   r3  r5  r;  r?  rÐ   rÑ   r¦   r¤   r0  r0  ¦  sQ   ‡ ð ÓØÓØÓð 	ð ð ó ô-ô5ðØ+ðØ=Aðà	÷r¦   r0  c                  ó   • \ rS rSrSrg)rê   iË  rÑ   N©rË   rÌ   rÍ   rÎ   rÐ   rÑ   r¦   r¤   rê   rê   Ë  ó   † Úr¦   rê   c                  ó   • \ rS rSrSrg)ÚReturnValueOpiÏ  rÑ   NrC  rÑ   r¦   r¤   rF  rF  Ï  rD  r¦   rF  c                  ó   • \ rS rSrSrSrg)ÚYieldValueOpiÓ  zM
Signal to the symbolic tracer to stop and return control flow to the
caller
rÑ   N)rË   rÌ   rÍ   rÎ   rñ   rÐ   rÑ   r¦   r¤   rH  rH  Ó  s   † ôr¦   rH  c                ó¶   ^^• [        [        R                  " U 5      R                  5      m[	        U 5      m[
        R                  " U 5      SUU4S jj5       nU$ )Nc                óf   >• U R                  TR                  X R                  T5      0 5      5        g r�   )ÚpushÚcall_functionÚpopn)rÀ   r¸   Úfn_varÚnargss     €€r¤   ÚimplÚstack_op.<locals>.implÞ  s%   ø€ à�	‰	�&×&Ñ& t¯Y©Y°uÓ-=¸rÓBÕCr¦   )rÀ   ÚInstructionTranslatorr¸   r-   rÈ   rÉ   )rç   ÚinspectÚ	signatureÚ
parametersrf   Ú	functoolsÚwraps)ÚfnrP  rN  rO  s     @@r¤   Ústack_oprY  Ú  sL   ù€ Ü”×!Ò! "Ó%×0Ñ0Ó1€EÜ˜RÓ €Fä‡_‚_�RÓ÷Dó ðDð €Kr¦   c                ó    • [        U [        R                  5      (       d  gU R                  R	                  S5      S   [
        R                  ;   $ )NFÚ.r   )Ú
isinstanceÚtypesÚ
ModuleTyperË   ÚsplitÚsysÚstdlib_module_names)Úmods    r¤   Ú	is_stdlibrc  å  s=   € Ü�cœ5×+Ñ+×,Ñ,ØØ�<‰<×Ñ˜cÓ" 1Ñ%¬×)@Ñ)@Ñ@Ð@r¦   c                óú   • U (       a  SS jnOSS jn[         R                  " U5       Vs/ s H  o"R                  PM     nn[        S [	        U5       5       5      nUR                  S5      nX4S-   US-    $ s  snf )Nc                ó    • U (       d   S5       eg )NÚmsgrÑ   ©Úxs    r¤   rX  Ú(get_assert_bytecode_sequence.<locals>.fnï  s   € ÞˆO�e‹O‘1r¦   c                ó   • U (       d   eg r�   rÑ   rg  s    r¤   rX  ri  ó  s	   € ÞˆH‘1r¦   c              3  óZ   #   • U  H!  u  pUR                  S 5      (       d  M  Uv •  M#     g7f)ÚPOP_JUMPN)Ú
startswith)rý   Úir¸   s      r¤   r   Ú/get_assert_bytecode_sequence.<locals>.<genexpr>ù  s!   é € ÐVÒ&6™7˜1¸$¿/¹/È*×:U—Q‘QÒ&6ùs   ‚+¢	+ÚRAISE_VARARGSr   )rh  r   rÈ   rÉ   )ÚdisÚget_instructionsré   rî   Ú	enumerater×   )Úwith_msgrX  r¸   ÚinstsÚ	begin_idxÚend_idxs         r¤   Úget_assert_bytecode_sequencerx  ë  sq   € æõ	ô	ô &)×%9Ò%9¸"Ô%=Ó>Ò%=˜T�[Œ[Ñ%=€EÐ>ô ÑV¤i°Ô&6ÓVÓV€IØ�k‰k˜/Ó*€Gà˜Q‘ ¨1¡Ð-Ð-ùò ?s   «A8c                 ó  • [         R                  S:¼  d   eSS jn [        R                  " U 5       Vs/ s H  oR                  PM     nn[        U5      S-
  USSS2   R                  S5      -
  nUR                  S5      nX#U $ s  snf )	zNGet the bytecode instructions that precede BUILD_LIST in a list comprehension.©é   é   c                 óB   • [        S5       V s/ s H  o PM     sn $ s  sn f ©Nr   ©Úrange©rn  s    r¤   rX  Ú._get_comprehension_bytecode_prefix.<locals>.fn  ó   € Ü  œ8Ó$š8�a’™8Ñ$Ð$ùÒ$ó   Žr   NéÿÿÿÿÚLOAD_FAST_AND_CLEARÚ
BUILD_LIST©rÈ   z	list[int])r`  Úversion_inforq  rr  ré   rç   r×   )rX  r¸   ru  Ú	start_idxrw  s        r¤   Ú"_get_comprehension_bytecode_prefixr‹  ÿ  s†   € ô ×Ñ˜wÓ&Ð&Ð&ô%ô &)×%9Ò%9¸"Ô%=Ó>Ò%=˜T�[Œ[Ñ%=€EÐ>ä�E“
˜Q‘ ¡t¨ t¡×!2Ñ!2Ð3HÓ!IÑI€IØ�k‰k˜,Ó'€Gà˜7Ð#Ð#ùò ?s   ´Bc                 óð   • [         R                  S:¼  d   eSS jn SS jnSS jnSS jnSS jnU" U 5      nU" U5      nU" U5      nU" U5      nUS   US   S	.US   US   S	.US   US   S	.US   / S	.S
.$ )a  Discover bytecode patterns for comprehension result handling.

Analyzes sample functions to extract the opcode sequences that appear
after END_FOR for each result disposition (stored, discarded, returned, consumed).

Returns patterns with:
    - pre_store_ops: opcodes between END_FOR and first STORE_FAST
    - post_store_op: first opcode after all STORE_FASTs (for disambiguation)
rz  c                 óD   • [        S5       V s/ s H  o PM     nn U$ s  sn f r~  r  )rn  Úresults     r¤   Ú	fn_storedÚ5_get_comprehension_result_patterns.<locals>.fn_stored  s$   € Ü" 1œXÓ&šX˜’!™XˆÐ&Øˆùò 's   Žc                 óB   • [        S5       V s/ s H  o PM       n gs  sn f r~  r  r�  s    r¤   Úfn_discardedÚ8_get_comprehension_result_patterns.<locals>.fn_discarded!  s    € Ü˜!”HÓ’HˆqŠ‘HÑØùò 	r„  c                 óB   • [        S5       V s/ s H  o PM     sn $ s  sn f r~  r  r�  s    r¤   Úfn_returnedÚ7_get_comprehension_result_patterns.<locals>.fn_returned%  rƒ  r„  c                 óT   • [        [        S5       V s/ s H  o PM     sn 5      $ s  sn f r~  )Úsumr€  r�  s    r¤   Úfn_consumedÚ7_get_comprehension_result_patterns.<locals>.fn_consumed(  s#   € Üœu QœxÓ(šx˜!’A™xÑ(Ó)Ð)ùÒ(s   “%c                óò  • [        [        R                  " U R                  5      5      S   S   n/ nSn[        R                  " U 5       H}  nU(       a  UR
                  (       a    OdUR                  nU(       d  M2  UR                  U:X  d  MD  U=(       d    [        UR
                  5      nUR                  UR                  5        M     X"R                  S5      S-   S nSn/ nU[        U5      :  a9  Xg   S:w  a1  UR                  Xg   5        US-  nU[        U5      :  a
  Xg   S:w  a  M1  U[        U5      :  a&  Xg   S:X  a  US-  nU[        U5      :  a
  Xg   S:X  a  M  X‡[        U5      :  a  Xg   4$ S4$ )zCExtract (pre_store_ops, post_store_op) from comprehension bytecode.r   FÚEND_FORNr   Ú
STORE_FAST)rô   rq  ÚfindlinestartsÚ__code__rr  Ústarts_lineÚ	positionsr¶   r¹   rè   ré   r×   rç   )	rX  Útarget_lineru  ÚstartedÚinstrÚposÚopsÚidxÚpre_store_opss	            r¤   Úextract_patternÚ;_get_comprehension_result_patterns.<locals>.extract_pattern+  sL  € äœ3×-Ò-¨b¯k©kÓ:Ó;¸AÑ>¸qÑAˆØˆØˆÜ×)Ò)¨"Ö-ˆEÞ˜5×,×,ÙØ—/‘/ˆCßˆs�s—z‘z [Õ0Ø!×<¤T¨%×*;Ñ*;Ó%<�Ø—‘˜UŸ\™\Ö*ñ .ð —K‘K 	Ó*¨QÑ.Ð0Ð1ˆØˆàˆØ”C˜“H‹n ¡¨\Ó!9Ø× Ñ  ¡Ô*Ø�1‰HˆCð ”C˜“H‹n ¡¨\Õ!9ð ”C˜“H‹n ¡¨\Ó!9Ø�1‰HˆCð ”C˜“H‹n ¡¨\Õ!9ð ´°C³«.˜c™hÐBÐB¸dÐBÐBr¦   r   r   )r¨  Úpost_store_op)ÚstoredÚ	discardedÚreturnedÚconsumedrˆ  ©rÈ   rµ   )rX  úCallable[..., Any]rÈ   ztuple[list[str], Optional[str]])r`  r‰  )	r�  r’  r•  r™  r©  r¬  r­  r®  r¯  s	            r¤   Ú"_get_comprehension_result_patternsr²    s¥   € ô ×Ñ˜wÓ&Ð&Ð&ôôô%ô*ôCñ4 ˜YÓ'€FÙ Ó-€IÙ˜{Ó+€HÙ˜{Ó+€Hð %+¨1¡IÀÀqÁ	ÑJØ'0°¡|ÀiÐPQÁlÑSØ&.¨q¡kÀHÈQÁKÑPØ&.¨q¡kÀBÑGñ	ð r¦   c                  óV   • \ rS rSr% SrS\S'   S\S'   S\S'   S	\S
'   S	\S'   S	\S'   Srg)ÚComprehensionAnalysisiR  a  Metadata about a comprehension's bytecode structure.

Attributes:
    end_ip: Instruction pointer after all comprehension bytecode
    result_var: Name of result variable, or None if result stays on stack
    result_on_stack: True if result stays on stack (discarded, returned, or in expression)
    iterator_vars: Variables from LOAD_FAST_AND_CLEAR (need restoration)
    walrus_vars: Variables assigned via walrus operator (:=) inside comprehension
    captured_vars: Variables read from outer scope via LOAD_FAST inside comprehension
rµ   Úend_ipzOptional[str]Ú
result_varr¹   Úresult_on_stackú	list[str]Úiterator_varsÚwalrus_varsÚcaptured_varsrÑ   N)rË   rÌ   rÍ   rÎ   rñ   rÏ   rÐ   rÑ   r¦   r¤   r´  r´  R  s,   ‡ ñ	ð ƒKØÓØÓØÓØÓØÖr¦   r´  c                óô  • U[         R                  Ld  U(       a  g[        U R                  [        5      (       d   eU R                  nS H¥  n[        U5      nU R                  X3[        U5      -    nU Vs/ s H  owR                  PM     nnXe:X  d  MJ  U(       a-  UR                  S5      nU R                  X8-      R                  n	OSn	U R                  [        R                  " U	5      5          g   gs  snf )NF)FTÚ
LOAD_CONSTzassertion errorT)ÚoperatorÚtruthr\  r·   rµ   rx  Úinstructionsrç   ré   r×   ÚargvalrK  rh   Úcreate)
rÀ   Útruth_fnrK  Úcurrent_instruction_pointerrt  Úassert_instsÚ	cur_instsr¸   Úload_const_idxÚ	error_msgs
             r¤   Ú&_detect_and_normalize_assert_statementrÉ  g  sé   € ð 	œŸ™Ò&®4Øä�d×.Ñ.´×4Ñ4Ð4Ð4Ø"&×":Ñ":Ðã!ˆÜ3°HÓ=ˆØ×%Ñ%Ø'Ü�,Óñ+ ð
ˆ	ñ .7Ó7ªY T—[”[©Yˆ	Ð7ØÕ$ÞØ!-×!3Ñ!3°LÓ!A�Ø ×-Ñ-Ø/Ñ@ñç‘&ñ ð .�	Ø�I‰IÔ&×-Ò-¨iÓ8Ô9Ùñ! "ð$ ùò 8s   Á7C5Fc                óX   ^ ^^^• SS jm S         SUU4S jjjmSUUUU 4S jjnU$ )Nc                óF   • [        SSU  3S/ [        R                  QSPS9  g )Nz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.z1Use `torch.cond` to express dynamic control flow.©Úgb_typeÚcontextÚexplanationÚhints)r:   r   ÚFUNDAMENTAL©Úvalues    r¤   Úraise_jump_graph_breakÚ,generic_jump.<locals>.raise_jump_graph_breakµ  s8   € ÜØ.Ø-¨e¨WÐ5ðDðÜ"×.Ñ.ðàCðó		
r¦   c           	     óæ  >• U R                  5       (       d   eS n T" U5        Uc   eU R                  5       (       a  U R                  U R                  U5        U R                  U R                  [        U5      US9  U R                  U5        [        R                  S5        U R                  R                  U [        S[        U5       U 3U R                  5       /5      SS9nU R!                  5         U R#                  U R$                  U5      nT
(       a  U R                  U5        UR&                  c   eU R#                  UR&                  U5      n[(        R*                  S:¼  a%  U R                  R-                  [/        S5      /5        [/        UR0                  US   S	9n	U	R3                  U5        U R                  R-                  U	/U-   U-   5        g ! [         a  nUn S nAGNÇS nAff = f)
N©r¼   r   zgeneric_jump triggered compilezgeneric_jump r   ©r¼   Ú
stack_pops©r{  é   ÚTO_BOOLr   )r1  )Úshould_compile_partial_graphr;   Úmaybe_has_backedgeÚraise_loop_graph_breakÚf_codeÚlog_graph_breakÚcode_optionsr³   rK  r$  Údebugr+  Úcompile_subgraphr?   r`   Úframe_summaryÚpopÚcreate_call_resume_atÚnext_instructionr1  r`  r‰  Úadd_output_instructionsr(   ré   Úcopy_positions)rÀ   r¸   rÓ  Ú	extra_msgr   ÚeÚall_stack_locals_metadataÚif_nextÚif_jumpÚ	jump_instrK  rÔ  s             €€r¤   Újump_graph_breakÚ&generic_jump.<locals>.jump_graph_breakÁ  sÏ  ø€ ð ×0Ñ0×2Ñ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 ó 	ØŽCûð	ús   œG Ç
G0Ç#G+Ç+G0c                óú  >• U R                  5       n[        R                  (       Ga^  [        U TT5      (       GaK  U R                  5       nUR	                  5       (       as  [        UR                  5       5      (       a  U R                  U5      $ U R                  5       (       a
  T" XU5        O%[        SSU 3S/ [        R                  QSPSPSPS9  UR                  5       (       aI  U R                  R                  " S[        R                   /[#        X#40 5      Q76   U R                  U5        g [%        U[&        5      (       a¡  UR(                  n[%        U[        R*                  5      (       d  US	:g  n[        R,                  R.                  R0                  R3                  U5      nU(       d%  [        S
[5        U5      S/ [        R6                  QS9  U R                  U5        g U R                  R                  " S[        R8                  /[#        U40 5      Q76 n[;        U U[=        UR>                  U 5      S9nU R                  R                  " S[        R                   /[#        Xs40 5      Q76   U R                  U5        g UR	                  5       (       až  [%        U[@        5      (       aC  URB                  (       a2  [E        URB                  RG                  [H        RJ                  5      5        T" UR                  5       5      (       a*  T(       a  U RM                  U5        U R                  U5        g g UR                  5       (       a  U R                  5       (       a
  T" XU5        g [%        U[N        5      (       a]  U R                  RQ                  URR                  5      nT" U5      (       a*  T(       a  U RM                  U5        U R                  U5        g g [%        U[T        5      (       Ga×   URW                  U S5      n	[%        U	[^        5      (       Gav  U	Ra                  U / 0 5      n[c        [c        U	SS 5      SS 5      n
UR	                  5       (       aÎ  UR                  5       nU
S:X  ad  [%        U[
        5      (       dO  [d        Rf                  Ri                  S[k        U5      Rl                   35      n[X        Rn                  " [p        X/S9  [%        U[
        [r        45      (       a8  T" U5      (       a*  T(       a  U RM                  U5        U R                  U5        g g g [%        U[&        5      (       a@  URu                  5       (       a*  T(       a  U RM                  U5        U R                  U5        g g [        SSU	 SU 3S/ S9  g T" S5      (       a*  T(       a  U RM                  U5        U R                  U5        g g UR                  5       (       df  URw                  U 5      (       aP  T" [y        UR{                  U 5      5      5      (       a*  T(       a  U RM                  U5        U R                  U5        g g [%        U[&        5      (       a—   [%        UR(                  [        R*                  5      (       a  URu                  U R                  5      nO[}        UR(                  S	:g  5      n T" U5      (       a*  T(       a  U RM                  U5        U R                  U5        g g [%        U[d        R€                  5      (       a8  T" S5      (       a*  T(       a  U RM                  U5        U R                  U5        g g SSK!JAn  URB                  b]  U" URB                  5      (       aF  T" UR…                  5       5      (       a*  T(       a  U RM                  U5        U R                  U5        g g T" U5        g ! [X        RZ                   aa    [X        R\                  " U 5         URW                  U S5      n	 GNû! [X        RZ                   a    [X        R\                  " U 5        S n	  GN+f = ff = f! [X        R~                   a+  nU R                  5       (       a  T" XUSU 3S9s S nA$ e S nAff = f)Nz>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Ì  rL  r   z#Assertion failed on symbolic shapesrã   )Úexample_valueÚ__bool__Ú__len__rX  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)Cræ  r   Ú rewrite_assert_with_torch_assertrÉ  Úis_python_constantr¹   Úas_python_constantÚjumprÝ  r:   r   rÑ  Ú	is_tensorr+  Úcreate_proxyÚtorchÚ_assert_asyncr_   r\  r‰   Úsym_numÚSymBoolÚfxÚexperimentalÚsymbolic_shapesÚexpect_truer³   Ú
USER_ERRORÚscalar_tensorre   rY   Únoderm   Úsourcer>   Ú
make_guardr=   ÚSEQUENCE_LENGTHrK  r…   Úget_submoduleÚ
module_keyr�   Úvar_getattrr   ÚObservedAttributeErrorÚhandle_observed_exceptionru   rL  Úgetattrr   rh   rÂ  ÚtyperË   Úraise_observed_exceptionÚ	TypeErrorrµ   Úevaluate_exprÚhas_unpack_var_sequencerç   Úunpack_var_sequencer   Ú	UserErrorÚBackwardHookVariablerø  Úget_real_value)rÀ   r¸   rÓ  rÈ  Úsym_exprrŽ  Úscalar_to_tensor_proxyÚscalar_to_tensorrb  rh  Úmethod_nameÚresult_valuerf  Úeval_resultrì  rø  rñ  rK  rÔ  rÃ  s                   €€€€r¤   ÚinnerÚgeneric_jump.<locals>.innerú  sÜ  ø€ Ø!%§¡£ˆä×3×3Ð3Ü6°t¸XÀt×LÒLà)-¯©«ˆIà×'Ñ'×)Ñ)Ü˜×0Ñ0Ó2×3Ñ3ØŸ9™9 T›?Ð*Ø×6Ñ6×8Ñ8Ù$ T°Õ7ä!Ø `Ø")¨%¨Ð 1ð%HðÜ.×:Ñ:ððuðð
 ;ððNðòð* �‰× Ñ Ø—‘×(Ò(Ø#Ü×'Ñ'ðô '¨Ð'9¸2Ó>óð
 —	‘	˜$”Øä˜%¤×1Ñ1ð !Ÿ=™=�Ü! (¬E¯M©M×:Ñ:Ø'¨1™}�HäŸ™×.Ñ.×>Ñ>×JÑJÈ8ÓT�ÞÜ!Ø EÜ # H£Ø$&Ø=Ô 1× <Ñ <Ð=ò	ð —	‘	˜$”Øà%)§[¡[×%=Ò%=Ø¤×!4Ñ!4ð&Ü7HÈ%ÈÐSUÓ7Vò&Ð"ô  -ØØ&Ü,Ð-C×-HÑ-HÈ$ÓOñ Ðð �K‰K×$Ò$ØÜ×#Ñ#ðô #Ð$4Ð#@À"ÓEóð
 �I‰I�dŒOØà×#Ñ#×%Ñ%ô ˜%Ô!2×3Ñ3¸¿¿Ü˜eŸl™l×5Ñ5´l×6RÑ6RÓSÔTÙ˜×0Ñ0Ó2×3Ñ3ÞØ—I‘I˜eÔ$Ø—	‘	˜$•ð 4ð �_‰_×Ñ 4×#DÑ#D×#FÑ#FÙ˜T¨Õ/Ü˜Ô/×0Ñ0à—+‘+×+Ñ+¨E×,<Ñ,<Ó=ˆCÙ˜�}‰}ÞØ—I‘I˜eÔ$Ø—	‘	˜$•ð ô ˜Ô8×9Ò9ð	Ø×%Ñ% d¨JÓ7�ô ˜!Ô/×0Ò0ØŸ™¨¨r°2Ó6�Ü%¤g¨a°°tÓ&<¸jÈ$ÓO�Ø×,Ñ,×.Ñ.Ø#)×#<Ñ#<Ó#>�LØ" jÓ0¼ÀLÔRV×9WÑ9WÜ'×8Ñ8×?Ñ?ØDÄTÈ,ÓEW×E`ÑE`ÐDaÐbó˜ô ×4Ò4´YÀÈ5ÒQÜ! ,´´s°×<Ñ<ÁÈ,×AWÑAWÞØ ŸI™I eÔ,ØŸ	™	 $�ð BXÐ<ô   ¬×8Ñ8Ø×+Ñ+×-Ñ-ÞØ ŸI™I eÔ,ØŸ	™	 $�ð .ô
 "Ø UØ"*¨1¨#¨Z¸°xÐ @ð%Xà óñ ˜D—>‘>ÞØŸ	™	 %Ô(Ø—I‘I˜d•Oð "ð —‘×"Ñ" u×'DÑ'DÀT×'JÑ'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Ñ,LÙ˜E×0Ñ0Ó2×3Ñ3ÞØŸ	™	 %Ô(Ø—I‘I˜d•Oð 4ñ
 ' uÕ-øôc ×-Ñ-ó Ü×-Ò-¨dÔ3ðØ×)Ñ)¨$°	Ó:“AøÜ×1Ñ1ó Ü×1Ò1°$Ô7Ø”Aðúðûôv —=‘=ó Ø×4Ñ4×6Ñ6Ù+¨D¸È2ÈaÈSÈÑRÕRØûðúsU   Ï6_ ÙA`; Ú"`; ß*`8ß.`à,`4à/`8à3`4à4`8à;a:áa5á.a:á4a5á5a:)rÓ  rb   rÈ   r   )rã   )
rÀ   rÊ   r¸   r-   rÓ  rb   rë  r³   rÈ   rÉ   ©rÀ   rÊ   r¸   r-   rÈ   rÉ   rÑ   )rÃ  rK  r"  rñ  rÔ  s   `` @@r¤   Úgeneric_jumpr%  ²  sa   û€ ô

ð  ð	7MØ'ð7Màð7Mð ð7Mð ð	7Mð
 
÷7Mñ 7M÷rw.ò w.ðr €Lr¦   c                ó\  • / nU nUb"  UR                  U5        UR                  nUb  M"  [        U5       Hô  n U R                   Há  n[	        UR
                  [        5      (       a;  UR                  UR                  5       R                  UR                  U5      5        M]  UR
                  c   e[	        UR
                  [        5      (       d   eUR
                  R                  U5        UR                  UR                  5       R                  UR                  U5      5        Mã     Mö     g)zoGenerates bytecode to restore the block stack for running the unsupported instruction
in the compiled bytecode.N)rè   ÚparentrŸ   Úblock_stackr\  r3  r‹   Úextend_outputr;  Útry_except_torch_function_moderâ  ri   Úreconstruct_typeÚtry_finally)r¡   ÚcgÚcleanupÚall_txesÚcur_txÚbs         r¤   Ú_reconstruct_block_stackr2  ¶  só   € ð 13€HØ24€FØ
Ñ
Ø�‰˜ÔØ—‘ˆð Ó
ô �xÖ ˆØ—”ˆAô ˜!Ÿ.™.Ô*C×DÑDØ× Ñ Ø—K‘K“M×@Ñ@ØŸ™¨óôñ
 Ø—>‘>Ñ-Ð-Ð-Ü˜aŸn™nÔ/F×HÑHÐHÐHØ�N‰N×+Ñ+¨BÔ/Ø×Ñ˜QŸ[™[›]×6Ñ6°r·±ÈÓPÖQó  ò !r¦   c                ó$   ^ ^•     SUU 4S jjnU$ )Nc                ót   >^ ^• [         R                  " T 5      SUU UU4S jj5       n        SU4S jjmU$ )Nc           	     óÔ  >• U R                   nTU l         U R                  5       nUR                  U 5      (       a"  UR                  c   eT" XUR                  5      $  T" X5      X l         $ ! [         GaA  nU R
                  (       a^  U R                  (       d  U R                  (       a  e UR                  5         [        SSU R
                   3SS/[        R                  QUS9  UR                  (       a  e U R                  5       (       d  e U R                  5       (       a  U R                  U R                   U5        U R#                  U R$                  T S['        U5       3US9  UR                  5         UR)                  S5        [+        UR,                  UR.                  5      Ul         S nAOS nAff = f X l         O! X l         f = fUR1                  U R                  5        g )	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_excz:

r×  Úgraph_break)Úcurrent_instruction_pushÚ	speculaterÆ   r¼   r;   Úactive_generic_context_managersÚ	one_graphr»   Úremove_from_statsr:   r   ÚCAUSED_BY_EARLIER_GRAPH_BREAKÚ
skip_framerÝ  rÞ  rß  rà  rá  râ  r³   Úadd_to_statsr?   rf  Ú
real_stackrÁ   )	rÀ   r¸   Ú	prev_pushÚspeculationÚexcpÚhandle_graph_breakÚinner_fnÚ
msg_prefixrK  s	        €€€€r¤   ÚwrapperÚ>break_graph_if_unsupported.<locals>.decorator.<locals>.wrapperß  s¹  ø€ à×5Ñ5ˆIØ,0ˆDÔ)ØŸ.™.Ó*ˆKØ×!Ñ! $×'Ñ'à"×)Ñ)Ñ5Ð5Ð5Ù)¨$°k×6HÑ6HÓIÐIð):Ù Ó+ðP 1:Õ-øôO ô %SØ×7×7à—~—~¨×)B×)BØð ×*Ñ*Ô,Ü!Ø RØ"CÀD×DhÑDhÐCiÐ jð %Dàcðä.×LÑLðð "&ò	ð —?—?Øà×8Ñ8×:Ñ:Øà×*Ñ*×,Ñ,Ø×/Ñ/°·±¸TÔBà×$Ñ$Ø×%Ñ%Ø(˜\¨¬s°4«y¨kÐ:Øð %ñ ð ×&Ñ&Ô(Ø×!Ñ! -Ô0Ü%7¸¿¹À$Ç/Á/Ó%R�×"Ñ"ûðK%SúðJ #à09Õ-ø°	Õ-úØ×1Ñ1°$×2KÑ2KÕLs+   ÁA, Á,F8Á7D7F3Æ.G Æ3F8Æ8G ÇGc                óR  >• [         R                  S:¼  aŠ  [         R                  S:  av  UR                  S:X  af  [        R                  " [        R
                  S   UR                  5      [        R                  " [        R
                  S   UR                  5      -   nO+[        R                  " UR                  UR                  5      n[        R                  SUR                  5        U R                  R                  X[        T
5      U-
  S9n[        U R                  R                  5      n/ n[        XU5        U R                  R!                  UR#                  5       5        A[         R                  S:¼  a×  UR                  S:X  aÇ  U R$                  b  U R$                  R'                  5       OSn[)        U5      S:”  a:  [         R                  S	:  d   eU R                  R!                  [+        S
US9/5        UR                  c   e[-        UR                  S5      nUS   R/                  U5        U R                  R!                  U5        OHUR0                  b   e[2        R2                  " U5      n	S U	l        U R                  R!                  U	/5        U R                  R!                  U5        U R7                  [        T
5      U-
  5        T
(       a  U R9                  [;        5       5        U R                  R!                  U R=                  U R>                  U5      5        g )N©r{  é   rz  ÚCALLÚPRECALLz%s triggered compilerØ  rÑ   r   rÚ  ÚKW_NAMES©rÁ  Fr…  ) r`  r‰  ré   rq  Ústack_effectÚopmapÚargÚopcoder$  rã  r+  rä  rµ   r2   Úroot_txr2  ré  rr  Úkw_namesrû  rç   r(   r$   rê  r1  ÚcopyÚexn_tab_entryrM  rK  r„   rç  rè  )rÀ   r¸   r¼   rQ  rí  r-  r.  rV  Ú
call_instsÚ	inst_copyrK  s             €r¤   rE  ÚIbreak_graph_if_unsupported.<locals>.decorator.<locals>.handle_graph_break  su  ø€ ô × Ñ  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Ø´°D³	¸LÑ0Hð )Eð )Ð%ô ˜4Ÿ;™;×.Ñ.Ó/ˆBØ)+ˆGÜ$ T¨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É   )rV  rW  )rF  rH  rE  rG  rK  s   ` @€€r¤   Ú	decoratorÚ-break_graph_if_unsupported.<locals>.decoratorÜ  sZ   ú€ ô 
�Š˜Ó	"÷2	Mñ 2	Mó 
#ð2	Mðh<	Ø+ð<	àð<	ð 'ð<	ð ÷	<	ð| ˆr¦   )rF  úCallable[..., None]rÈ   ú8Callable[[InstructionTranslatorBase, Instruction], None]rÑ   )rK  rG  r\  s   `` r¤   Úbreak_graph_if_unsupportedr`  ×  s*   ù€ ð
vØ%ðvà	A÷vð vðp Ðr¦   c                  ó0   ^ • \ rS rSrSrSU 4S jjrSrU =r$ )ÚBytecodeDispatchTableMetaiW  zTInstalls a `cls.dispatch_table` on every subclass to speed up calls to self.OPCODE()c                óF  >• [         T	U ]  XU5        SS jn[        R                  R	                  5        VVs0 s H&  u  pVU[        X[        R                  " XE5      5      _M(     nnn[        S5       Vs/ s H  o‡R                  U5      PM     snU l
        g s  snnf s  snf )Nc                óX   • [        SU  SU 3SU  S3SU  S3/[        R                  QS9  g )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¤   Ú_missingÚ4BytecodeDispatchTableMeta.__init__.<locals>._missing]  sS   € ÜØ2Ø!˜( +¨d¨VÐ4Ø[Ð\bÐ[cÐceÐfà;¸F¸8ð D_ð _ðô '×2Ñ2ðó		r¦   é   )ré   r³   r¢   r   rÈ   rÉ   )ÚsuperÚ__init__rq  rR  r  r  rV  Úpartialr€  ÚgetÚdispatch_table)
r  r®   ÚbasesÚdctrg  ré   Úoprn  rn  Ú	__class__s
            €r¤   rk  Ú"BytecodeDispatchTableMeta.__init__Z  s�   ø€ Ü‰Ñ˜ cÔ*ô
	ô "Ÿi™iŸo™oÔ/ô
â/‘
�ð ”˜¤Y×%6Ò%6°xÓ%HÓIÒIÙ/ð 	ñ 
ô
 >CÀ4¼[ÓIº[¸×0Ñ0°Ö3¹[ÑIˆÕùó
ùò
 Js   ¸-BÁ5BrÑ   )
r  r  r®   r³   ro  r   rp  r   rÈ   rÉ   )rË   rÌ   rÍ   rÎ   rñ   rk  rÐ   Ú__classcell__©rr  s   @r¤   rb  rb  W  s   ø† Ù^÷Jõ Jr¦   rb  c                  óþ   • \ rS rSr% Sr\R                  " \S9rS\	S'   \R                  " SS9r
S\	S	'   SS
 jrSS jrSS jrSS jr      SS jrSS jr    SS jrSS jrSS jrSS jrSS jrSS jr\rSrg)ÚExceptionStackiq  zM
Exception stack that it is shared among all InstructionTranslator instances
rÔ   zlist[ExceptionVals]Ú
_exc_stackN)ÚdefaultzOptional[ExceptionVals]Ú_current_exceptionc                ó   • S U l         g r�   ©rz  rÜ   s    r¤   Úclear_current_exceptionÚ&ExceptionStack.clear_current_exception…  s
   € Ø"&ˆÕr¦   c                ó2   • U R                  U5        Xl        g r�   )Ú._set_context_and_break_context_reference_cyclerz  ©rÀ   Úvals     r¤   Úset_current_exceptionÚ$ExceptionStack.set_current_exceptionˆ  s   € Ø×;Ñ;¸CÔ@Ø"%Õr¦   c                óx   • U R                   c   eU R                  U R                   5        U R                  5         g r�   )rz  rè   r}  rÜ   s    r¤   Úmove_current_exception_to_stackÚ.ExceptionStack.move_current_exception_to_stackŒ  s2   € Ø×&Ñ&Ñ2Ð2Ð2Ø�‰�D×+Ñ+Ô,Ø×$Ñ$Õ&r¦   c                ó8   • U R                   c   eU R                   $ r�   r|  rÜ   s    r¤   Úget_current_exceptionÚ$ExceptionStack.get_current_exception‘  s    € Ø×&Ñ&Ñ2Ð2Ð2Ø×&Ñ&Ð&r¦   c                óô   • UR                   =n(       a  [        U5      [        La  U$ [        U R                  5      U-   S:”  a4  U R                  U   nU R                  XBS-
  5        UR                  U5        U$ ©Nr   r   )Ú__context__r  rh   rç   rx  Ú_set_context_recursiveÚset_context)rÀ   r‚  Úprev_idxÚctxÚprevs        r¤   rŽ  Ú%ExceptionStack._set_context_recursive•  sk   € ð —?‘?Ð"ˆCÕ"¬¨S«	Ô9IÒ(IØˆJÜˆt�‰Ó (Ñ*¨QÓ.Ø—?‘? 8Ñ,ˆDØ×'Ñ'¨¸©lÔ;Ø�O‰O˜DÔ!Øˆ
r¦   c                óÆ   • U=p#Sn UR                   n[        U5      [        L a  g XQL a  UR                  [        5        g UnX#L a  g U(       a  UR                   nU(       + nM\  r*  )r�  r  rh   r�  rg   )rÀ   r‚  ÚoÚslow_oÚslow_update_togglerÎ  s         r¤   Ú_break_context_reference_cycleÚ-ExceptionStack._break_context_reference_cycle   sn   € ð
 ÐˆØ"ÐØØ—m‘mˆGÜ�G‹}Ô 0Ò0ØàŠ~Ø—‘Ô4Ô5ØàˆAØŠ{ð æ!à×+Ñ+�Ø%7Ô!7Ðñ% r¦   c                óv   • U R                  U[        U R                  5      S-
  5        U R                  U5        g r~  )rŽ  rç   rx  r˜  r�  s     r¤   r€  Ú=ExceptionStack._set_context_and_break_context_reference_cycle»  s0   € ð 	×#Ñ# C¬¨T¯_©_Ó)=ÀÑ)AÔBØ×+Ñ+¨CÕ0r¦   c                ó6   • U R                   R                  5       $ r�   )rx  ræ  rÜ   s    r¤   ræ  ÚExceptionStack.popÂ  s   € Ø�‰×"Ñ"Ó$Ð$r¦   c                ó:   • U R                   R                  U5        g r�   )rx  rè   r�  s     r¤   rè   ÚExceptionStack.appendÅ  s   € Ø�‰×Ñ˜sÕ#r¦   c                ó,   • [        U R                  5      $ r�   )rç   rx  rÜ   s    r¤   rö  ÚExceptionStack.__len__È  s   € Ü�4—?‘?Ó#Ð#r¦   c                ó    • U R                   U   $ r�   )rx  )rÀ   r×   s     r¤   Ú__getitem__ÚExceptionStack.__getitem__Ë  s   € Ø�‰˜uÑ%Ð%r¦   c                ó>   • SU R                   < SU R                  < 3$ )Nzself._exc_stack=z - self._current_exception=)rx  rz  rÜ   s    r¤   Ú__str__ÚExceptionStack.__str__Î  s"   € Ø"�$—/‘/Ñ#Ð#? t×'>Ñ'>Ñ&@ÐAÐAr¦   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ô   rx  rÏ   rz  r}  rƒ  r†  r‰  rŽ  r˜  r€  ræ  rè   rö  r£  r¦  Ú__repr__rÐ   rÑ   r¦   r¤   rw  rw  q  s¢   ‡ ñð '2×&7Ò&7ÈÑ&M€JÐ#ÓMØ2=×2CÒ2CÈDÑ2QÐÐ/ÓQô'ô&ô'ô
'ð	Ø ð	Ø,/ð	à	ô	ô8ð61Ø ð1à	ô1ô%ô$ô$ô&ôBð ƒHr¦   rw  c                  ó  ^ • \ rS rSr% S\S'   S\S'   S\S'   S\S'   S	\S
'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S\S'   S \S!'   S"\S#'   S$\S%'   S&\S''   S(\S)'   S\S*'   S\S+'   S,\S-'   S\S.'   S/\S0'   S1\S2'   S3\S4'   SúS5 jrSûS6 jrSüS7 jrSüS8 jrSüS9 jr	SúS: jr
        SýS; jr        SþS< jr        SÿS= jrGS GSS> jjrGSS? jrGSS@ jrSûSA jr\R&                  SB:¼  a  GSSC jrOGSSD jr\GSSE j5       rGSSF jrGSSG jrSúSH jrGSSI jrGS	SJ jrGS
SK jrGSSL jrGSSM jrGSSN jrGSSO jr GSSP jr!GSSQ jr"\r#GSSR jr$GSSS jr%GSST jr&\'RP                  GS
SU j5       r)GSSV jr*GSSW jr+\,GSSX j5       r-GSSY jr.GSSZ jr/GSS[ jr0\0r1GSS\ jr2\,GSS] j5       r3GSS^ jr4GSS_ jr5\5r6\5r7\8" \9Rt                  S`5      r;\8" \9Rx                  S`5      r=\8" \9Rt                  Sa5      r>\8" \9Rx                  Sa5      r?GSSb jr@GSSc jrAGSSd jrBGSSe jrCGSSf jrDGSSg jrEGSSh jrFGSSi jrGGSSj jrHGSSk jrIGSSl jrJGSSm jrKGSSn jrLGSSo jrMGSSp jrNGSSq jrOGSSr jrPGSSs jrQGSSt jrRGSSu jrSSûSv jrTGSSw jrUGSSx jrVGSSy jrWGSSz jrX\Y" SaS{S|9GSS} j5       rZ\Y" SaS~S|9GSS j5       r[\Y" SaS€S|9GSS� j5       r\GSS‚ jr]GSSƒ jr^GSS„ jr_GSS… jr`GSS† jraGSS‡ jrb\Y" S`SˆS|9GSS‰ j5       rcGSSŠ jrd\e      GSS‹ j5       rf                GSSŒ jrg      GSS� jrh\e        GSSŽ j5       riSûS� jrj\Y" S`S�S|9GSS‘ j5       rkGSS’ jrlGSS“ jrmGSS” jrnSûS• jroGSS– jrpGSS— jrqGSS˜ jrr\s4GSS™ jjrtGSSš jru\urvGSS› jrwGSSœ jrx\xryGSS� jrzGSSž jr{GSSŸ jr|GSS  jr}GSS¡ jr~GSS¢ jrGSS£ jr€GSS¤ jr�\Y" S`S¥S|9GSS¦ j5       r‚GSS§ jrƒGSS¨ jr„GSS© jr…GSSª jr†GSS« jr‡GSS¬ jrˆGSS­ jr‰GSS® jrŠGSS¯ jr‹GSS° jrŒGSS± jr�GSS² jrŽGSS³ jr�GSS´ jr�GSSµ jr‘GSS¶ jr’GSS· jr“\“r”GSS¸ jr•GSS¹ jr–GSSº jr—GSS» jr˜GSS¼ jr™GSS½ jršGSS¾ jr›GSS¿ jrœ\�" \9GR<                  5      rŸ\�" \9GR@                  5      r¡\�" \9Rt                  5      r¢\�" \9GRF                  5      r¤\�" \9GRJ                  5      r¦\�" \9GRN                  5      r¨\�" \9GRR                  5      rª\�" \9GRV                  5      r¬\�" \9GRZ                  5      r®\�" \9GR^                  5      r°\�" \9GR^                  5      r±\�" \9GRd                  5      r³\�" \9GRh                  5      rµ\Y" SaSÀS|9" \�" \9GRl                  5      5      r·\�" \9GRp                  5      r¹\�" \9GRt                  5      r»\�" \9GRx                  5      r½\�" \9GR|                  5      r¿\�" \9GR€                  5      rÁ\�" \9GR„                  5      rÃ\�" \9GRˆ                  5      rÅ\�" \9GRŒ                  5      rÇ\�" \9GR�                  5      rÉ\�" \9GR”                  5      rË\�" \9GR˜                  5      rÍ\�" \9GR˜                  5      rÎ\�" \9GRž                  5      rÐ\�" \9GR¢                  5      rÒ\�" \9GR¦                  5      rÔ\�" \9GRª                  5      rÖ\�" \9GR®                  5      rØ\�" \9GR²                  5      rÚ\�" \9GR¶                  5      rÜGSSÁ jrÝ\R&                  SB:¼  a  GSSÂ jrÞGSSÃ jrßGSSÄ jràGSSÅ jráGSGS SÆ jjrâ\Y" SaSÇS|9GSSÈ j5       rãGSSÉ jräGSSÊ jrå\5ræ\5rç\8" \9Rx                  S`5      rè\8" \9Rx                  S`5      ré\8" \9Rt                  S`5      rê\8" \9Rt                  S`5      rëGSSË jrìGSSÌ jrí      GS!SÍ jrî\eGS"SÎ j5       rïGSSÏ jrðGSSÐ jrñGSSÑ jròGSSÒ jróGSSÓ jrôGSSÔ jrõGSSÕ jröGSSÖ jr÷GSS× jrøGSSØ jrùGSSÙ jrú\Y" SaSÚS|9GSSÛ j5       rûGSSÜ jrüGSSÝ jrýGSSÞ jrþGSSß jrÿGSSà jGr \Gr\ƒGr\„GrSáGrGSSâ jGrGSSã jGrSäGrGSSå jGrSûSæ jGr	 GS    GS#Sç jjGr
GS$Sè jGrSûSé jGrGS%Sê jGr\GS&Së j5       GrG\GR                       GS'Sì j5       GrGS(Sí jGrSûSî jGrGS)Sï jGrGS*Sð jGrGSSñ jGr              GS+Sò jGr      GS,Só jGr        GS-Sô jGr    GS.Sõ jGr        GS/Sö jGr\eGS0S÷ j5       Gr   GS1                                       GS2U 4Sø jjjGrSùGrU =Gr$ (3  rÊ   iÔ  r@   r+  údict[str, VariableTracker]Úsymbolic_localsÚsymbolic_globalsrŠ   Úsymbolic_torch_function_stater‡   Úsymbolic_stream_statez$Optional[dict[str, VariableTracker]]Úpost_prune_cell_and_freevarsúlist[VariableTracker]ÚstackúOptional[int]r·   r-   Úcurrent_instructionr¹   r9  zlist[BlockStackEntry]r(  rµ   r¶   zOptional[ConstantVariable]rV  Úaccept_prefix_instúlist[Instruction]Úprefix_instsÚinline_depthÚinconsistent_side_effectszOptional[SpeculationEntry]Úcurrent_speculationz	list[Any]rn  rw  Úexn_vt_stackzOptional[ExecutionRecorder]Úexec_recorderz+Optional[Callable[[VariableTracker], bool]]Ústrict_checks_fnÚstart_pointÚhas_no_inlined_callsz#Optional[InstructionTranslatorBase]r'  Úis_child_tracer_activez3list[tuple[VariableTracker, list[VariableTracker]]]Údebug_localsúOptional[CompilePackage]Úpackagez
deque[str]Úlatest_bytecode_queuec                ó   • SU l         g)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_effectsÚ8InstructionTranslatorBase.mark_inconsistent_side_effectsù  s   € ð *.ˆÕ&r¦   c                ó0  • U nUb‘  UR                   R                  nUR                  c   eUR                  UR                  S   H>  nUR                  S;   a    O-UR                  [
        ;   d  M+  UR                  nXB:  d  M>    g   UR                  nUb  M‘  g)N)ÚRETURN_VALUEÚRETURN_CONSTTF)r³  Úoffsetr·   rÀ  ré   r   rÁ  r'  )rÀ   r0  Ú
cur_offsetr¸   Újump_offsets        r¤   rÞ  Ú,InstructionTranslatorBase.maybe_has_backedge  s—   € ð* 7;ˆØÑ Ø×3Ñ3×:Ñ:ˆJØ×-Ñ-Ñ9Ð9Ð9Ø×+Ñ+¨F×,FÑ,FÐ,HÓI�Ø—;‘;Ð"BÓBÙØ—;‘;¤,Õ.Ø"&§+¡+�KØ"Õ/Ù#ñ Jð —]‘]ˆFð Ó ð r¦   c                ó    • U R                   S   $ )NÚco_cellvars©râ  rÜ   s    r¤   ÚcellvarsÚ"InstructionTranslatorBase.cellvars$  ó   € Ø× Ñ  Ñ/Ð/r¦   c                ó    • U R                   S   $ )NÚco_freevarsrÐ  rÜ   s    r¤   ÚfreevarsÚ"InstructionTranslatorBase.freevars'  rÓ  r¦   c                óˆ   • [        U S5      (       d&  U R                  5       U R                  5       -   U l        U R                  $ )NÚ_cell_and_freevars)r9  rÑ  rÖ  rÙ  rÜ   s    r¤   Úcell_and_freevarsÚ+InstructionTranslatorBase.cell_and_freevars*  s5   € Ü�tÐ1×2Ñ2Ø&*§m¡m£o¸¿¹»Ñ&GˆDÔ#Ø×&Ñ&Ð&r¦   c                ód  • U R                   R                  5        VVs0 s H  u  pXR                  5       ;   d  M  X_M     snnU l        [	        U R
                  U R                  5      nU R                   R                  5        VVs0 s H  u  pX;   d  M  X_M     snnU l         g s  snnf s  snnf r�   )r«  r  rÚ  r¯  r    rÀ  r³  )rÀ   rþ   rÿ   Úreadss       r¤   Úprune_dead_localsÚ+InstructionTranslatorBase.prune_dead_locals/  s¢   € ð ×,Ñ,×2Ñ2Ô4ô-
â4‘�Ø×*Ñ*Ó,Ñ,ó ˆAŠDÙ4ò-
ˆÔ)ô " $×"3Ñ"3°T×5MÑ5MÓNˆà!×1Ñ1×7Ñ7Ô9ô 
Ú9‘T�Q¸Q¹Z‹DˆAŠDÑ9ò 
ˆÕùó-
ùó 
s   žB&»B&ÂB,ÂB,c                ó(  • [        U[        5      (       d   e[        U[        5      (       d   e[        U[        5      (       d   e[	        S [
        R                  " X#R                  5       5       5       5      (       d   eS n[        US5      (       a  UR                  n[        US5      (       a  UR                  nU(       a.  [        U5      (       a  [        U5      (       a  [        SU 35      eU R                  UR                  XU5      5        g )Nc              3  óB   #   • U  H  n[        U[        5      v •  M     g 7fr�   )r\  rb   )rý   rh  s     r¤   r   Ú:InstructionTranslatorBase.call_function.<locals>.<genexpr>E  s!   é € ð 
â;�ô �qœ/×*Ð*Ú;ùs   ‚rÓ  rX  z$Attempt to trace forbidden callable )r\  rb   rô   r  ÚallÚ	itertoolsÚchainÚvaluesr9  rÓ  rX  ÚcallablerV   ÚAssertionErrorrK  rL  )rÀ   rX  r¢   ÚkwargsrF  s        r¤   rL  Ú'InstructionTranslatorBase.call_function<  sæ   € ô ˜"œo×.Ñ.Ð.Ð.Ü˜$¤×%Ñ%Ð%Ð%Ü˜&¤$×'Ñ'Ð'Ð'Üñ 
ä—_’_ T¯=©=«?Ô;ó
÷ 
ñ 
ð 	
ð 
ð ˆÜ�2�w×ÑØ—x‘xˆHÜ�2�t×ÑØ—u‘uˆHÞœ ×*Ñ*¬|¸H×/EÑ/EÜ Ð#GÈÀzÐ!RÓSÐSØ�	‰	�"×"Ñ" 4¨vÓ6Õ7r¦   c                óf   • [        U[        5      (       d  [        U5      nUR                  XU5      $ )z4
Redirect the call to the generator "call_function"
)r\  rp   rL  ©rÀ   rX  r¢   ré  s       r¤   Úinline_generator_functionÚ3InstructionTranslatorBase.inline_generator_functionR  s/   € ô ˜"Ô<×=Ñ=Ü/°Ó3ˆBØ×Ñ ¨FÓ3Ð3r¦   c                ó¸   • [         R                  (       a0  [        UR                  5       5      (       a  U R	                  XU5      $ [
        R                  XX#5      $ )z6
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_returnÚ5InstructionTranslatorBase.inline_user_function_return_  sC   € ô ×4×4¼ÀbÇkÁkÃm×9TÑ9TØ×1Ñ1°"¸FÓCÐCä0×<Ñ<¸TÀtÓTÐTr¦   c                ó&  • Uc  U R                   nU R                  S:”  a  SU R                   S3OSn[        U R                  R                  U5      nUc  SOSU S3nU R                  R                   SU SU R                  R
                   U U 3$ )Nr   z (inline depth: Ú)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_headerÚ1InstructionTranslatorBase.get_line_of_code_headerm  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                óÄ   • SU R                  5        S3n[        R                  " U R                  R                  U R
                  5      R                  5       nUSU 3-  nU$ )NzTRACE starts_line rù   z    )rý  Ú	linecacheÚgetlinerà  rø  r¶   Úrstrip)rÀ   Úlog_strÚlines      r¤   Úget_log_starts_line_log_strÚ5InstructionTranslatorBase.get_log_starts_line_log_strw  sX   € Ø& t×'CÑ'CÓ'EÐ&FÀbÐIˆÜ× Ò  §¡×!8Ñ!8¸$¿+¹+ÓF×MÑMÓOˆØ�T˜$˜�=Ñ ˆØˆr¦   c                ó&  • U R                   U:X  a  g Xl         [        R                  " U R                  R                  XR                  R
                  5        U R                  (       a*  [        R                  S[        U R                  5      5        g g )Nú%s)r¶   r   Úset_current_locrà  rø  rù  Úis_trace_source_log_enabledÚtrace_source_logrã  r^   r  )rÀ   r¶   s     r¤   r   Ú%InstructionTranslatorBase.starts_line}  sh   € Ø�;‰;˜&Ó ØØŒÜ×&Ò&Ø�K‰K×#Ñ# V¯[©[×-@Ñ-@ô	
ð ×+×+Ü×"Ñ" 4¬°D×4TÑ4TÓ)UÕVð ,r¦   c           	     ó~  • [        5       U l        U R                  nUc  gU R                  U   =U l        nUS-   U l        UR
                  (       a  U R                  UR
                  5        U R                  (       dq  U R                  5       (       a\  U R                  5       (       aG  U R                  5       U l
        U R                  R                  U 5      (       a  U R                  U5        gU R                  (       a?  [        R                  SUR                   UR"                  [%        U R                  5      5        [&        R(                  (       aW   [%        U R                  5      nU R,                  R/                  SUR                    S[%        UR"                  5       SU 35        U R1                  U5         U R2                  UR4                     " X5        U R6                  R8                  (       + $ ! [*         a    Sn N›f = f! [:         a    e [<        R>                   a  nU RA                  U5         SnAgSnAf[B        [D        4 a     g[F        [H        4 Ga5  nU RJ                  (       dH  U R                  (       d7  U RL                  (       d&  [O        U[F        5      (       aE  URP                  (       a4  [O        U[H        5      (       a  [S        S	S
SSS/[T        RV                  QS9  e U R                  ch  [X        R                  S5        [O        U[H        5      (       a  [S        SS
SSS/[T        RV                  QSS9  [O        U[F        5      (       d   eSUl(        e S[[        U5       3nU R]                  U R^                  UUS9   SnAOSnAff = fU R                  Ra                  U R                  5        g)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 Ú Tz3cannot 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×  )1rW   r»   r·   rÀ  r³  r   r±  rÝ  Úis_non_empty_graphr:  r¹  rÆ   Ústep_graph_breakÚis_trace_bytecode_log_enabledÚtrace_bytecode_logrã  ré   rÁ  Úreprr   ÚverboseÚ
ValueErrorrÃ  rè   Úupdate_block_stackrn  rT  r+  r,  r   r   r   Úexception_handlerrF  rH  r;   r9   r<  Úis_tracing_resume_prologuer\  r?  r:   r   Ú
DYNAMO_BUGr$  r³   rá  râ  rÁ   )rÀ   Úipr¸   Ú
stack_reprrì  r¼   s         r¤   ÚstepÚInstructionTranslatorBase.stepˆ  s@  € ä$=Ó$?ˆÔ!à×%Ñ%ˆØ‰:ØØ*.×*;Ñ*;¸BÑ*?Ð?ˆÔ  4Ø#%¨¡6ˆÔ à××Ø×Ñ˜T×-Ñ-Ô.ð —
—
Ø×1Ñ1×3Ñ3Ø×'Ñ'×)Ñ)à'+§~¡~Ó'7ˆDÔ$Ø×'Ñ'×.Ñ.¨t×4Ñ4Ø×%Ñ% dÔ+Øà×-×-Ü×$Ñ$Ø  $§+¡+¨t¯{©{¼DÀÇÁÓ<Lôô �>�>ðPÜ! $§*¡*Ó-�
ð ×&Ñ&×-Ñ-Ø˜Ÿ™˜ Q¤t¨D¯K©KÓ'8Ð&9¸¸:¸,ÐGôð 	×Ñ Ô%ðB	Ø×Ñ §¡Ò,¨TÔ8Ø—{‘{×.Ñ.Ô.Ð.øô ó PàO’
ðPûô .ó 	ØÜ×$Ñ$ó 	Ø×"Ñ" 1Ô%ÜûÜœ|Ð,ó 	ÙÜœ_Ð-ô 8	ð ——Ø×,×,Ø×2×2Ü˜q¤+×.Ñ.°1·<·<ä˜a¤×1Ñ1Ü!Ø UØ "ð%`ð PØWðô /×9Ñ9ðò
ð Ø×'Ñ'Ñ/Ü—	‘	ÐMÔNÜ˜a¤×1Ñ1Ü!Ø XØ "ð%að Pðkðô /×9Ñ9ð	ð $(òô " !¤[×1Ñ1Ð1Ð1Ø#�”Øð/ô 03°1«v¨hð8ð ð × Ñ Ø×!Ñ!ØØð !ö ûði8	úðt 	× Ñ ×:Ñ:¸4×;TÑ;TÔUØs=   ÅG6 Æ<9H Ç6HÈHÈNÈ&H<È<NÉNÉ!D+NÎNrK  c                óà  • UR                   nU(       aƒ  [        U R                  5      S:¼  ai  UR                  U R                  S   R                  LaB  UR                  U R                  S   R                  L a  U R                  R	                  5         g g g g U R                  (       aG  UR
                  S;  a6  [        U R                  5      S:X  d   eU R                  R	                  5         g g g )Né   r…  éþÿÿÿ)ÚNOPÚJUMP_BACKWARDÚ	NOT_TAKENr   )rX  rç   r(  r1  ræ  ré   )rÀ   r¸   rë   s      r¤   r  Ú,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                ó   • g r�   rÑ   ©rÀ   r¸   s     r¤   r  r$  )  s   € Ør¦   c                óR   • U R                   c   eU R                  U R                      $ r�   )r·   rÀ  rÜ   s    r¤   rè  Ú*InstructionTranslatorBase.next_instruction,  s+   € à×'Ñ'Ñ3Ð3Ð3Ø× Ñ  ×!9Ñ!9Ñ:Ð:r¦   c           	     ó<
  • U R                   R                  (       a   eU R                  c   eU R                  (       a   e[        R                  S5        U R                   R                  U [        SU R                  5       /5      S9nU R                  (       GaE  SSK
Jn  [        R                  (       d   e[        U R                   R                  5      nUR!                  / [#        S5      QUR%                  S5      PUR'                  5       P[)        SSS	9P[#        S5      QUR%                  S5      PUR'                  5       P[)        SSS	9P5        U R+                  SXS   / US
S5      u  pVU" U5        / n[-        U R                  XG5        U R/                  U/U/U5        UR!                  U5        UR!                  / [#        S5      QUR%                  S5      P[)        S5      P[#        S5      QUR%                  S5      P[)        S5      P5        US   R0                  nUR!                  / [#        S5      QUR%                  S5      PUR'                  5       P[3        SU5      Q5        UR!                  / [5        S5      Q[)        SSS	9P5        U R                  R7                  [9        5       5        US   =R0                  S-  sl        US:”  az  UR!                  / [#        S5      QUR%                  S5      PUR'                  5       P[;        5       P[3        US 5      Q[5        S5      QUR%                  S5      P[)        S5      P5        UR!                  [)        SUS-   S	9[)        SUS-   S	9[)        SUS-   S	9/5        U R                   R=                  UR?                  5       U R                  RA                  U R                  RB                  USS  5      -   5        g U R                   R=                  / [5        S5      Q[)        S5      P5        [        U R                   R                  5      nU R                   R=                  UR%                  S5      UR'                  5       /5        US   RD                  RG                  5        HX  u  pšU R                   R=                  [;        5       UR%                  U
5      UR'                  5       URI                  U	5      /5        MZ     U R                   R=                  [)        S5      [K        U5      /U RL                  Q5        g )Nzstep triggered compileÚstep_unsupported)r¼   r   ©Ú	skip_coder  r   r‡  ©rS  TFÚDELETE_SUBSCRr{  ÚLIST_APPENDÚSTORE_SUBSCRÚUNPACK_SEQUENCEÚPOP_TOPr…  )'r+  Úoutput_instructionsr¹  r±  r$  rã  rä  r?   rå  r'  Ú
eval_framer,  r   Únested_graph_breaksr2   rU  r)  r&   Úcreate_load_constÚcreate_binary_subscrr(   Úcreate_resumer2  Úcodegen_call_resumeÚ	num_stackr#   r+   rK  r„   r'   ré  rr  rç  rè  Úlocals_namesr  Úcreate_storer)   rÀ  )rÀ   Úcontinue_instrí  r,  r-  Úleaf_resume_codeÚleaf_resume_namer.  r:  Úlocalr§  s              r¤   r  Ú*InstructionTranslatorBase.step_graph_break1  s:  € à—;‘;×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§[¡[°"Ô>ð ×$Ñ$Ð&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‘
�Ø—‘×3Ñ3ä&Ó(Ø×,Ñ,¨SÓ1Ø×/Ñ/Ó1ØŸ™¨Ó.ð	öñ Qð �K‰K×/Ñ/ä& yÓ1Ü(¨Ó7ðð ×&Ñ&ðõr¦   c                ó.   • [         R                  " S 5      $ r�   )r   Úcurrent_framerÜ   s    r¤   Úrun_ctx_mgrÚ%InstructionTranslatorBase.run_ctx_mgrõ  s   € ô ×+Ò+¨DÓ1Ð1r¦   c           
     ól  • U R                  5          [        U R                  R                  5         U R                  R                  U 5        U R                  U l         U R                  5       (       a   U R                  5       (       a  M  U R                  RO                  5         [)        U [,        5      (       a4  U R                  RQ                  5         U R                  RS                  5         S S S 5        g ! [         a^  nU R                  (       aG  [        S[        U5      R                   S[        U5       35      R                  UR                   5      S ee S nAff = f! ["         a    e [$         a    e [&         aú  n[)        U[*        5      (       a`  [)        U [,        5      (       aK  U R.                  (       d:  U R0                  (       d)  S[        U5       3nU R3                  U R4                  UUS9  [7        US5      (       an  SUR8                  ;   a^  [:        R<                  R?                  U R                  R@                  U R                  RB                  5      RE                  SSSS	9nX1l#        e e S nAf[         a6  nU RH                  (       a  U RH                  RK                  5       Ul&        e S nAff = f! U R                  RO                  5         [)        U [,        5      (       a5  U R                  RQ                  5         U R                  RS                  5         f f = f! , (       d  f       g = f)
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×  rf  zData-dependentFT)Úprint_outputÚinclude_strideÚinclude_device)*rD  r   rà  rø  r+  Úpush_txr·   r½  r  Ú	Exceptionr  r8   r  rÍ   r³   Úwith_tracebackÚ__traceback__r   r4   ÚRuntimeErrorr\  r;   rR  r»   r<  rá  râ  r9  rf  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¤   ÚrunÚInstructionTranslatorBase.runû  sš  € Ø×ÑÕÜ�d—k‘k×-Ñ-Ô.ðE=Ø—‘×#Ñ# DÔ)Ø#'×#;Ñ#;�Ô ð
ØŸ)™)Ÿ+™+Øð Ÿ)™)Ÿ+›+ðj —‘×"Ñ"Ô$ô ˜dÔ$9×:Ñ:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Ô<÷O  Ðøô !ó Ø×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ð@ð ð
 ×(Ñ(Ø×)Ñ)Ø%Øð )ñ ô ˜1˜e×$Ñ$Ð)9¸Q¿U¹UÓ)BÜ%*§X¡X×%9Ñ%9ØŸ™×.Ñ.°·±×0AÑ0Aó&ç$‘nØ%*¸4ÐPTð %ð ð #ð
 *8Ô&ØàûÜó Ø×%×%Ø$(×$6Ñ$6×$AÑ$AÓ$C�A”Màûð	ûð —‘×"Ñ"Ô$ô ˜dÔ$9×:Ñ:Ø—K‘K×'Ñ'Ô)ð
 —K‘K×:Ñ:Õ<ð ;ú÷C  Õúsh   ‘ L%²,E#Á+C8ÂA#L%Ã8
E ÄAEÅE Å E#Å#J9ÆC5I6É6J9Ê1J4Ê4J9Ê9J<Ê<A&L"Ì"L%Ì%
L3c                ó�   • Ub(  [        U[        5      (       d   S[        U5       35       eU R                  R	                  U5        g )Nz"push expects VariableTracker, got )r\  rb   r`   r±  rè   r�  s     r¤   rK  ÚInstructionTranslatorBase.pushE  sB   € Ø‰{œj¨¬o×>Ñ>ð 	
Ø0´¸³°Ð?ó	
Ð>ð 	�
‰
×Ñ˜#Õr¦   c                ó8   • U H  nU R                  U5        M     g r�   ©rK  )rÀ   Úvalsr‚  s      r¤   Ú	push_manyÚ#InstructionTranslatorBase.push_manyK  s   € ÛˆCØ�I‰I�cŽNò r¦   c                ó6   • U R                   R                  5       $ r�   )r±  ræ  rÜ   s    r¤   ræ  ÚInstructionTranslatorBase.popO  s   € Ø�z‰z�~‰~ÓÐr¦   c                ót   • / [        [        U5       Vs/ s H  o R                  5       PM     sn5      Q$ s  snf r�   )rŸ   r€  ræ  )rÀ   Únr£   s      r¤   rM  ÚInstructionTranslatorBase.popnR  s,   € Ø:”¬u°Q¬xÓ8ªx¨!Ÿ8™8ž:©xÑ8Ó9Ð:Ð:ùÒ8s   ”5
c           	     óÌ  • UR                   nU R                  (       a7  X R                  ;   a(  U R                  R                  X R                  U   5         U R	                  U R
                  U   R                  5       5        UR                  S5      (       a  U R
                  R                  U5        g g ! [         a¤    UR                  S5      (       ah   UR                  SS5      nU R	                  U R
                  U   5         N†! [         a(    [        SSU 3SU S3S/[        R                  QS9    N·f = f[        S	SU 3S
U S3/ [        R                  QS9   Nàf = f)Nr[  Ú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)rÁ  r»  Úf_localsÚadd_local_varrK  r«  ÚunwrapÚKeyErrorrm  Úreplacer:   r   r  ræ  )rÀ   r¸   r®   Únew_names       r¤   Ú	LOAD_FASTÚ#InstructionTranslatorBase.LOAD_FASTU  sQ  € Ø�{‰{ˆØ×× $¯-©-Ó"7Ø×Ñ×,Ñ,¨T·=±=ÀÑ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ô	ð#	ús0   Á,B5 Â5 E#Ã0DÄ.D:Ä6E#Ä9D:Ä:&E#Å"E#c                ó¶  • UR                   U R                  5       ;   d   eU R                  UR                      nU R                  R                  R                  U5      nU R                  U5        U R                  (       aY  UR                   U R                  ;   a>  U R                  R                  UR                   U R                  UR                      5        g g g r�   )
rÁ  rÚ  r«  r+  Úside_effectsÚ	load_cellrK  r»  rk  rl  )rÀ   r¸   ÚcellÚcontents_vars       r¤   Ú
LOAD_DEREFÚ$InstructionTranslatorBase.LOAD_DEREFx  sž   € Ø�{‰{˜d×4Ñ4Ó6Ó6Ð6Ð6Ø×#Ñ# D§K¡KÑ0ˆØ—{‘{×/Ñ/×9Ñ9¸$Ó?ˆØ�	‰	�,Ôà×× $§+¡+°·±Ó">Ø×Ñ×,Ñ,¨T¯[©[¸$¿-¹-ÈÏÉÑ:TÕUð #?Ðr¦   c                óä   • UR                   nU R                  5       nUR                  U5        X0R                  U'   U[        :X  a+  UR                  5       n[        U5      [        L d   eX@l        g g r�   )	rÁ  ræ  Úset_name_hintr«  rJ   rû  r  r¹   r  )rÀ   r¸   r®   Ú	loaded_vtr‚  s        r¤   r�  Ú$InstructionTranslatorBase.STORE_FAST�  sf   € Ø�{‰{ˆØ—H‘H“Jˆ	Ø×Ñ Ô%Ø%.×Ñ˜TÑ"ØÔ5Ó5Ø×.Ñ.Ó0ˆCÜ˜“9¤Ò$Ð$Ð$Ø.1Õ+ð 6r¦   c                ó2   • U R                   UR                  	 g r�   )r«  rÁ  r&  s     r¤   ÚDELETE_FASTÚ%InstructionTranslatorBase.DELETE_FAST‹  s   € Ø× Ñ  §¡Ñ-r¦   c                ó`  • UR                   U R                  5       ;   d   eU R                  UR                      nU R                  5       nU R                  R
                  R                  X#5        [        U[        5      (       d   eUR                  b  UR                  UR                  5        g g r�   )rÁ  rÚ  r«  ræ  r+  rt  Ú
store_cellr\  r~   Ú
local_namer{  )rÀ   r¸   rv  r‚  s       r¤   ÚSTORE_DEREFÚ%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                ó
  • UR                   nUc  [        R                  " UR                  S9$ U R                  U   nU(       d:  [        R                  " UR                  S9U R                  U'   U R                  U   nUc   eU$ )NrÒ  )rS  rh   rÂ  rÁ  Ú_constants_cache)rÀ   r¸   rn  r‚  s       r¤   Ú_load_constÚ%InstructionTranslatorBase._load_constš  sv   € Ø�H‰HˆØ‰9Ü#×*Ò*°·±Ñ=Ð=Ø×#Ñ# AÑ&ˆÞÜ'7×'>Ò'>ÀTÇ[Á[Ñ'QˆD×!Ñ! !Ñ$Ø×'Ñ'¨Ñ*ˆCØ‰ÐˆØˆ
r¦   c                óD   • U R                  U R                  U5      5        g r�   )rK  rˆ  r&  s     r¤   r½  Ú$InstructionTranslatorBase.LOAD_CONST¥  s   € Ø�	‰	�$×"Ñ" 4Ó(Õ)r¦   c           	     ó¬  • UR                   nU R                  (       ao  X R                  ;   a)  U R                  R                  X R                  U   5        O7X R                  ;   d   eU R                  U   U R                  R
                  U'   X R                  ;  a  U R                  U5      $ X R                  ;   a[  U R                  R                  U R                  U      nU R                  U R                  R                  R                  X25      5        g U R                  U   nU R                  [        R                  " X[        U5      5      5        g r�   )rÁ  r»  Ú	f_globalsÚadd_global_varÚ
f_builtinsÚbuiltinsÚload_builtinr¬  r+  rt  rK  Úload_globalrb   ÚbuildrO   )rÀ   r¸   r®   ÚvariablerÓ  s        r¤   Ú_load_globalÚ&InstructionTranslatorBase._load_global¨  s   € Ø�{‰{ˆà××Ø—~‘~Ó%Ø×"Ñ"×1Ñ1°$¿¹ÀtÑ8LÕMàŸ™Ó.Ð.Ð.Ø48·O±OÀDÑ4I�×"Ñ"×+Ñ+¨DÑ1à—~‘~Ó%Ø×$Ñ$ TÓ*Ð*à×(Ñ(Ó(Ø—{‘{×/Ñ/°×0EÑ0EÀdÑ0KÑLˆHØ�I‰I�d—k‘k×.Ñ.×:Ñ:¸8ÓJÔKØà—‘˜tÑ$ˆØ�	‰	”/×'Ò'¨´\À$Ó5GÓHÕIr¦   c                ól   • SnU R                  U5      n[        U5      n[        R                  " XU5      $ )Nztorch.nn.modules.module)Úimport_sourcer¯   rb   r“  )rÀ   Úmodule_nameÚmodule_sourceÚfglobals_values       r¤   Únn_modules_globals_vtÚ/InstructionTranslatorBase.nn_modules_globals_vt½  s4   € à/ˆØ×*Ñ*¨;Ó7ˆÜ'¨Ó4ˆÜ×$Ò$ T¸=ÓIÐIr¦   c                óT  • UR                   c   e[        R                  S:¼  a9  [        R                  S:  a%  UR                   S-  (       a  U R                  U5        U R	                  U5        [        R                  S:¼  a'  UR                   S-  (       a  U R                  U5        g g g )NrK  rÚ  r  )rS  r`  r‰  Ú	PUSH_NULLr•  r&  s     r¤   ÚLOAD_GLOBALÚ%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                ó�  • U R                  5       nUR                  n[        U5      nX0R                  ;  a  [	        5       U R                  U'   U R
                  R                  R                  X@R                  U   5      n[        U[        5      (       a  [        SUS/ S9  U R
                  R                  R                  XSU5        g )Nz%Storing Tensor hook handle in globalsúThis is not supported.rÌ  )ræ  rÁ  rO   r¬  Úobjectr+  rt  Útrack_global_existingr\  rŒ   r:   Ústore_global)rÀ   r¸   rÓ  r®   r
  r”  s         r¤   ÚSTORE_GLOBALÚ&InstructionTranslatorBase.STORE_GLOBALÌ  s¦   € Ø—‘“
ˆØ�{‰{ˆÜ˜dÓ#ˆØ×,Ñ,Ó,Ü*0«(ˆD×!Ñ! $Ñ'Ø—;‘;×+Ñ+×AÑAØ×)Ñ)¨$Ñ/ó
ˆô �eÔ4×5Ñ5ÜØ?ØØ4Øò	ð 	�‰× Ñ ×-Ñ-¨h¸eÕDr¦   c                ó  • SU;   aZ  [         R                  R                  R                  U   nUR	                  SS5      R	                  SS5      R	                  SS5      nO [        U5      nSUR	                  SS5       3nU R                  b  U R                  R                  X15        XR                  R                  U'   U R                  R                  nX4;  d	  XC   UL d   eX$U'   U R                  R                  U5        [        U5      $ )z-Create an alias to a module for use in guardsÚtorch_packageÚ>r£   Ú<r[  Ú_dot_Ú	__import_)rÿ  rÂ  Úpackage_importerÚ_package_imported_modulesro  r¯   Úadd_import_sourcer+  Úimport_sourcesÚglobal_scopeÚupdate_co_namesrO   )rÀ   r™  rÓ  Úaliasr�  s        r¤   r˜  Ú'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×,Ñ,ˆ	ØÓ%¨Ñ)9¸UÒ)BÐBÐBØ �%ÑØ�‰×#Ñ# EÔ*Ü˜EÓ"Ð"r¦   c                óŠ   • UR                  SUS-
  5      n[        U5      U:  a  [        S5      eUS   nU(       a  U SU 3$ U$ )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
r[  r   z2attempted relative import beyond top-level packager   )Úrsplitrç   ÚImportError)rÀ   r®   rÂ  ÚlevelÚbitsÚbases         r¤   Úresolve_nameÚ&InstructionTranslatorBase.resolve_name÷  sQ   € ð �~‰~˜c 5¨1¡9Ó-ˆÜˆt‹9�uÓÜÐRÓSÐSØ�A‰wˆÞ#'�$��q˜˜ÐÐ1¨TÐ1r¦   c                óŒ  • U R                   R                  S5      nU R                   R                  S5      nUb4  Ub/  XR                  :w  a   [        R	                  SUUR                  SS9  U$ Ub  UR                  $ [        R	                  SSS9  U R                   S   nSU R                   ;  a  UR                  S	5      S
   nU$ )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__r[  r   )r�  rm  r'  r$  ÚwarningÚ
rpartition)rÀ   rÂ  Úspecs      r¤   Úcalc_packageÚ&InstructionTranslatorBase.calc_package  sÈ   € ð
 —.‘.×$Ñ$ ]Ó3ˆØ�~‰~×!Ñ! *Ó-ˆØÑØÑ G¯{©{Ó$:Ü—‘Ø?ØØ—K‘KØ ð	 ñ ð ˆNØÑØ—;‘;Ðä�K‰Kð8àð ñ ð
 —n‘n ZÑ0ˆGØ §¡Ó/Ø!×,Ñ,¨SÓ1°!Ñ4�Øˆr¦   c           
     ór  • U R                  S5      u  p#UR                  5       nUR                  5       nUR                  n[        R                   SU SU SU 3nXPR
                  ;   a  U R
                  U   n[        U5      nO} [        UUUU R
                  S9nUS
:w  a"  U R                  5       nU R                  XHU5      nU(       d&  UR                  S5      S
   n	U R                  U	5      nOU R                  U5      nU R                   (       a  U R                   R#                  UW5        [%        W[&        R(                  [*        45      (       a  U R-                  [/        XgS95        g [        S[1        U5      S/ S	9  g ! [         a)    [        SSU SU SU 3S/ [        R                  QS	9   GNf = f)Nr  r£   )Úfromlistrº  ÚglobalszImport failurezmodule_name: z, fromlist: z, level=z"Failure when attempting to import.rÌ  r   r[  ©r
  zBad import resultz%Import result is not a Python module.)rM  rû  rÁ  rH   ÚLOCAL_MOD_PREFIXr�  rO   Ú
__import__r¹  r:   r   r  rÇ  r½  Ú	partitionr˜  r»  Úadd_local_modr]   r]  r^  rG   rK  r‚   r`   )
rÀ   r¸   rº  rÊ  r™  Úrecorded_namerÓ  r
  ÚpkgÚtop_level_module_names
             r¤   ÚIMPORT_NAMEÚ%InstructionTranslatorBase.IMPORT_NAME   s°  € ØŸ)™) A›,‰ˆØ×(Ñ(Ó*ˆØ×.Ñ.Ó0ˆØ—k‘kˆô !×1Ñ1Ð2°!°E°7¸!¸H¸:ÀQÀ{ÀmÐTð 	ð ŸN™NÓ*Ø—N‘N =Ñ1ˆEÜ! -Ó0‰FðÜ"ØØ%ØØ ŸN™Nñ	�ð ˜‹zØ×'Ñ'Ó)�Ø"×/Ñ/°À%ÓH�ö Ø(3×(=Ñ(=¸cÓ(BÀ1Ñ(EÐ%Ø×+Ñ+Ð,AÓB‘à×+Ñ+¨KÓ8�à××à×Ñ×,Ñ,¨]¸EÔBô �%œ%×*Ñ*¬KÐ8×9Ñ9à�I‰IÔ*¨5Ñ@ÕAäØ+ä ›ØCØóøôA ó ÜØ,Ø+¨K¨=¸ÀXÀJÈhÐW\ÐV]Ð^Ø DØ9Ô-×8Ñ8Ð9õ	ðús   ÂF Æ/F6Æ5F6c                ó\   • U R                  U5        U R                  UR                  5        g r�   )ÚDUP_TOPÚ
_load_attrrÁ  r&  s     r¤   ÚIMPORT_FROMÚ%InstructionTranslatorBase.IMPORT_FROM`  s   € Ø�‰�TÔØ�‰˜Ÿ™Õ$r¦   c                ól  • XR                   ;  a   [        SSSU S3/ [        R                  QS9  U R                   U   n[	        U5      (       aA  [        U R                  R                  5      n[        X15      n[        R                  " XU5      $ [        U5      (       d   e[        R                  " US9$ )Nz%failed to find name in frame builtinsrã   zFailed to find name `z` in frame's builtins.rÌ  rÒ  )r�  r:   r   r  rç  rO   r+  Ú%name_of_builtins_dict_key_in_fglobalsrN   rb   r“  rU   rh   rÂ  )rÀ   rÁ  r‚  Úbuiltins_sourceÚ
var_sources        r¤   Úload_builtin_from_argvalÚ2InstructionTranslatorBase.load_builtin_from_argvalf  s«   € àŸ™Ó(ÜØ?ØØ3°F°8Ð;QÐRðÜ&×1Ñ1ðò	ð �o‰o˜fÑ%ˆä�C�=‰=Ü*Ø—‘×AÑAóˆOô +¨?ÓCˆJÜ"×(Ò(¨°JÓ?Ð?ä& s×+Ñ+Ð+Ð+Ü#×*Ò*°Ñ5Ð5r¦   c                óX   • U R                  U R                  UR                  5      5        g r�   )rK  rß  rÁ  r&  s     r¤   r‘  Ú&InstructionTranslatorBase.load_builtin}  s   € Ø�	‰	�$×/Ñ/°·±Ó<Õ=r¦   c                ó  • U R                   c   eU R                  c   eUR                  c   e[        5       R	                  SU R                   U R                  -
  5        U R
                  UR                     U l         U R                   U l        g )NÚir_count)r·   r½  r1  r[   Ú	incrementÚindexofr&  s     r¤   rü  ÚInstructionTranslatorBase.jump€  s‚   € Ø×'Ñ'Ñ3Ð3Ð3Ø×ÑÑ+Ð+Ð+Ø�{‰{Ñ&Ð&Ð&ÜÓ×'Ñ'Ø˜×0Ñ0°4×3CÑ3CÑCô	
ð $(§<¡<°·±Ñ#<ˆÔ Ø×3Ñ3ˆÕr¦   FTc           	     ó¦   • UR                   c   eU R                  R                  [        XR                   [	        U R
                  5      5      5        g r�   ©r1  r(  rè   r0  rç   r±  r&  s     r¤   Ú
SETUP_LOOPÚ$InstructionTranslatorBase.SETUP_LOOP’  ó9   € à�{‰{Ñ&Ð&Ð&Ø×Ñ×Ñ¤°·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr¦   c           	     ó¦   • UR                   c   eU R                  R                  [        XR                   [	        U R
                  5      5      5        g r�   ré  r&  s     r¤   ÚSETUP_EXCEPTÚ&InstructionTranslatorBase.SETUP_EXCEPT—  rì  r¦   c                ó8   • U R                   R                  5         g r�   )r(  ræ  r&  s     r¤   Ú	POP_BLOCKÚ#InstructionTranslatorBase.POP_BLOCKœ  s   € Ø×Ñ×ÑÕr¦   c                ó&   • U R                  U5        g r�   ©Úsetup_or_before_withr&  s     r¤   Ú
SETUP_WITHÚ$InstructionTranslatorBase.SETUP_WITHŸ  ó   € Ø×!Ñ! $Õ'r¦   c           	     ó¦   • UR                   c   eU R                  R                  [        XR                   [	        U R
                  5      5      5        g r�   ré  r&  s     r¤   ÚSETUP_FINALLYÚ'InstructionTranslatorBase.SETUP_FINALLY¢  s9   € Ø�{‰{Ñ&Ð&Ð&Ø×Ñ×Ñ¤°·k±kÄ3ÀtÇzÁzÃ?Ó SÕTr¦   c                ó&   • U R                  S 5        g r�   r^  r&  s     r¤   ÚBEGIN_FINALLYÚ'InstructionTranslatorBase.BEGIN_FINALLY¦  s   € Ø�	‰	�$�r¦   c                óª   • U R                  S5      u  p#Ub   eU R                  U5        U R                  UR                  U [        /S-  0 5      5        g )Nr  r{  )rM  rK  rL  rg   )rÀ   r¸   r?  r   s       r¤   ÚWITH_CLEANUP_STARTÚ,InstructionTranslatorBase.WITH_CLEANUP_START©  sJ   € Ø—I‘I˜a“L‰	ˆØ‰{Ðˆ{Ø�	‰	�#Œà�	‰	�$×$Ñ$ TÔ,BÐ+CÀaÑ+GÈÓLÕMr¦   c                óH   • U R                  S5        U R                  S 5        g ©Nr  )rM  rK  r&  s     r¤   ÚWITH_CLEANUP_FINISHÚ-InstructionTranslatorBase.WITH_CLEANUP_FINISH°  s   € Ø�	‰	�!ŒØ�	‰	�$�r¦   c                óö  • U R                  5       R                  5       nU R                  U5         UR                  U 5      nU R                  U5        g ! [        [
        R                  4 aŠ  n[        U[
        R                  5      (       a  [
        R                  " U 5        [        R                  S:¼  a  U R                  [        5        OU R                  5         U R                  U5         S nAg S nAff = f©Nrz  )ræ  ÚrealizerK  Únext_variableÚStopIterationr   ÚObservedUserStopIterationr\  r  r`  r‰  rg   rü  )rÀ   r¸   Úitr‚  rì  s        r¤   ÚFOR_ITERÚ"InstructionTranslatorBase.FOR_ITER´  s²   € Ø�X‰X‹Z×ÑÓ!ˆØ�	‰	�"Œð	Ø×"Ñ" 4Ó(ˆCØ�I‰I�c�NøÜœs×<Ñ<Ð=ó 	Ü˜!œS×:Ñ:×;Ñ;Ü×-Ò-¨dÔ3ä×Ñ 7Ó*ð
 —	‘	Ô0Õ1ð —‘”
Ø�I‰I�d�O‰Oûð	ús   ±"A ÁC8Á.B C3Ã3C8c                óv   • [        U[        R                  [        45      (       a  UR	                  U / 0 5      nU$ r�   )r\  r   rf   rŽ   rL  r�  s     r¤   Ú_create_exception_typeÚ0InstructionTranslatorBase._create_exception_typeÉ  s;   € ÜØ”)×+Ñ+Ô-NÐO÷
ñ 
ð
 ×#Ñ# D¨"¨bÓ1ˆCØˆ
r¦   c                óð   • U R                  5       nUR                  " U S5      n[        U[        [        45      (       d   e[        R
                  " X#5      nUR                  " U S[        S5      U/0 5        g )NrM  Ú__setattr__)rå  r  r\  rh   rƒ   Úfrom_frame_summaryÚcall_method)rÀ   r   rå  ÚtbÚnew_tbs        r¤   Ú_attach_traceback_to_exceptionÚ8InstructionTranslatorBase._attach_traceback_to_exceptionÒ  s}   € à×*Ñ*Ó,ˆØ�_Š_àØó
ˆô
 ØÔ!Ô#4Ð5÷
ñ 
ð 	
ð 
ô #×5Ò5°mÓHˆØ�ŠàØÜ˜oÓ.°Ð7Øõ	
r¦   c                óØ  • U R                  U5      n[        U R                  5      (       a]  [        U[        R
                  5      (       a>  UR                  [        L a+  [        R                  " [        5      R                  U / 0 5      nU R                  U5      (       a;  [        USS 5      c-  [        R                  R                  R!                  5       Ul        U R                  U5      (       aR  U R$                  R'                  U5        [(        R*                  " UR                  5      n[        USS 5      nU" SU 3US9e[-        S[/        [(        5      S/ [0        R2                  QS9  g )NÚpython_stackúraised exception )rA  zFailed to raise exceptionz.Attempted to raise a non-Exception type/value.rÌ  )r  r.   rà  r\  r   r   Úexc_typer
  rf   rN  rL  Ú_isinstance_exceptionr  rÿ  Ú_guardsr   Úextract_stackr  rº  rƒ  r   Úget_dynamo_observed_exceptionr:   r³   r   r  )rÀ   r‚  Úobserved_exception_typer  s       r¤   Ú_raise_exception_variableÚ3InstructionTranslatorBase._raise_exception_variableæ  s*  € ð ×)Ñ)¨#Ó.ˆô
 ˜Ÿ™×%Ñ%Ü˜3¤	× ;Ñ ;×<Ñ<Ø—‘¤Ò-ä×+Ò+¬LÓ9×GÑGÈÈbÐRTÓUˆCð ×&Ñ& s×+Ñ+Ü˜˜^¨TÓ2Ñ:ä$Ÿ}™}×;Ñ;×IÑIÓKˆCÔð ×%Ñ% c×*Ñ*à×Ñ×3Ñ3°CÔ8ä&)×&GÒ&GÈÏÉÓ&UÐ#ä" 3¨¸Ó=ˆLÙ)Ø# C 5Ð)°lñð ô 	Ø/Üœ“HØHØ1Ô%×0Ñ0Ð1ó		
r¦   c                ó>  • UR                   S:X  a™  [        U R                  5      (       d%  [        S5      n[        R
                  " [        X/S9  [        U R                  5      (       d   eU R                  S   nU R                  U5      (       d   U5       eU R                  U5        g UR                   S:X  aM  U R                  S   n U R                  U5        U R                  R                  5       nU R                  U5        g U R                  5       nU R                  5       n U R                  U5        U R                  R                  5       nU R                  U5        U R                  U5      nUR                  U [        S5      U5        g ! U R                  R                  5       nU R                  U5        f = f! U R                  R                  5       nU R                  U5        U R                  U5      nUR                  U [        S5      U5        f = f)Nr   zNo active exception to reraiser÷  r…  r   Ú	__cause__)rS  rç   rº  rh   r   r  rN  r  r#  r±  r‰  r  ræ  r  Úcall_setattr)rÀ   r¸   rf  r‚  Úcurr_excÚfrom_vtÚcauses          r¤   rp  Ú'InstructionTranslatorBase.RAISE_VARARGS	  sÈ  € Ø�8‰8�q‹=Ü�t×(Ñ(×)Ñ)Ü&Ð'GÓH�Ü×,Ò,¬\¸4ÀeÒLô �t×(Ñ(×)Ñ)Ð)Ð)Ø×#Ñ# BÑ'ˆCØ×-Ñ-¨c×2Ñ2Ð7°CÓ7Ð2Ø×*Ñ*¨3Õ/Ø�X‰X˜‹]à—*‘*˜R‘.ˆCð>Ø×.Ñ.¨sÔ3ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ð —h‘h“jˆGØ—(‘(“*ˆCðRØ×.Ñ.¨sÔ3ð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×%Ñ% dÔ,<¸[Ó,IÈ5ÕQøð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÕ=ûð  ×,Ñ,×BÑBÓD�Ø×3Ñ3°HÔ=Ø×3Ñ3°GÓ<�Ø×%Ñ% dÔ,<¸[Ó,IÈ5ÕQús   Ã
F Ä(G Æ-F?ÇAHc                ó²   • U R                   S   n[        U[        5      (       d   eUR                  [        L a  [        SSS/ S9  g U R                  U5        g )Nr…  z CLEANUP_THROW with StopIterationrã   zRReceived StopIteration when handling generator.throw/close. This is not supported.rÌ  )r±  r\  r   r  r
  r:   ÚRERAISE©rÀ   r¸   Útoss      r¤   ÚCLEANUP_THROWÚ'InstructionTranslatorBase.CLEANUP_THROW7	  sQ   € à�j‰j˜‰nˆÜ˜#Ô0×1Ñ1Ð1Ð1Ø�<‰<œ=Ò(ÜØ:ØØpØó	ð �L‰L˜Õr¦   c                óz  • [         R                  S:¼  af  U R                  5       nUR                  (       a"  U R                  5       nU R	                  U5        g U R                  U5        U R	                  U5        g U R                  5       nU R                  5       nU R                  5       nU R	                  U5        g )NrK  )r`  r‰  ræ  rÁ  r#  rK  )rÀ   r¸   r‚  r£   Ú_excÚ_tbs         r¤   r-  Ú!InstructionTranslatorBase.RERAISEE	  s‡   € ô ×Ñ˜wÓ&à—(‘(“*ˆCØ�{�{à—H‘H“J�Ø×.Ñ.¨sÕ3ð —	‘	˜#”Ø×.Ñ.¨sÕ3à—8‘8“:ˆDØ—(‘(“*ˆCØ—(‘(“*ˆCØ×*Ñ*¨3Õ/r¦   c                ó"   • [        U[        5      $ r�   )r\  rª   r�  s     r¤   r  Ú/InstructionTranslatorBase._isinstance_exception\	  s   € Ü˜#œ}Ó-Ð-r¦   c                ó  • / n[         R                  S:¼  aæ  [         R                  S:  a  SOSn[        U R                  5      U:¼  d   eU R                  U*    nU R                  S   nU R	                  U5      (       d   e[        UR                  5      nUR                  U S5      n[         R                  S:¼  a@  [        U R                  S   [        5      (       d  UR                  U R                  S   5        Ox[        U R                  5      S:¼  d   eU R                  S	   nU R                  S
   nU R	                  U5      (       d   e[        UR                  5      nUR                  U S5      nX&XW/-  nU R                  XB0 5        g )NrK  ©r{  é   é   é   r…  rM  éüÿÿÿé   iùÿÿÿr   )r`  r‰  rç   r±  r  rf   r  r  r\  r�   rè   rL  )rÀ   r¸   r¢   Úfn_locrX  r‚  Útypr  s           r¤   ÚWITH_EXCEPT_STARTÚ+InstructionTranslatorBase.WITH_EXCEPT_START_	  sR  € Ø&(ˆÜ×Ñ˜wÓ&Ü×*Ñ*¨WÓ4‘Q¸!ˆFô �t—z‘z“? fÓ,Ð,Ð,Ø—‘˜V˜GÑ$ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨c×2Ñ2Ð2Ð2Ü! #§,¡,Ó/ˆCØ—‘àØóˆBô
 ×Ñ 7Ó*Ü! $§*¡*¨R¡.´,×?Ñ?Ø—K‘K §
¡
¨2¡Ô/øä�t—z‘z“? aÓ'Ð'Ð'Ø—‘˜B‘ˆBØ—*‘*˜R‘.ˆCØ×-Ñ-¨c×2Ñ2Ð2Ð2Ü! #§,¡,Ó/ˆCà—‘  Ó7ˆBà�c�ÑˆØ×Ñ˜2 RÕ(r¦   c           	     ó 
  ^ ^^	• Sm	SU	UU 4S jjn[         R                  S:¼  GaZ  T R                  R                  nU(       aÝ  [	        T R
                  5      UR                  :”  a5  T R                  5         [	        T R
                  5      UR                  :”  a  M5  UR                  (       a9  T R                  [        R                  " T R                  R                  5      5        T R                  T R                  R                  5       5        T R                  U5        g T R
                  R!                  5         T R                  R                  5       nT R#                  U5        [%        T 5      [&        L a  U" 5         Te[	        T R(                  5      (       GaA  T R(                  R                  5       nUR*                  R,                  S:X  aÑ  T R/                  S5        T R                  R                  5         [	        T R(                  5      S:X  aW  T R
                  R!                  5         [%        T 5      [&        L a)  [1        S[3        T5      T	S-   / [4        R6                  QTS	9  TeT R(                  R                  5       nUR*                  R,                  S:X  a  MÑ  T R                  R                  5       nT R                  R9                  5         [	        T R
                  5      UR:                  :”  a5  T R                  5         [	        T R
                  5      UR:                  :”  a  M5  [=        [?        S
5      SS S5      nT R(                  RA                  [C        US [	        T R
                  5      5      5        [	        T R                  5      S:¼  at  T R                  S   nT R                  [        RD                  " 5       5        T R                  U5        T R                  [        RF                  " URH                  5      5        O]T R                  [        RJ                  5        T R                  [        RJ                  5        T R                  [        RJ                  5        T R                  [        RD                  " 5       5        T R                  U5        T R                  [        RF                  " URH                  5      5        T R                  U5        g T R
                  R!                  5         [%        T 5      [&        L a  U" 5         Te)NzšDynamo found no exception handler at the top-level compiled function when encountering an exception. Exception will propagate outside the compiled region.c                 ó@  >• TR                   R                  5       n [        R                  " U R	                  5       5      n[        TU5      (       d   e[        SSU R                  5        SU R                   S3T/ [        R                  Q[        R                  QTS9  g )NzObserved exceptionr  rå   r÷  r6  )rº  r‰  r   r!  Úpython_typer\  r:   Úpython_type_namer¢   r   r  rf  )r(  Ú
dynamo_excÚobserved_exn_gb_explanationÚraised_exceptionrÀ   s     €€€r¤   Úbubble_exception_to_interpreterÚTInstructionTranslatorBase.exception_handler.<locals>.bubble_exception_to_interpreter‹	  s™   ø€ à×(Ñ(×>Ñ>Ó@ˆHÜ×:Ò:¸8×;OÑ;OÓ;QÓRˆJÜÐ.°
×;Ñ;Ð;Ð;ÜØ,Ø+¨H×,EÑ,EÓ,GÐ+HÈÈ(Ï-É-ÈÐXYÐZØ7ðÜ&×1Ñ1ðä&×2Ñ2ðð *ó	r¦   rK  ÚEXCEPT_HANDLERr{  r   z#Observed exception (EXCEPT_HANDLER)z  This graph break is unexpected.r6  g    €„.Ar  r   rð   )&r`  r‰  r³  rX  rç   r±  Údepthræ  ÚlastirK  r   rh   rÊ  rº  r‰  rü  rà   r  r  rR  r(  r¸   ré   rM  r:   r³   r   r  r†  r2  r-   rµ   rè   r0  r„   rf   r  rg   )
rÀ   rI  rJ  rX  r(  Úblock_stack_entryÚexception_varÚexcept_handler_instÚold_exceptionrH  s
   ``       @r¤   r  Ú+InstructionTranslatorBase.exception_handler…	  sÐ  ú€ ðdð 	$÷
	ñ 	ô  ×Ñ˜wÔ&Ø ×4Ñ4×BÑBˆMÞô
 ˜$Ÿ*™*“o¨×(;Ñ(;Ó;Ø—H‘H”Jô ˜$Ÿ*™*“o¨×(;Ñ(;Õ;ð !×&×&Ø—I‘IÜ!×2Ò2°4×3KÑ3K×3RÑ3RÓSôð
 —	‘	˜$×+Ñ+×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œi×>Ñ>Ô?Ø—I‘Iœi×>Ñ>Ô?Ø—I‘Iœi×>Ñ>Ô?ð —	‘	œ)×3Ò3Ó5Ô6Ø—	‘	˜-Ô(à—	‘	œ)×3Ò3°M×4JÑ4JÓKÔLð —	‘	Ð+Õ,ð —
‘
× Ñ Ô"Ü˜“:Ô!6Ò6Ù3Ô5Ø&Ð&r¦   c                óú   • U R                  5       n[        U R                  5      S:X  a  [        nOU R                  S   nU R	                  U5        U R	                  U5        U R                  R                  5         g )Nr   r…  )ræ  rç   rº  rg   rK  r†  )rÀ   r¸   r‚  Úprev_excs       r¤   ÚPUSH_EXC_INFOÚ'InstructionTranslatorBase.PUSH_EXC_INFO
  s`   € ð( �h‰h‹jˆÜˆt× Ñ Ó! QÓ&Ü(>‰Hà×(Ñ(¨Ñ,ˆHØ�	‰	�(ÔØ�	‰	�#ŒØ×Ñ×9Ñ9Õ;r¦   c                ó  • [         R                  S:¼  aG  U R                  5       n[        U R                  5      (       d   eU R                  R                  5         g [        U R
                  5      S:”  d   eU R
                  S   R                  R                  S:w  a  [        S5      eU R
                  R                  5         U R                  S5        [        U R                  5      (       d   eU R                  R                  5         g )NrK  r   r…  rL  zYBug in Dynamo tracing of exception handling.Top of the block stack is not EXCEPT_HANDLER.r{  )
r`  r‰  ræ  rç   rº  r(  r¸   ré   rè  rM  )rÀ   r¸   r£   s      r¤   Ú
POP_EXCEPTÚ$InstructionTranslatorBase.POP_EXCEPT%
  sÚ   € Ü×Ñ˜wÓ&Ø—‘“
ˆAä�t×(Ñ(×)Ñ)Ð)Ð)Ø×Ñ×!Ñ!Õ#ä�t×'Ñ'Ó(¨1Ó,Ð,Ð,Ø×Ñ Ñ#×(Ñ(×/Ñ/Ð3CÓCÜ$ðDóð ð ×Ñ× Ñ Ô"à�I‰I�aŒLô �t×(Ñ(×)Ñ)Ð)Ð)Ø×Ñ×!Ñ!Õ#r¦   c                ó  • [        U R                  5      S:¼  d   eU R                  5       n[        R                  S:¼  a  U R                  S   nOU R                  R                  5       n[        U[        [        [        [        45      (       d)  [        S[        U5      SU S3/ [        R                  QS9  [        R                  S:¼  a?  U R                  U5      (       d)  [        S[        U5      S	U S3/ [        R                  QS9  [        U[        5      (       a  UR                  nOU/nU HÑ  n[        U[        [        [        45      (       d)  [        S
[        U5      SU S3/ [        R                  QS9  U R                  U5      (       a'  [!        UR"                  UR$                  5      (       a    g[        U[&        R                  5      (       d  Mª  [!        UR$                  UR$                  5      (       d  MÑ    g   g)Nr  rK  r…  z Exception with bad expected typez"`except ...` has unsupported type r[  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æ  r`  r‰  r\  rf   r}   rŽ   r�   r:   r³   r   r  r  r  Ú
issubclassr  rX  r   )rÀ   Úexpected_exc_typesÚexc_instanceÚexpected_typesÚexpected_types        r¤   Úcheck_if_exc_matchesÚ.InstructionTranslatorBase.check_if_exc_matches:
  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Ñ8Ø/×5Ñ5‰Nð #ðˆNó ,ˆMÜØä#Ü6Ü5ð÷ñ ô ØAÜ Ó.Ø"CÀMÀ?ÐRSÐ TØ9Ô-×8Ñ8Ð9ò	ð ×)Ñ)¨,×7Ñ7¼JØ×%Ñ%Ø× Ñ ÷=ñ =ñ Ü˜L¬)×*CÑ*C×DÓDÌØ—‘à× Ñ ÷Jó Jñ
 ñ3 ,ð6 r¦   c                ój   • U R                  [        R                  " U R                  5       5      5        g r�   )rK  r   rh   ra  r&  s     r¤   ÚCHECK_EXC_MATCHÚ)InstructionTranslatorBase.CHECK_EXC_MATCH�
  s"   € Ø�	‰	”)×,Ò,¨T×-FÑ-FÓ-HÓIÕJr¦   c                óR   • U R                  5       (       d  U R                  U5        g g r�   )ra  rü  r&  s     r¤   ÚJUMP_IF_NOT_EXC_MATCHÚ/InstructionTranslatorBase.JUMP_IF_NOT_EXC_MATCH�
  s!   € Ø×(Ñ(×*Ñ*Ø�I‰I�d�Oð +r¦   c                ó¸   • UR                   S:X  a  U R                  U5        g U R                  [        UR                      " X R	                  S5      0 5      5        g )Nzexception matchr  )rÁ  rd  rK  r›   rM  r&  s     r¤   Ú
COMPARE_OPÚ$InstructionTranslatorBase.COMPARE_OP”
  sB   € Ø�;‰;Ð+Ó+Ø× Ñ  Õ&à�I‰IÔ)¨$¯+©+Ò6°t¿Y¹YÀq»\È2ÓNÕOr¦   c                ób   • U R                  [        [        5      U R                  5       /0 5        g r�   )rL  rf   Úiterræ  r&  s     r¤   ÚGET_ITERÚ"InstructionTranslatorBase.GET_ITERš
  s!   € Ø×Ñœ?¬4Ó0°4·8±8³:°,ÀÕCr¦   zjEncountered graph break when attempting to trace CALL_FUNCTION: a call to a regular function, e.g. f(x, y))rK  rG  c                ó~   • U R                  UR                  5      nU R                  5       nU R                  X20 5        g r�   ©rM  rÁ  ræ  rL  )rÀ   r¸   r¢   rX  s       r¤   ÚCALL_FUNCTIONÚ'InstructionTranslatorBase.CALL_FUNCTION�
  s1   € ð
 �y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆØ×Ñ˜2 RÕ(r¦   zjEncountered graph break when attempting to trace CALL_FUNCTION_EX: a variadic function call, e.g. f(*args)c           	     óÆ  • UR                   S:X  a  [        0 5      nU R                  5       nO›UR                   S:X  d  [        R                  S:¼  aA  U R                  5       n[        U[        5      (       a  [        0 5      nU R                  5       nO6[        SSUR                    3SUR                    3/ [        R                  QS9  [        R                  S:¼  a'  U R                  5       n[        U[        5      (       d   eU R                  5       n[        R                  S	:¼  a;  [        R                  S:  a'  U R                  5       n[        U[        5      (       d   e[        W[        5      (       d0  UR                  U 5      (       a  [        UR                  U 5      5      n[        W[        5      (       a  [        R                   " U ["        U5      n[        U[        5      (       a  [        U[        5      (       d4  [        S
S[%        U5       S[%        U5       3S/ [        R&                  QS9  UR)                  5       nU R+                  XSR,                  U5        g )Nr   r   r9  z%Variadic function call with bad flagszflags: zHAttempted to call a variadic function (CALL_FUNCTION_EX) with bad flags rÌ  rÚ  rK  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)rÁ  rm   ræ  r`  r‰  r\  r�   r:   r   r  rx   Úhas_force_unpack_var_sequencer}   Úforce_unpack_var_sequencer�   rf   Úcall_custom_dictr  r`   r  Úkeys_as_python_constantrL  r  )rÀ   r¸   Ú
kwargsvarsÚargsvarsÚnullrX  s         r¤   ÚCALL_FUNCTION_EXÚ*InstructionTranslatorBase.CALL_FUNCTION_EX¦
  sø  € ð �;‰;˜!ÓÜ*¨2Ó.ˆJØ—x‘x“z‰HØ�[‰[˜AÓ¤×!1Ñ!1°WÓ!<àŸ™›ˆJÜ˜*¤l×3Ñ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Ð1à�X‰X‹Zˆä×Ñ˜wÓ&¬3×+;Ñ+;¸gÓ+EØ—8‘8“:ˆDÜ˜d¤L×1Ñ1Ð1Ð1äàÜ÷
ñ 
ð
 ×4Ñ4°T×:Ñ:ä$ X×%GÑ%GÈÓ%MÓNˆHô �jÔ";×<Ñ<Ü(×9Ò9¸$ÄÀjÓQˆJô ˜(Ô$4×5Ñ5¼ZàÜ÷>
ñ >
ô
 ØJà%¤g¨hÓ&7Ð%8¸ÌÐPZÓH[ÐG\Ð]ØPØ5Ô)×4Ñ4Ð5òð  ×7Ñ7Ó9ˆ
à×Ñ˜2Ÿ~™~¨zÕ:r¦   zyEncountered graph break when attempting to trace CALL_FUNCTION_KW: a function call with keyword arguments, e.g. f(x=True)c                ó¬  • U R                  5       nU R                  UR                  5      nU R                  5       n[        U[        5      (       a  UR                  5       (       d   eUR                  5       nUS [        U5      *  U[        U5      * S  pS[        [        X%5      5      n[        U5      [        U5      :X  d   eU R                  XCU5        g r�   )ræ  rM  rÁ  r\  r}   rú  rû  rç   r  ÚziprL  )rÀ   r¸   Úargnamesr¢   rX  Úkwargs_listré  s          r¤   ÚCALL_FUNCTION_KWÚ*InstructionTranslatorBase.CALL_FUNCTION_KWê
  s³   € ð —8‘8“:ˆØ�y‰y˜Ÿ™Ó%ˆØ�X‰X‹ZˆÜ˜(¤M×2Ñ2°x×7RÑ7R×7TÑ7TÐTÐTØ×.Ñ.Ó0ˆØ Ð!1¤C¨£M >Ð2°D¼#¸h»-¸Ð9IÐ4JˆkÜ”c˜(Ó0Ó1ˆÜ�6‹{œc (›mÓ+Ð+Ð+Ø×Ñ˜2 VÕ,r¦   c                ó   • U R                  [        R                  " USS95        UR                  S   nU R                  S   U   n[
        R                  S:  a  U R                  U5        g U R                  [        R                  " XS95        g )Nr  rP  r   Úco_namesrK  )	rr  rò   ro  rÁ  râ  r`  r‰  rØ  ÚLOAD_METHOD©rÀ   r¸   rS  rÁ  s       r¤   ÚLOAD_METHOD_SUPERÚ+InstructionTranslatorBase.LOAD_METHOD_SUPERú
  sr   € Ø×Ñœ;×.Ò.¨t¸AÑ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆÜ×Ñ˜gÓ%Ø�O‰O˜FÕ#à×Ñœ[×0Ò0°ÑEÕFr¦   c                ó°   • U R                  [        R                  " USS95        UR                  S   nU R                  S   U   nU R                  U5        g )Nr  rP  r   r…  )rr  rò   ro  rÁ  râ  rØ  r‡  s       r¤   ÚLOAD_ATTR_SUPERÚ)InstructionTranslatorBase.LOAD_ATTR_SUPER  sK   € Ø×Ñœ;×.Ò.¨t¸AÑ>Ô?Ø�k‰k˜!‰nˆØ×"Ñ" :Ñ.¨sÑ3ˆØ�‰˜Õr¦   c                óz  • U R                  UR                  5        U R                  5       n[        R                  S:¼  a#  U R                  U5        U R                  U5        g [        R                  S:¼  a#  U R                  U5        U R                  U5        g U R                  U5        U R                  S 5        g )NrÚ  rK  )rØ  rÁ  ræ  r`  r‰  rK  rŸ  ©rÀ   r¸   Úobjs      r¤   r†  Ú%InstructionTranslatorBase.LOAD_METHOD	  s   € Ø�‰˜Ÿ™Ô$Ø�h‰h‹jˆÜ×Ñ˜wÓ&Ø�I‰I�cŒNØ�N‰N˜4Õ Ü×Ñ Ó(ð �N‰N˜4Ô Ø�I‰I�c�Nà�I‰I�cŒNØ�I‰I�d�Or¦   c                ó¨   • U R                  UR                  5      nU R                  5       nUb   eU R                  5       nU R                  XB0 5        g r�   rq  )rÀ   r¸   r¢   ÚdummyrX  s        r¤   ÚCALL_METHODÚ%InstructionTranslatorBase.CALL_METHOD  sD   € Ø�y‰y˜Ÿ™Ó%ˆØ—‘“
ˆØ‰}Ðˆ}Ø�X‰X‹ZˆØ×Ñ˜2 RÕ(r¦   c                ó²   • U R                  5       n[        [        5      R                  U U[        R
                  " U5      /0 5      nU R                  U5        g r�   )ræ  rf   r  rL  rh   rÂ  rK  )rÀ   Úattrr�  rŽ  s       r¤   rØ  Ú$InstructionTranslatorBase._load_attr   sJ   € Ø�h‰h‹jˆÜ ¤Ó)×7Ñ7ØØÔ"×)Ò)¨$Ó/Ð0Øó
ˆð
 	�	‰	�&Õr¦   c                ó®   • [         R                  S:¼  a&  UR                  S-  (       a  U R                  U5        g U R	                  UR
                  5        g )Nrz  r  )r`  r‰  rS  r†  rØ  rÁ  r&  s     r¤   Ú	LOAD_ATTRÚ#InstructionTranslatorBase.LOAD_ATTR)  s<   € Ü×Ñ˜wÓ&à�x‰x˜!�|Ø× Ñ  Ô&ØØ�‰˜Ÿ™Õ$r¦   zkEncountered graph break when attempting to trace STORE_ATTR: storing an object's attribute, e.g. x.attr = yc                ó¬   • U R                  S5      u  p#[        [        5      R                  U U[        R
                  " UR                  5      U/0 5        g r  )rM  rf   ÚsetattrrL  rh   rÂ  rÁ  )rÀ   r¸   r‚  r�  s       r¤   Ú
STORE_ATTRÚ$InstructionTranslatorBase.STORE_ATTR1  sF   € ð
 —9‘9˜Q“<‰ˆÜœÓ ×.Ñ.ØØÔ"×)Ò)¨$¯+©+Ó6¸Ð<Øõ	
r¦   c                ó¤   • U R                  5       n[        [        5      R                  U U[        R
                  " UR                  5      /0 5        g r�   )ræ  rf   ÚdelattrrL  rh   rÂ  rÁ  rŽ  s      r¤   ÚDELETE_ATTRÚ%InstructionTranslatorBase.DELETE_ATTR=  s>   € Ø�h‰h‹jˆÜœÓ ×.Ñ.ØØÔ"×)Ò)¨$¯+©+Ó6Ð7Øõ	
r¦   c                ó  • / nUS::  d   eUS:X  a  UR                  [        S5      5        U R                  S:X  a  [        S5      O[        SU R                  S9nUR                  [        S5      [        S5      U/5        U$ )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É  rP  r2  )Úextendr+   ré   r(   rÁ  )r¸   r:  ru  Úreturn_insts       r¤   Úcodegen_return_with_popsÚ2InstructionTranslatorBase.codegen_return_with_popsE  sƒ   € ð ˆð ˜A‹~Ðˆ~Ø˜‹>Ø�L‰Lœ Q›Ô(ð �{‰{˜nÓ,ô ˜~Ô.ä# N¸4¿;¹;ÑGð 	ð
 	�‰Ü 	Ó*Ô,>¸yÓ,IÈ;ÐWô	
ð ˆr¦   c                ó$  ^ ^^• U(       Ga›  [        UR                  UR                  5       H¨  u  u  p‰n
[        [        T R
                  U
   5      nUR                  [        5       5        UR                  U5        UR                  / [        S5      QUR                  U5      PUR                  5       PUR                  U5      P[        S5      P5        Mª     UR                   H¿  u  pÉ[        [        T R                  U   5      nUR                  [        5       5        UR                  U5        UR                  / [        S5      QUR                  U5      PUR                  5       PUR                  UR                   UR"                  U   -   5      P[        S5      P5        MÁ     [%        U5      (       a  UR&                  (       d   eUR&                  n[)        SUR*                   35      nU(       Gan  [-        T R.                  U5      m[1        UU 4S jT R                   5       5      n[3        UR4                  5      m[1        U4S jU 5       5      n[1        U4S jU 5       5      nUR                  [        5       UR                  U5      UR                  5       [        5       /5        U Ha  nUR                  [        5       UR                  UR                   UR"                  U   -   5      UR                  5       /[        S5      Q5        Mc     UR                  [        S5      [        S[7        U5      S	9/[        S5      Q[9        UR                   S
S5      Q5        O8[1        UR"                  R;                  5       5      n[1        UR4                  5      n[<        R>                  S:  a  [7        U5      S:X  d   S5       e[7        T R
                  5      [7        UR@                  5      -
  nT RB                  R*                  c   e[D        RF                  " T RH                  T RJ                  T RB                  R*                  UR*                  [1        S T RL                   5       5      UUU[1        S T RL                   5       5      U[1        UR                  5      [1        UR                  5      [1        UR@                  5      [1        U5      T RN                  (       + 5      n[P        RR                  " T RH                  5      RU                  SS 5      " 5       nUb-  [V        RX                  " U5      [P        RR                  " U5      S'   URZ                  (       a  T R\                  R_                  UU5        S
nO>T R\                  R_                  U[`        Rb                  " UT Rd                  U5      5        UnT Rf                  b*  T Rf                  Ri                  UT Rd                  S   U5        [j        S   URl                  ==   S-  ss'   UU4$ )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  r0  Ú__resume_at_c              3  ód   >#   • U  H%  nUT;   d  M  UTR                  5       ;  d  M!  Uv •  M'     g 7fr�   ©rÚ  )rý   rþ   rÝ  rÀ   s     €€r¤   r   Ú:InstructionTranslatorBase.create_resume.<locals>.<genexpr>À  s7   øé € ð !â-�AØ˜‘:ó à"#¨4×+AÑ+AÓ+CÑ"C÷ ‘Ú-ùs   ƒ
0‘0§	0c              3  ó6   >#   • U  H  oT;  d  M
  Uv •  M     g 7fr�   rÑ   ©rý   rþ   Úargnames_null_sets     €r¤   r   r¬  Æ  s   øé € ÐSª 1ÐARÑ8RŸQ™Qªùó   ƒ	�	c              3  ó6   >#   • U  H  oT;   d  M
  Uv •  M     g 7fr�   rÑ   r®  s     €r¤   r   r¬  Ç  s   øé € Ð!Tª\¨ÐBSÑ=S§!¡!ª\ùr°  r2  r‡  r-  NTrz  r   z&variables should not be NULL in < 3.12c              3  óL   #   • U  H  oR                   R                  v •  M     g 7fr�   )r1  rÊ  ©rý   r1  s     r¤   r   r¬  û  s   é € Ð<Ò+; a—(‘(—/–/Ò+;ùs   ‚"$c              3  ó@   #   • U  H  oR                  5       v •  M     g 7fr�   )r;  r³  s     r¤   r   r¬  ÿ  s   é € Ð:Ò)9 A—+‘+—-�-Ò)9ùó   ‚Úorig_graphmodulec                 ó   • g r�   rÑ   rÑ   r¦   r¤   r¥   Ú9InstructionTranslatorBase.create_resume.<locals>.<lambda>  s   € ¨r¦   rË   Úresumesr   )7r  Ústack_ctx_argsÚstack_ctx_idxes_origr   ri   r±  Úappend_outputr'   r+  r)  r+   r6  r7  r(   Úlocals_ctx_argsr«  r:  r;  r/   r1  r0   rÊ  r    rÀ  r:  r  Úlocals_null_keysrç   r#   Úkeysr`  r‰  Ústack_null_idxesr³  rI   Úlookuprà  r¶   r(  r9  r1   Úget_contextrm  ÚweakrefÚrefrÕ  r+  Úinstall_global_unsafer]  ÚFunctionTyper�  rÂ  Úadd_resume_functionrX   rù  )rÀ   r§  Úresume_instÚmetaÚresume_codesr-  Úis_leafÚhandle_inactive_ctxÚjr£   Új_origr‘  r®   Úresume_nameÚall_argnamesr€  Úargnames_nullrS  Ú	stack_lenÚnew_codeÚorig_graphmodule_maybeÚpackage_namer¯  rÝ  s   `                     @@r¤   r8  Ú'InstructionTranslatorBase.create_resumee  s[  ú€ ÷T Ü"% d×&9Ñ&9¸4×;TÑ;TÖ"U‘‘�˜äÔ2°D·J±J¸vÑ4FÓG�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨QÓ/ð	ô
 +¨>Ó:ðöñ #Vð   ×/Ô/‘�äÔ2°D×4HÑ4HÈÑ4NÓO�à× Ñ ¤Ó!1Ô2Ø×$Ñ$ RÔ(Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨SÓ1ðð ×/Ñ/Ó1ðð ×,Ñ,¨T¯^©^¸d×>OÑ>OÐPTÑ>UÑ-UÓVð	ô
 +¨>Ó:ðöñ 0ô( ˜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ð
 ××à�K‰K×-Ñ-¨k¸8ÔDØ‰Lð �K‰K×-Ñ-ØÜ×"Ò" 8¨T¯^©^¸[ÓIôð 'ˆLà�<‰<Ñ#Ø�L‰L×,Ñ,Ø˜$Ÿ.™.¨Ñ4°lôô 	�Ñ˜H×,Ñ,Ó-°Ñ2Ó-à˜Ð$Ð$r¦   c           
     ó²  • SU l         [        U R                  R                  5      n/ n/ n/ nU nSnUbl  XpL a  Un	OUR                  n	U	R
                  S:w  a3  UR                  U5        UR                  U5        UR                  U	5        UR                  nUS-  nUb  Ml  [        U R                  5      [        US   R                  5      -
  n
U(       d~  U
S:¼  d   eUR                  [        U
S-   5      5        [        U
S-   5       H  nUR                  [        S5      5        M     UR                  [        S5      5        UR!                  5       $ US   U L a%  UR                  [        SU
S95        SnX¢S   l        O©UR                  [        U
5      5        [        U
S-
  5       H  nUR                  [        S5      5        M     UR                  [        SSS95        X%S      R"                  nX%S      =R"                  S-  sl        US   R%                  ['        5       5        UR                  / [)        S5      QUR+                  US   5      PUR-                  5       P[/        XÌS	5      Q5        / nU HG  nUR1                  [3        5       UR+                  U5      UR-                  5       /[        S5      Q5        MI     UR1                  [        S5      [        S[        U5      S9/5        UR                  U5        UR                  / [        S5      Q[4        R6                  " U5      Q[        S5      Q5        / n/ n[9        U5       HK  u  nnUR;                  UUU   X%U      UUXpL S	5      u  nnUR                  U5        UR                  U5        MM     U R=                  XïU5        UR                  [        S5      5        UR!                  5       $ )
aÈ  
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  r2  r‡  r-  T)r·   r2   r+  rU  rè  ré   rè   r'  rç   r±  rÀ  r)  r+   r€  r¼  r(   rr  r:  rK  r„   r&   r6  r7  r#   r¤  r'   rW  Údeepcopyrs  r8  r9  )rÀ   r¸   rí  r-  ÚtxesÚidxesÚresume_instsr0  r§  rÈ  Úcurrent_num_stackr£   Ústack_insert_idxÚfilter_instsrÊ  Úresume_namesrn  Úresume_coderÏ  s                      r¤   rç  Ú/InstructionTranslatorBase.create_call_resume_at(  sæ  € ð6 $(ˆÔ ä�t—{‘{×*Ñ*Ó+ˆð 13ˆØˆØ*,ˆØ6:ˆØˆØÑ ØŠ~Ø"‘à$×5Ñ5�Ø×!Ñ! ^Ó3Ø—‘˜FÔ#Ø—‘˜SÔ!Ø×#Ñ# KÔ0à—]‘]ˆFØ�1‰HˆCð Ó ô   §
¡
›O¬cØ% aÑ(×9Ñ9ó/
ñ 
Ðö
 ð
 %¨Ó)Ð)Ð)Ø×Ñœ[Ð):¸QÑ)>Ó?Ô@ÜÐ,¨qÑ0Ö1�Ø× Ñ Ô!3°IÓ!>Ö?ñ 2à×ÑÔ/°Ó?Ô@à×&Ñ&Ó(Ð(ð �‰7�dŠ?ð ×ÑÔ/°ÐBSÑTÔUà ÐØ5F aÑ(Õ2ð
 ×Ñœ[Ð):Ó;Ô<ÜÐ,¨qÑ0Ö1�Ø× Ñ Ô!3°IÓ!>Ö?ñ 2à×ÑÔ/°À!ÑDÔEà8¸q¹ÑB×LÑLÐØ%¨A¡hÑ/×9Ò9¸QÑ>Õ9Ø�‰G�L‰LœÓ*Ô+ð 	×ÑðÜ˜Q“ðð ×$Ñ$ U¨1¡XÓ.ðð ×'Ñ'Ó)ð	ô
 %Ð%5ÈÓNðô
	
ð ˆÛˆCØ×Ñä"Ó$Ø×(Ñ(¨Ó-Ø×+Ñ+Ó-ðô ! “^ð	öñ ð 	×Ñä" 9Ó-Ü" <´S¸³ZÑ@ðô	
ð 	×Ñ˜Ô&ð 	×ÑðÜ˜Q“ðä—’˜|Ó,ðô ˜Q“ðô	
ð .0ˆØˆÜ" 4ž‰IˆAˆvØ'-×';Ñ';ØØ˜Q‘Ø)°©(Ñ3ØØØ�Øó(Ñ$ˆK˜ð ×Ñ Ô,Ø×Ñ Ö,ñ )ð 	× Ñ  ¸RÔ@Ø
×ÑÔ+¨NÓ;Ô<à×"Ñ"Ó$Ð$r¦   c           	     óJ  • UR                  [        S5      5        [        [        X5      5       H´  u  nu  pEU[	        U5      S-
  :X  a    OœUR
                  (       aK  UR                  [        5       UR                  U5      UR                  5       /5        UR                  XE5        O"UR                  UR                  USS5      5        UR                  [        S5      5        M¶     UR                  [        S5      [        S[	        U 5      S-
  S9/5        UR                  [        S5      5        U S	   R
                  (       ae  UR                  UR                  S	5      UR                  5       /5        UR                  US	   U S	   5        UR                  / [        S5      Q5        O;UR                  [        S5      /UR                  US	   S5      Q[        S5      Q5        UR                  [        5       [        5       UR                  S	5      UR                  5       /[        S5      QUR                  S	5      P[        S
5      P5        UR                  / [        S5      Q[        SSS9P[        S5      Q[        SSS9P5        UR                  [        SS5      5        g)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   Fr   r2  r‡  r-  r{  r…  r.  ÚLIST_EXTENDTN)r)  r&   rs  r  rç   rÕ  r'   r6  r7  Úmake_function_with_closureÚload_function_namer+   r(   r*   r%   )rÊ  rß  r-  rn  r®   Úcodes         r¤   r9  Ú-InstructionTranslatorBase.codegen_call_resumeÑ  s•  € ð4 	×Ñœ Q›Ô(Ü(¬¨\Ó)HÖI‰OˆA‰|�Ø”C˜Ó%¨Ñ)Ó)Ùà××Ø× Ñ ä&Ó(Ø×,Ñ,¨QÓ/Ø×/Ñ/Ó1ðôð ×-Ñ-¨dÕ9à× Ñ  ×!6Ñ!6°t¸UÀAÓ!FÔGØ×Ñœ[¨›^Ö,ñ  Jð  	×Ñä" 9Ó-Ü" <´S¸Ó5FÈÑ5JÑKðô	
ð 	×Ñœ Q›Ô(Ø˜Ñ×'×'Ø×Ñà×(Ñ(¨Ó,Ø×+Ñ+Ó-ðôð ×)Ñ)¨,°rÑ*:¸LÈÑ<LÔMØ×ÑðÜ! !“_ðõð ×Ñä& yÓ1ðà×*Ñ*¨<¸Ñ+;¸UÓCðô " !“_ðôð( 	×ÑäÓ ÜÓ à×$Ñ$ RÓ(Ø×'Ñ'Ó)ðô ˜Q“ðð ×$Ñ$ RÓ(ðô # ?Ó3ðô	
ð  	×ÑðÜ˜a“ðä" <°QÑ7ðô ˜Q“ðô
 # =°aÑ8ðô	
ð 	×ÑÔ0°¸Ó=Õ>r¦   c                óD  • [         R                  S:¼  aU  U R                  R                  nU(       a8  U R                  (       a&  UR
                  U R                  S   R
                  La  g[        S U R                   5       5      =(       a•    U R                  (       + =(       a}    U R                  =(       d    U R                  (       + =(       aR    U R                  (       + =(       a:    U R                  (       + =(       a"    U R                  R                  R                  S L $ )NrK  r…  Fc              3  ó@   #   • U  H  oR                  5       v •  M     g 7fr�   ©r5  r³  s     r¤   r   ÚIInstructionTranslatorBase.should_compile_partial_graph.<locals>.<genexpr>N  ó   é € Ð:Ò)9 A—‘—�Ò)9ùrµ  )r`  r‰  r³  rX  r(  r1  rã  r<  r¿  r»   r  r;  r+  Úcurrent_tracerr'  )rÀ   rë   s     r¤   rÝ  Ú6InstructionTranslatorBase.should_compile_partial_graphE  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                óV   • U R                  S5      u  p#nUR                  U SXB/0 5        g )Nr{  Ú__setitem__©rM  r  )rÀ   r¸   r‚  r�  Úkeys        r¤   r0  Ú&InstructionTranslatorBase.STORE_SUBSCRX  s)   € ð
 Ÿ	™	 !›‰ˆ�#Ø�‰˜˜m¨c¨Z¸Õ<r¦   c                óT   • U R                  S5      u  p#UR                  U SU/0 5        g )Nr  Ú__delitem__rñ  )rÀ   r¸   r�  rò  s       r¤   r.  Ú'InstructionTranslatorBase.DELETE_SUBSCR`  s%   € Ø—9‘9˜Q“<‰ˆØ�‰˜˜m¨c¨U°BÕ7r¦   c                ón   • U R                  UR                  5      nU R                  [        U5      5        g r�   )rM  rÁ  rK  r}   ©rÀ   r¸   r  s      r¤   ÚBUILD_TUPLEÚ%InstructionTranslatorBase.BUILD_TUPLEd  s%   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- Ó&Õ'r¦   c                ój   • U R                  UR                  5      nU R                  [        X S95        g )N)r¡   )rM  rÁ  rK  r|   rø  s      r¤   ÚBUILD_SLICEÚ%InstructionTranslatorBase.BUILD_SLICEh  s%   € Ø—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”- Ñ/Õ0r¦   c                ó   • g)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_nestedÚ=InstructionTranslatorBase._can_speculate_comprehension_nestedl  s   € ð
 r¦   c                óF  • [         R                  S:¼  a  UR                  S:X  d  gU R                  5       (       d  g[	        S U R
                   5       5      =(       a‚    U R                  (       + =(       aj    U R                  (       + =(       aR    U R                  (       + =(       a:    U R                  (       + =(       a"    U R                  R                  R                  SL nU(       a  U R                  b  U R                  5       nU(       aN  U R                  S:X  a>  U R                  5       nUR!                  U 5      (       a  U R#                  U5        gX0l        U R'                  5       nUS:¼  d   eU R(                  R+                  U5        U =R                  S-  sl        g)z¡
Handle comprehension start for Python 3.12+ BUILD_LIST/BUILD_MAP with argval 0.
Returns True if a graph break was triggered and the caller should return early.
rz  r   Fc              3  ó@   #   • U  H  oR                  5       v •  M     g 7fr�   rê  r³  s     r¤   r   ÚSInstructionTranslatorBase._maybe_setup_comprehension_speculation.<locals>.<genexpr>  rì  rµ  NTr   )r`  r‰  rÁ  Ú_is_comprehension_startrã  r(  r<  r»   r  r;  r+  rí  r'  rÿ  Ú_comprehension_depthr:  rÆ   Ú!_handle_comprehension_graph_breakr¹  Ú_find_comprehension_end_for_ipÚ_comprehension_end_for_ipsr  )rÀ   r¸   Úcan_speculaterC  Ú
end_for_ips        r¤   Ú&_maybe_setup_comprehension_speculationÚ@InstructionTranslatorBase._maybe_setup_comprehension_speculations  sT  € ô
 × Ñ  GÓ+°·±¸qÓ0@Øà×+Ñ+×-Ñ-Øô Ñ:¨×)9Ò)9Ó:Ó:÷ :Ø—N‘NÔ"÷:à×-Ñ-Ô-÷:ð ×3Ñ3Ô3÷:ð ×8Ñ8Ô8÷	:ð
 —‘×*Ñ*×1Ñ1°TÐ9ð 	ö ˜TŸ[™[Ñ4Ø ×DÑDÓFˆMæ˜T×6Ñ6¸!Ó;ØŸ.™.Ó*ˆKØ×!Ñ! $×'Ñ'Ø×6Ñ6°tÔ<ØØ'2Ô$Ø×8Ñ8Ó:ˆ
Ø˜Q‹ÐˆØ×'Ñ'×+Ñ+¨JÔ7Ø×!Ò! QÑ&Õ!Ør¦   c                óª   • U R                  U5      (       a  g U R                  UR                  5      nU R                  [	        U[        5       S95        g ©N©Úmutation_type)r  rM  rÁ  rK  r{   ra   rø  s      r¤   r‡  Ú$InstructionTranslatorBase.BUILD_LIST–  s?   € Ø×6Ñ6°t×<Ñ<Øà—	‘	˜$Ÿ+™+Ó&ˆØ�	‰	”,˜uÔ4DÓ4FÑGÕHr¦   c                óÂ   • [         R                  (       a  [        SSS/ S9  U R                  UR                  5      n[        U[        5       S9nU R                  U5        g )Nzmissing BUILD_SET handlerrã   z:Missing BUILD_SET bytecode handler (for testing purposes).rÌ  r  )r   Ú+inject_BUILD_SET_unimplemented_TESTING_ONLYr:   rM  rÁ  rn   ra   rK  )rÀ   r¸   r  Únew_sets       r¤   Ú	BUILD_SETÚ#InstructionTranslatorBase.BUILD_SET�  sO   € Ü×=×=ÜØ3ØØXØò	ð —	‘	˜$Ÿ+™+Ó&ˆÜ˜eÔ3CÓ3EÑFˆØ�	‰	�'Õr¦   c           	     ó@  • U R                  UR                  5      n/ nU H$  n UR                  UR                  U 5      5        M&     U R                  U" U[        5       S95        g ! [         a,    [        S[        U5      U S3/ [        R                  QS9   M|  f = f)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  )rM  rÁ  r¤  rv  ÚNotImplementedErrorr:   r³   r   r  rK  ra   )rÀ   r¸   r  Úseqsr  Úseqs         r¤   ÚBUILD_LIST_UNPACKÚ+InstructionTranslatorBase.BUILD_LIST_UNPACK©  s™   € Ø�y‰y˜Ÿ™Ó%ˆØˆÛˆCð	Ø—‘˜S×:Ñ:¸4Ó@ÖAñ ð 	�	‰	‘#�eÔ+;Ó+=Ñ>Õ?øô 'ó ÜØKÜ ›HØ#& %ð (2ð !2à9Ô-×8Ñ8Ð9õðús   ¤ A'Á'2BÂBc                ó,   • U R                  U[        S9  g )Nr  )r  r}   r&  s     r¤   ÚBUILD_TUPLE_UNPACKÚ,InstructionTranslatorBase.BUILD_TUPLE_UNPACK¹  s   € Ø×Ñ˜t¬ÐÒ7r¦   c           	     óò   • U R                  U5      (       a  g U R                  UR                  S-  5      n[        [	        US S S2   USS S2   5      5      nU R                  [        U[        5       S95        g )Nr  r   r  )r  rM  rÁ  r  r  rK  rm   ra   )rÀ   r¸   r  Úds       r¤   Ú	BUILD_MAPÚ#InstructionTranslatorBase.BUILD_MAP¾  sg   € Ø×6Ñ6°t×<Ñ<Øà—	‘	˜$Ÿ+™+¨™/Ó*ˆÜ”�U™3˜Q˜3‘Z  q t¨! t¡Ó-Ó.ˆØ�	‰	Ô# AÔ5EÓ5GÑHÕIr¦   c                ó`  • U R                  UR                  5      nU Vs/ s H#  n[        [        5      R	                  X/0 5      PM%     nn0 nU H5  n[        U[        5      (       d   eUR                  UR                  5        M7     U R                  [        U[        5       S95        g s  snf r  )rM  rÁ  rf   r  rL  r\  rm   Úupdater  rK  ra   )rÀ   r¸   r  rh  rŽ  s        r¤   ÚBUILD_MAP_UNPACKÚ*InstructionTranslatorBase.BUILD_MAP_UNPACKÆ  s”   € Ø—	‘	˜$Ÿ+™+Ó&ˆáMRÓSÊUÈ”¤Ó&×4Ñ4°T¸3ÀÖCÉUˆÐSØ!#ˆÛˆAÜ˜aÔ!2×3Ñ3Ð3Ð3Ø�M‰M˜!Ÿ'™'Ö"ñ ð 	�	‰	ÜØÜ.Ó0ñõ	
ùò Ts    *B+c           
     ór  • U R                  5       nU R                  UR                  5      n[        U[        5      (       d   eUR                  5       (       d   eUR                  U 5      n[        U5      [        U5      :X  d   eU R                  [        [        [        X#5      5      [        5       S95        g r  )ræ  rM  rÁ  r\  r}   rú  rv  rç   rK  rm   r  r  ra   )rÀ   r¸   r¿  ræ  s       r¤   ÚBUILD_CONST_KEY_MAPÚ-InstructionTranslatorBase.BUILD_CONST_KEY_MAP×  s”   € Ø�x‰x‹zˆØ—‘˜4Ÿ;™;Ó'ˆÜ˜$¤×.Ñ.Ð.Ð.Ø×&Ñ&×(Ñ(Ð(Ð(à×-Ñ-¨dÓ3ˆÜ�4‹yœC ›KÓ'Ð'Ð'à�	‰	ÜÜ”S˜Ó&Ó'Ü.Ó0ñõ	
r¦   c                ó  • U R                  S5      u  p#UR                  S:”  d   eUR                  c   eU R                  UR                  *    R	                  5       n[        U[        5      (       d   eUR                  U SX#40 5        g )Nr  r   rð  )rM  rÁ  rS  r±  r  r\  rm   r  )rÀ   r¸   rþ   rÿ   r�  s        r¤   ÚMAP_ADDÚ!InstructionTranslatorBase.MAP_ADDç  sv   € Ø�y‰y˜‹|‰ˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0×1Ñ1Ð1Ð1Ø�‰˜˜m¨a¨V°RÕ8r¦   c                ó   • U R                  5       nUR                  S:”  d   eUR                  c   eU R                  UR                  *    n[	        U[
        5      (       d   eUR                  5       (       d   eUR                  U SU/0 5        g )Nr   r  ©ræ  rÁ  rS  r±  r\  rn   Ú
is_mutabler  ©rÀ   r¸   rÿ   r�  s       r¤   ÚSET_ADDÚ!InstructionTranslatorBase.SET_ADDï  s{   € Ø�H‰H‹JˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{×+Ñ+Ð+Ð+Ø�~‰~×ÑÐÐØ�‰˜˜e a S¨"Õ-r¦   c                ó   • U R                  5       nUR                  S:”  d   eUR                  c   eU R                  UR                  *    n[	        U[
        5      (       d   eUR                  5       (       d   eUR                  U SU/0 5        g ©Nr   r%  r/  r1  s       r¤   Ú
SET_UPDATEÚ$InstructionTranslatorBase.SET_UPDATEø  s{   € Ø�H‰H‹JˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ{×+Ñ+Ð+Ð+Ø�~‰~×ÑÐÐØ�‰˜˜h¨¨¨RÕ0r¦   c                ó’  • U R                  5       nUR                  S:”  d   eUR                  c   eU R                  UR                  *    R	                  5       n[        U[        5      (       d   eUR                  5       (       d   eU R                  R                  R                  U5        UR                  R                  U5        g rÚ   )ræ  rÁ  rS  r±  r  r\  r{   r0  r+  rt  Úmutationr  rè   r1  s       r¤   r/  Ú%InstructionTranslatorBase.LIST_APPEND  sš   € Ø�H‰H‹JˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#œ|×,Ñ,Ð,Ð,Ø�~‰~×ÑÐÐØ�‰× Ñ ×)Ñ)¨#Ô.Ø�	‰	×Ñ˜Õr¦   c                ó˜  • UR                   n[        R                  S:  a  U R                  5       nU R                  5       n[        R                  S:¼  aE  [	        UR
                  S5      (       d   e[        R                  " UR
                  R                  S9nS nS nS nS n[        R                  S:  ak  Ubh  US-  (       a  U R                  5       nUS-  (       a  U R                  5       nUS-  (       a  U R                  5       nUS-  (       a  U R                  5       nU R                  [        WUU R                  UUUU5      5        g )	NrK  Úco_qualnamerÒ  rÚ  é   r;  r  r   )rS  r`  r‰  ræ  r9  rÓ  rh   rÂ  r<  rK  rr   r�  )	rÀ   r¸   ÚflagsÚfn_nameræ  ÚdefaultsÚclosurer   Ú
kwdefaultss	            r¤   ÚMAKE_FUNCTIONÚ'InstructionTranslatorBase.MAKE_FUNCTION  s  € Ø—‘ˆÜ×Ñ˜gÓ%Ø—h‘h“jˆGØ�x‰x‹zˆÜ×Ñ˜wÓ&ô ˜4Ÿ:™: }×5Ñ5Ð5Ð5Ü&×-Ò-°D·J±J×4JÑ4JÑKˆGØˆØˆØˆØˆ
ä×Ñ˜gÓ%àÑ Ø˜4—<Ø"Ÿh™h›j�GØ˜4—<Ø"&§(¡(£*�KØ˜4—<Ø!%§¡£�JØ˜4—<Ø#Ÿx™x›z�Hà�	‰	Ü&ØØØ—‘ØØØØóõ
	
r¦   c           	     óP  • U R                  5       nUR                  5       (       a$  UR                  U [        UR                  5      S9nOä[        U[        5      (       a  UR                  R                  5       (       a`  [        UR                  R                  5       UR                  5      n[        UR                  5       Vs/ s H  n[        XU   5      PM     nnOPUR                  U 5      (       a  UR                  U 5      nO([        S[        U5      U S3/ [         R"                  QS9  [%        W5      UR                  :w  a8  [        SSUR                   S[%        U5       3U S3/ [         R&                  QS9  [)        U5       H  nU R+                  U5        M     g s  snf )	N)rÚ  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  r€  rÁ  r\  r€   r�  r  Úas_proxyr®   re   ru  rv  r:   r³   r   r  rç   r  rŸ   rK  )rÀ   r¸   r  r‚  Úproxyrn  s         r¤   r1  Ú)InstructionTranslatorBase.UNPACK_SEQUENCE2  sa  € Ø�h‰h‹jˆØ�=‰=�?‰?Ø×)Ñ)¨$´e¸D¿K¹KÓ6HÐ)ÐI‰CÜ˜œ_×-Ñ-°#·'±'×2CÑ2C×2EÑ2Eä˜CŸG™G×,Ñ,Ó.°·±Ó9ˆEÜ:?ÀÇÁÔ:LÓMÒ:L°Q”= ¨Q¡xÖ0Ñ:LˆCÐMˆCØ×.Ñ.¨t×4Ñ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   ÃF#c                ó|  • SUR                   s=::  a  S::  d   e   eUR                   S-  nUR                   S-	  nU R                  5       nUR                  U 5      (       a´  [        UR	                  U 5      5      n[        U5      X#-   :¼  d   eUS U nXR[        U5      U-
   nU[        U5      U-
  S  n[        U5       H  n	U R                  U	5        M     U R                  [        U5      5        [        U5       H  n	U R                  U	5        M     g [        S[        U5      U S3/ [        R                  QS9  g )Nr   iÿÿ  éÿ   r=  z%Failed to unpack object for UNPACK_EXz; cannot be unpacked into a list for the UNPACK_EX bytecode.rÌ  )rÁ  ræ  ru  rô   rv  rç   rŸ   rK  r}   r:   r³   r   r  )
rÀ   r¸   ÚprefixÚsuffixr  r_  Úvals_prefixÚ	vals_listÚvals_suffixÚitems
             r¤   Ú	UNPACK_EXÚ#InstructionTranslatorBase.UNPACK_EXR  s'  € Ø�D—K‘KÕ) 6Ó)Ð)Ñ)Ð)Ð)Ø—‘˜tÑ#ˆØ—‘ Ñ!ˆØ�h‰h‹jˆØ×,Ñ,¨T×2Ñ2Ü˜×5Ñ5°dÓ;Ó<ˆDÜ�t“9 ¡Ó/Ð/Ð/Ø˜w ˜-ˆKØ¤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                óB   • U R                   (       a  [        SSSS/S9  g g )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_functionÚ6InstructionTranslatorBase.graph_break_on_leaf_functionj  s0   € ð ×$×$ÜØ=Øð6ð ^ðóð %r¦   c                óH   • UR                   S:X  a  U R                  U5        g g )NÚGRAPH_BREAK_IF_LEAF)rÁ  rT  r&  s     r¤   r!  ÚInstructionTranslatorBase.NOPy  s"   € à�;‰;Ð/Ó/Ø×-Ñ-¨dÕ3ð 0r¦   c                ó$   • U R                  5         g r�   ©ræ  r&  s     r¤   r2  Ú!InstructionTranslatorBase.POP_TOP~  ó   € Ø�‰�
r¦   c                óˆ   • U R                  5       nU R                  5       nU R                  U5        U R                  U5        g r�   ©ræ  rK  ©rÀ   r¸   Úar1  s       r¤   ÚROT_TWOÚ!InstructionTranslatorBase.ROT_TWO�  s.   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r¦   c                óÊ   • U R                  5       nU R                  5       nU R                  5       nU R                  U5        U R                  U5        U R                  U5        g r�   r^  )rÀ   r¸   r`  r1  Úcs        r¤   Ú	ROT_THREEÚ#InstructionTranslatorBase.ROT_THREE‡  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¦   c                ó  • U R                  5       nU R                  5       nU R                  5       nU R                  5       nU R                  U5        U R                  U5        U R                  U5        U R                  U5        g r�   r^  )rÀ   r¸   r`  r1  rd  r!  s         r¤   ÚROT_FOURÚ"InstructionTranslatorBase.ROT_FOUR�  sZ   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¦   c                óh   • U R                  5       nU R                  U5        U R                  U5        g r�   r^  )rÀ   r¸   r`  s      r¤   r×  Ú!InstructionTranslatorBase.DUP_TOP™  s#   € Ø�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!�r¦   c                óÌ   • U R                  5       nU R                  5       nU R                  U5        U R                  U5        U R                  U5        U R                  U5        g r�   r^  r_  s       r¤   ÚDUP_TOP_TWOÚ%InstructionTranslatorBase.DUP_TOP_TWOž  sD   € Ø�H‰H‹JˆØ�H‰H‹JˆØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!ŒØ�	‰	�!�r¦   c                óê   • US:X  a   [        [        5      R                  X/0 5      $ US:X  a   [        [        5      R                  X/0 5      $ US:X  a   [        [        5      R                  X/0 5      $ U$ )Nr   r  r{  )rf   r³   rL  r  Úascii)rÀ   rÓ  Úflags      r¤   Ú_convert_valueÚ(InstructionTranslatorBase._convert_value¦  sj   € Ø�1‹9Ü"¤3Ó'×5Ñ5°d¸GÀRÓHÐHØ�Q‹YÜ"¤4Ó(×6Ñ6°t¸WÀbÓIÐIØ�Q‹YÜ"¤5Ó)×7Ñ7¸¸gÀrÓJÐJØˆr¦   c                ó–  • U R                  5       n[        U[        5      (       a;  SSKJnJn  UR                  " U" X15      UR                  S9nU R                  U5        g U R                  X2S-  5      n[        R                  " SUR                  5       -   S-   5      nU R                  [        [        R                  5      Xc/0 5        g )Nr   )ÚLazySymNodeFormatStringrw   rÌ  r{  z{:Ú})ræ  r\  r‰   Útorch._dynamo.variables.lazyru  rw   rÂ  r
  rK  rr  rh   rû  rL  rf   r³   Úformat)rÀ   Úfmt_specr>  rÓ  ru  rw   Úfmt_vars          r¤   Ú_format_valueÚ'InstructionTranslatorBase._format_value¯  s¦   € Ø—‘“
ˆÜ�eœ_×-Ñ-÷ð
 (×.Ò.Ù'¨Ó8ÀÇÁñˆEð �I‰I�eÔØà×#Ñ# E°4©<Ó8ˆä"×)Ò)¨$°×1LÑ1LÓ1NÑ*NÐQTÑ*TÓUˆà×Ñœ?¬3¯:©:Ó6¸Ð8HÈ"ÕMr¦   c                ó¦   • UR                   nUc   eUS-  S:X  a  U R                  5       nO[        R                  " S5      nU R	                  X25      $ )Nr;  rã   )rS  ræ  rh   rÂ  r{  )rÀ   r¸   r>  ry  s       r¤   ÚFORMAT_VALUEÚ&InstructionTranslatorBase.FORMAT_VALUEÃ  sO   € Ø—‘ˆØÑ Ð Ð Ø�D‰L˜TÓ!Ø—x‘x“z‰Hä'×.Ò.¨rÓ2ˆHà×!Ñ! (Ó2Ð2r¦   c           
     óv  • / n/ n0 nUR                   c   eU R                  UR                   5       GHF  nUR                  5       (       a$  UR                  S5        UR                  U5        M=  [	        U[
        R                  5      (       aÅ  UR                  UR                  5        UR                  UR                  5        [        UR                  5       5      [        UR                  R                  5       5      -  (       a/  [        SSU SU SUR                   3S/ [        R                  QS9  UR!                  UR                  5        GM!  [        S[#        U5      S	/ [        R                  QS9  GMI     U R%                  [
        R                  R'                  S
R)                  U5      X45      5        g )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ã   )rS  rM  rú  rè   r\  r   ÚStringFormatVariableÚformat_stringr¤  Úsym_argsr  r¿  Ú
sym_kwargsr:   r   r  r%  r³   rK  rÂ  r  )rÀ   r¸   Úformat_string_partsr¢   ré  Úparts         r¤   ÚBUILD_STRINGÚ&InstructionTranslatorBase.BUILD_STRINGÍ  st  € Ø)+ÐØ&(ˆØ-/ˆØ�x‰xÑ#Ð#Ð#Ø—I‘I˜dŸh™h×'ˆDØ×&Ñ&×(Ñ(Ø#×*Ñ*¨4Ô0Ø—‘˜DÖ!Ü˜D¤)×"@Ñ"@×AÑ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óõ	
r¦   c                ó¨   • UR                   S:X  d  UR                   S:X  d   eUR                   S:X  a  SnOSn[        SUS9nU R                  U5        g )Nr   r   Úiszis notrj  rP  )rÁ  r(   rj  )rÀ   r¸   Ú
new_argvalÚnew_insts       r¤   ÚIS_OPÚInstructionTranslatorBase.IS_OPî  sM   € Ø�{‰{˜aÓ 4§;¡;°!Ó#3Ð3Ð3Ø�;‰;˜!ÓØ‰Jà!ˆJÜ% l¸:ÑFˆØ�‰˜Õ!r¦   c           	     ó4  • UR                   S:X  d  UR                   S:X  d   eU R                  S5      u  p#UR                   n U R                  UR                  U SU/0 5      5        US:X  a  U R                  U5        g g ! [        R
                  [        4 a}  n[        U[        5      (       a"  UR                  (       a  e UR                  5         U R                  U R                  [        R                  " U [        5      X#/0 5      5         S nAN«S nAff = f)Nr   r   r  Ú__contains__)rÁ  rM  rK  r  r   ÚObservedTypeErrorr;   r\  r?  r=  rô  rb   r“  rB   Ú	UNARY_NOT)rÀ   r¸   ÚleftÚrightrq  rD  s         r¤   ÚCONTAINS_OPÚ%InstructionTranslatorBase.CONTAINS_OP÷  sô   € Ø�{‰{˜aÓ 4§;¡;°!Ó#3Ð3Ð3Ø—i‘i “l‰ˆØ�[‰[ˆð	Ø�I‰I�e×'Ñ'¨¨n¸t¸fÀbÓIÔJð* �‹7Ø�N‰N˜4Õ ð øô% ×!Ñ!ô ð
ó 	ô ˜$¤×,Ñ,Ø—?—?àØ×&Ñ&Ô(Ø�I‰IØ×0Ñ0Ü#×)Ò)¨$Ô0IÓJØ�MØó÷ñ ûð	ús   Á$B  Â DÂA3DÄDc                ó   • U R                  5       nUR                  S:”  d   eUR                  c   eU R                  UR                  *    n[	        U[
        5      (       d   eUR                  5       (       d   eUR                  U SU/0 5        g )Nr   r¤  )ræ  rÁ  rS  r±  r\  r{   r0  r  r1  s       r¤   rã  Ú%InstructionTranslatorBase.LIST_EXTEND  s{   € Ø�H‰H‹JˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#ˆÜ˜#œ|×,Ñ,Ð,Ð,Ø�~‰~×ÑÐÐØ�‰˜˜h¨¨¨RÕ0r¦   c                ó~   • U R                  [        [        5      R                  X R	                  5       /0 5      5        g r�   )rK  rf   r:  rL  ræ  r&  s     r¤   ÚLIST_TO_TUPLEÚ'InstructionTranslatorBase.LIST_TO_TUPLE  s(   € Ø�	‰	”/¤%Ó(×6Ñ6°t¿h¹h»j¸\È2ÓNÕOr¦   c                óp  • U R                   S   nU R                  U5      (       d   eUR                  [        L a|  [        R
                  " [        5      R                  U [        S5      /0 5      nUR                  U [        S5      U5        UR                  U [        S5      U5        X0R                   S'   g g )Nr…  zgenerator raised StopIterationr�  r&  )
r±  r  r  r
  r   rf   rN  rL  rh   r'  )rÀ   r¸   r‚  Únew_vals       r¤   ÚSTOPITERATION_ERRORÚ-InstructionTranslatorBase.STOPITERATION_ERROR   s£   € ð �j‰j˜‰nˆØ×)Ñ)¨#×.Ñ.Ð.Ð.Ø�<‰<œ=Ò(Ü×/Ò/´Ó=×KÑKØÜ!Ð"BÓCÐDØóˆGð
 × Ñ  Ô'7¸Ó'FÈÔLØ× Ñ  Ô'7¸Ó'DÀcÔJØ$�J‰J�rŠNð )r¦   c                ó<  • U R                  5       nUR                  S:”  d   eUR                  c   eU R                  UR                  *    R	                  5       n[        U[        5      (       d   eUR                  5       (       d   eUR                  U SU/0 5        g r5  )	ræ  rÁ  rS  r±  r  r\  rm   r0  r  r1  s       r¤   Ú
DICT_MERGEÚ$InstructionTranslatorBase.DICT_MERGE2  s…   € Ø�H‰H‹JˆØ�{‰{˜Q‹ÐˆØ�x‰xÑ#Ð#Ð#Ø�j‰j˜$Ÿ(™(˜Ñ#×+Ñ+Ó-ˆÜ˜#Ô0×1Ñ1Ð1Ð1Ø�~‰~×ÑÐÐØ�‰˜˜h¨¨¨RÕ0r¦   c                ó$   • U R                  5         g r�   rZ  r&  s     r¤   Ú	GEN_STARTÚ#InstructionTranslatorBase.GEN_START=  r\  r¦   c                ó  • U R                   S   nUR                  5       (       a=  U R                  [        R                  " [        UR                  5       5      5      5        g U R                  UR                  U S/ 0 5      5        g )Nr…  rö  )r±  rú  rK  rh   rÂ  rç   rû  r  r.  s      r¤   ÚGET_LENÚ!InstructionTranslatorBase.GET_LEN@  s_   € Ø�j‰j˜‰nˆØ×!Ñ!×#Ñ#Ø�I‰IÔ&×-Ò-¬c°#×2HÑ2HÓ2JÓ.KÓLÕMà�I‰I�c—o‘o d¨I°r¸2Ó>Õ?r¦   c                óš   • U R                   S   nU R                  U R                  [        R                  " U [
        5      U/0 5      5        g)zZ
If STACK[-1] is an instance of collections.abc.Mapping, push True.
Otherwise, push False
r…  N)r±  rK  rô  rb   r“  rC   r.  s      r¤   ÚMATCH_MAPPINGÚ'InstructionTranslatorBase.MATCH_MAPPINGG  sC   € ð
 �j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ò% d¬OÓ<Ø�Øóõ	
r¦   c                óš   • U R                   S   nU R                  U R                  [        R                  " U [
        5      U/0 5      5        g ©Nr…  )r±  rK  rô  rb   r“  rF   r.  s      r¤   ÚMATCH_SEQUENCEÚ(InstructionTranslatorBase.MATCH_SEQUENCEU  sB   € Ø�j‰j˜‰nˆØ�	‰	Ø×,Ñ,Ü×%Ò% dÔ,?Ó@Ø�Øóõ	
r¦   c           	     óž  • U R                  S5      u  p#n[        R                  " UR                  5      nU R	                  U R                  [        R                  " U [        5      X#XT/0 5      5        [        R                  S:  aH  U R                  S   nU R	                  [        R                  " [        U[        5      (       + 5      5        g g )Nr{  rK  r…  )rM  rh   rÂ  rS  rK  rô  rb   r“  rD   r`  r‰  r±  r]   )rÀ   r¸   Úsubjectr  ÚnamesrS  r/  s          r¤   ÚMATCH_CLASSÚ%InstructionTranslatorBase.MATCH_CLASS_  s£   € Ø"Ÿi™i¨›lÑˆ�eÜ×%Ò% d§h¡hÓ/ˆØ�	‰	Ø×,Ñ,Ü×%Ò% dÔ,<Ó=Ø˜sÐ*Øóô	
ô ×Ñ˜gÓ%à—*‘*˜R‘.ˆCØ�I‰IÔ&×-Ò-´&¸Ô>NÓ2OÔ.OÓPÕQð &r¦   c                óž  • U R                   S   nU R                   S   n[        U[        5      (       d   eU R                  U R	                  [
        R                  " U [        5      X2/0 5      5        [        R                  S:  aH  U R                   S   nU R                  [        R                  " [        U[        5      (       + 5      5        g g )Nr…  r   rK  )r±  r\  r}   rK  rô  rb   r“  rE   r`  r‰  rh   rÂ  r]   )rÀ   r¸   r¿  r�  r/  s        r¤   Ú
MATCH_KEYSÚ$InstructionTranslatorBase.MATCH_KEYSo  s¤   € Ø�z‰z˜"‰~ˆØ�j‰j˜‰nˆä˜$¤×.Ñ.Ð.Ð.à�	‰	Ø×,Ñ,Ü×%Ò% d¬OÓ<¸s¸kÈ2óô	
ô ×Ñ˜gÓ%à—*‘*˜R‘.ˆCØ�I‰IÔ&×-Ò-´&¸Ô>NÓ2OÔ.OÓPÕQð &r¦   c                óD   • U R                  U R                  S5      5        g )Nrè  ©rK  rß  r&  s     r¤   ÚLOAD_ASSERTION_ERRORÚ.InstructionTranslatorBase.LOAD_ASSERTION_ERROR€  s   € Ø�	‰	�$×/Ñ/Ð0@ÓAÕBr¦   c                óD   • U R                  U R                  S5      5        g )NÚ__build_class__r¹  r&  s     r¤   ÚLOAD_BUILD_CLASSÚ*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                ó|   • UR                   S:X  a  U R                  U5        SU l        g U R                  (       a   eg )Nr   F)rS  Úappend_prefix_instr´  r&  s     r¤   ÚRESUMEÚ InstructionTranslatorBase.RESUME®  s5   € Ø�8‰8�q‹=Ø×#Ñ# DÔ)Ø&+ˆDÕ#à×.×.Ð.Ð.Ð.r¦   c                óR   • UR                   c   e[        UR                      " X5      $ r�   )rS  Ú_binary_op_lookupr&  s     r¤   Ú	BINARY_OPÚ#InstructionTranslatorBase.BINARY_OP·  s&   € Ø—8‘8Ñ'Ð'Ð'Ü$ T§X¡XÒ.¨tÓ:Ð:r¦   c                ó   • g r�   rÑ   r&  s     r¤   rN  Ú!InstructionTranslatorBase.PRECALL»  ó   € Ør¦   c                óú   • U R                   S   UR                     n[        U[        5      (       d   eU H  n[        U[        5      (       a  M   e   U R
                  b   e[        R                  " US9U l        g )NÚ	co_constsrÒ  )râ  rS  r\  r:  r³   rV  rh   rÂ  )rÀ   r¸   rV  r®   s       r¤   rO  Ú"InstructionTranslatorBase.KW_NAMES¾  sm   € Ø×$Ñ$ [Ñ1°$·(±(Ñ;ˆÜ˜(¤E×*Ñ*Ð*Ð*ÛˆDÜ˜d¤C×(Ó(Ð(Ð(ñ à�}‰}Ñ$Ð$Ð$Ü(×/Ò/°hÑ?ˆ�r¦   c                ó6   • U R                  [        5       5        g r�   )rK  r�   r&  s     r¤   rŸ  Ú#InstructionTranslatorBase.PUSH_NULLÆ  s   € Ø�	‰	”,“.Õ!r¦   c                óX  • U(       ac  [         R                  S:¼  d   eU R                  5       n[        U[        5      (       a  UR                  5       (       d   eUR                  5       nO)U R                  (       a  U R                  R                  OSnUR                  c   eU R                  UR                  S-   5      n[         R                  S:¼  a&  US   n[        US   [        5      (       a  / OUS   /nO+[        US   [        5      (       a  US   n/ nOUS   nUS   /nU(       aO  XdS[        U5      *  -   nU[        U5      * S  n[        [        X75      5      n[        U5      [        U5      :X  d   eO	XdSS  -   n0 n U R                  XVU5        S U l        g ! S U l        f = f)NrÚ  rÑ   r  r   r   )r`  r‰  ræ  r\  r}   rú  rû  rV  rÓ  rS  rM  r�   rç   r  r  rL  )	rÀ   r¸   Úcall_kwrV  ÚcontentsrX  r¢   r�  ré  s	            r¤   Ú_callÚInstructionTranslatorBase._callÉ  s‚  € ö ä×#Ñ# wÓ.Ð.Ð.Ø—x‘x“zˆHÜ˜h¬×6Ñ6¸8×;VÑ;V×;XÑ;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Ñ4Ø˜a‘[�à‘à˜a‘[�Ø  ™�}�æØ 1¬¨H« ~Ð6Ñ6ˆDà"¤C¨£M >Ð#3Ð4ˆKäœ#˜hÓ4Ó5ˆFä�v“;¤# h£-Ó/Ð/Ñ/à 1 2˜,Ñ&ˆDàˆFð	!ð ×Ñ˜r¨Ô0à ˆD�Mø˜DˆD�Mús   ÆF  Æ 	F)zTEncountered graph break when attempting to trace CALL: a function call, e.g. f(x, y)c                ó&   • U R                  U5        g r�   ©rÓ  r&  s     r¤   rM  ÚInstructionTranslatorBase.CALLø  s   € ð
 	�
‰
�4Õr¦   c                ót   • UR                   c   eU R                  U R                  UR                   *    5        g r�   )rS  rK  r±  r&  s     r¤   ÚCOPYÚInstructionTranslatorBase.COPYÿ  s-   € Ø�x‰xÑ#Ð#Ð#Ø�	‰	�$—*‘*˜dŸh™h˜YÑ'Õ(r¦   c                óÀ   • UR                   c   eU R                  UR                   *    U R                  S   sU R                  S'   U R                  UR                   * '   g r­  )rS  r±  r&  s     r¤   ÚSWAPÚInstructionTranslatorBase.SWAP  sM   € Ø�x‰xÑ#Ð#Ð#Ø04·
±
¸D¿H¹H¸9Ñ0EÀtÇzÁzÐRTÁ~Ð-ˆ�
‰
�2‰˜Ÿ
™
 D§H¡H 9Ò-r¦   c                ó   • g r�   rÑ   r&  s     r¤   ÚCACHEÚInstructionTranslatorBase.CACHE  rÊ  r¦   c                ó&   • U R                  U5        g r�   rô  r&  s     r¤   ÚBEFORE_WITHÚ%InstructionTranslatorBase.BEFORE_WITH  rø  r¦   c           	     óR  • [        U[        5      (       a0  UR                  5       (       d  U R                  R	                  U5        [
        R                  S:¼  a�  UR                  (       aD  U R                  (       a0  UR                  R                  U R                  S   R                  La  S nOFU R                  R                  c   eU R                  R                  R                  nOUR                  nU(       aœ  [        U [        5      (       d  [        R                  (       a:  U R                  R	                  [        X#[        U R                   5      U5      5        O8U R                  R	                  [        X#[        U R                   5      5      5        UR#                  U 5      $ )NrK  r…  )r\  rj   Úsupports_graph_breaksr;  rè   r`  r‰  rX  r(  r1  rè  rR  r   r5  r0  rç   r±  Úenter)rÀ   r‘  r¸   r1  s       r¤   Ú	enter_ctxÚ#InstructionTranslatorBase.enter_ctx  s-  € ô �sÔ:×;Ñ;Ø×-Ñ-×/Ñ/à×0Ñ0×7Ñ7¸Ô<ä×Ñ˜wÓ&ð
 ×!×!Ø×$×$Ø×%Ñ%×,Ñ,°D×4DÑ4DÀRÑ4H×4OÑ4OÒOà‘à×,Ñ,×:Ñ:ÑFÐFÐFØ×.Ñ.×<Ñ<×CÑC‘à—[‘[ˆFæÜ˜$Ô 5×6Ñ6¼&×:T×:TØ× Ñ ×'Ñ'Ü# D´#°d·j±j³/À3ÓGõð × Ñ ×'Ñ'¬¸ÄcÈ$Ï*É*ÃoÓ(VÔWà�y‰y˜‹Ðr¦   c                óJ   • [        SSU  3SU R                  5        S3/ SQS9  g )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:   rF  )r‘  s    r¤   Úunsupported_ctx_graph_breakÚ5InstructionTranslatorBase.unsupported_ctx_graph_break:  s3   € äØ1ØGÈÀuÐMØ?À×@TÑ@TÓ@VÐ?WÐWiÐjòó		
r¦   c                ó>  • U R                  5       n[        U[        [        45      (       d  U R	                  U5        [        U[        [        45      (       d   eU R                  [        X!R                  5      5        U R                  U R                  X!5      5        g r�   )	ræ  r\  ri   rj   rê  rK  rl   r1  rç  )rÀ   r¸   r‘  s      r¤   rõ  Ú.InstructionTranslatorBase.setup_or_before_withK  sˆ   € Ø�h‰h‹jˆÜØÔ)Ô+IÐJ÷
ñ 
ð ×,Ñ,¨SÔ1ô ØÔ)Ô+IÐJ÷
ñ 
ð 	
ð 
ð 	�	‰	Ô*¨3·±Ó<Ô=Ø�	‰	�$—.‘. Ó+Õ,r¦   c                ó`   • U R                   (       d   eU R                  R                  U5        g r�   )r´  r¶  rè   r&  s     r¤   rÁ  Ú,InstructionTranslatorBase.append_prefix_instZ  s%   € Ø×&×&Ð&Ð&Ø×Ñ× Ñ  Õ&r¦   c                óD  • [         R                  S:¼  a{  U R                  (       dj  [        U R                  UR
                     [        5      (       d   eU R                  R                  R                  5       U R                  UR
                  '   g U R                  U5        g r  )r`  r‰  r´  r\  r«  rÁ  r�   r+  rt  Útrack_cell_newrÁ  r&  s     r¤   Ú	MAKE_CELLÚ#InstructionTranslatorBase.MAKE_CELL^  sv   € Ü×Ñ˜wÓ&¨t×/F×/Fô ˜d×2Ñ2°4·;±;Ñ?Ä×NÑNÐNÐNà—‘×(Ñ(×7Ñ7Ó9ð × Ñ  §¡Ò-ð ×#Ñ# DÕ)r¦   c                ó&   • U R                  U5        g r�   ©rÁ  r&  s     r¤   ÚCOPY_FREE_VARSÚ(InstructionTranslatorBase.COPY_FREE_VARSi  ó   € Ø×Ñ Õ%r¦   c                ó&   • U R                  U5        g r�   rõ  r&  s     r¤   ÚRETURN_GENERATORÚ*InstructionTranslatorBase.RETURN_GENERATORl  rø  r¦   c                ó8  • [         R                  S:¼  a  U R                  5         OU R                  S5        [         R                  S:¼  aP  U R                  U   nX R
                  ;   a1  U R
                  R                  U5        U =R                  S-  sl        g g g )NrÚ  r  rz  r   )r`  r‰  ræ  rM  ræ  r  Údiscardr  )rÀ   r¸   Ú
current_ips      r¤   rœ  Ú!InstructionTranslatorBase.END_FORs  s}   € Ü×Ñ˜wÓ&Ø�H‰H�Jà�I‰I�aŒLô ×Ñ˜wÓ&ØŸ™ dÑ+ˆJØ×<Ñ<Ó<Ø×/Ñ/×7Ñ7¸
ÔCØ×)Ò)¨QÑ.Ö)ð =ð 'r¦   c                óþ   • [        U R                  R                  UR                  S 5      [        5      (       a3  [        SUR                  SUR                   3/ [        R                  QS9  U R                  U5        g )Nz)LOAD_FAST_CHECK on uninitialized variablez/Attempted to load uninitialized local variable rÌ  )	r]   r«  rm  rÁ  r�   r:   r   r  rq  r&  s     r¤   ÚLOAD_FAST_CHECKÚ)InstructionTranslatorBase.LOAD_FAST_CHECK€  sc   € Ü�$×&Ñ&×*Ñ*¨4¯;©;¸Ó=¼|×LÑLÜØCØŸ™ØMÈdÏkÉkÈ]Ð[Ø5Ô)×4Ñ4Ð5ò	ð 	�‰�tÕr¦   c                óÐ   • UR                   U R                  ;  a  U R                  [        5       5        OU R	                  U5        [        5       U R                  UR                   '   g r�   )rÁ  r«  rK  r�   rq  r&  s     r¤   r†  Ú-InstructionTranslatorBase.LOAD_FAST_AND_CLEARŠ  sD   € Ø�;‰;˜d×2Ñ2Ó2Ø�I‰I”l“nÕ%à�N‰N˜4Ô Ü,8«Nˆ×Ñ˜TŸ[™[Ò)r¦   c                óì   • U R                  [        R                  " USS95        UR                  c   eUR                  S-  (       a  U R	                  U5        g U R                  UR                  5        g )Nr  rP  r   )rr  rò   ro  rS  r†  rØ  rÁ  r&  s     r¤   ÚLOAD_SUPER_ATTRÚ)InstructionTranslatorBase.LOAD_SUPER_ATTR‘  sV   € Ø×Ñœ;×.Ò.¨t¸AÑ>Ô?Ø�x‰xÑ#Ð#Ð#Ø�8‰8�a�<Ø×Ñ˜TÕ"à�O‰O˜DŸK™KÕ(r¦   c                óŠ  • UR                   S:X  a  U R                  U5        g UR                   S:X  a  U R                  U5        g UR                   S:X  a8  U R                  [	        U R                  5       R                  U 5      5      5        g [        SSUR                    3SUR                    S3/ [        R                  QS9  g )	Nr{  r<  é   z Missing CALL_INTRINSIC_1 handlerzCALL_INTRINSIC_1 operand: z,No handler implemented for CALL_INTRINSIC_1 z instruction.rÌ  )
rÁ  rž  ÚUNARY_POSITIVErK  r}   ræ  rv  r:   r   rf  r&  s     r¤   ÚCALL_INTRINSIC_1Ú*InstructionTranslatorBase.CALL_INTRINSIC_1™  s�   € Ø�;‰;˜!Óà×$Ñ$ TÕ*Ø�[‰[˜AÓà×Ñ Õ%Ø�[‰[˜AÓà�I‰I”m D§H¡H£J×$HÑ$HÈÓ$NÓOÕPäØ:Ø4°T·[±[°MÐBØJÈ4Ï;É;È-ÐWdÐeØ6Ô)×5Ñ5Ð6ó	r¦   c                óf   • U R                  5       nU R                  5         U R                  U5        g r�   r^  r.  s      r¤   ÚEND_SENDÚ"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                ó$   • U R                  USS9  g )NT)rÑ  rÖ  r&  s     r¤   ÚCALL_KWÚ!InstructionTranslatorBase.CALL_KW³  s   € ð 	�
‰
�4 ˆ
Ò&r¦   c                ó<   • U R                   R                  S;   d   eg )N)ÚPOP_JUMP_IF_TRUEÚPOP_JUMP_IF_FALSEr’  )rè  ré   r&  s     r¤   rÜ  Ú!InstructionTranslatorBase.TO_BOOL»  s'   € ð ×$Ñ$×+Ñ+ð 0
ó 
ð 	
ñ 
r¦   c                ó€  • UR                   nUc   eU R                  5       n[        U[        5      (       d   eU R                  5       nUS-  (       aE  [        R
                  S:¼  d   eUR                  U [        R                  " S5      /0 5      nXCl	        O–US-  (       a  XCl
        O…US-  (       aZ  [        U[        5      (       d   eUR                  n[        [        [        US S S2   USS S2   SS95      [!        5       S	9nXcl	        O!US-  (       a  XCl        OUS-  (       a  XCl        U R'                  U5        g )
Né   r9  r   r=  r;  r  T)Ústrictr  )rS  ræ  r\  rr   r`  r‰  rL  rh   rÂ  r   rA  r}   r  rm   r  r  ra   rB  r@  rK  )rÀ   r¸   r>  rX  r–  r  Úanns          r¤   ÚSET_FUNCTION_ATTRIBUTEÚ0InstructionTranslatorBase.SET_FUNCTION_ATTRIBUTEÅ  s  € Ø—‘ˆØÑ Ð Ð Ø�X‰X‹ZˆÜ˜"Ô8×9Ñ9Ð9Ð9Ø�x‰x‹zˆà�4�<Ü×#Ñ# wÓ.Ð.Ð.ð ×%Ñ% dÔ-=×-DÒ-DÀQÓ-GÐ,HÈ"ÓMˆDØ!�NØ�T�\Ø�JØ�T�\Ü˜d¤M×2Ñ2Ð2Ð2ð —J‘JˆEÜ#Ü”S˜™s ˜s™ U¨1¨4¨a¨4¡[¸Ñ>Ó?Ü.Ó0ñˆCð !�NØ�T�\Ø �MØ�T�\ØŒKà�	‰	�"�r¦   c                óv   • U R                  U R                  U R                  5       UR                  5      5        g r�   )rK  rr  ræ  rÁ  r&  s     r¤   ÚCONVERT_VALUEÚ'InstructionTranslatorBase.CONVERT_VALUEæ  s%   € Ø�	‰	�$×%Ñ% d§h¡h£j°$·+±+Ó>Õ?r¦   c                óP   • U R                  [        R                  " S5      S5        g )Nrã   r   )r{  rh   rÂ  r&  s     r¤   ÚFORMAT_SIMPLEÚ'InstructionTranslatorBase.FORMAT_SIMPLEé  s   € Ø×ÑÔ+×2Ò2°2Ó6¸Õ:r¦   c                óD   • U R                  U R                  5       S5        g rÚ   )r{  ræ  r&  s     r¤   ÚFORMAT_WITH_SPECÚ*InstructionTranslatorBase.FORMAT_WITH_SPECì  s   € Ø×Ñ˜4Ÿ8™8›: qÕ)r¦   )Ú	__enter__Ú__exit__Ú
__aenter__Ú	__aexit__c                ó„  • [        UR                  [        5      (       d   S5       eU R                  UR                     nUS;   a¸  U R	                  5       n[        U[
        [        45      (       d  U R                  U5        [        U[
        [        45      (       d   eUS:X  a,  U R                  [        U5      5        U R                  U5        g U R                  [        US 5      5        U R                  U5        g U R                  U5        U R	                  5       nU R                  U5        U R                  U5        g )Nz*expected LOAD_SPECIAL arg to be set to int)r&  r'  r&  )r\  rS  rµ   Ú_load_special_namesræ  ri   rj   rê  rK  rk   rŸ  rl   rØ  )rÀ   r¸   r–  r‘  r�  s        r¤   ÚLOAD_SPECIALÚ&InstructionTranslatorBase.LOAD_SPECIALþ  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   • U R                  [        R                  " UR                  5      5        g r�   )rK  rh   rÂ  rÁ  r&  s     r¤   ÚLOAD_SMALL_INTÚ(InstructionTranslatorBase.LOAD_SMALL_INT  s   € Ø�	‰	Ô"×)Ò)¨$¯+©+Ó6Õ7r¦   )rè  r  r:  rã  Úanyc                ó¾   • [        UR                  [        5      (       d   S5       eU R                  U R	                  U R
                  UR                     5      5        g )Nz2expected LOAD_COMMON_CONSTANT arg to be set to int)r\  rS  rµ   rK  rß  Ú_common_constantsr&  s     r¤   ÚLOAD_COMMON_CONSTANTÚ.InstructionTranslatorBase.LOAD_COMMON_CONSTANT)  sK   € Ü˜$Ÿ(™(¤C×(Ñ(ð 	
Ø@ó	
Ð(ð 	�	‰	�$×/Ñ/°×0FÑ0FÀtÇxÁxÑ0PÓQÕRr¦   c                óR   • U R                   R                  5       S:”  a	  S U l        gg)Nr   c                 ó   • g©NTrÑ   rÑ   r¦   r¤   r¥   Ú>InstructionTranslatorBase.is_non_empty_graph.<locals>.<lambda>2  s   € ¨dr¦   TF)r+  Úcount_callsr  rÜ   s    r¤   r  Ú,InstructionTranslatorBase.is_non_empty_graph/  s%   € Ø�;‰;×"Ñ"Ó$ qÓ(á&2ˆDÔ#ØØr¦   c           
     óž   • Uc  / nSR                  [        R                  " U R                  5       /[	        [        U5      5      -   5      5      $ )Nrã   )r  Ú	tracebackÚformat_listrå  rô   rŸ   )rÀ   Úadditional_stack_framess     r¤   Úformat_frame_summaryÚ.InstructionTranslatorBase.format_frame_summary6  sN   € ð #Ñ*Ø&(Ð#Ø�w‰wÜ×!Ò!Ø×#Ñ#Ó%Ð&¬¬hÐ7NÓ.OÓ)PÑPóó
ð 	
r¦   c           	     ó˜   • [         R                  " [        U R                  SS5      U R                  [        U R                  SS5      SS9$ )Nrø  ú	<unknown>rù  F)Úlookup_line)r=  ÚFrameSummaryr  rà  r¶   rÜ   s    r¤   rå  Ú'InstructionTranslatorBase.frame_summaryA  s?   € Ü×%Ò%Ü�D—K‘K °Ó<Ø�K‰KÜ�D—K‘K ¨KÓ8Øñ	
ð 	
r¦   c                ó‚   • [        U R                  SS5      n[        R                  " S5      nUR	                  U5      S L$ )Nrø  rC  z.*torch/nn/modules.*)r  rà  ÚreÚcompileÚmatch)rÀ   r´   Únn_modules_patterns      r¤   Úis_co_filename_from_nn_modulesÚ8InstructionTranslatorBase.is_co_filename_from_nn_modulesI  s:   € Ü˜4Ÿ;™;¨°{ÓCˆÜŸZšZÐ(?Ó@ÐØ!×'Ñ'¨Ó1¸Ð=Ð=r¦   c                óÈ   • U R                   R                  U[        R                  " U5      5      n[	        [        U5      R                  [        R                  5      5        U$ r�   )	r+  Úinstall_global_by_idrÃ  rÄ  r>   rP   r  r=   ÚWEAKREF_ALIVE)rÀ   rK  rÓ  Úglobal_names       r¤   Ústore_global_weakref_by_idÚ4InstructionTranslatorBase.store_global_weakref_by_idN  sJ   € Ø—k‘k×6Ñ6°v¼w¿{º{È5Ó?QÓRˆÜÜ Ó,×7Ñ7¼×8RÑ8RÓSô	
ð Ðr¦   c                óB   • U R                   R                  R                  $ r�   )r+  Útracing_contextÚ	fake_moderÜ   s    r¤   rV  Ú#InstructionTranslatorBase.fake_modeU  s   € à�{‰{×*Ñ*×4Ñ4Ð4r¦   c              #  ó\   #   • U R                   nXl          Sv •  X l         g! X l         f = f7f)zh
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_modeÚ1InstructionTranslatorBase.strict_translation_modeY  s,   é € ð ×%Ñ%ˆØ (Ôð	*Ûà$)Õ!ø EÕ!üs   ‚,–! š,¡)©,c                ó
  • U R                   c   eU R                   S:”  d   eU R                  R                  U R                  R                  U R
                  U R                   S-
  U R                  U R                   S-
     5      $ rŒ  )r·   r'  rî   rà  rø  r¶   rÀ  rÜ   s    r¤   r:  Ú#InstructionTranslatorBase.speculateg  s|   € Ø×'Ñ'Ñ3Ð3Ð3Ø×'Ñ'¨!Ó+Ð+Ð+Ø×#Ñ#×(Ñ(Ø�K‰K×#Ñ#Ø�K‰KØ×$Ñ$ qÑ(Ø×Ñ˜d×6Ñ6¸Ñ:Ñ;ó	
ð 	
r¦   c                óø   • [         R                  S:¼  d   eU R                  c   eU R                  S-
  n[        5       nU R                  U[        U5      -
  U  Vs/ s H  o3R                  PM     nnXB:H  $ s  snf )z­Detect if we're at the start of a list/dict comprehension in 3.12+.

In Python 3.12+, comprehensions are inlined with a bytecode pattern that
precedes BUILD_LIST/BUILD_MAP.
rz  r   )r`  r‰  r·   r‹  rÀ  rç   ré   )rÀ   r  Úpatternr¸   rK  s        r¤   r  Ú1InstructionTranslatorBase._is_comprehension_startq  s€   € ô ×Ñ 7Ó*Ð*Ð*à×'Ñ'Ñ3Ð3Ð3Ø×%Ñ%¨Ñ)ˆä4Ó6ˆØ*.×*;Ñ*;¸BÄÀWÃÑ<MÐPRÑ*SÓTÒ*S $—+”+Ñ*SˆÐTàÑ Ð ùò Us   ÁA7c                ó@  • [         R                  S:¼  d   eU R                  c   eSn[        U R                  [	        U R
                  5      5       HJ  nU R
                  U   nUR                  S:X  a  US-  nM)  UR                  S:X  d  M;  US-  nUS:X  d  MH  Us  $    g)zPFind the instruction pointer of the outermost END_FOR for current comprehension.rz  r   r  r   rœ  r…  )r`  r‰  r·   r€  rç   rÀ  ré   )rÀ   Únesting_depthÚ	search_ipr¸   s       r¤   r  Ú8InstructionTranslatorBase._find_comprehension_end_for_ip�  sŸ   € ä×Ñ 7Ó*Ð*Ð*Ø×'Ñ'Ñ3Ð3Ð3àˆÜ˜t×7Ñ7¼¸T×=NÑ=NÓ9OÖPˆIØ×$Ñ$ YÑ/ˆDØ�{‰{˜jÓ(Ø Ñ"’Ø—‘ 	Õ)Ø Ñ"�Ø  AÕ%Ø$Ò$ñ Qð r¦   c           	     ó˜  ^ ^^^• [         R                  S:¼  d   eT R                  c   e[        5       mT R                  S-
  n/ n/ n/ n[	        5       nUS-
  nUS:¼  a`  T R
                  U   nUR                  S:X  a"  UR                  SUR                  5        US-  nOUR                  S;   a  US-  nOOUS:¼  a  M`  UR                  U5        T R                  5       nUS:X  a  [        SS	S
/ S9  [        U 4S j[        X5       5       5      n	[        U	S-   U5       GHE  n
T R
                  U
   nUR                  S:X  as  UR                  S:X  ac  U
S-   U:  aZ  T R
                  U
S-      nUR                  S:X  a8  UR                  nXÂ;  a'  XÃ;  a"  UR                  U5        UR!                  U5        UR                  S:X  a  UR!                  UR                  5        MÃ  UR                  R#                  S5      (       d  Må  [%        UR                  [&        5      (       a  UR                  OUR                  4nU H"  nXÅ;  d  M
  XÄ;  d  M  UR                  U5        M$     GMH     / mUS-   nU[)        T R
                  5      :  a‚  T R
                  U   R                  S:w  ae  TR                  T R
                  U   R                  5        US-  nU[)        T R
                  5      :  a  T R
                  U   R                  S:w  a  Me  UnU[)        T R
                  5      :  aZ  T R
                  U   R                  S:X  a=  US-  nU[)        T R
                  5      :  a  T R
                  U   R                  S:X  a  M=  U[)        T R
                  5      :  a  T R
                  U   R                  OSmSUUU4S jjnSnU" S5      (       a  T R
                  U   R                  nSnOVU" S5      (       a  SnSnTS   S   (       a  US-   OUnO0U" S5      (       d  TTS   S   :X  a  SnSnO[        SST ST 3S/ S9  [+        UUWUUUS9$ )zDAnalyze comprehension bytecode to determine result handling pattern.rz  Nr   r   r†  )rÜ  rn  r…  z)Comprehension analysis failed: No END_FORrã   z=Could not find END_FOR instruction in comprehension bytecode.rÌ  c              3  óf   >#   • U  H&  nTR                   U   R                  S :X  d  M"  Uv •  M(     g7f)r  N)rÀ  ré   )rý   rn  rÀ   s     €r¤   r   ÚCInstructionTranslatorBase._analyze_comprehension.<locals>.<genexpr>µ  s3   øé € ð 
â0�Ø× Ñ  Ñ#×*Ñ*¨jÑ8÷ ‰AÚ0ùs   ƒ!1¨	1rÙ  r�  rq  c                ó^   >• TU    nTUS   :H  =(       a    TUS   :H  =(       d
    US   (       + $ )Nr¨  r«  rÑ   )r®   ÚpatÚpatternsr«  r¨  s     €€€r¤   ÚmatchesÚAInstructionTranslatorBase._analyze_comprehension.<locals>.matchesî  s=   ø€ Ø˜4‘.ˆCØ  C¨Ñ$8Ñ8÷ Ø  _Ñ!5Ñ5×Q¸SÀÑ=QÔ9Qðr¦   r¬  Fr­  r«  r®  r¯  r¨  Tz)Comprehension analysis failed: No matcheszpre_store_ops=z, post_store_op=z8Comprehension does not match any known bytecode pattern.)rµ  r¶  r·  r¹  rº  r»  )r®   r³   rÈ   r¹   )r`  r‰  r·   r²  r  rÀ  ré   ÚinsertrÁ  r%  r  r:   rî   r€  rS  rè   r  rm  r\  r:  rç   r´  )rÀ   Ústart_ipr¹  rº  r»  Údefined_insideÚiter_scan_ipr¸   r
  Úfor_iter_ipÚbody_ipÚ	next_instÚvar_nameÚ	var_namesÚscan_ipÚstore_fast_iprl  r¶  r·  rk  r«  r¨  s   `                  @@@r¤   Ú_analyze_comprehensionÚ0InstructionTranslatorBase._analyze_comprehension‘  s>  û€ ä×Ñ 7Ó*Ð*Ð*Ø×'Ñ'Ñ3Ð3Ð3ä5Ó7ˆØ×+Ñ+¨aÑ/ˆà#%ˆØ!#ˆØ#%ˆÜ#&£5ˆð   !‘|ˆØ˜aÓØ×$Ñ$ \Ñ2ˆDØ�{‰{Ð3Ó3Ø×$Ñ$ Q¨¯©Ô4Ø Ñ!‘Ø—‘Ð 4Ó4Ø Ñ!‘àð ˜aÕð 	×Ñ˜mÔ,à×8Ñ8Ó:ˆ
Ø˜ÓÜØCØØ[Øò	ô ô 
ä˜8Ô0ó
ó 
ˆô ˜[¨1™_¨j×9ˆGØ×$Ñ$ WÑ-ˆDð �{‰{˜fÓ$¨¯©°Q«¸7ÀQ¹;ÈÓ;SØ ×-Ñ-¨g¸©kÑ:�	Ø×#Ñ# |Ó3Ø(×/Ñ/�HØÓ4¸Ó9TØ#×*Ñ*¨8Ô4Ø&×*Ñ*¨8Ô4ð �{‰{˜lÓ*Ø×"Ñ" 4§;¡;Ö/ð —‘×'Ñ'¨×4Ó4ä#-¨d¯k©k¼5×#AÑ#A�D—K’KÈÏÉÀ~ð ó !*�HØÕ5¸(Õ:WØ%×,Ñ,¨XÖ6ô !*ñ+ :ð4 $&ˆØ˜q‘.ˆà”c˜$×+Ñ+Ó,Ó,Ø×!Ñ! 'Ñ*×1Ñ1°\ÓAà× Ñ  ×!2Ñ!2°7Ñ!;×!BÑ!BÔCØ�q‰LˆGð	 ”c˜$×+Ñ+Ó,Ó,Ø×!Ñ! 'Ñ*×1Ñ1°\ÕAð
  ˆð ”c˜$×+Ñ+Ó,Ó,Ø×!Ñ! 'Ñ*×1Ñ1°\ÓAà�q‰LˆGð ”c˜$×+Ñ+Ó,Ó,Ø×!Ñ! 'Ñ*×1Ñ1°\ÕAð œ˜T×.Ñ.Ó/Ó/ð ×Ñ˜gÑ&×-Ò-àð 	÷	ñ 	ð %)ˆ
Ù�8×ÑØ×*Ñ*¨=Ñ9×@Ñ@ˆJØ#‰OÙ�[×!Ñ!ØˆJØ#ˆOØ%-¨kÑ%:¸?×%K�g ’kÐQX‰Gá�J×ÑØ ¨Ñ 4°_Ñ EÓEàˆJØ"‰OäØCØ(¨¨Ð7GÈÀÐWØVØò	ô %ØØ!à+Ø'Ø#Ø'ñ
ð 	
r¦   c           	     óš  • [         R                  S:¼  d   eU R                  5       nU R                  R                  R                  [        5      (       a0  UR                  (       a  [        S[        UR                  5      S/ S9  U R                  c   eU R                  S-
  nS[        UR                  5      -   n[        SU R                  5       /5      n[        R!                  S5        U R"                  R%                  U UUS	9n['        U5       Vs/ s H9  n[)        U R*                  [        U R*                  5      U-
  U-      [,        5      PM;     nnU R/                  U5        US
   n	[1        U R"                  R2                  5      n
[5        S U 5       5      n[        U R*                  5      [        U	R6                  5      -
  nU
R9                  / [;        XÄ-   S-   5      QU
R=                  S
5      PU
R?                  5       P5        [A        ['        U5      5       Ha  nU
R9                  [C        S5      5        X‡   (       a!  U
R9                  U
RE                  5       5        MG  U
R9                  [G        SSS9/5        Mc     U
R9                  [G        S5      /5        U RI                  UUUUUU	5      u  pÞU
R9                  / [;        US-   5      QU
R=                  S
5      PU
R?                  5       P[G        SSS9P[;        US-   5      QU
R=                  S
5      PU
R?                  5       P[G        SSS9P5        U RK                  U/U/U
5        US
:”  a’  US-   S-   nU
R9                  / [;        U5      QU
R=                  S
5      PU
R?                  5       P[M        5       PU
R=                  U* 5      PU
R=                  S5      P[G        SSS9P[G        S5      P[G        S5      P5        URN                  URP                  (       a  URP                  /O/ -   n0 nU H`  n[S        5       U RT                  U'   UU	RV                  ;   a  U	RV                  U   UU'   M>  [        U	RV                  5      U	RV                  U'   Mb     US-   nURN                  (       Ga3  U
R9                  / [;        U5      QU
R=                  S
5      PU
R?                  5       P5        [Y        URN                  5       H£  u  nnU
R9                  / [;        S5      QU
R=                  US-   5      PU
R?                  5       P5        UU;   a=  U
R9                  / [;        S5      QU
R=                  UU   5      P[G        S5      P5        M‰  U
R9                  [G        SSS9/5        M¥     U
R9                  [G        S5      U
R=                  S
5      U
R?                  5       /5        URZ                  (       a  U R]                  [S        5       5        OäURP                  (       a¸  U
R9                  / [;        U5      QU
R=                  S
5      PU
R?                  5       P5        URP                  U;   a9  U
R9                  U
R=                  UURP                     5      [G        S5      /5        OMU
R9                  / [C        S5      Q[G        SSS9P[G        S5      P5        OU
R9                  [G        S5      /5        U R"                  R_                  U
Ra                  5       5        U Rb                  URd                     nU R"                  R_                  U Rg                  UU5      5        SU l
        gs  snf )zÖHandle list/dict comprehension graph break.

Builds a synthetic function wrapping the comprehension bytecode,
calls it via codegen_call_resume, then chains into the resume
function for the post-comprehension code.
rz  zDComprehension graph break in resume function with captured variablesz™Cannot use comprehension optimization inside a resume function when there are captured variables. This can cause issues with deeply nested source chains.rÌ  Nr   Úcomprehension_graph_breakzcomprehension triggered compilerØ  r   c              3  ó6   #   • U  H  o(       a  M  S v •  M     g7f)r   NrÑ   )rý   Úms     r¤   r   ÚNInstructionTranslatorBase._handle_comprehension_graph_break.<locals>.<genexpr>G  s   é € ÐEÒ'; !Ã1ŸA™AÒ';ùs   ‚
�	r  r/  r-  r2  r‡  rü  r.  r0  )4r`  r‰  ry  rà  rù  rm  rL   r»  r:   r³   r·   rç   r¹  r?   rå  r$  rã  r+  rä  r€  r\  r±  r�   rM  r2   rU  r˜  rÀ  r)  r&   r6  r7  rŸ   r+   Úpop_nullr(   Ú_build_comprehension_fnr9  r'   rº  r¶  r„   r«  r;  rs  r·  rK  ré  rr  rÀ  rµ  rç  )rÀ   r¸   Úanalysisro  rÙ  r¼   rí  rn  Ústack_pops_null_maskrÉ  r-  Únonnull_countÚlive_stack_depthrÓ  r?  Úframe_values_posÚvars_to_passÚexisting_varsru  Úfv_depthrÍ  Ú
walrus_varrÈ  s                          r¤   r  Ú;InstructionTranslatorBase._handle_comprehension_graph_break  su  € ô ×Ñ 7Ó*Ð*Ð*à×.Ñ.Ó0ˆð �;‰;×Ñ×)Ñ)Ô*G×HÑHØ×%×%ÜØbÜ × 6Ñ 6Ó7ð!8ð òð ×'Ñ'Ñ3Ð3Ð3Ø×+Ñ+¨aÑ/ˆØœ˜X×3Ñ3Ó4Ñ4ˆ
Ü#Ð$?À$×BTÑBTÓBVÐAWÓXˆÜ�	‰	Ð3Ô4ð %)§K¡K×$@Ñ$@ØØØ!ð %Að %
Ð!ô ˜:Ô&ó 
â&�ô �t—z‘z¤# d§j¡j£/°JÑ">ÀÑ"BÑCÄ\ÖRÙ&ð 	ð  
ð
 	�	‰	�*ÔØ(¨Ñ+ˆÜ�t—{‘{×*Ñ*Ó+ˆô ÑEÑ';ÓEÓEˆô ˜tŸz™z›?¬S°×1FÑ1FÓ-GÑGÐð 	×ÑðäÐ-Ñ:¸QÑ>Ó?ðð ×$Ñ$ QÓ'ðð ×'Ñ'Ó)ð	ô	
ô œ% 
Ó+Ö,ˆAØ×Ñœ[¨›^Ô,Ø#×&Ø× Ñ  §¡£Ö/à× Ñ Ô"4°]ÈÑ"JÐ!KÖLñ -ð 	×ÑÔ,¨YÓ7Ð8Ô9ð
 !×8Ñ8ØØØØ ØØó
Ñˆð 	×Ñð	ÜÐ-°Ñ1Ó2ð	à×$Ñ$ QÓ'ð	ð ×'Ñ'Ó)ð	ô # <°QÑ7ð		ô
 Ð-°Ñ1Ó2ð	ð ×$Ñ$ QÓ'ð	ð ×'Ñ'Ó)ð	ô # <°QÑ7ð	ô	
ð  	× Ñ  ( ¨g¨Y¸Ô;ð
 ˜1ÓØ/°!Ñ3°aÑ7ÐØ×ÑðÜ Ð!1Ó2ðà×(Ñ(¨Ó+ðð ×+Ñ+Ó-ðô
 #Ó$ðð ×(Ñ(¨-¨Ó8ðð ×(Ñ(¨Ó.ðô ' }¸!Ñ<ðô ' Ó7ðô ' yÓ1ðôð&  ×+Ñ+Ø%-×%8×%8ˆX× Ñ Ñ!¸bñ
ˆð )+ˆÛ$ˆHÜ-<Ó->ˆD× Ñ  Ñ*Ø˜4×,Ñ,Ó,Ø*.×*;Ñ*;¸HÑ*E�˜hÓ'ä.1°$×2CÑ2CÓ.D�×!Ñ! (Ó+ñ %ð $ aÑ'ˆð ××Ðà×ÑðÜ  Ó*ðà×(Ñ(¨Ó+ðð ×+Ñ+Ó-ðôô "+¨8×+?Ñ+?Ö!@‘��:Ø× Ñ ðÜ$ Q›ðà×,Ñ,¨Q°©UÓ3ðð ×/Ñ/Ó1ðôð  Ó.à×$Ñ$ðÜ(¨›^ðà×0Ñ0°¸zÑ1JÓKðô /¨~Ó>ðöð ×$Ñ$Ô&8¸ÈAÑ&NÐ%OÖPñ' "Að* ×Ñä& yÓ1à×(Ñ(¨Ó+Ø×+Ñ+Ó-ð	ôð ×#×#Ø�I‰I”oÓ'Õ(Ø× × Ø×ÑðÜ  Ó*ðà×(Ñ(¨Ó+ðð ×+Ñ+Ó-ðôð ×"Ñ" mÓ3Ø× Ñ à×,Ñ,¨]¸8×;NÑ;NÑ-OÓPÜ*¨>Ó:ðõð × Ñ ðÜ$ Q›ðä*¨=¸aÑ@ðô +¨9Ó5ðõð ×ÑÔ0°Ó;Ð<Ô=ð 	�‰×+Ñ+¨B×,?Ñ,?Ó,AÔBð ×'Ñ'¨¯©Ñ8ˆØ�‰×+Ñ+Ø×&Ñ& {Ð4MÓNô	
ð $(ˆÕ ùò} 
s   ÄA ]c                ó8  ^ ^^^^^^^^^^^^• SSK Jn  SSKJn  SSKJmJm  [        U 4S jUR                   5       5      n	SS/[        U	5      -   [        T5       V
s/ s H  n
SU
 3PM
     sn
-   m[        [        [        T R                  R                  =(       d    / 5      [        T R                  R                  =(       d    / 5      -   5      5      mT R                  b  T R                  OT R                  R                   m[#        S	T R                  R$                   S
T 35      mTR&                  TR(                  -   TR*                  (       a  TR*                  /O/ -   TR,                  -   m      SUUUUUUUUUU UUU4S jjnU" T R                  U5      u  pÍU" U5        UR                  (       a   T R.                  R1                  TU5        UT4$ T R.                  R1                  T[2        R4                  " UT R6                  T5      5        UT4$ s  sn
f )ar  Build a synthetic function wrapping comprehension bytecode.

Uses the same calling convention as resume functions created by
create_resume / ContinueExecutionCache.generate: the first two args
are __nested_resume_fns and __nested_frame_values (ignored here),
followed by stack items and live locals.

Returns (code, name) where name is the global name for the function.
r   )Útransform_code_objectr+  )Ú
CO_VARARGSÚCO_VARKEYWORDSc              3  óR   >#   • U  H  oTR                  5       ;  d  M  Uv •  M     g 7fr�   r«  )rý   rþ   rÀ   s     €r¤   r   ÚDInstructionTranslatorBase._build_comprehension_fn.<locals>.<genexpr>  s%   øé € ð 
Ú(�!°T×5KÑ5KÓ5MÑ,M�A‰AÒ(ùs   ƒ'ž	'Ú__nested_resume_fnsÚ__nested_frame_valuesÚ___stackÚ__comprehension_Ú_at_c           	     óh  >• TUS'   [         R                  S:¼  a  TUS'   TUS'   SUS'   TUS'   [        T5      US'   S	US
'   S	US'   [        TT Vs/ s H  o"T;  d  M
  UPM     sn-   5      US'   US   T	T
-  ) -  US'   / nT(       a"  UR	                  [        S[        T5      S95        UR	                  [        SS	S95        TS-
  n[        T5       HJ  nTU   (       a  UR	                  [        S5      5        M)  UR	                  [        SSU 3S95        US-  nML     TR                  TTR                  5      n/ nTR                  (       dN  TR                  (       a$  UR	                  [        STR                  S95        OUR	                  [        SS S95        TR                  (       a[  TR                   H  nUR	                  [        SUS95        M     UR	                  [        SS[        TR                  5      -   S95        UR	                  [        S5      5        X6-   U-   U S S & g s  snf )Nrù  rK  r<  Úco_firstlinenorÑ   rÏ  rÕ  Úco_argcountr   Úco_posonlyargcountÚco_kwonlyargcountÚco_varnamesÚco_flagsrö  r-  rÂ  r   rŸ  rq  r”  rP  r½  rù  rÈ  )r`  r‰  rç   r:  rè   r(   r€  Ú_copy_comprehension_bytecoderµ  r·  r¶  rº  )rÀ  râ  rÿ   rK  Ú	nonnull_irn  Ú
comp_instsÚepilogueru  rŽ  r�  r‚  r¢   Úcomprehension_body_varsr?  rÖ  r¶   r„  rÀ   rÙ  rƒ  ro  s            €€€€€€€€€€€€€r¤   r%  ÚAInstructionTranslatorBase._build_comprehension_fn.<locals>.update-  s5  ø€ ð '.ˆL˜Ñ#Ü×Ñ 7Ó*Ø.5�˜]Ñ+Ø-3ˆLÐ)Ñ*Ø*,ˆL˜Ñ'Ø*2ˆL˜Ñ'Ü*-¨d«)ˆL˜Ñ'Ø12ˆLÐ-Ñ.Ø01ˆLÐ,Ñ-Ü*/ØÑ#:ÓLÒ#:˜aÀt¹mŸÑ#:ÑLÑLó+ˆL˜Ñ'ð (4°JÑ'?Ø˜^Ñ+ðCñ (ˆL˜Ñ$ð )+ˆFÞØ—‘Ô0Ð1AÄsÈ8Ã}ÑUÔVØ�M‰MÔ,¨X¸1Ñ=Ô>ð &¨Ñ)ˆIÜ˜:Ö&�Ø'¨×*Ø—M‘MÔ"4°[Ó"AÖBà—M‘MÜ*¨;ÀÈ)ÈÐ?UÑVôð  ‘N’Iñ 'ð ×:Ñ:¸8ÀXÇ_Á_ÓUˆJð +-ˆHØ×+×+Ø×&×&Ø—O‘OÜ*¨;¸x×?RÑ?RÑSõð —O‘OÔ$6°|ÈDÑ$QÔRØ×#×#Ø (× 4Ô 4�HØ—O‘OÔ$6°{È8Ñ$TÖUñ !5à—‘Ü&Ø%Ø¤ H×$8Ñ$8Ó 9Ñ9ñôð �O‰OÔ.¨~Ó>Ô?à$Ñ1°HÑ<ˆL™‰Oùòa Ms   Á	H/
ÁH/
)rÀ  rµ  râ  rš   rÈ   rÉ   )Úbytecode_transformationr�  r4  r,  Úresume_executionrŽ  r�  r:  r;  rô   r€  Úsortedrà  rÏ  rÕ  r¶   r˜  r0   rù  r¹  rº  r¶  r»  r+  rÅ  r]  rÆ  r�  )rÀ   r‚  ro  rÙ  rƒ  r„  rÉ  r�  r,  r€  rn  r%  rÓ  r£   rŽ  r�  r¢   r¢  r?  rÖ  r¶   s   ``````        @@@@@@@r¤   r�  Ú1InstructionTranslatorBase._build_comprehension_fnú  só  ÿü€ õ$ 	CÝ)ß@ô
 ô 
Ø×(Ò(ó
ó 
ˆð #Ð$;Ð<Ü�8‹nñä',¨]Ô';Ó<Ò'; !�˜!˜‹~Ñ';Ñ<ñ=ð 	ô ÜÜ�T—[‘[×,Ñ,×2°Ó3Ü�t—{‘{×.Ñ.×4°"Ó5ñ6óó
ˆð !%§¡Ñ 7�—’¸T¿[¹[×=WÑ=WˆÜÐ.¨t¯{©{×/BÑ/BÐ.CÀ4ÈÀxÐPÓQˆð ×"Ñ"Ø×"Ñ"ñ#à(0×(;×(;�×#Ñ#Ñ$ÀñEð ×$Ñ$ñ%ð 	 ð=	=Ø+ð=	=Ø;Ið=	=à÷=	=÷ =	=ó =	=ñ~ ,¨D¯K©K¸Ó@‰ˆÙ�(Ôð ××Ø�K‰K×-Ñ-¨g°xÔ@ð ˜Ð Ð ð �K‰K×-Ñ-ØÜ×"Ò" 8¨T¯^©^¸WÓEôð
 ˜Ð Ð ùò =s   ÁHc                ó.  • 0 n/ n[        X5       HD  nU R                  U   n[        R                  " U5      nSUl        XsU'   UR	                  U5        MF     U H7  nUR
                  c  M  UR
                  U;   d  M$  X7R
                     Ul        M9     U$ )z@Copy comprehension bytecode instructions, updating jump targets.N)r€  rÀ  rW  rX  rè   r1  )rÀ   ro  rµ  Úinst_mapÚcopied_instsr  Úoriginal_instÚcopied_insts           r¤   rž  Ú6InstructionTranslatorBase._copy_comprehension_bytecodez  s—   € ð 46ˆØ*,ˆä˜Ö)ˆBØ ×-Ñ-¨bÑ1ˆMÜŸ)š) MÓ2ˆKØ(,ˆKÔ%Ø&1�]Ñ#Ø×Ñ Ö,ñ *ó (ˆKØ×!Ñ!Ó-°+×2DÑ2DÈÕ2PØ%-×.@Ñ.@Ñ%A�Ö"ñ (ð Ðr¦   c                ó    • Ub  US:  a  X4$ X4$ rÚ   rÑ   )rÀ   r´   r¶   Úfallback_linenos       r¤   Ú_make_frame_locÚ)InstructionTranslatorBase._make_frame_locŽ  s!   € ð ‰>˜V a›ZØÐ.Ð.ØÐ!Ð!r¦   c                ót  • / n[         R                  (       av  U R                  nUbg  U R                  UR                  R
                  UR                  UR                  R                  5      nUR                  U5        UR                  nUb  Mg  UR                  5         UR                  U5        [        U5      $ r�   )r   r5  r'  r°  rà  rø  r¶   r˜  rè   Úreverser:  )rÀ   Ú	frame_locÚframe_loc_chain_listÚ
current_txÚparent_frame_locs        r¤   Ú_get_frame_loc_chainÚ.InstructionTranslatorBase._get_frame_loc_chain•  s¦   € ð 79Ðä×%×%Ø>B¿k¹kˆJØÑ(Ø#'×#7Ñ#7Ø×%Ñ%×1Ñ1Ø×%Ñ%Ø×%Ñ%×4Ñ4ó$Ð ð
 %×+Ñ+Ð,<Ô=Ø'×.Ñ.�
ð Ó(ð 	×$Ñ$Ô&Ø×#Ñ# IÔ.ÜÐ)Ó*Ð*r¦   c                óð  ^• UR                   (       a  g [        USS 5      nUc(  [        R                  R                  R                  5       n [        R                  (       aS  U R                  bF  U R                  U R                  R                  U R                  U R                  R                  5      nO.U R                  US   R                  US   R                  S5      n U R!                  U5      nSn[        R"                  (       a0  [%        5       nSR'                  [(        R*                  " U5      5      nO[%        5       U-   n[-        U5      nSR'                  [(        R*                  " U5      5      n	Ub  [/        X25      nSUS    SUS	    S
U S3m[        R"                  (       a  TU SU	 S3-  mOT[1        U	5      -  m[        R2                  R5                  SS U4S jS9  [7        U[8        5      (       a  UR:                  O
[=        U5      n
[>        RA                  [B        RD                  5      (       ax  [F        (       dm  [H        RJ                  " X¦45      (       aQ  [        R"                  (       a&  TS-  mTSR'                  U RL                  5      S-   -  m[>        RO                  T5        O[>        RO                  SUS   US	   U5        SUl         g ! [         a    US   US   4n GNf = f)NrA  r…  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                 ó   • SSS.$ )NÚdynamo_graph_break_reasonÚstring)r®   ÚencodingrÑ   rÑ   r¦   r¤   r¥   Ú;InstructionTranslatorBase.log_graph_break.<locals>.<lambda>ï  s   € Ø3Ø$ò!r¦   c                 ó8   >• T  S[         R                  " 5        3$ )Nrù   )r=  Ú
format_exc)Úuser_stack_traces   €r¤   r¥   rÀ  ó  s   ø€ Ð"2Ð!3°2´i×6JÒ6JÓ6LÐ5MÑNr¦   )Ú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   r5  r'  r°  rà  rø  r¶   r˜  r´   Ú
IndexErrorr¸  r  r7   r  r=  r>  r5   r3   r³   Ú_loggingÚtrace_structuredr\  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á  Ú)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ÓCˆFð +¨9°Q©<¨.¸¸)ÀA¹,¸ð H#Ø#) (ð +'ð'ð 	ô �>�>ØØ/Ð0ð 1eà'Ð(ð )LðLñÑð ¤Ð$8Ó 9Ñ9Ðä�‰×'Ñ'Øñô Oð 	(ñ 	
ô ",¨C´×!=Ñ!=�#—+’+Ä4ÈÃ9ˆä×(Ñ(¬¯©×7Ñ7ß’GÜ/×3Ò3°WÐ4N×OÑOô
 �~�~Ø ØLñÐ ð ! D§I¡I¨d×.HÑ.HÓ$IÈDÑ$PÑPÐ ä×!Ñ!Ø õô ×!Ñ!ð AØ˜!‘Ø˜!‘Øô	ð ˆ�
øôc ó 	ð ˜]Ñ+ØÐ-Ñ.ð‹Ið	ús   ÁA'K Â5-K ËK5Ë4K5c           	     óX   • [        SS[        U 5       3S/ [        R                  QUSS9  g )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Ð  r7  r?  )r:   r6   r   r>  )ræ  r   s     r¤   rß  Ú0InstructionTranslatorBase.raise_loop_graph_break  s9   € äØ)Ø%Ô&7¸Ó&=Ð%>Ð?ðhàDÔ%×CÑCÐDØØó	
r¦   c                óî  >• [         TU ]  5         Xàl        UU l        Xl        Xpl        X€l        X�l        X l        S U l	        / U l
        SU l        S U l        [        S5      U l        SU l        / U l        / U l        SU l        S U l        SU l        / U l        Xðl        [/        SS9U l        SU l        [5        5       U l        X l        Ub  UO[;        U R8                  5      U l        UU l        X@l         XPl!        X`l"        X°l#        UU l$        Ub&  [J        RL                  (       a  [O        UUUS9U l(        OS U l(        0 U l)        0 U l*        XÀl+        SU l,        SU l-        SU l.        S U l/        S U l0        SU l1        S U l2        SU l3        / U l4        UU l5        S	S
K6J7nJ8nJ9nJ:n  URv                  UU-  U-  U-  -  (       a  U Ry                  [{        S 5      5        XÐl>        SU l?        S /[�        UR‚                  5      -  U lB        [†        R‰                  [Š        RŒ                  5      U lG        [�        R‰                  [Š        RŒ                  5      U lI        [”        R–                  " UR˜                  U5        g )Nr   r!  Tr…  é   )Úmaxlen)ræ  rA  râ  Fr   )ÚCO_ASYNC_GENERATORÚCO_COROUTINEÚCO_GENERATORÚCO_ITERABLE_COROUTINE)Mrj  rk  r'  Údistributed_stater+  r«  r¬  r­  r®  r¯  r±  r·   r½  r(   r³  r9  r(  r;  r¶   rV  r´  r¶  rº  r   rÃ  r  r  r  rÀ  r   ræ  rk  r�  r�  râ  rà  rA  r   Úreplay_record_enabledrH   r»  Únn_module_stackÚ	num_callsÚexportr<  r»   r  r¹  r¼  r¾  r'  r¿  rÀ  rÂ  r¥  rÙ  rÚ  rÛ  rÜ  r�  rK  rf   r·  r¸  rç   rÌ  r‡  r  rË  r   rÌ  r  r  r
  r   Ú	lazycacherø  )rÀ   r+  rÀ  rk  r�  r�  râ  r«  r¬  r­  r®  rà  rá  r·  r'  rº  rÝ  rA  rÂ  ræ  rÙ  rÚ  rÛ  rÜ  rr  s                           €r¤   rk  Ú"InstructionTranslatorBase.__init__#  se  ø€ ô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Ó+Ô,à(ÔØ).ˆÔ&ð ˆF”S˜×)Ñ)Ó*Ñ*ð 	Ôô
 ×+Ñ+¬G¯M©MÓ:ð 	Ô*ô ×)Ñ)¬'¯-©-Ó8ð 	Ô(ô 	×Ò˜F×.Ñ.°	Õ:r¦   )4rÙ  r  r  r‡  r´  r;  r(  rA  râ  r³  r9  r¹  rÀ  rÝ  r»   r»  rº  rá  r�  rà  r�  rk  r¾  r¸  ræ  r·  r·   rÀ  r¿  r  r  r
  r  rV  rÃ  r¶   rß  rà  r<  r+  rÂ  r'  r¯  r¶  r'  r±  r½  r¼  r¬  r«  r®  r­  rð   r  ©rÈ   r¸  )rX  rb   r¢   r°  ré  rª  rÈ   rÉ   )rX  ro   r¢   úSequence[VariableTracker]ré  rª  rÈ   rb   )rX  ro   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‚  úOptional[VariableTracker]rÈ   rÉ   )r_  r°  rÈ   rÉ   ©rÈ   rb   )re  rµ   rÈ   r°  )r¸   r-   rÈ   rb   )r™  r³   rÈ   rO   )r®   r³   rÂ  r³   rº  rµ   rÈ   r³   )rÁ  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])rI  r   rÈ   rÉ   )r–  r   rÈ   rÉ   )r¸   r-   r:  rµ   rÈ   rµ  )r§  rµ   rÈ  r-   rÉ  rA   rÊ  úlist[types.CodeType]r-  r2   rË  r¹   rÌ  r¹   rÈ   útuple[types.CodeType, str]©r¸   r-   rí  zlist[StackLocalsMetadata]rÈ   rµ  )rÊ  rê  rß  r¸  r-  r2   rÈ   rÉ   )r¸   r-   rÈ   r¹   )r¸   r-   r  r  rÈ   rÉ   )rÓ  rb   rq  rµ   rÈ   rb   )ry  rb   r>  rµ   rÈ   rÉ   )F)r¸   r-   rÑ  r¹   rÈ   rÉ   )r‘  z>Union[ContextWrappingVariable, GenericContextWrappingVariable]r¸   r-   rÈ   rb   )r‘  rb   rÈ   r   )r?  zOptional[list[Any]]rÈ   r³   )rÈ   ztraceback.FrameSummary)rK  r³   rÓ  r   rÈ   r³   ©rÈ   zOptional[FakeTensorMode])rY  z!Callable[[VariableTracker], bool]rÈ   r   )rÈ   r±   r°  )rÈ   r´  )r‚  r´  ro  rµ   rÙ  rµ   rƒ  z
list[bool]r„  rµ   rÉ  rA   rÈ   rë  )ro  rµ   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 | StepUnsupportedrÈ   rÉ   )ræ  útypes.CodeTyper   r;   rÈ   r   )NNN)(r+  r@   rÀ  rµ  rk  rš   r�  rš   r�  rš   râ  rš   r«  rª  r¬  rª  r­  rŠ   r®  r‡   rà  rï  rá  r¹   r·  rµ   r'  rÓ   rº  rw  rÝ  úOptional[DistributedState]rA  zOptional[tuple[types.CellType]]rÂ  rÁ  ræ  z Optional[dict[Instruction, int]]rÈ   rÉ   (   rË   rÌ   rÍ   rÎ   rÏ   rÅ  rÞ  rÑ  rÖ  rÚ  rÞ  rL  rí  rô  rý  r  r   r  r`  r‰  r  Úpropertyrè  r  rD  rY  rK  r`  ræ  rM  rq  rx  r�  r  r„  ÚLOAD_CLOSURErˆ  r½  r•  rV  Úcached_propertyrœ  r   r§  r   r˜  r½  rÇ  rÔ  ÚEAGER_IMPORT_NAMErÙ  rß  r‘  rü  ÚJUMP_FORWARDÚJUMP_ABSOLUTEr%  r¾  Únot_r  r¿  r  ÚJUMP_IF_FALSE_OR_POPÚJUMP_IF_TRUE_OR_POPrê  rî  rñ  rö  rú  rý  r   r  r  r  r  r#  rp  r0  r-  r  rA  r  rV  rY  ra  rd  rg  rj  rn  r`  rr  r|  r‚  rˆ  r‹  r†  r“  rØ  r™  r�  r¡  Ústaticmethodr¦  r8  rç  r9  rÝ  r0  r.  rù  rü  rÿ  r  r‡  r  r{   r  r  ÚBUILD_TUPLE_UNPACK_WITH_CALLr"  r&  ÚBUILD_MAP_UNPACK_WITH_CALLr)  r,  r2  r6  r/  rC  r1  rQ  rT  r!  r2  ra  re  rh  r×  rm  rr  r{  r~  r‡  r�  r•  rã  rš  rž  r¡  ÚDICT_UPDATEr¤  r§  rª  r®  r³  r¶  rº  r¾  rY  r¥  r
  ÚnegÚUNARY_NEGATIVEr’  ÚinvertÚUNARY_INVERTÚpowÚBINARY_POWERÚmulÚBINARY_MULTIPLYÚmatmulÚBINARY_MATRIX_MULTIPLYÚfloordivÚBINARY_FLOOR_DIVIDEÚtruedivÚBINARY_TRUE_DIVIDErb  Ú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Æ  rN  rO  rŸ  rÓ  rM  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Á  rò  rö  rú  rœ  r  r†  r  r  r  r  rÜ  r  r  r!  r$  ÚLOAD_FAST_BORROWr#  ÚPOP_ITERr+  r,  r/  r3  r4  r  r@  rå  rL  rR  rV  Ú
contextlibÚcontextmanagerr[  r:  r  r  ry  r  r�  rž  r°  r¸  rá  rß  rk  rÐ   rt  ru  s   @r¤   rÊ   rÊ   Ô  s4  ø‡ ð ÓØ/Ó/Ø0Ó0Ø#=Ó=Ø.Ó.Ø"FÓFØ Ó Ø&Ó&Ø$Ó$Ø"Ó"Ø&Ó&ØƒKØ(Ó(ØÓØ#Ó#ØÓØ#Ó#Ø3Ó3ØÓØ Ó Ø.Ó.ØAÓAØÓàÓØ/Ó/ð !Ó ØEÓEØ%Ó%Ø%Ó%ô.ô!ôF0ô0ô'ô

ð8àð8ð $ð8ð +ð	8ð
 
ô8ð,4à$ð4ð (ð4ð +ð	4ð
 
ô4ðUà$ðUð (ðUð +ð	Uð
 
ôU÷nð nõõ	Wôoðb ×Ñ˜7Ó"ö*	+õ\	ð ô;ó ð;õBõH2ôH=õTõõ õ;õ!+õFVõ2õ.õ/ð €Lõ	õ*õJð* ×ÑôJó ðJõ!õEð( ô#ó ð#õ,
2õõ:;ð| $Ðõ%ð ô6ó ð6õ,>õ4ð €LØ€Má$ X§]¡]°EÓ:ÐÙ# H§N¡N°EÓ:ÐÙ'¨¯©°tÓ<ÐÙ& x§~¡~°tÓ<ÐõUõ
Uõ
õ(õUõõNõõõ*õ
õ(-
õ^ RõDõ0õ..õ$)õLA'õF<õ:$ô*QõfKõõPõDñ  ØØñô)ó	ð)ñ
  ØØñô>;ó	ð>;ñ@  ØðAñô
	-óð
	-õGõ õõ )õõ%ñ  Øð Añô
ó	ð
õ
ð ðØðØ&)ðà	ôó ðð>A%àðA%ð !ðA%ð "ð	A%ð
 +ðA%ð ðA%ð ðA%ð "ðA%ð 
$õA%ðFg%àðg%ð $=ðg%ð 
õ	g%ðR ðq?Ø*ðq?Ø:Cðq?ØIRðq?à	ôq?ó ðq?ôf
ñ&  ØØ~ñô=ó	ð=õ8õ(õ1ôõ!õFIõ
ð @L÷ @õ 8ð $6Ð õJõ
ð "2Ðõ
õ 9õ.õ1õõ%
õNõ@ñ0  ØÐNñô
óð
õ4õ
õõõõõ
õõNõ(3õ
õB"õ!õ:1õPõ%õ$1ð €Kõõ@õ
õ
õRõ Rõ"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Ðõõ(ð#àKð#ð ð#ð 
õ	#ðJ ô
ó ð
õ -õ'õ	*õ&õ&õ/õõ;õ)õõ$ñ  ØðAñô
'óð
'õ
õõB@õ;ö*ð !ÑØ�IØ�Hð
Ñö!ö88ðÑöSõð >Bñ	
Ø':ð	
à	÷	
ö
õ>ö
ð ô5ó ñ5ñ ×Òð*Ø9ð*à	ô*ó ñ*ö
õ!ö ö A
öFd(ðL~!à'ð~!ð ð~!ð ð	~!ð
 )ð~!ð ð~!ð "ð~!ð 
$ö~!ð@ØðØ%(ðà	öð("Øð"Ø%2ð"ØEHð"à	ö"ð+Ø(ð+à	$ö+ð(là$ðlð ðlð +ð	lð
 
ölð\ ô	
ó ñ	
ð< 48Ø,0à48ñ-@;àð@;ð (ð@;ð !ð	@;ð
 "ð@;ð #ð@;ð %ð@;ð 4ð@;ð 5ð@;ð (Bð@;ð  3ð@;ð ð@;ð ð@;ð ð@;ð (ð@;ð  %ð!@;ð" 6ð#@;ð& 1ð'@;ð( *ð)@;ð, 2ð-@;ð. 
÷/@;÷ @;ò @;r¦   )Ú	metaclassc                  óö   ^ • \ rS rSr\SS j5       r\R                  SS j5       r                                    SU 4S jjr	SS jr
SS jrSS jrSS jrSS	 jrSS
 jrSS jrSrU =r$ )rR  i¦  c                 ó"   • [         R                  $ r�   )Útlsr¶  rÑ   r¦   r¤   r¶  Ú InstructionTranslator.current_tx§  s   € ä�~‰~Ðr¦   c              #  ó„   #   • [        [        SS 5      nU [        l         S v •  U[        l        g ! U[        l        f = f7f)Nr¶  )r  rD  r¶  )rÀ   rZ  s     r¤   Úset_current_txÚ$InstructionTranslator.set_current_tx«  s0   é € äœ˜\¨4Ó0ˆØŒŒð	#Ûà"ŒC�Nø˜UŒC�Nüs   ‚A  0 ¤A °=½A c                ó  >• [        5       " [        R                  SUR                   SUS    SUS    35        [        TU ]  [        UU	U UUUUUUUU
US9UUUUUU0 0 S S UUSUUUUS9  U R                  5         [        U R                  R                  5         U R                  5          X l        X°l        U R                  (       a  U R                  (       d   S	5       e0 U l        [        U R!                  5       5      n["        R$                  " U5      R'                  S
S 5      nUR)                  5        Ho  u  nnUU;  d  M  S nU(       a)  [+        UR'                  U0 5      R)                  5       5      n[,        R.                  " U[1        USUS95      nUU R                  U'   Mq     U R                  R2                  nU R5                  5        Hy  nUU;   aJ  UU   n[1        USSS9n[,        R.                  " UU5      nUR7                  5       nUR9                  UU5        OUR7                  5       nUUl        UU R                  U'   M{     Uc   e[=        U R?                  5       U5       Hf  u  nn[A        U5      n[1        USS9n [,        R.                  " URB                  U5      nURK                  UUU5      nUUl        UU R                  U'   Mh     [M        U5      U l'        [Q        5       U l)        U(       a.  [F        R,                  RU                  U R                  5      U l        S S S 5        S S S 5        g ! [D         a    [F        RH                  " 5       n N³f = f! , (       d  f       N<= f! , (       d  f       g = f)Nztorchdynamo start tracing r  rø  rä   r˜  )Úlocal_scoper³  rà  Útorch_function_mode_stackr<  rÂ  r   )r+  rÀ  rk  r�  r�  rA  râ  r«  r¬  r­  r®  rà  rá  r·  r'  rº  rÝ  rÂ  z4Export without one graph - something has gone wrong.ÚdynamismT)Úis_inputrL  )rM  Úis_derefed_cell_contents)rN  )+r%  r   ÚINFOrù  rj  rk  r@   Ú_throw_if_in_functorchr   r+  rU  rG  r<  rá  r«  r  rÚ  r1   rÂ  rm  r  Ú	frozensetrw   rÂ  rR   rt  rÑ  rñ  r‚  rƒ  r  rÖ  rQ   Úcell_contentsr  r   ÚDeletedVariableÚtrack_cell_existingrŠ   r­  r‡   r®  Úrealize_all)rÀ   rÀ  rà  rk  r�  r�  rA  rK  râ  Úcompiler_fnr<  rá  Úexport_constraintsÚframe_stater'  rº  rÝ  rÂ  rÚ  rL  r®   rÓ  Úlocal_dynamismÚvarrt  Úcontents_sourcerw  Úcell_varrv  Úcell_sourcerr  s                                 €r¤   rk  ÚInstructionTranslator.__init__´  s  ø€ ô( 	ŒÜ�L‰LØ(¨¯©Ð(8¸¸,À}Ñ:UÐ9VÐVWÐXdÐeuÑXvÐWwÐxô	
ô 	‰ÑÜØØØØØ"ØØ$Ø&ØØ*CØ#Øñð &ØØØ!ØØ%ØàØ*.Ø"&ØØØØ+Ø%Ø/ØðA 	ñ !	
ðF 	×#Ñ#Ô%ô �T—[‘[×0Ñ0Õ1°4×3FÑ3FÕ3HØ#,ŒNØ ŒKØ�{�{Ø—~—~ð ØJó�~ð $&ˆDÔ ä*-¨d×.DÑ.DÓ.FÓ*GÐä#×/Ò/°Ó7×;Ñ;¸JÈÓMˆHØ'Ÿ~™~Ö/‘��eØÐ0Õ0Ø%)�NÞÜ)2°8·<±<ÀÀbÓ3I×3OÑ3OÓ3QÓ)R˜Ü-×4Ò4ØÜ#Ø Ø%)Ø%3ñó�Cð 25�D×(Ñ(¨Ó.ñ  0ð"  Ÿ;™;×3Ñ3ˆLØŸ™ž�Ø˜8Ó#à$ T™N�Eô* '2ØØ!%Ø15ñ'�Oô
 5H×4NÒ4NØ˜ó5�Lð  ,×:Ñ:Ó<�HØ ×+Ñ+¨H°lÕCà+×:Ñ:Ó<�HØ&*�Ô#Ø-5�×$Ñ$ TÓ*ñK (ðR Ñ&Ð&Ð&Ü! $§-¡-£/°7Ö;‘
��dÜ-¨dÓ3�Ü"-¨dÈTÑ"R�ð?Ü#6×#=Ò#=Ø×*Ñ*¨Oó$�Lð (×;Ñ;Ø  |ó�ð '+�Ô#Ø-5�×$Ñ$ TÓ*ñ <ô  2LØ)ó2ˆDÔ.ô *=Ó)>ˆDÔ&æô (1×'DÑ'D×'PÑ'PØ×(Ñ(ó(�Ô$÷E 4I×1Ð1øô` "ó ?ä#,×#<Ò#<Ó#>’Lð?ú÷a 4IÕ3Hú×1Õ1úsQ   ÂM0Â*BMÅEMÊ!L:Ê(BMÌ)M0Ì:M	ÍMÍM	ÍMÍ
M-	Í)M0Í0
M>c                óà  • [         R                  R                  S5      n[        R                  " U R
                  R                  SU R
                  R                  5      n[         R                  R                  R                  5       n[         R                  R                  R                  R                  [         R                  R                  R                  R                  [         R                  R                  R                  R                  4nUb[  UR                  5       U;   aF  X!LaA  UR                  5       R                  R!                  5       nSU SU SU S3n[#        SSU/ S	9  g g g g )
NÚeagerrV  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_backendrS  Úgetattr_staticr+  rV  Ú_CÚ
_functorchÚpeek_interpreter_stackÚTransformTypeÚVmapÚGradÚJvprò  r®   Úlowerr:   )rÀ   r`  rV  ÚciÚforbidden_keysr®   rf  s          r¤   rP  Ú,InstructionTranslator._throw_if_in_functorchY  s-  € ä—‘×,Ñ,¨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¸[Ò=UØ—6‘6“8—=‘=×&Ñ&Ó(ˆDð(à(, vð .*Ø*.¨ð 0 ð !%˜vÐ%WðYð ô Ø?ØØØó	ð >VÐ8ˆ>r¦   c                óÆ   • [        U[        5      (       a  U R                  UR                     $ [        U[        5      (       a  U R
                  UR                     $ [        er�   )r\  rR   rk  rƒ  rO   r�  rQ  rn  )rÀ   r
  s     r¤   Úget_example_valueÚ'InstructionTranslator.get_example_valuex  sK   € Ü�fœk×*Ñ*Ø—=‘= ×!2Ñ!2Ñ3Ð3Ü�fœl×+Ñ+Ø—>‘> &×"4Ñ"4Ñ5Ð5Üˆr¦   c                óæ   • U R                   R                  5        HS  n[        U[        5      (       d  M  [	        UR                  5       [        R                  R                  5      (       d  MS    g   grÄ   )	r«  ræ  r\  r�   r\  rû  rÿ  ÚnnÚModule)rÀ   rÿ   s     r¤   Ú$symbolic_locals_contain_module_classÚ:InstructionTranslator.symbolic_locals_contain_module_class  sU   € Ø×%Ñ%×,Ñ,Ö.ˆAÜ˜!Ô5×6Ó6¼:Ø×$Ñ$Ó&¬¯©¯©÷<ó <ñ ñ	 /ð
 r¦   c                óð   • [        U R                  5      (       a\  U R                  S   =n(       aE  [        U[        5      (       a/  [	        UR                  U 5      [        5       S9U R                  S'   g g g g )Nr…  r  )rç   r±  r\  rq   rz   rv  ra   )rÀ   r/  s     r¤   Ú"replace_tos_if_return_is_generatorÚ8InstructionTranslator.replace_tos_if_return_is_generator‡  se   € ä�—
‘
�O‰OØŸ
™
 2™Ð&�Õ&Ü˜3Ô <×=Ñ=ä1Ø×-Ñ-¨dÓ3Ü.Ó0ñˆD�J‰J�rŠNð >ð 'ð r¦   c           	     ód  • U R                  5         U R                  c   eU R                  c   e[        5       R	                  SU R                  U R                  -
  5        [
        R                  (       d´  U R                  R                  5       S:X  a–  U R                  (       d…  U R                  5       (       dp  U R                  (       d_  U R                  (       dN  U R                  (       d=  U R                  (       d,  [        R                   " S[#        U R$                  5       35      eS U l        ['        5       " [(        R*                  SU R$                  R,                   SUR.                   S35        [0        R3                  S5        U R                  R5                  U [7        SU R9                  5       /S	S
9UR.                  S:X  a  SOSS9n[;        U5      S:X  d   eUS   R<                  (       a   eU R                  R?                  U RA                  XS   RB                  5      5        [D        e)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)r8  rÈ  r   rØ  )#rx  r·   r½  r[   rå  r   Úallow_empty_graphsr+  r:  r¸  ru  rá  r<  r»   r  r   Ú	SkipFramer6   rà  r%  r   rO  rù  ré   r$  rã  rä  r?   rå  rç   rÀ  ré  r¦  r:  rF  )rÀ   r¸   rí  s      r¤   Ú_returnÚ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Ñ/×@×@Ð@Ð@Ø�‰×+Ñ+Ø×)Ñ)¨$È!Ñ0L×0VÑ0VÓWô	
ô Ðr¦   c                ó&   • U R                  U5        g r�   ©r~  r&  s     r¤   rÈ  Ú"InstructionTranslator.RETURN_VALUEÁ  ó   € Ø�‰�TÕr¦   c                ó&   • U R                  U5        g r�   r�  r&  s     r¤   rÉ  Ú"InstructionTranslator.RETURN_CONSTÄ  rƒ  r¦   )rá  r·   r<  r«  r®  r­  )rÈ   rR  rç  )$rÀ  rµ  rà  rï  rk  rš   r�  rš   r�  rš   rA  zOptional[tuple[Any, ...]]rK  r   râ  rš   rV  r   r<  r¹   rá  r¹   rW  r   rX  r   r'  rÓ   rº  rw  rÝ  rð  rÂ  rÁ  rÈ   rÉ   rð   )r
  rT   rÈ   r   r  ræ  )rË   rÌ   rÍ   rÎ   rú  r¶  r?  r@  rG  rk  rP  rp  ru  rx  r~  rÈ  rÉ  rÐ   rt  ru  s   @r¤   rR  rR  ¦  s#  ø† Øóó ðð ×Ñó#ó ð#ðcà'ðcð ðcð !ð	cð
 "ðcð #ðcð +ðcð $'ðcð %ðcð ðcð ðcð ðcð  ðcð ðcð (ðcð  %ð!cð" 6ð#cð$ *ð%cð& 
÷'côJô>ôô	ô-ô^÷ò r¦   rR  rK  ÚINPLACEr{  ÚBINARY_c              #  ó¶  #   • [         R                  (       d  Sv •  gU R                  c  [        5       U l        U R                  R	                  5       nU R                  R                  5       nU R                  R                  UR                  UR                  UR                  [        R                  " 5       5        Sn Sv •  SnU R                  R                  5       n[        R                  " 5       nU(       aÑ  UbÍ  U" 5       nXvR                  -
  n	X–R                  -
  n
[        UR                   UR"                  UR$                  U	U
['        UR(                  5      UU(       a  US   OSU(       a  US   OSU(       a  US   OSUR*                  US9nU R                  R-                  U5        U R                  R/                  U	5        ggg! U R                  R                  5       n[        R                  " 5       nU(       aÑ  UbÍ  U" 5       nXvR                  -
  n	X–R                  -
  n
[        UR                   UR"                  UR$                  U	U
['        UR(                  5      UU(       a  US   OSU(       a  US   OSU(       a  US   OSUR*                  US9nU R                  R-                  U5        U R                  R/                  U	5        f f f = f7f)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_stackrK  rù  rø  r˜  ÚtimeÚtime_nsræ  Ústart_time_nsÚchild_time_nsr   r‰  r´   rŠ  rç   Úco_coder‘  Úrecord_timingÚadd_child_time)r+  ræ  Úget_inline_depthÚcaller_infor’  Útrace_successÚstack_entryÚtrace_end_nsr·  r‹  rŒ  Útimings               r¤   Úprofile_inline_callr¤  Ò  se  é € ô" ×!×!ÛØà×ÑÑ$Ü 3Ó 5ˆÔà×'Ñ'×:Ñ:Ó<€KØ×&Ñ&×5Ñ5Ó7€Jà
×Ñ×ÑØ�‰�d×&Ñ&¨×(;Ñ(;¼T¿\º\»^ôð €Mð=ÛØˆà×+Ñ+×/Ñ/Ó1ˆÜ—|’|“~ˆæ˜[Ñ4Ù+Ó-ˆLØ%×(AÑ(AÑAˆJØ#×&?Ñ&?Ñ?ˆ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Ø#×&?Ñ&?Ñ?ˆJä(Ø%×/Ñ/Ø$×-Ñ-Ø'×3Ñ3Ø%Ø%Ü" 4§<¡<Ó0Ø)Þ3> ¨Q¢ÀDÞ2= ¨A¢À4Þ5@ ;¨q¢>ÀdØ"-×"?Ñ"?Ø%ñˆFð ×!Ñ!×/Ñ/°Ô7Ø×!Ñ!×0Ñ0°Õ<ð) 5ˆ=üs    ‚B<KÂ?G ÃDKÇD	KËKc                  óv  ^ • \ rS rSr% SrS\S'   S\S'   \          SS j5       r\    SS j5       r	\          SS	 j5       r
SS
 jr                SU 4S jjr\SS j5       rSS jrSS jrSU 4S jjr      SU 4S jjrS S jrS S jr    S!S jrS U 4S jjrS U 4S jjrSrU =r$ )"rò  i  z Trace and inline a called methodrè  Úsymbolic_resultrÊ   r'  c                óÖ   ^• S n[        TR                  UR                  5       U4S j5         U R                  TX#U5      nUR	                  5       sS S S 5        $ ! , (       d  f       g = f)Nc                 ó"   >• T R                   S-   $ r~  ©r·  )r'  s   €r¤   r¥   Ú;InliningInstructionTranslator.inline_call.<locals>.<lambda>!  s   ø€ °F×4GÑ4GÈ!Ò4Kr¦   )r¤  r+  rñ  Úbuild_inline_tracerÚinline_call_)r  r'  Úfuncr¢   ré  Útracers    `    r¤   ró  Ú)InliningInstructionTranslator.inline_call  sV   ø€ ð ˆÜ Ø�M‰M˜4Ÿ=™=›?Ô,Kõ
ð ×,Ñ,¨V°TÀÓHˆFØ×&Ñ&Ó(÷	
÷ 
÷ 
ús   ­#AÁ
A(c                óÊ  • U R                  5       (       a  [        S[        U 5      S/ S9  [        U [        5      (       aŠ  [
        R                  " U R                  5       SS5      (       a_  [
        R                  " U R                  5       SS 5      n[        S[        U R                  5       5      SU R                  5        S	U S
3S/S9  [        R                  " U SS9nUR                  (       aó  SSKJn  [        U S5      (       aK  [        U R                  S5      (       a0  U R                  R                  UL a  [        R                   " SS5      $ [        U S5      (       a  U R                  R"                  OSnSU S3/nSU R%                  5       ;  a  USU S3S/-  n[        SSU SU R'                  5        SU R%                  5        SUR(                   3SU S 3US9  U$ )!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_applyrX  Ú_originz"allowlist in dynamo known functionrã   zAvoid calling the function `re  ra  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³   r\  rt   rS  rc  Úget_functionr   Úcheck_verboseÚskippedÚtorch._dynamo.variables.miscr´  r9  rX  rµ  Ú
SkipResultrÍ   Úget_filenameÚget_namer¼   )r­  rf  rŽ  r´  Úfn_qualnamerÐ  s         r¤   Úcheck_inlineableÚ.InliningInstructionTranslator.check_inlineable&  s
  € ð �=‰=�?‰?ÜØ6Ü˜D›	ðkàòô �dÔ0×1Ñ1´g×6LÒ6LØ×ÑÓÐ!7¸÷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Ñ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                ó8
  ^ ^^^• [        U[        [        [        45      (       d   eUR	                  5       mS nT R
                  R                  n[        R                  (       d,  U(       a%  UR                  R                  TS 5      =n(       a  UnUcP  [        R                  U5      nUR                  SL d   e[        R                  (       d  U(       a  XER                  T'   S n UR                  T X#5      nUc   e[.        R0                  " UR3                  5       5       H<  n
[        U
[4        5      (       a  M  [!        SSU SU
 3S/ [*        R6                  QS9  M>     TR8                  S;   aS  U(       a"  [        US   [:        R<                  5      (       d*  [!        SSTR8                   SU 3STR8                   S3/ S9  Sn[>        R@                  RB                  RD                  RG                  S5      (       a'  S[H        RJ                  " T5      RI                  5        3n[L        RN                  S:¼  aB  T RP                  mT RR                  mSUUU U4S jjn[T        RW                  S[Y        U5      5        [Z        RW                  STX´R\                  5        U(       aª  [        US   [^        5      (       a’  T R
                  Ra                  US   Rb                  5      n[        U[>        Rd                  Rf                  5      (       aA  [h        Rj                  " U5      [l        Rn                  " URp                  Rr                  5      S'   U(       a‘  [        US   [t        5      (       ay  US   Rv                  n[        U[>        Rd                  Rf                  5      (       aA  [h        Rj                  " U5      [l        Rn                  " URp                  Rr                  5      S'   [        U[x        5      (       a   e[{        T5      (       a1  [}        T TUT R~                  T R€                  T R‚                  U5      nU$ [        T TUT R~                  T R€                  T R‚                  U5      nU$ ! [         a¡  n[!        SSUR#                  5        SUR%                  5        SUR	                  5       R&                   SU V	s/ s H  o™R)                  5       PM     Os  sn	f sn	 SU 3
SUR#                  5        S	3/ [*        R,                  QUS
9   S nAGNS nAff = f) NFz2failed to bind arguments when attempting to inlinezfunc='z' rä   z	; args = z; kwargs = z4Argument mismatch when attempting to trace function r[  r6  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Ì  )rð  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ù   rK  c                 ó¨   >• TR                  TR                  R                  S9n [        TT5      R	                  5       nSTR
                   SU  SU 3$ )N)r¶   zTRACE inlined call z from rù   )rý  r¡  r¶   rZ   r  rù  )Úheaderr  ræ  Úcur_instr'  Úparent_codes     €€€€r¤   Úget_trace_call_log_strÚQInliningInstructionTranslator.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, %sr¶  r  )Br\  rt   rr   rp   rñ  r+  rU  r   Údont_skip_tracingÚpreviously_inlined_functionsrm  rò  r¿  r¹  Ú	bind_argsr  r:   r½  r¼  r˜  rE  r   r  rä  rå  ræ  rb   r  rù  r   r�   rÿ  rÈ  Ú	_internalÚ	log_stateÚis_artifact_enabledrq  ÚBytecoder`  r‰  r³  rà  Útrace_call_logrã  r^   r$  r¼   r…   r  r  r  rO  rÃ  rÄ  r1   rÂ  ÚforwardrŸ  r†   rÓ  rs   r.   Ú&InliningGeneratorInstructionTranslatorr¬  r­  r®  )r'  r­  r¢   ré  rŽ  Útracing_ctxÚprevious_resultÚ
sub_localsrì  rS  rÿ   rL  rÇ  Úmoduler®  ræ  rÅ  rÆ  s   `              @@@r¤   r«  Ú1InliningInstructionTranslator.build_inline_tracerh  sl  û€ ô Øä$Ü*Ü.ð÷
ñ 
ð 	
ð 
ð  $Ÿ}™}›ˆØˆØ—m‘m×3Ñ3ˆô
 ×'×'®KØ"-×"JÑ"J×"NÑ"NØ�dó#ð ˆõ ð )�à‰>Ü2×CÑCÀDÓIˆFØ—>‘> UÒ*Ð*Ð*ä×+×+¶ØAG×8Ñ8¸Ñ>àˆ
ð	ØŸ™¨°Ó=ˆJð Ñ%Ð%Ð%ä—’ ×!2Ñ!2Ó!4Ö5ˆAÜ˜a¤×1Ó1ÜØXØ$ T F¨'°!°Ð5Ø yØ9Ô-×8Ñ8Ð9ô	ñ 6ð �<‰<Ð9Ó9Þ”Z  Q¡¬×)LÑ)L×MÑMäØLØ% d§l¡l ^°8¸D¸6ÐBØ2°4·<±<°.Ð@zÐ{Øò	ð ˆô �>‰>×#Ñ#×-Ñ-×AÑAÀ*×MÑMØœ#Ÿ,š, tÓ,×0Ñ0Ó2Ð3Ð4ˆFÜ×Ñ˜wÓ&Ø×1Ñ1ˆHØ Ÿ-™-ˆK÷Rò Rô × Ñ  ¤zÐ2HÓ'IÔJÜ�	‰	Ð% t¨V·]±]ÔCö ”J˜t A™wÔ(8×9Ñ9Ø—]‘]×0Ñ0°°a±×1CÑ1CÓDˆFÜ˜&¤%§(¡(×"6Ñ"6×7Ñ7ô
 —K’K Ó'ô ×(Ò(¨¯©×)@Ñ)@ÓAØ&ñö ”J˜t A™wÔ(E×FÑFØ˜!‘W—]‘]ˆFÜ˜&¤%§(¡(×"6Ñ"6×7Ñ7ô
 —K’K Ó'ô ×(Ò(¨¯©×)@Ñ)@ÓAØ&ñô ˜dÔ$8×9Ñ9Ð9Ð9ä˜×ÑÜ;ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØóˆFð& ˆô 3ØØØØ×'Ñ'Ø×4Ñ4Ø×,Ñ,ØóˆFð ˆøô} ó 
	ÜØLØ  §¡£Ð 1°°D×4EÑ4EÓ4GÐ3HÈÈ$Ï-É-Ë/×JhÑJhÐIið jÙ8<Ó=º°Ÿ?™?Ö,ºùÔ=Ð>¸kÈ&ÈðSàRÐSW×S`ÑS`ÓSbÐRcÐcdÐeðÜ&×1Ñ1ðð ÷	ð 	ûð
	ús%   Ã&Q. Ñ.
TÑ8ATÓ SÓ5TÔTc                ó°  • U R                   nSUl        SUl        U R                  n[        R
                  " 5       nUR                  (       a  U R                  UR                  5      n U   U R                  5         S S S 5        U R                   Ul        SUl        U R"                  R$                  (       a  [&        $ U R(                  c   eU R*                  UR*                  L a%  UR,                  R/                  U R,                  5        U=R0                  U R0                  -  sl        [        R                  SU5        U R"                  R2                  R4                  R7                  U5        [8        R:                  (       d&  [=        U [>        5      (       a²  U R@                  (       a¡  [C        U5      (       a…  [=        U [>        5      (       ap  U RD                  (       a_  [=        U [>        5      (       d   e/ nU R(                  RG                  5       (       d  U R(                  /n[        RH                  " [J        XS9  g U R(                  $ [C        U5      (       aT  [=        U [>        5      (       d   eU R(                  RG                  5       (       d   e[M        U RN                  [Q        5       S9$ U R(                  $ ! , (       d  f       GNE= f! [        R                   a#  nSU SU 3n[        R                  U5        e S nAf[         a  nSUl        e S nAf[         a    [        R                  SU5        e f = f! U R                   Ul        SUl        f = f)	NFTz!Observed exception DURING INLING z : zFAILED INLINING %szDONE INLINING %sr÷  r  ))r'  r¾  r¿  rà  r?  Únullcontextr¼  r[  rY  r   r   r$  rã  r;   r?  rK  r»   r+  r,  rg   r¦  r�  r¬  r%  r¸  rU  Útraced_coderè   r   rð  r\  rÒ  Úis_generator_from_ctx_managerr.   Úgenerator_exhaustedÚis_constant_noner  r
  rz   Úgenerated_itemsra   )rÀ   r'  ræ  Ú
strict_ctxrì  rf  r¢   s          r¤   r¬  Ú*InliningInstructionTranslator.inline_call_î  sœ  € Ø—‘ˆØ&+ˆÔ#Ø(,ˆÔ%Ø�{‰{ˆä$×0Ò0Ó2ˆ
Ø×"×"Ø×5Ñ5°f×6MÑ6MÓNˆJð	2ÚØ—‘”
÷ ð& +/×*CÑ*CˆFÔ'Ø,1ˆFÔ)à�;‰;×"×"ä)Ð)à×#Ñ#Ñ/Ð/Ð/à�>‰>˜V×-Ñ-Ò-à×#Ñ#×*Ñ*¨4×+@Ñ+@ÔAà×(Ò(¨D×,JÑ,JÑJÕ(ä�	‰	Ð$ dÔ+Ø�‰×#Ñ#×/Ñ/×6Ñ6°tÔ<ä×4×4Ü�tÔC×DÑDØ×2×2ô ˜T×"Ñ"Ü˜tÔ%K×LÑLØ×,×,ä! $Ô(N×OÑOÐOÐOð �Ø×+Ñ+×<Ñ<×>Ñ>Ø ×0Ñ0Ð1�DÜ×,Ò,¬]¸DÓLà×+Ñ+Ð+ä˜D×!Ñ!Ü! $Ô(N×OÑOÐOÐOØ×+Ñ+×<Ñ<×>Ñ>Ð>Ð>Ü+Ø×(Ñ(Ü"2Ó"4ñð ð
 ×+Ñ+Ð+÷A –ûä×$Ñ$ó 	Ø5°d°V¸3¸q¸cÐBˆCÜ�I‰I�cŒNàûÜó 	ð !ˆAŒLØûÜó 	Ü�I‰IÐ*¨DÔ1Øð	ûð +/×*CÑ*CˆFÔ'Ø,1ˆFÕ)úsT   Á)K Á+J:Á<K Ê:
K	ËK ËL; Ë	K ËL8Ë K>Ë>L8ÌLÌ%L8Ì8L; Ì;Mc                ó|  >• UR                  5       nUS   n	[        U	[        5      (       d  U	R                  n	UR                  R
                  n
U
(       a  U
R                  R                  U5      OS nUb%  UR                  nUR                  nUR                  nOc[        U5      n[        U5        [        U5      n[        5        Vs0 s H  oÿ[        X/5      _M     nnU
(       a  [!        UUUS9U
R                  U'   ["        TU ]I  UR                  0 UU	UUUUUUUUR&                  UR(                  S-   UR*                  UR,                  UR.                  UR0                  US9  Xpl        Xl        UR6                  U l        S U l        UR:                  R=                  5       U l        UR>                  U l        g s  snf )NÚ__builtins__)rÀ  ræ  râ  r   )r+  rk  r�  r�  r«  r¬  r­  r®  rÀ  râ  rà  rá  r·  r'  rº  rÝ  rÂ  ræ  ) Úget_globalsr\  r  Ú__dict__r+  rU  Úinlined_code_cacherm  rÀ  ræ  râ  r"   r!   r   r,   r  r   rj  rk  rá  r·  r'  rº  rÝ  rÂ  Úfuncvarr'  rà  r¦  rß  rW  r<  )rÀ   r'  ræ  r«  r¬  r­  r®  ræ  r�  r�  rÓ  ÚcachedrÀ  ræ  râ  rþ   rr  s                   €r¤   rk  Ú&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œw tÓ/Ò/¹ˆLÐIÞÜ7GØ!-Ø#Ø!-ñ8�×.Ñ.¨tÑ4ô 	‰ÑØ—=‘=ØØØ!Ø+Ø-Ø*GØ"7Ø%Ø%ØØ—=‘=Ø×,Ñ,¨qÑ0Ø"×2Ñ2Ø×,Ñ,Ø$×6Ñ6Ø—N‘NØð% 	ñ 	
ð( ŒØŒØ×)Ñ)ˆŒØ#ˆÔØ%×5Ñ5×:Ñ:Ó<ˆÔØ×)Ñ)ˆ�ùòC Js   ÃF9c                ó.   • U R                   R                  $ r�   )r'  rV  rÜ   s    r¤   rV  Ú'InliningInstructionTranslator.fake_modez  s   € à�{‰{×$Ñ$Ð$r¦   c                ó^   • [         R                  " U R                  R                  5       5      $ r�   )r   rC  r'  rå  rÜ   s    r¤   rD  Ú)InliningInstructionTranslator.run_ctx_mgr~  s    € Ü×+Ò+¨D¯K©K×,EÑ,EÓ,GÓHÐHr¦   c                ó°   • [         R                  (       d  gU R                  R                  5       (       d  gU R                  R                  5       (       d  gg)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   r5  ræ  Ú should_allow_nested_graph_breaksr'  rÝ  rÜ   s    r¤   rÿ  ÚAInliningInstructionTranslator._can_speculate_comprehension_nested�  s?   € ô
 ×)×)ØØ�|‰|×<Ñ<×>Ñ>ØØ�{‰{×7Ñ7×9Ñ9ØØr¦   c                óÌ   >• [         R                  (       aN  U R                  R                  5       (       d  gU R                  R                  5       (       d  g[        TU ]  5       $ gr*  )r   r5  ræ  rî  r'  rÝ  rj  ©rÀ   rr  s    €r¤   rÝ  Ú:InliningInstructionTranslator.should_compile_partial_graphŽ  sI   ø€ Ü×%×%Ø—<‘<×@Ñ@×BÑBØØ—;‘;×;Ñ;×=Ñ=ØÜ‘7Ñ7Ó9Ð9Ør¦   c                óf   >• [         R                  (       a  [        TU ]  X5      $ [	        SSS/ S9  g )NzGraph break in inlined functionrã   z2Graph breaks in an inlined call are not supported.rÌ  )r   r5  rj  rç  r:   )rÀ   r¸   rí  rr  s      €r¤   rç  Ú3InliningInstructionTranslator.create_call_resume_at—  s2   ø€ ô
 ×%×%Ü‘7Ñ0°ÓQÐQÜØ5ØØLØó		
r¦   c                óF   • U R                  5       U l        S U l        [        er�   )ræ  r¦  r·   rF  r&  s     r¤   rÈ  Ú*InliningInstructionTranslator.RETURN_VALUE¥  s   € Ø#Ÿx™x›zˆÔØ#'ˆÔ ÜÐr¦   c                óH   • U R                  U5      U l        S U l        [        er�   )rˆ  r¦  r·   rF  r&  s     r¤   rÉ  Ú*InliningInstructionTranslator.RETURN_CONSTª  s#   € Ø#×/Ñ/°Ó5ˆÔØ#'ˆÔ ÜÐr¦   c                óD  • SU R                   ;   a™  U R                   S   R                  S5      (       dv  U R                   S   nU R                  U5      nSU;   a(  [        R                  R
                  R                  U   nO[        U5      n[        X5      " U5      n[        X15      nOYU R                  R                  SU R                   5      n[        U5      nU R                   n[        X5      " U5      n[        X�5      n[        U5      (       a  [        U5      nXEU4$ )NrË   Únamedtuple_rª  Ú___unnamed_scope)r�  rm  r˜  rÿ  rÂ  r¯  r°  r¯   rd   rM   r+  rO  rO   rN   rc  rS   )	rÀ   r®   r™  rš  r›  Úfglobals_vtÚglobal_sourceÚglobals_nameÚglobals_sources	            r¤   Úget_globals_source_and_valueÚ:InliningInstructionTranslator.get_globals_source_and_value¯  s  € ð ˜Ÿ™Ó'°·±¸zÑ0J×0UÑ0UØ÷1
ñ 1
ð Ÿ.™.¨Ñ4ˆKØ ×.Ñ.¨{Ó;ˆMØ +Ó-ä—M‘M×2Ñ2×LÑLØ#ññ ô "0°Ó!<�ô *¨$Ô>¸~ÓNˆKÜ& }Ó;‰MàŸ;™;×;Ñ;Ø" D§N¡NóˆLô *¨,Ó7ˆNØ!Ÿ^™^ˆNô *¨$Ô?ÀÓOˆKÜ-¨nÓCˆMä�^×$Ñ$ô ,¨MÓ:ˆMà¨MÐ9Ð9r¦   c                ó  >• UR                   nX R                  ;  a  U R                  U5      $ U R                  R                  U R                  L a  [
        TU ]  U5        g U R                  U5      u  p4nU R                  R                  R                  XB5      (       a5  U R                  U R                  R                  R                  XB5      5        g U R                  U   nU R                  [        R                  " XU5      5        g r�   )rÁ  r�  r‘  r+  r³  rj  r•  r   rt  Úhas_pending_mutation_of_attrrK  Ú	load_attrrb   r“  )rÀ   r¸   r®   r£   rü  rý  rÓ  rr  s          €r¤   r•  Ú*InliningInstructionTranslator._load_globalÙ  sÄ   ø€ Ø�{‰{ˆØ—~‘~Ó%Ø×$Ñ$ TÓ*Ð*à�;‰;×#Ñ# t§~¡~Ò5ô ‰GÑ  Õ&à,0×,MÑ,MÈdÓ,SÑ)ˆA˜MØ�{‰{×'Ñ'×DÑDÀ[×WÑWØ—	‘	˜$Ÿ+™+×2Ñ2×<Ñ<¸[ÓOÕPàŸ™ tÑ,�Ø—	‘	œ/×/Ò/°¸]ÓKÕLr¦   c                ón  >• U R                   R                  U R                  L a  [        TU ]  U5        g U R                  5       n[        U[        5      (       a  [        SUR                  S/ S9  UR                  nU R                  U5      u  pEnU R                   R                  R                  XSU5        g )Nz3Storing Tensor hook handle in globals (inline call)r£  rÌ  )r+  r³  r�  rj  r§  ræ  r\  rŒ   r:   rÁ  r   rt  Ú
store_attr)rÀ   r¸   rÓ  r®   Ú_fglobals_valuerü  r£   rr  s          €r¤   r§  Ú*InliningInstructionTranslator.STORE_GLOBALê  s”   ø€ Ø�;‰;×#Ñ# t§~¡~Ò5ô ‰GÑ  Õ&à—H‘H“JˆEÜ˜%Ô!8×9Ñ9ÜØQØ ŸK™KØ 8Øò	ð —;‘;ˆDØ.2×.OÑ.OÐPTÓ.UÑ+ˆO¨!Ø�K‰K×$Ñ$×/Ñ/°À5ÕIr¦   )ræ  r·   rß  rà  r<  r'  r¦  )
r'  r   r­  ro   r¢   rå  ré  rª  rÈ   rb   )r­  ro   rÈ   ztrace_rules.SkipResult)
r'  r   r­  ro   r¢   rå  ré  rª  rÈ   rò  ré  )r'  rÊ   ræ  rï  r«  rª  r¬  rª  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«  r¬  rk  rñ  rV  rD  rÿ  rÝ  rç  rÈ  rÉ  r   r•  r§  rÐ   rt  ru  s   @r¤   rò  rò    s—  ø‡ Ù*à.Ó.à%Ó%àð)àð)ð 'ð)ð (ð	)ð
 +ð)ð 
ó)ó ð)ð ð?Ø&ð?à	ó?ó ð?ðB ðCØðCà&ðCð (ðCð +ð	Cð
 
'óCó ðCôJK,ðZ=*à)ð=*ð ð=*ð 4ð	=*ð
 5ð=*ð (Bð=*ð  3ð=*ð Ið=*ð 
÷=*ð~ ó%ó ð%ôIô÷ð
àð
ð $=ð
ð 
÷	
ôô
ð
(:Øð(:à	,ô(:÷TM÷"Jõ Jr¦   rò  c                  óš   ^ • \ rS rSr% S\S'   SU 4S jjrSU 4S jjrSS jrSS jrSS jr	SU 4S	 jjr
SU 4S
 jjrSS jrSS jrSrU =r$ )rÒ  iý  r°  rÞ  c                óP   >• [         TU ]  " U0 UD6  / U l        SU l        SU l        g r*  )rj  rk  rÞ  rÜ  rÛ  )rÀ   r¢   ré  rr  s      €r¤   rk  Ú/InliningGeneratorInstructionTranslator.__init__  s-   ø€ Ü‰Ò˜$Ð) &Ò)Ø!ˆÔØ#(ˆÔ Ø-2ˆÕ*r¦   c                ó¢   >^ • [        T R                  T R                  U 4S j5         [        TT ]  5       sS S S 5        $ ! , (       d  f       g = f)Nc                 ó   >• T R                   $ r�   r©  rÜ   s   €r¤   r¥   ÚEInliningGeneratorInstructionTranslator.inline_call_.<locals>.<lambda>  s   ø€ À4×CTÒCTr¦   )r¤  r+  rà  rj  r¬  rñ  s   `€r¤   r¬  Ú3InliningGeneratorInstructionTranslator.inline_call_  s0   ù€ Ü  §¡¨d¯k©kÔ;TÕUÜ‘7Ñ'Ó)÷ V×U×Uús   ¨A Á 
Ac                ó   • gr*  rÑ   rÜ   s    r¤   rÝ  ÚCInliningGeneratorInstructionTranslator.should_compile_partial_graph  s   € àr¦   c                óB  • U R                  5       nU R                  R                  U5        [        U R                  5      [        :”  a  [
        R                  eU R                  [        5        [        R                  (       d  U R                  (       a  X l        [        eg r�   )ræ  rÞ  rè   rç   rv   r   ÚInfiniteGeneratorErrorrK  rg   r   rð  rÛ  r¦  rH  )rÀ   r¸   Útops      r¤   ÚYIELD_VALUEÚ2InliningGeneratorInstructionTranslator.YIELD_VALUE  sq   € Ø�h‰h‹jˆØ×Ñ×#Ñ# CÔ(Üˆt×#Ñ#Ó$Ô'9Ó9Ü×,Ñ,Ð,Ø�	‰	Ô(Ô)ä×5×5Ø×1×1à#&Ô äÐð	 2r¦   c                óÐ   • U R                   S   n[        U[        5      (       dB  U R                  5         [	        [
        5      R                  X/0 5      nU R                  U5        g g r­  )r±  r\  rz   ræ  rf   rm  rL  rK  )rÀ   r¸   r/  Úress       r¤   ÚGET_YIELD_FROM_ITERÚ:InliningGeneratorInstructionTranslator.GET_YIELD_FROM_ITER  sO   € Ø�j‰j˜‰nˆÜ˜#Ô3×4Ñ4Ø�H‰HŒJÜ!¤$Ó'×5Ñ5°d¸EÀ2ÓFˆCØ�I‰I�c�Nð 5r¦   c                ó0   >• SU l         [        TU ]	  U5      $ r8  )rÜ  rj  rÈ  ©rÀ   r¸   rr  s     €r¤   rÈ  Ú3InliningGeneratorInstructionTranslator.RETURN_VALUE$  ó   ø€ Ø#'ˆÔ Ü‰wÑ# DÓ)Ð)r¦   c                ó0   >• SU l         [        TU ]	  U5      $ r8  )rÜ  rj  rÉ  r  s     €r¤   rÉ  Ú3InliningGeneratorInstructionTranslator.RETURN_CONST(  r  r¦   c                óä  • [        U R                  5      S:¼  d   eU R                  5       nU R                  S   nUR                  5       (       d  [	        SSS/ S9   UR                  U 5      n[        U R                  [        5      (       a  U R                  S:”  d   eU =R                  S-  sl        U R                  U5        U R                  U5        g ! [        [        R                  4 a~  n[        U[        R                  5      (       a  [        R                  " U 5        U R                  5         U R                  [        R                   " UR"                  5      5         S nAg S nAff = f)	Nr  r…  úUnreachable sub-generator coderã   ú@Should only be encountered while implementing generator support.rÌ  r   r   )rç   r±  ræ  rÝ  r:   r	  r\  r·   rµ   rK  r  r
  r   r  r  rh   rÂ  rÓ  ©rÀ   r¸   r‚  r/  Úexs        r¤   Ú
YIELD_FROMÚ1InliningGeneratorInstructionTranslator.YIELD_FROM,  s+  € Ü�4—:‘:‹ !Ó#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆØ×#Ñ#×%Ñ%ô Ø8ØØ^Øò	ð	#Ø×#Ñ# DÓ)ˆCô ˜4×3Ñ3´S×9Ñ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/Ã1A4E*Å*E/c                ó*  • [        U R                  5      S:¼  d   eU R                  5       nU R                  S   n[        U[        [
        45      (       dH  [        U[        5      (       ay  [        UR                  [        R                  R                  5      (       aF  UR                  5       (       a$   UR                  U 5      nU R                  U5        g [-        SSS/ S9  g [-        SS	[/        U5       3S
[/        U5       S3/ S9  g ! [        [        R                   4 an  n["        R$                  S:  a  U R                  5         U R                  [&        R(                  " UR                  5      5        U R+                  U5         S nAg S nAff = f)Nr  r…  rz  r#  rã   r$  rÌ  zSEND with bad typez
TOS type: z(Attempted to SEND with unsupported type r[  )rç   r±  ræ  r\  ry   rq   r�   rÓ  ÚcollectionsÚabcÚIteratorrÝ  r	  rK  r
  r   r  r`  r‰  rh   rÂ  rü  r:   r`   r%  s        r¤   ÚSENDÚ+InliningGeneratorInstructionTranslator.SENDR  sB  € Ü�4—:‘:‹ !Ó#Ð#Ð#Ø�h‰h‹jˆØ�j‰j˜‰nˆÜ�cÔ,Ô.JÐK×LÑLÜ�sÔ5×6Ñ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   Â4D
 Ä
FÄ$A$FÆF)rÞ  rÜ  rÛ  r¦  )r¢   r   ré  r   rÈ   rÉ   ré  r  ræ  )rË   rÌ   rÍ   rÎ   rÏ   rk  r¬  rÝ  r  r  rÈ  rÉ  r'  r-  rÐ   rt  ru  s   @r¤   rÒ  rÒ  ý  s<   ø‡ Ø*Ó*÷3÷*ôôô÷*÷*ô$#÷L*ò *r¦   rÒ  )r®   r³   rÈ   ztypes.ModuleType)rÈ   r^  )r¡   rÊ   rÈ   úGenerator[None, None, None])rX  zCallable[..., object]rÈ   r±  )rb  r¤  rÈ   r¹   )rt  r¹   rÈ   r¸  rä  )rÈ   zdict[str, dict[str, Any]])rÀ   rÊ   rÃ  úCallable[[object], bool]rK  r¹   rÈ   r¹   )rÃ  r0  rK  r¹   rÈ   r_  )r¡   rÊ   r-  r2   r.  rµ  rÈ   rÉ   )rK  r¹   rG  r³   rÈ   zYCallable[[Callable[..., None]], Callable[[InstructionTranslatorBase, Instruction], None]])r+  r@   ræ  rï  rž  zCallable[[], int]rÈ   r/  (  rñ   Ú
__future__r   r*  Úcollections.abcr?  rW  rò   rq  rV  r¬   rS  rä  r   r   r¾  rH  r`  Ú	threadingr—  r=  r]  rÃ  r   Útypingr   r   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!   r¤  r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   Úcodegenr2   r3   r4   r5   r6   r7   r8   r9   r:   r;   Úfuncname_cacher<   Úguardsr=   r>   Úoutput_graphr?   r@   rA   Ú	polyfillsrB   rC   rD   rE   rF   Úreplay_recordrG   rH   r¥  rI   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   Úvariables.constantrg   rh   Úvariables.ctx_managerri   rj   rk   rl   Úvariables.dictsrm   rn   Úvariables.functionsro   rp   rq   rr   rs   rt   ru   Úvariables.iterrv   Úvariables.lazyrw   Úvariables.listsrx   ry   rz   r{   r|   r}   Úvariables.miscr~   r   r€   r�   r‚   rƒ   r„   Úvariables.nn_moduler…   r†   Úvariables.streamsr‡   Úvariables.tensorrˆ   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@  rD  r  rL  r›   rÏ   Úcontainsrž   r÷  r©   rª   Úcacher¯   Ú	dataclassr±   rÓ   rö   r  r  r%  r@  r(  r.  r0  rè  rê   rK  rF  rH  rY  rc  rx  r‹  r²  r´  rÉ  rÍ  r%  r2  r`  r  rb  rw  rÊ   rR  r‰  Ú_nb_opsr  rÅ  r¤  rò  rÒ  )rþ   rÿ   ré   r£   s   0000r¤   Ú<module>r\     s-  ðòõ0 #ã Û Û Û Û Û 
Û Û Û Û Û Û Û Û 	Û 
Û Û Û Û Û Ý ß Q× QÑ QÝ $ã Û ß Rß Oß CÑ CÝ /Ý <Ý /÷÷ ÷ó ÷÷ ÷ ÷ ñ õ" 'Ý ÷
÷ 
õ 
õ )ß /ß NÑ N÷õ ÷ :÷ó ÷	÷ 	ó 	÷ ;÷
÷ 
õ 
÷ GÑ Fß RÑ RÝ .ß H÷ó ÷ <÷÷ ñ õ /Ý /÷÷ ÷÷ ñ ÷ QÝ 2ß G÷÷õ ö ß=Ñ=å<å'à×Ó˜Ó!€Ø—.’.×2Ò2°8¸^ÓL€Ø—’×1Ò1°(¸LÓI€Ø—>’>×3Ò3°H¸nÓMÐ Ø—^’^×5Ò5°hÐ@PÓQÐ Ø‡oƒoÓ€à4L×4RÓ4RÔ4Tô'Ú4T©D¨A€A��qÓ×'Ò'Ò'Ñ4Tò'Ð �^ó ñ " (×"3Ò"3Ó4×BÒB€Ù˜XŸ]š]Ó+×9Ò9€
ñÐ �DÑ ñ!Ð �HÑ ð !Ø×ÒØ%Ø&ð(ñ€ˆyó ð ‡‚ó)ó ð)ð ×Ò÷ð ó ðð< ×Ò÷Cð Có ðCðL ×Ò÷
ð 
ó ð
ð ×Ò÷2ð 2ó ð2÷3ñ 3ð. ‡‚ó4ó ð4ð ×Òð)Ø!ð)à ó)ó ð)ð& ×Òð$Ø!ð$à ó$ó ð$ð ×Ò÷!ð !ó ð!ôH	˜~ô 	ô	�Iô 	ô�9ô ôôAð ‡‚ó.ó ð.ð& ‡‚ó$ó ð$ð  ‡‚ó>ó ð>ðB ×Ò÷ð ó ðð('Ø
#ð'à&ð'ð ð'ð 
ô	'ðT €ðBAØ&ðAØ.2ðAà=ôAðHRØ!ðRØ'0ðRØ;LðRà	ôRðB}Øð}Ø"ð}ðõ}ô@J¡õ Jð4 ×Ò÷_ð _ó ñ_ôDO?;Ù'óO?;ôd~_Ñ5õ _ðD	 ×Ò�wÓð Ÿ›ôò
 %‰IˆFò	 	Ù!Ø# vÓ-ˆF�1�2‰J°W¸VÀAÀB¸Z¸LÐ3Iö	
ñ %òÑð ×Òð:=Øð:=à
ð:=ð (ð:=ð !ó	:=ó ñ:=ôzjJÑ$=õ jJôZÑ-Jö ùóUy'ùólgs   Ë) WÕ2(W