+
    –°³jè¶  ã                  óP  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHt ^ RIH	t	H
t
 ^ RIHtHtHt ]'       d   ^ RIHtHt ^ RIHt ^RIHtHtHt ]! ]R	4      t ! R
 R4      t]! 4       t^ RIHt ]	 ! R R4      4       t]	 ! R R4      4       t ! R R4      t ]R R l4       t!R R lt"R# )aæ  
Bytecode debugger for Dynamo-optimized code.

This module provides a pdb-like debugger for stepping through Python bytecode
one instruction at a time, with the ability to inspect the value stack,
locals, and globals.

Usage:
    >>> # xdoctest: +SKIP
    >>> import torch
    >>>
    >>> @torch.compile
    >>> def my_fn(x):
    ...     return x + 1
    >>>
    >>> with torch._dynamo.bytecode_debugger.debug():
    ...     my_fn(torch.randn(3))  # Debugger activates on Dynamo-generated code

Programmatic breakpoints (for Dynamo developers):
    In PyCodegen, use create_breakpoint() to insert a debugger stop:

        from torch._dynamo.bytecode_transformation import create_breakpoint
        codegen.extend_output(create_breakpoint())
)ÚannotationsN)Úcontextmanager)Ú	dataclassÚfield)ÚAnyÚcastÚTYPE_CHECKING)ÚCallableÚ	Generator)ÚSelf)Úconvert_instructionÚInstructionÚinstruction_sizeÚ
monitoringc                  óF   € ] tR t^1t$ RtR	tRtR]R&   R R ltR R lt	R	t
R# )
Ú_BreakpointMarkerzÂSentinel constant that signals the debugger to break.

Usage in PyCodegen:
    from torch._dynamo.bytecode_transformation import create_breakpoint
    codegen.extend_output(create_breakpoint())
Nz_BreakpointMarker | NoneÚ	_instancec               ó   € V ^8„  d   QhRR/# ©é   Úreturnr   © )Úformats   "Ú`/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_dynamo/bytecode_debugger.pyÚ__annotate__Ú_BreakpointMarker.__annotate__<   s   € ÷ ñ ˜ñ ó    c                	ó~   € V P                   f%   \        R\        P                  V 4      4      V n         V P                   # )Nr   )r   r   ÚobjectÚ__new__)Úclss   &r   r   Ú_BreakpointMarker.__new__<   s.   € Ø�=‰=Ò Ü Ð!4´f·n±nÀSÓ6IÓJˆCŒMØ�}‰}Ðr   c               ó   € V ^8„  d   QhRR/# )r   r   Ústrr   )r   s   "r   r   r   A   s   € ÷ ñ ˜#ñ r   c                	ó   € R # )z<BREAKPOINT>r   ©Úselfs   &r   Ú__repr__Ú_BreakpointMarker.__repr__A   s   € Ùr   r   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__Ú	__slots__r   Ú__annotations__r   r'   Ú__static_attributes__r   r   r   r   r   1   s(   ‡ ñð €IØ*.€IÐ'Ó.õ÷
ñ r   r   )ÚNULL_STACK_VALUEc                  ót   € ] tR t^Mt$ RtR]R&   R]R&   R]R&   R]R	&   R
]R&   R
]R&   ]! ]R7      tR]R&   Rt	R# )ÚCodeInfozFPer-code-object data shared across all frames executing the same code.útypes.CodeTypeÚcodeúlist[Instruction]Úinstructionsúdict[int, Instruction]Úoffset_to_instúdict[int, int]Úoffset_to_indexÚintÚindex_widthÚoffset_width©Údefault_factoryúset[int]Úbreakpointsr   N)
r)   r*   r+   r,   r-   r/   r   ÚsetrB   r0   r   r   r   r3   r3   M   s8   ‡ áPà
ÓØ#Ó#Ø*Ó*Ø#Ó#ØÓØÓÙ!°#Ô6€K�×6r   r3   c                  óH  € ] tR t^Zt$ RtR]R&   R]R&   R'tR]R&   ^ tR]R&   R	tR
]R&   Rt	R
]R&   ^ t
R]R&   ]! ]R7      tR]R&   RtR]R&   RtR]R&   ]R R l4       t]R R l4       t]R R l4       t]R R l4       t]R  R! l4       t]R" R# l4       t]R$ R% l4       tR&tR# )(ÚDebuggerStatezPer-frame debugging state.r3   Ú	code_infoútypes.FrameTypeÚframer<   Úcurrent_offsetÚcurrent_stack_depthFÚboolÚfirst_instruction_seenTÚ	step_modeÚ
step_countr?   údict[str, Any]Úuser_localsÚsr#   Úlast_commandNz
int | NoneÚ
list_indexc               ó   € V ^8„  d   QhRR/# )r   r   r4   r   )r   s   "r   r   ÚDebuggerState.__annotate__n   s   € ÷ #ñ #�nñ #r   c                	ó.   € V P                   P                  # ©N)rF   r5   r%   s   &r   r5   ÚDebuggerState.codem   s   € à�~‰~×"Ñ"Ð"r   c               ó   € V ^8„  d   QhRR/# )r   r   r6   r   )r   s   "r   r   rU   r   s   € ÷ +ñ +Ð/ñ +r   c                	ó.   € V P                   P                  # rW   )rF   r7   r%   s   &r   r7   ÚDebuggerState.instructionsq   ó   € à�~‰~×*Ñ*Ð*r   c               ó   € V ^8„  d   QhRR/# )r   r   r8   r   )r   s   "r   r   rU   v   s   € ÷ -ñ -Ð 6ñ -r   c                	ó.   € V P                   P                  # rW   )rF   r9   r%   s   &r   r9   ÚDebuggerState.offset_to_instu   s   € à�~‰~×,Ñ,Ð,r   c               ó   € V ^8„  d   QhRR/# )r   r   r:   r   )r   s   "r   r   rU   z   s   € ÷ .ñ . ñ .r   c                	ó.   € V P                   P                  # rW   )rF   r;   r%   s   &r   r;   ÚDebuggerState.offset_to_indexy   s   € à�~‰~×-Ñ-Ð-r   c               ó   € V ^8„  d   QhRR/# ©r   r   r<   r   )r   s   "r   r   rU   ~   s   € ÷ *ñ *˜Sñ *r   c                	ó.   € V P                   P                  # rW   )rF   r=   r%   s   &r   r=   ÚDebuggerState.index_width}   ó   € à�~‰~×)Ñ)Ð)r   c               ó   € V ^8„  d   QhRR/# rd   r   )r   s   "r   r   rU   ‚   s   € ÷ +ñ +˜cñ +r   c                	ó.   € V P                   P                  # rW   )rF   r>   r%   s   &r   r>   ÚDebuggerState.offset_width�   r\   r   c               ó   € V ^8„  d   QhRR/# )r   r   rA   r   )r   s   "r   r   rU   †   s   € ÷ *ñ *˜Xñ *r   c                	ó.   € V P                   P                  # rW   )rF   rB   r%   s   &r   rB   ÚDebuggerState.breakpoints…   rg   r   r   éÿÿÿÿ)r)   r*   r+   r,   r-   r/   rI   rJ   rL   rM   rN   r   ÚdictrP   rR   rS   Úpropertyr5   r7   r9   r;   r=   r>   rB   r0   r   r   r   rE   rE   Z   s   ‡ á$àÓØÓØ€N�CÓØ Ð˜Ó Ø#(Ð˜DÓ(Ø€IˆtÓØ€J�ÓÙ"'Øô#€K�ó ð €L�#Óàð �
ó ð ô#ó ð#ð ô+ó ð+ð ô-ó ð-ð ô.ó ð.ð ô*ó ð*ð ô+ó ð+ð ô*ó ô*r   rE   c                  ó°  € ] tR t^ŠtRtR R ltR@R R lltR R lt]R	 R
 l4       t	R R lt
R R ltR R ltR R ltRAR R lltR R ltRBR R lltR R ltRAR R lltR R ltR@R R  lltR! R" ltR# R$ ltRAR% R& lltRAR' R( lltR) R* ltR@R+ R, lltR@R- R. lltR/ R0 ltR1 R2 ltR3 R4 ltR5 R6 ltR7 R8 lt R9 R: lt!R; R< lt"R= R> lt#R?t$R# )CÚ_DebugContextz:Internal debug context that manages the debugging session.c               ó   € V ^8„  d   QhRR/# ©r   r   ÚNoner   )r   s   "r   r   Ú_DebugContext.__annotate__�   s   € ÷ 7ñ 7˜$ñ 7r   c                	ó&  € / V n         / V n        R V n        \        4       V n        RV n        RV n        RV n        R V n        RV n	        ^ V n
        R V n        RV n        R V n        \        '       d"   \        P                   P"                  V n        R# R# )FNT)Ú
_code_infoÚ_frame_statesÚ_activerC   Ú_tracked_codesÚ
_old_traceÚ_prev_callbackÚ_return_from_frameÚ_stop_after_returnÚ_next_in_frameÚ_next_countÚ_verboseÚ_stop_at_new_codeÚ	_quittingÚ_HAS_SYS_MONITORINGÚsysr   ÚDEBUGGER_IDÚ_tool_idr%   s   &r   Ú__init__Ú_DebugContext.__init__�   sƒ   € Ø:<ˆŒØCEˆÔØˆŒÜ36³5ˆÔØ59ˆŒØ9=ˆÔØ:>ˆÔØ(-ˆÔØ6:ˆÔØ !ˆÔØ#ˆŒØ'+ˆÔØ$ˆŒßÓÜŸN™N×6Ñ6ˆDŽMñ r   Nc               ó    € V ^8„  d   QhRRRR/# )r   r5   ztypes.CodeType | Noner   r6   r   )r   s   "r   r   rv   ž   s   € ÷ !ñ !Ð%:ð !ÐFWñ !r   c                óü   € V P                   '       g   . # Vf9   \        \        V P                   P                  4       4      4      pVP
                  # V P                   P	                  V4      pVf   . # VP
                  # )a  Get the list of instructions for a tracked code object.

Args:
    code: The code object to get instructions for. If None, returns
          instructions from the most recently tracked code object.

Returns:
    List of instructions, or empty list if the code is not tracked.
)rx   ÚnextÚreversedÚvaluesÚgetr7   )r&   r5   Úinfos   && r   Úget_instructionsÚ_DebugContext.get_instructionsž   sm   € ð ��ˆØˆIØŠ<Üœ §¡×!7Ñ!7Ó!9Ó:Ó;ˆDð
 × Ñ Ð ð —?‘?×&Ñ& tÓ,ˆDØŠ|Ø�	Ø× Ñ Ð r   c               ó   € V ^8„  d   QhRR/# )r   r   zlist[types.CodeType]r   )r   s   "r   r   rv   ²   s   € ÷ ,ñ ,Ð#7ñ ,r   c                óH   € \        V P                  P                  4       4      # )z<Get all code objects that have been tracked by the debugger.)Úlistrx   Úkeysr%   s   &r   Úget_tracked_codesÚ_DebugContext.get_tracked_codes²   s   € ä�D—O‘O×(Ñ(Ó*Ó+Ð+r   c               ó    € V ^8„  d   QhRRRR/# )r   Úinstr   r   rK   r   )r   s   "r   r   rv   ·   s   € ÷ Pñ P¨ð P¸ñ Pr   c                	óT   € V P                   R 8H  ;'       d    V P                  \        J # )Ú
LOAD_CONST)ÚopnameÚargvalÚBREAKPOINT_MARKER)r›   s   &r   Úis_programmatic_breakpointÚ(_DebugContext.is_programmatic_breakpoint¶   s#   € à�{‰{˜lÑ*×OÐO¨t¯{©{Ô>OÐ/OÐOr   c               ó    € V ^8„  d   QhRRRR/# )r   r5   r4   r   r3   r   )r   s   "r   r   rv   º   s   € ÷ ,%ñ ,%¨^ð ,%Àñ ,%r   c                ó  € WP                   9  EdW   \        P                  ! V4       Uu. uF  p\        V4      NK  	  pp/ p/ p\	        V4       FW  w  r&VP
                  f   K  \        V4      p\        VP
                  VP
                  V,           ^4       F  pWdV&   W%V&   K  	  KY  	  V'       d   \        V4      ^,
          M^ p	\        R V 4       ^ R7      p
\	        V4       UUu0 uF   w  r&V P                  V4      '       g   K  VkK"  	  ppp\        VVVV\        ^\        \        V	4      4      4      \        ^\        \        V
4      4      4      VR7      V P                   V&   V P                   V,          # u upi u uppi )z)Get or create CodeInfo for a code object.c              3  óX   "  € T F   qP                   f   K  VP                   x € K"  	  R # 5irW   )Úoffset)Ú.0r›   s   & r   Ú	<genexpr>Ú9_DebugContext._get_or_create_code_info.<locals>.<genexpr>Ò   s   é € ÐQ© ¿¹”�—–«ùs   ‚*–*)Údefault)r5   r7   r9   r;   r=   r>   rB   )rx   Údisr’   r   Ú	enumerater¦   r   ÚrangeÚlenÚmaxr¡   r3   r#   )r&   r5   Úir7   r9   r;   r›   Ú	inst_sizeÚoffÚ	max_indexÚ
max_offsetÚprogrammatic_breakpointss   &&          r   Ú_get_or_create_code_infoÚ&_DebugContext._get_or_create_code_infoº   sc  € à—‘Õ&ô =@×<PÒ<PÐQUÔ<VÓWÑ<V°qÔ/°Ö2Ñ<VˆLÐWð 68ˆNØ.0ˆOÜ$ \Ö2‘�Ø—;‘;Ô*Ü 0°Ó 6�IÜ$ T§[¡[°$·+±+À	Õ2IÈ1ÖM˜Ø.2 sÑ+Ø/0¨Ó,ó  Nñ 3÷ 2>œ˜LÓ)¨AÖ-À1ˆIÜÙQ©ÓQØôˆJô  )¨Ô6ô2á6‘G�AØ×2Ñ2°4×8÷ �Ù6ð %ñ 2ô %-ØØ)Ø-Ø /Ü ¤3¤s¨9£~Ó#6Ó7Ü  ¤C¬¨J«Ó$8Ó9Ø4ô%ˆD�O‰O˜DÑ!ð �‰˜tÕ$Ð$ùòM Xùó.2s   ªE;Ã(F ÄF c               ó$   € V ^8„  d   QhRRRRRR/# )r   r5   r4   rH   rG   r   rE   r   )r   s   "r   r   rv   è   s$   € ÷ )ñ )Ø"ð)Ø+:ð)à	ñ)r   c                óœ   € W P                   9  d+   V P                  V4      p\        W2R7      V P                   V&   V P                   V,          # )z&Get or create per-frame DebuggerState.)rF   rH   )ry   r¶   rE   )r&   r5   rH   rF   s   &&& r   Ú_get_or_create_frame_stateÚ(_DebugContext._get_or_create_frame_stateè   sF   € ð ×*Ñ*Ô*Ø×5Ñ5°dÓ;ˆIÜ(5À	Ô(WˆD×Ñ˜uÑ%Ø×!Ñ! %Õ(Ð(r   c               ó    € V ^8„  d   QhRRRR/# )r   r5   r4   r   útypes.FrameType | Noner   )r   s   "r   r   rv   ñ   s   € ÷ ñ ¨ð Ð<Rñ r   c                óx   € \         P                  ! 4       pVe!   VP                  VJ d   V# VP                  pK$  R# )z:Walk the stack to find the frame executing the given code.N)r†   Ú	_getframeÚf_codeÚf_back)r&   r5   Úfs   && r   Ú_find_frame_for_codeÚ"_DebugContext._find_frame_for_codeñ   s/   € ä$'§M¢M£OˆØŠmØ�x‰x˜4ÓØ�Ø—‘ŠAÙr   c               ó    € V ^8„  d   QhRRRR/# )r   ÚstaterE   r   zlist[DebuggerState]r   )r   s   "r   r   rv   ú   s   € ÷ ñ °ð ÐBUñ r   c                óü   € . pVP                   P                  pVe?   V P                  P                  V4      pVe   VP	                  V4       VP                  pKB  VP                  4        VP	                  V4       V# )a  Build list of tracked ancestor frames, outermost-first.

Walks f_back from the current execution frame to find all ancestor
frames whose code is tracked by the debugger. Returns the corresponding
DebuggerState objects with the execution state (state) last.
)rH   rÁ   ry   r�   ÚappendÚreverse)r&   rÆ   Ú	ancestorsrÂ   Úancestor_states   &&   r   Ú_build_tracked_frame_stackÚ(_DebugContext._build_tracked_frame_stackú   sp   € ð *,ˆ	Ø$)§K¡K×$6Ñ$6ˆØŠmØ!×/Ñ/×3Ñ3°AÓ6ˆNØÒ)Ø× Ñ  Ô0Ø—‘ŠAØ×ÑÔØ×Ñ˜ÔØÐr   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rÆ   rE   r¦   r<   Úmark_currentrK   r   r#   r   )r   s   "r   r   rv     s2   € ÷ ]ñ ]Ø"ð]Ø,/ð]Ø?Cð]à	ñ]r   c           	     óÎ  € VP                   P                  V4      pVP                  VP                  reVf
   RW& R2 R2# VP                  P                  VR4      pV'       d   W!P
                  8X  d   RMRpVP                  P                  VR4      VP                  9   d   RMRp	VP                  e   RVP                   2MRp
V V	 RWu R2 R	W& R2 R
VP                   V
 2	# )z"Format an instruction for display.z    [Údz]: <unknown>z>>>z   Ú*Ú Ú ú [z]: rn   )
r9   r�   r=   r>   r;   rI   rB   ÚargrŸ   rž   )r&   rÆ   r¦   rÏ   r›   ÚiwÚowÚindexÚmarkerÚ	bp_markerÚarg_strs   &&&&       r   Ú_format_instructionÚ!_DebugContext._format_instruction  sò   € ð ×#Ñ#×'Ñ'¨Ó/ˆØ×"Ñ" E×$6Ñ$6ˆBØŠ<Ø˜6 $ a ˜.¨Ð5Ð5à×%Ñ%×)Ñ)¨&°"Ó5ˆß&¨6×5IÑ5IÔ+I‘Èuˆà×(Ñ(×,Ñ,¨V°RÓ8¸E×<MÑ<MÔM‰CÐSVð 	ð (,§x¡xÒ';�A�d—k‘k�]Ñ#ÀˆØ�˜)˜ A e¨D°¨6 ]°"°V¸DÀ¸6°NÀ#ÀdÇkÁkÀ]ÐSZÐR[Ð\Ð\r   c               ó    € V ^8„  d   QhRRRR/# )r   rÆ   rE   r   r#   r   )r   s   "r   r   rv     s   € ÷ 6ñ 6 Mð 6°cñ 6r   c                óR   € VP                   VP                  r2RRRV 2 RRRV 2 R2# )z0Format the header line for instruction listings.z     Ú#Ú>rÕ   r¦   Ú])r=   r>   )r&   rÆ   r×   rØ   s   &&  r   Ú_format_headerÚ_DebugContext._format_header  s;   € à×"Ñ" E×$6Ñ$6ˆBØ�s˜1˜R˜D˜&�k  H¨Q¨r¨d¨FÐ#3°1Ð5Ð5r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )r   rÆ   rE   Úbeforer<   Úafterr   ru   r   )r   s   "r   r   rv   "  s,   € ÷ ñ Ø"ðØ,/ðØ<?ðà	ñr   c                ó   € VP                   P                  VP                  ^ 4      p\        ^ WB,
          4      p\	        \        VP                  4      WC,           ^,           4      p\        RV RVP                   R24       \        V P                  V4      4       \        WV4       FJ  pVP                  V,          pVP                  f   K&  \        V P                  WP                  4      4       KL  	  \        4        R# )z/Print instructions around the current position.z
Instruction ú at offset Ú:N)r;   r�   rI   r¯   Úminr®   r7   Úprinträ   r­   r¦   rÝ   )	r&   rÆ   rç   rè   Úcurrent_idxÚstartÚendr°   r›   s	   &&&&     r   Ú_print_contextÚ_DebugContext._print_context"  sÈ   € ð ×+Ñ+×/Ñ/°×0DÑ0DÀaÓHˆÜ�A�{Õ+Ó,ˆÜ”#�e×(Ñ(Ó)¨;Õ+>ÀÕ+BÓCˆä�˜{˜m¨;°u×7KÑ7KÐ6LÈAÐNÔOÜˆd×!Ñ! %Ó(Ô)Ü�uÖ"ˆAØ×%Ñ% aÕ(ˆDØ�{‰{Ô&Ü�d×.Ñ.¨u·k±kÓBÖCñ #ô 	Žr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÆ   rE   Úis_current_framerK   r   r<   r   )r   s   "r   r   rv   2  s"   € ÷ ñ  }ð Èð ÐQTñ r   c                ó`  € VP                   pV'       g‚   VP                  ^ 8¼  dq   VP                  P                  VP                  4      pVeH    \        P
                  ! VP                  VP                  4      pV^ 8  d   \        ^ W5,           4      pV# V#   \        \        3 d     T# i ; i)aI  Compute a safe stack depth for reading frame values.

For parent frames suspended at a CALL instruction, CPython has already
popped (and DECREF'd) the call arguments.  The tracked depth still
includes those consumed entries, so reading them would dereference
dangling pointers.  Adjust by the current instruction's stack_effect.
)rJ   rI   r9   r�   r«   Ústack_effectÚopcoderÖ   r¯   Ú
ValueErrorÚ	TypeError)r&   rÆ   rô   Údepthr›   Úeffects   &&&   r   Ú_safe_stack_depthÚ_DebugContext._safe_stack_depth2  sž   € ð ×)Ñ)ˆß E×$8Ñ$8¸AÔ$=Ø×'Ñ'×+Ñ+¨E×,@Ñ,@ÓAˆDØÒðÜ ×-Ò-¨d¯k©k¸4¿8¹8ÓD�FØ ”zÜ # A u¥~Ó 6˜ð ˆˆuˆøô #¤IÐ.ô ØØˆðús   ÁAB ÂB-Â,B-c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÆ   rE   rô   rK   r   ru   r   )r   s   "r   r   rv   F  s"   € ÷ ñ  -ð À4ð ÐSWñ r   c           	     óˆ  € ^ RI Hp V P                  W4      p V! VP                  V4      p\        R4       T'       g   \        R4       ME\        T4       F6  w  rxT\        J d   Rp	MR\        T4      R	 2p	\        R
T RT	 RT: 24       K8  	  \        4        R#   \         d   p\        RT R24        Rp?R# Rp?ii ; i)zPrint the current value stack.©Ú!_get_frame_value_stack_with_depthz
Stack: (error reading stack: Ú)Nz
Stack (TOS at end):z	  (empty)Ú0x0Ú0xÚxz  [ú] rÓ   )	Útorch._C._dynamo.eval_framer  rü   rH   Ú	Exceptionrí   r¬   r1   Úid)
r&   rÆ   rô   r  rú   ÚstackÚer°   ÚvalueÚaddrs
   &&&       r   Ú_print_stackÚ_DebugContext._print_stackF  sº   € åQà×&Ñ& uÓ?ˆð	Ù5°e·k±kÀ5ÓIˆEô 	Ð%Ô&ßÜ�+Õä% eÖ,‘�ØÔ,Ó,Ø ‘Dà¤ 5£	¨!˜}Ð-�DÜ˜˜A˜3˜b   a¨¡yÐ1Ö2ñ -ô 	Žøô ô 	ÜÐ3°A°3°aÐ8Ô9Ýûð	ús   ™B ÂCÂ'B<Â<Cc               ó    € V ^8„  d   QhRRRR/# ©r   rÆ   rE   r   ru   r   )r   s   "r   r   rv   \  s   € ÷ 	ñ 	 =ð 	°Tñ 	r   c                óÚ   € \        R4       VP                  P                  pV'       g   \        R4       M+VP                  4        F  w  r4\        RV RV: 24       K  	  \        4        R# )zPrint local variables.z
Locals:ú  (none)ú  ú = N)rí   rH   Úf_localsÚitems)r&   rÆ   Úlocals_dictÚnamer  s   &&   r   Ú_print_localsÚ_DebugContext._print_locals\  sS   € äˆkÔØ—k‘k×*Ñ*ˆßÜ�*Õà*×0Ñ0Ö2‘�Ü˜˜4˜&  E¡9Ð-Ö.ñ  3äŽr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÆ   rE   Úpatternz
str | Noner   ru   r   )r   s   "r   r   rv   g  s"   € ÷ ñ  Mð ¸Jð ÐRVñ r   c                ór  € \        R4       VP                  P                  P                  4        Fy  w  r4V'       d	   W#9  d   K  VP	                  R4      '       d   VP                  R4      '       d   KE  \        V\        P                  4      '       d   Kg  \        RV RV: 24       K{  	  \        4        R# )zPrint global variables.z	
Globals:Ú__r  r  N)	rí   rH   Ú	f_globalsr  Ú
startswithÚendswithÚ
isinstanceÚtypesÚ
ModuleType)r&   rÆ   r  r  r  s   &&&  r   Ú_print_globalsÚ_DebugContext._print_globalsg  s†   € äˆlÔØ Ÿ;™;×0Ñ0×6Ñ6Ö8‰KˆDß˜7Ô.ÙØ�‰˜t×$Ò$¨¯©°t×)<Ò)<ÙÜ˜%¤×!1Ñ!1×2Ò2ÙÜ�B�t�f˜C ™yÐ)Ö*ñ 9ô 	Žr   c               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r   rv   t  s   € ÷ ñ  -ð °Dñ r   c           	     ó$  € \        R\        VP                  4       R24       \        V P                  V4      4       VP                   F9  pVP                  f   K  \        V P                  WP                  RR7      4       K;  	  \        4        R# )zPrint the full disassembly.z
Disassembly (z instructions):NF©rÏ   )rí   r®   r7   rä   r¦   rÝ   )r&   rÆ   r›   s   && r   Ú_disassembleÚ_DebugContext._disassemblet  sp   € ä�¤ E×$6Ñ$6Ó 7Ð8¸ÐHÔIÜˆd×!Ñ! %Ó(Ô)Ø×&Ô&ˆDØ�{‰{Ô&Ü�d×.Ñ.¨u·k±kÐPUÐ.ÓVÖWñ 'ô 	Žr   c               ó   € V ^8„  d   QhRR/# rt   r   )r   s   "r   r   rv   }  s   € ÷ ñ ˜Tñ r   c                ó>  € \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R	4       \        R
4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        R4       \        4        \        R4       \        R4       \        4        R# )zPrint help message.z

Commands:zD  s [n]       - Step n instructions (default 1), stepping into callszD  n [n]       - Step n instructions (default 1), stepping over callsz6  c, cont     - Continue until breakpoint or exceptionzD  r           - Continue until current function's return instructionzM  v, verbose  - Toggle verbose mode (print each instruction before executing)zG                Use with 'c' to find segfaults - last printed = culpritzE  u [count]   - Move up the call stack (toward caller) for inspectionz8  d [count]   - Move down the call stack (toward callee)z-  bt, w       - Print tracked frame backtracez   p <expr>    - Print expressionz3  l [first[, last]]  - List instructions (like pdb)z/  l .         - List around current instructionz(  ll          - Disassemble all bytecodez!  stack       - Print value stackz%  locals      - Print local variablesz&  globals     - Print global variablesz>  b <n>       - Set breakpoint at instruction n (see # column)z   b           - List breakpointsz1  cl <n>      - Clear breakpoint at instruction nz  q, quit     - Exit debuggerz5  <expr>      - Evaluate Python expression (like pdb)z?Special variables: __stack__ (list of stack values, TOS at end)zENote: Debugger stops on exceptions and shows the failing instruction.N)rí   r%   s   &r   Ú_print_helpÚ_DebugContext._print_help}  sç   € äˆmÔÜÐTÔUÜÐTÔUÜÐFÔGÜÐTÔUÜØ[ô	
ô 	ÐWÔXÜÐUÔVÜÐHÔIÜÐ=Ô>ÜÐ0Ô1ÜÐCÔDÜÐ?Ô@ÜÐ8Ô9ÜÐ1Ô2ÜÐ5Ô6ÜÐ6Ô7ÜÐNÔOÜÐ0Ô1ÜÐAÔBÜÐ-Ô.ÜÐEÔFÜŒÜÐOÔPÜÐUÔVÜŽr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÆ   rE   rô   rK   r   z	list[Any]r   )r   s   "r   r   rv   œ  s$   € ÷ 
ñ 
Ø"ð
Ø6:ð
à	ñ
r   c                ó~   € ^ RI Hp V P                  W4      p V! VP                  V4      #   \         d    . u # i ; i)z7Get the current stack for use in expression evaluation.r   )r  r  rü   rH   r  )r&   rÆ   rô   r  rú   s   &&&  r   Ú_get_stack_for_evalÚ!_DebugContext._get_stack_for_evalœ  sB   € õ 	Rà×&Ñ& uÓ?ˆð	Ù4°U·[±[À%ÓHÐHøÜô 	ØŠIð	ús   ™, ¬<»<c               ó$   € V ^8„  d   QhRRRRRR/# )r   rÆ   rE   rô   rK   r   rO   r   )r   s   "r   r   rv   ¨  s$   € ÷ ñ Ø"ðØ6:ðà	ñr   c                ó¢   € \        VP                  P                  4      pVP                  VP                  4       V P                  W4      VR&   V# )zNBuild locals dict for expression evaluation, including user-defined variables.Ú	__stack__)ro   rH   r  ÚupdaterP   r3  )r&   rÆ   rô   Úeval_localss   &&& r   Ú_build_eval_localsÚ _DebugContext._build_eval_locals¨  sG   € ô ˜5Ÿ;™;×/Ñ/Ó0ˆØ×Ñ˜5×,Ñ,Ô-Ø#'×#;Ñ#;¸EÓ#Tˆ�KÑ ØÐr   c               ó    € V ^8„  d   QhRRRR/# r  r   )r   s   "r   r   rv   ±  s   € ÷ i:ñ i:¨ð i:¸4ñ i:r   c                óŽ  € V P                  V4      p\        V4      ^,
          pW#,          pV P                  V4         \        R4      P	                  4       pT'       g   TP                  pMYQn	        TP                  ^R7      pT^ ,          P                  4       p\        T4      ^8”  d
   T^,          MRpTR69   d<   RTn        RT n        T'       d    \        T4      p	T	^,
          Tn        R# ^ Tn        R# TR79   dL   TP"                  T n        T'       d    \        T4      p	T	^,
          T n        M^ T n        RTn        RT n        R# TR89   d   RTn        RT n        RT n        R# TR99   d"   TP"                  T n        RTn        RT n        R# TR:9   ds   ^p	T'       d    \        T4      p	Y9,
          p
T
^ 8  d   ^ p
\        R	4       T
pY#,          p\        R
TP,                  P.                   24       T P                  T4       EKÍ  TR;9   d„   ^p	T'       d    \        T4      p	\        T4      ^,
          pY9,           p
Y«8”  d   Tp
\        R4       T
pY#,          p\        R
TP,                  P.                   24       T P                  T4       EKW  TR<9   d²   \1        T4       FŸ  w  rÍYÃ8X  d   RMRpTP2                  P5                  TP6                  R=4      pTP8                  P5                  TP6                  4      pT'       d   TP:                  MRp\        RT RT RTP,                  P.                   RT RT R24       K¡  	  EK  TR>9   d?   T P<                  '       * T n        T P<                  '       d   RMRp\        RT R24       EKT  TR?9   Edó   ^pRpRpTR8X  d	   RTn        M–T'       d�   RT9   ds   TP                  R^4      p \        T^ ,          P	                  4       4      p\        T^,          P	                  4       4      pTT8  d   TpTT,           pM!TpT^,           pM \        T4      pTT,           pTfe   TP>                  fB   TP2                  P5                  TP6                  ^ 4      p\A        ^ TT^,          ,
          4      pMTP>                  pTT,           pTf   \C        R4      h\E        \        TPF                  4      T4      pT\        TPF                  4      8¼  d   \        R4       EKÅ  \        T PI                  T4      4       \K        TT4       FK  pTPF                  T,          pTPL                  f   K&  \        T PO                  TTPL                  4      4       KM  	  \        4        TTn        EKN  TR8X  d   T PQ                  T4       EKi  TR8X  d   T PS                  T4       EK„  TR 8X  d   T PU                  YH'       d   TMR4       EK©  TR!8X  d!   YBR=,          J pT PW                  TTR"7       EKÐ  TR#8X  Ed;   T'       dx    \        T4      p\        TPF                  4      pT^ 8  g   TT8¼  d   \        R$T R%T^,
           R24       EK+  TPX                  P[                  T4       \        R&T 24       EKW  \        R'4       TPX                  '       g   \        R(4       M…\]        TPX                  4       Fl  pT\        TPF                  4      8  g   K  TPF                  T,          pTPL                  f   KB  \        RT PO                  TTPL                  RR)7       24       Kn  	  \        4        EK  TR*8X  d¥   T'       dš    \        T4      p\        TPF                  4      pT^ 8  g   TT8¼  d   \        R$T R%T^,
           R24       EKl  TTPX                  9   d-   TPX                  P_                  T4       \        R+T 24       EK©  \        R,T 24       EKº  EK½  TR-8X  dl   T'       dV    YBR=,          J pTP"                  P`                  pT Pc                  TTR"7      p\e        TTT4      p\        T R.T: 24       EK!  \        R14       EK/  TR@9   d   T Pi                  4        EKI  TRA9   d   \        R24       RT n        \        hYBR=,          J pTP"                  P`                  pT Pc                  TTR"7      p \e        TTT4      pTe   \        \k        T4      4       EKÄ  EKÇ    \
        \        3 d    \        R4       RT n        \        Rhi ; i  \          d    \        RT 24        E	K  i ; i  \          d    \        RT 24        E	K3  i ; i  \          d    \        RT 24        E	KT  i ; i  \          d    \        RT 24        E	Ku  i ; i  \          d    \        RT 24        E	K–  i ; i  \          d    \        RT 24        E	K·  i ; i  \          d    \        R$T 24        E	KØ  i ; i  \          d    \        R$T 24        E	Kù  i ; i  \f         d   p \        R/T R0T  24        Rp ? E
K   Rp ? ii ; i  \l         Ed     \o        TPq                  4       4      p!TPs                  4        U"U#u/ uF  w  p"p#T"\u        T#4      bK  	  Mu up#p"i p$p"p#\w        TTT4       T Ft  p%T%T!9  p&T%TPx                  9   p'\u        TT%,          4      T$P5                  T%4      8g  p(T&'       g   T''       g   T('       g   KU  T%R38w  g   K^  TT%,          TPx                  T%&   Kv  	   EK    \f         d2   p \        R4\{        T 4      P|                   R5T  24        Rp ?  EKE  Rp ? ii ; i\f         d1   p \        R4\{        T 4      P|                   R5T  24        Rp ? EK‚  Rp ? ii ; i)Bz$Interactive prompt during debugging.Tz(bdb) z
Exiting debugger.N)ÚmaxsplitrÔ   zInvalid count: FzOldest tracked framez> zNewest tracked framerâ   rÓ   ú	<unknown>r  rÕ   r  z instruction z (r  ÚenabledÚdisabledzVerbose mode Ú.Ú,zInvalid range: zInvalid argument: z+end must be set before listing instructionsz(End of bytecode)ÚllÚlocalsÚglobalsr
  )rô   ÚbzInvalid instruction number: z (must be 0-zBreakpoint set at instruction z
Breakpoints:r  r*  Úclz"Breakpoint cleared at instruction zNo breakpoint at instruction Úpr  zError evaluating 'z': zUsage: p <expression>zExiting debugger.r7  z*** ú: )rQ   Ústep)Únr�   )ÚcÚcontÚcontinue)Úrr   )ÚuÚup)rÑ   Údown)ÚbtÚwÚwherern   )ÚvÚverbose)Úlr–   )ÚhÚhelpÚ?)ÚqÚquitÚexit)?rÌ   r®   rñ   ÚinputÚstripÚEOFErrorÚKeyboardInterruptrí   r„   rR   ÚsplitÚlowerrM   rƒ   r<   rN   rø   rH   r€   r�   r   r~   r5   Úco_namer¬   r;   r�   rI   r9   rž   r‚   rS   r¯   ÚAssertionErrorrì   r7   rä   r­   r¦   rÝ   r+  r  r&  r  rB   ÚaddÚsortedÚdiscardr   r:  Úevalr  r/  ÚreprÚSyntaxErrorrC   r—   r  r	  ÚexecrP   Útyper)   ))r&   rÆ   Úframe_stackÚ
view_indexÚ
view_stateÚcmdÚpartsÚactionrÖ   ÚcountÚ	new_indexr³   r°   ÚfsrÚ   Úidxr›   Úinst_strÚstatusÚ	num_linesrï   rð   ÚfirstÚsecondrî   Ú
is_currentrÙ   Únum_instructionsÚbp_indexÚframe_globalsr9  Úresultr  Úkeys_beforeÚkrW  Ú
ids_beforeÚkeyÚis_newÚis_user_varÚis_modifieds)   &&                                       r   Ú_interactive_promptÚ!_DebugContext._interactive_prompt±  så
  € à×5Ñ5°eÓ<ˆÜ˜Ó%¨Õ)ˆ
Ø Õ,ˆ
à×Ñ˜JÔ'àð2Ü˜H“o×+Ñ+Ó-�÷ Ø×(Ñ(‘à%(Ô"à—I‘I q�IÓ)ˆEØ˜1•X—^‘^Ó%ˆFÜ! %›j¨1œn�%˜–(°"ˆCà˜Ô&Ø"&�”Ø)-�Ô&çð!Ü # C£˜à! A�Ið Ô(ñ ð ()�EÔ$Ùà˜=Ô(Ø&0×&6Ñ&6�Ô#ßð!Ü # C£˜Ø+0°1­9˜Õ(ð
 ()�DÔ$Ø"'�”Ø).�Ô&ÙàÐ4Ô4Ø"'�”Ø).�Ô&Ø*/�Ô'Ùà˜?Ô*Ø*/¯+©+�Ô'Ø"'�”Ø).�Ô&Ùà˜;Ô&Ø�ßð!Ü # C£˜ð 'Õ.�	Ø˜q”=Ø !�IÜÐ0Ô1Ø&�
Ø(Õ4�
Ü˜˜:Ÿ?™?×2Ñ2Ð3Ð4Ô5Ø×#Ñ# J×/à˜=Ô(Ø�ßð!Ü # C£˜ô   Ó,¨qÕ0�	Ø&Õ.�	ØÔ(Ø )�IÜÐ0Ô1Ø&�
Ø(Õ4�
Ü˜˜:Ÿ?™?×2Ñ2Ð3Ð4Ô5Ø×#Ñ# J×/àÐ/Ô/Ü& {Ö3‘E�AØ$%¤O™S¸�FØ×,Ñ,×0Ñ0°×1BÑ1BÀBÓG�CØ×,Ñ,×0Ñ0°×1BÑ1BÓC�Dß.2˜tŸ{š{¸�HÜØ˜V˜H B q c¨¨B¯G©G¯O©OÐ+<¸MÈ#ÈÈbÐQYÐPZÐZ[Ð\öô 4ð Ð+Ô+Ø$(§M¡MÔ 1�”Ø&*§m§m m™¸�Ü˜ f X¨QÐ/×0à˜=Õ(ð �	Ø$(�Ø"&�à˜#”:à,0�JÕ)ßà˜c”zØ #§	¡	¨#¨qÓ 1˜ð%Ü$'¨¨a­¯©Ó(8Ó$9˜EÜ%(¨¨q­¯©Ó)9Ó%:˜FØ%¨œ~à(- Ø&+¨f¥n¡à(- Ø&,¨q¥j¡ð%Ü$'¨£H˜EØ"'¨)Õ"3˜Cð
 ’=Ø!×,Ñ,Ò4à&0×&@Ñ&@×&DÑ&DØ&×5Ñ5°qó'˜ô !$ A {°YÀ!µ^Õ'CÓ D™à *× 5Ñ 5˜Ø )Õ+�Cà’;Ü(Ð)VÓWÐWÜœ#˜j×5Ñ5Ó6¸Ó<�ØœC 
× 7Ñ 7Ó8Ô8ÜÐ-×.ä˜$×-Ñ-¨jÓ9Ô:Ü" 5¨#Ö.˜Ø)×6Ñ6°qÕ9˜ØŸ;™;Ô2Ü! $×":Ñ":¸:ÀtÇ{Á{Ó"SÖTñ /ô ”GØ,/�J×)à˜4”Ø×!Ñ! *×-à˜8Ô#Ø×"Ñ" :×.à˜9Ô$Ø×#Ñ# J¶s±À×Eà˜7Ô"Ø'°r­?Ð:�
Ø×!Ñ! *¸zÐ!×Jà˜3•ßðDÜ # C£˜Ü+.¨z×/FÑ/FÓ+GÐ(Ø  1œ9¨Ð1AÔ(AÜ!Ø">¸u¸gð F.Ø.>ÀÕ.BÐ-CÀ1ð!F÷ð
 '×2Ñ2×6Ñ6°uÔ=Ü!Ð$BÀ5À'Ð"J×Kô Ð*Ô+Ø%×1×1Ð1Ü˜jÕ)ä(.¨z×/EÑ/EÖ(F˜HØ'¬#¨j×.EÑ.EÓ*FÖFØ'1×'>Ñ'>¸xÕ'H Ø#'§;¡;Ô#:Ü$)Ø*,¨T×-EÑ-EÀjÐRV×R]ÑR]ÐlqÐ-EÓ-rÐ,sÐ(tö%&ñ	 )Gô —Gà˜4”ßðDÜ # C£˜Ü+.¨z×/FÑ/FÓ+GÐ(Ø  1œ9¨Ð1AÔ(AÜ!Ø">¸u¸gð F.Ø.>ÀÕ.BÐ-CÀ1ð!F÷ð # j×&<Ñ&<Ô<Ø&×2Ñ2×:Ñ:¸5ÔAÜ!Ð$FÀuÀgÐ"N×Oä!Ð$AÀ%ÀÐ"I×Jò ð" ˜3”ßð	@Ø%/¸rµ?Ð%B˜
Ø(2×(8Ñ(8×(BÑ(B˜Ø&*×&=Ñ&=Ø&¸ð '>ó '˜ô "& c¨=¸+Ó!F˜Ü   S¨©
Ð3×4ô Ð1×2àÐ-Ô-Ø× Ñ ×"àÐ0Ô0ÜÐ)Ô*Ø!%�”Ü'Ð'ð (°r­?Ð:�
Ø *× 0Ñ 0× :Ñ :�Ø"×5Ñ5Ø°ð 6ó �ð:ä! # }°kÓB�FØÒ)Üœd 6›l×+ò *øôU Ô/Ð0ô 2ÜÐ+Ô,Ø!%�”Ü'¨TÐ1ð2ûô0 &ô !Ü °¨uÐ5Ô6Û ð!ûô &ô !Ü °¨uÐ5Ô6Û ð!ûô4 &ô !Ü °¨uÐ5Ô6Û ð!ûô" &ô !Ü °¨uÐ5Ô6Û ð!ûôn  *ô %Ü! O°C°5Ð"9Ô:Û$ð%ûô  *ô %Ü!Ð$6°s°eÐ"<Ô=Û$ð%ûôn &ô DÜÐ <¸S¸EÐB×CÐCðDûô> &ô DÜÐ <¸S¸EÐB×CÐCðDûô %ô @ÜÐ 2°3°%°s¸1¸#Ð>×?Ó?ûð@ûô4 #õ >ð>Ü&)¨+×*:Ñ*:Ó*<Ó&=˜Ø;F×;LÑ;LÔ;NÔ%OÑ;N±4°1°a a¬¨A«¢hÒ;NùÓ%O˜
Ñ%OÜ˜S -°Ô=ã#.˜CØ%(°Ñ%;˜FØ*-°×1GÑ1GÑ*G˜KÜ*,¨[¸Õ-=Ó*>À*Ç.Á.ÐQTÓBUÑ*U˜Kç &¯+¿¹Ø"%¨Ö"4Ø>IÈ#Õ>N 
× 6Ñ 6°sÓ ;õ $/øô %ô >Ü ¤T¨!£W×%5Ñ%5Ð$6°b¸¸Ð<×=Ô=ûð>úä ô :Ü˜D¤ a£×!1Ñ!1Ð 2°"°Q°CÐ8×9Ó9ûð:ús0  ¿d Ãd2 Äe Æ#e4 Èf ÏAf6 Ð#f6 Ð0g ØAg8 Ù()g8 ÝAh Þ):h ß&h à
Ah: ã%i% ä+d/ä2eåeåe1å0e1å4fæfæf3æ2f3æ6gçgçg5ç4g5ç8hèhèh7è6h7è:i"éiéi"é%oé2,mêj7ê6A#mìmì$mì-míní$ní:oînîoîoî$n?î?oc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r5   r4   r¦   r<   rH   r½   r   ru   r   )r   s   "r   r   rv   Ü  s2   € ÷ s,ñ s,Ø"ðs,Ø,/ðs,Ø8Nðs,à	ñs,r   c                óX	  € Vf.   V P                  V4      pVf   \        RVP                   24      hV P                  W4      pVP                  pV^ 8¼  dæ   VP
                  P                  V4      pVeÇ   VP                  P                  VR4      pV^,           pVP                  P                  VR4      p	W˜8g  p
 \        P                  ! VP                  VP                  V
R7      pV;P                  V,          un        VP                  ^ 8  d)   \        RVP                   RV RVP                   24      h W$n        RVn        V P$                  '       d   RV n        RVn        ^ Vn        RV n        V P,                  e�   W0P,                  J dr   V P.                  ^ 8”  d   V ;P.                  ^,          un        MRV n        RVn        ^ Vn        RV n        \0        '       d   \2        P4                  P7                  4        VP8                  '       gˆ   RVn        V P*                  '       g   RVn        VP&                  '       d+   \;        R	VP                   R
24       V P=                  4        M+V P>                  '       d   \;        R	VP                   R
24       V P>                  '       d~   VP
                  P                  V4      pV'       d[   VP                  P                  VR4      pVP                  e   RVP@                   2MRp\;        RV RVP                   V 2RR7       VP
                  P                  V4      pVP                  P                  VR4      p	W”PB                  9   pRpV PD                  e5   W0PD                  J d&   Ve"   VP                  R9   d   RV n"        RV n        RpVP(                  ^ 8”  d4   V;P(                  ^,          un        V'       g	   V'       d	   ^ Vn        MR# VP&                  ;'       g    T;'       g    TpV'       dr   V'       d7   Ve$   V PG                  V4      '       d   \;        R4       M/\;        RV	 24       M V'       d   \;        RVP                   24       V PI                  V4       R# R#   \        \         3 d     ELmi ; i)z<Common instruction handling logic for both tracing backends.Nz%Could not find frame for code object )Újumpz Stack depth went negative after rê   z: depth=FTz%
=== Entering Dynamo-generated code: ú ===rÓ   rÔ   z	Running [r  )ÚflushzBreakpoint hit (programmatic)zBreakpoint hit at instruction zAbout to return from rn   )ÚRETURN_VALUEÚRETURN_CONST)%rÃ   rg  rf  rº   rI   r9   r�   r;   r«   rö   r÷   rÖ   rJ   ÚRuntimeErrorrž   rø   rù   rS   r   rM   rN   rƒ   r€   r�   r…   r†   r   Úrestart_eventsrL   rí   r/  r‚   rŸ   rB   r~   r¡   r‹  )r&   r5   r¦   rH   rÆ   Úprevious_offsetÚ	prev_instÚ
prev_indexÚexpected_next_indexÚcurrent_indexÚdid_jumprû   r›   ry  rÜ   Úhit_breakpointÚhit_return_targetÚshould_stops   &&&&              r   Ú_handle_instructionÚ!_DebugContext._handle_instructionÜ  s!  € ð Š=Ø×-Ñ-¨dÓ3ˆEØŠ}Ü$Ø;¸D¿L¹L¸>ÐJóð ð ×/Ñ/°Ó<ˆð
  ×.Ñ.ˆØ˜aÔØ×,Ñ,×0Ñ0°ÓAˆIØÒ$à"×2Ñ2×6Ñ6°ÈÓK�
Ø&0°1¥nÐ#Ø %× 5Ñ 5× 9Ñ 9¸&À"Ó E�Ø(Ñ?�ðÜ ×-Ò-Ø!×(Ñ(¨)¯-©-¸hô�Fð ×-Ò-°Õ7Õ-Ø×0Ñ0°1Ô4Ü*Ø>¸y×?OÑ?OÐ>Pð Q)Ø)8Ð(9¸À%×B[ÑB[ÐA\ð^óð ð 5ð  &ÔØˆÔð ×"×"Ð"Ø&+ˆDÔ#Ø"ˆEŒOØ ˆEÔØ%)ˆDÔ"ð ×ÑÒ*¨u×8KÑ8KÓ/KØ×Ñ !Ô#à× Ò  AÕ%Ö à&*�Ô#Ø"&�”Ø#$�Ô Ø)-�Ô&ß"Ó"Ü—‘×-Ñ-Ô/ð ×+×+Ð+Ø+/ˆEÔ(Ø×)×)Ð)Ø"'�”Ø��ˆÜÐ>¸t¿|¹|¸nÈDÐQÔRØ× Ñ Õ"Ø——�ÜÐ>¸t¿|¹|¸nÈDÐQÔRð �=�=ˆ=Ø×'Ñ'×+Ñ+¨FÓ3ˆDßØ×+Ñ+×/Ñ/°¸Ó;�Ø/3¯x©xÒ/C˜A˜dŸk™k˜]Ñ+È�Ü˜	 #  b¨¯©¨°g°YÐ?ÀtÕLà×#Ñ#×'Ñ'¨Ó/ˆð ×-Ñ-×1Ñ1°&¸"Ó=ˆØ&×*;Ñ*;Ñ;ˆð "ÐØ×"Ñ"Ò.°5×<SÑ<SÓ3SØÒ D§K¡KÐ3SÔ$SØ*.�Ô'à*.�Ô'Ø$(Ð!ð ×Ñ˜aÔØ×Ò Õ!Õç×!2Ø#$�Õ áà—o‘o×LÐL¨×LÐLÐ;LˆßßØÒ#¨×(GÑ(GÈ×(MÒ(MÜÐ9Õ:äÐ:¸=¸/ÐJÕKß"ÜÐ-¨d¯l©l¨^Ð<Ô=Ø×$Ñ$ UÖ+ñ øôQ #¤IÐ.ô Úðús   Â;A?R ÒR)Ò(R)c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r5   r4   Úretvalr   rH   r½   r   ru   r   )r   s   "r   r   rv   Q  s,   € ÷ $ñ $Ø"ð$Ø,2ð$Ø;Qð$à	ñ$r   c                ó*  € V P                   '       d   R# \        RVP                   RV: R24       V P                  ee   W0P                  J g   VfR   WP                  P                  J d9   RV n        RV n        \        '       d   \        P                  P                  4        V P                  ee   W0P                  J g   VfR   WP                  P                  J d9   RV n
        RV n        \        '       d   \        P                  P                  4        Ve   V P                  P                  VR4       R# \        V P                  P                  4       4       F4  w  rEVP                  VJ g   K  V P                  P                  VR4        R# 	  R# )zCommon return handling logic.Nz
=== z returned: r�  T)r„   rí   rf  r~   rÀ   r   r…   r†   r   r•  r€   ry   Úpopr–   r  r5   )r&   r5   r¢  rH   rÂ   rQ   s   &&&&  r   Ú_handle_returnÚ_DebugContext._handle_returnQ  s9  € ð �>�>ˆ>ÙÜ��t—|‘|�n K°©z¸Ð>Ô?ð
 ×"Ñ"Ò.Ø×,Ñ,Ó,Ø’ $×*AÑ*A×*HÑ*HÓ"Hà&*ˆDÔ#Ø&*ˆDÔ#ß"Ó"Ü—‘×-Ñ-Ô/Ø×ÑÒ*Ø×(Ñ(Ó(Ø’ $×*=Ñ*=×*DÑ*DÓ"Dà"&ˆDÔØ&*ˆDÔ#ß"Ó"Ü—‘×-Ñ-Ô/ð ÒØ×Ñ×"Ñ" 5¨$Ö/ô ˜T×/Ñ/×5Ñ5Ó7Ö8‘�Ø—6‘6˜T•>Ø×&Ñ&×*Ñ*¨1¨dÔ3Úó 9r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r5   r4   r¦   r<   Ú	exceptionÚBaseExceptionr   ru   r   )r   s   "r   r   rv   w  s,   € ÷ "(ñ "(Ø"ð"(Ø,/ð"(Ø<Ið"(à	ñ"(r   c                óÖ  € V P                   '       d   R# V P                  V4      pVf   R# V P                  P                  V4      pVf   R# V P                  e0   W@P                  J g   WP                  P
                  J d   RV n        V P                  e7   W@P                  J g   WP                  P
                  J d   RV n        RV n        W%n        VP                  P                  V4      pV'       d   VP                  MRpVP                  P                  VR4      p\        RV RV R24       \        R\        V4      P                   RV R24       V P                  V4       R# )	z Common exception handling logic.NTr?  z%
=== Exception raised at instruction rJ  r�  z=== rn   )r„   rÃ   ry   r�   r~   rÀ   r€   rƒ   rI   r9   rž   r;   rí   ro  r)   r‹  )	r&   r5   r¦   r¨  rH   rÆ   r›   rz  rš  s	   &&&&     r   Ú_handle_exceptionÚ_DebugContext._handle_exceptionw  s>  € ð �>�>ˆ>ÙØ×)Ñ)¨$Ó/ˆØŠ=ÙØ×"Ñ"×&Ñ& uÓ-ˆØŠ=Ùð ×"Ñ"Ò.Ø×,Ñ,Ó,°×8OÑ8O×8VÑ8VÓ0Và&*ˆDÔ#ð ×ÑÒ*Ø×(Ñ(Ó(¨D×4GÑ4G×4NÑ4NÓ,Nà"&ˆDÔØ%)ˆDÔ"à%Ôà×#Ñ#×'Ñ'¨Ó/ˆß"&�4—;’;¨KˆØ×-Ñ-×1Ñ1°&¸"Ó=ˆäÐ6°}°oÀRÈÀzÐQUÐVÔWÜ�”T˜)“_×-Ñ-Ð.¨b°°¸4Ð@ÔAØ× Ñ  Ö'r   c               ó    € V ^8„  d   QhRRRR/# )r   r5   r4   r   ru   r   )r   s   "r   r   rv   Ÿ  s   € ÷ ,ñ ,¨.ð ,¸Tñ ,r   c                ó†  € WP                   9   d   R# V P                   P                  V4       \        '       dw   \        P                  P                  V P                  V\        P                  P                  P                  \        P                  P                  P                  ,          4       V P                  V4       R# )z5Called by C++ before executing Dynamo-generated code.N)r{   rh  r…   r†   r   Úset_local_eventsrˆ   ÚeventsÚINSTRUCTIONÚ	PY_RETURNr¶   )r&   r5   s   &&r   Ú_dynamo_code_callbackÚ#_DebugContext._dynamo_code_callbackŸ  s�   € à×&Ñ&Ô&ÙØ×Ñ×Ñ Ô%çÓô �N‰N×+Ñ+Ø—‘ØÜ—‘×%Ñ%×1Ñ1´C·N±N×4IÑ4I×4SÑ4SÕSôð 	×%Ñ% dÖ+r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r5   r4   Úinstruction_offsetr<   r¢  r   r   ru   r   )r   s   "r   r   rv   ²  s,   € ÷ *ñ *Ø"ð*Ø8;ð*ØEKð*à	ñ*r   c                ó(   € V P                  W4       R# )z/Callback for PY_RETURN events (sys.monitoring).N)r¥  )r&   r5   r¶  r¢  s   &&&&r   Ú_monitoring_return_callbackÚ)_DebugContext._monitoring_return_callback²  s   € ð 	×Ñ˜DÖ)r   c               ó$   € V ^8„  d   QhRRRRRR/# )r   r5   r4   r¦   r<   r   r   r   )r   s   "r   r   rv   ¸  s$   € ÷ &ñ &Ø"ð&Ø,/ð&à	ñ&r   c                óX   € V P                  W4       \        P                  P                  # )z1Callback for INSTRUCTION events (sys.monitoring).)rŸ  r†   r   ÚDISABLE)r&   r5   r¦   s   &&&r   Ú _monitoring_instruction_callbackÚ._DebugContext._monitoring_instruction_callback¸  s"   € ð 	× Ñ  Ô.Ü�~‰~×%Ñ%Ð%r   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   r5   r4   r¦   r<   r¨  r©  r   r   r   )r   s   "r   r   rv   ¿  s,   € ÷ 	ñ 	Ø"ð	Ø,/ð	Ø<Ið	à	ñ	r   c                óN   € WP                   9  d   R# V P                  WV4       R# )z+Callback for RAISE events (sys.monitoring).N)r{   r«  )r&   r5   r¦   r¨  s   &&&&r   Ú_monitoring_raise_callbackÚ(_DebugContext._monitoring_raise_callback¿  s&   € ð
 ×*Ñ*Ô*ÙØ×Ñ˜t¨YÔ7ár   c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rH   rG   Úeventr#   rÖ   r   r   zCallable[..., Any] | Noner   )r   s   "r   r   rv   Î  s,   € ÷  'ñ  'Ø$ð 'Ø-0ð 'Ø7:ð 'à	"ñ 'r   c                ó¶  € VP                   pW@P                  9  d   V P                  # VR8X  d   RVn        V P                  # VR8X  d+   VP                  pV P                  WEV4       V P                  # VR8X  d   V P                  WCV4       V P                  # VR8X  d0   VP                  pVw  rgpV P                  WEV4       V P                  # V P                  # )z Trace function for sys.settrace.ÚcallTr÷   r   r¨  )rÀ   r{   Ú_settrace_callbackÚf_trace_opcodesÚf_lastirŸ  r¥  r«  )	r&   rH   rÄ  rÖ   r5   r¦   Úexc_typeÚ	exc_valueÚexc_tbs	   &&&&     r   rÇ  Ú _DebugContext._settrace_callbackÎ  sÖ   € ð �|‰|ˆð ×*Ñ*Ô*Ø×*Ñ*Ð*à�FŒ?à$(ˆEÔ!Ø×*Ñ*Ð*à�hÔà—]‘]ˆFØ×$Ñ$ T°5Ô9Ø×*Ñ*Ð*à�hÔØ×Ñ ¨5Ô1Ø×*Ñ*Ð*à�kÔ!à—]‘]ˆFØ*-Ñ'ˆH Ø×"Ñ" 4°Ô;Ø×*Ñ*Ð*à×&Ñ&Ð&r   c               ó   € V ^8„  d   QhRR/# r   r   )r   s   "r   r   rv   ô  s   € ÷ -ñ -˜4ñ -r   c                ó¨  € ^ RI HpHp RV n        V! 4       V n        V P
                  P                  4        V P                  P                  4        V P                  P                  4        \        '       Ed~    \        P                  P                  V P                  R4       \        P                  P                  V P                  \        P                  P                   P"                  V P$                  4       \        P                  P                  V P                  \        P                  P                   P&                  V P(                  4       \        P                  P                  V P                  \        P                  P                   P*                  V P,                  4       \        P                  P/                  V P                  \        P                  P                   P*                  4       M:\        P0                  ! 4       V n        \        P4                  ! V P6                  4       V! V P8                  4       V #   \         d     EL®i ; i)zStart the debug context.)Úget_bytecode_debugger_callbackÚset_bytecode_debugger_callbackTÚbytecode_debugger)r  rÐ  rÑ  rz   r}   rx   Úclearry   r{   r…   r†   r   Úuse_tool_idrˆ   rø   Úregister_callbackr°  r±  r½  r²  r¸  ÚRAISErÁ  Ú
set_eventsÚgettracer|   ÚsettracerÇ  r³  )r&   rÐ  rÑ  s   &  r   Ú	__enter__Ú_DebugContext.__enter__ô  sŒ  € ÷	
ð
 ˆŒÙ<Ó>ˆÔØ�‰×ÑÔØ×Ñ× Ñ Ô"Ø×Ñ×!Ñ!Ô#çÔðÜ—‘×*Ñ*¨4¯=©=Ð:MÔNô
 �N‰N×,Ñ,Ø—‘Ü—‘×%Ñ%×1Ñ1Ø×5Ñ5ôô
 �N‰N×,Ñ,Ø—‘Ü—‘×%Ñ%×/Ñ/Ø×0Ñ0ôô
 �N‰N×,Ñ,Ø—‘Ü—‘×%Ñ%×+Ñ+Ø×/Ñ/ôô �N‰N×%Ñ% d§m¡m´S·^±^×5JÑ5J×5PÑ5PÕQô "Ÿlšl›nˆDŒOÜ�LŠL˜×0Ñ0Ô1ñ 	' t×'AÑ'AÔBØˆøô9 ô Úðús   Á8*I ÉIÉIc               ó(   € V ^8„  d   QhRRRRRRRR/# )	r   rÊ  ztype[BaseException] | NoneÚexc_valzBaseException | NonerÌ  ztypes.TracebackType | Noner   rK   r   )r   s   "r   r   rv   #  s2   € ÷ 8ñ 8à,ð8ð &ð8ð +ð	8ð
 
ñ8r   c                óö  € V P                   '       g   R# ^ RIHp RV n         V P                  pV! V4       \        '       Ed…   VfW   \
        P                  P                  V P                  ^ 4        \
        P                  P                  V P                  4       R# \        V\        P                  4      '       g   \        R\        V4       24      h\!        RVP"                  4      p\
        P                  P%                  V P                  \
        P                  P&                  P(                  VP*                  4       \
        P                  P%                  V P                  \
        P                  P&                  P,                  VP.                  4       \
        P                  P%                  V P                  \
        P                  P&                  P0                  VP2                  4       \
        P                  P                  V P                  \
        P                  P&                  P0                  4       VP4                   Fy  p\
        P                  P7                  V P                  V\
        P                  P&                  P(                  \
        P                  P&                  P,                  ,          4       K{  	   R# \
        P8                  ! V P:                  4       R#   \         d     R# i ; i)zEnd the debug context.F)rÑ  z/Expected prev callback to be a MethodType, got rr   )rz   r  rÑ  r}   r…   r†   r   r×  rˆ   Úfree_tool_idrø   r#  r$  Ú
MethodTyperg  ro  r   Ú__self__rÕ  r°  r±  r½  r²  r¸  rÖ  rÁ  r{   r¯  rÙ  r|   )r&   rÊ  rÝ  rÌ  rÑ  ÚprevÚouterr5   s   &&&&    r   Ú__exit__Ú_DebugContext.__exit__#  s  € ð �|�|ˆ|ÙÝNàˆŒØ×"Ñ"ˆÙ& tÔ,çÔØŠ|Ü—‘×)Ñ)¨$¯-©-¸Ô;ðÜ—N‘N×/Ñ/°·±Ô>ñJ ôA " $¬×(8Ñ(8×9Ò9Ü(ØIÌ$ÈtË*ÈÐVóð ô ˜_¨d¯m©mÓ<�Ü—‘×0Ñ0Ø—M‘MÜ—N‘N×)Ñ)×5Ñ5Ø×:Ñ:ôô
 —‘×0Ñ0Ø—M‘MÜ—N‘N×)Ñ)×3Ñ3Ø×5Ñ5ôô
 —‘×0Ñ0Ø—M‘MÜ—N‘N×)Ñ)×/Ñ/Ø×4Ñ4ôô
 —‘×)Ñ)¨$¯-©-¼¿¹×9NÑ9N×9TÑ9TÔUØ!×0Ô0�DÜ—N‘N×3Ñ3ØŸ™ØÜŸ™×-Ñ-×9Ñ9ÜŸ.™.×/Ñ/×9Ñ9õ:öò 1ñ ô �LŠL˜Ÿ™Ô)áøôI "ô ØñF ðIús   Á2)K) Ë)K8Ë7K8)rz   rx   ry   r�   r€   r|   r}   r„   r~   r   rƒ   rˆ   r{   r‚   rW   )T)é   ræ  )%r)   r*   r+   r,   r-   r‰   r’   r˜   Ústaticmethodr¡   r¶   rº   rÃ   rÌ   rÝ   rä   rñ   rü   r  r  r&  r+  r/  r3  r:  r‹  rŸ  r¥  r«  r³  r¸  r½  rÁ  rÇ  rÚ  rä  r0   r   r   r   rr   rr   Š   s»   † ÙDõ7÷"!õ(,ð ôPó ðPõ,%õ\)õõ÷$]õ"6÷
õ ÷(õ,	÷õõ÷>
÷õi:÷V	s,÷j$õL"(õP,õ&*õ&õ	õ 'õL-÷^8ñ 8r   rr   c               ó   € V ^8„  d   QhRR/# )r   r   z$Generator[_DebugContext, None, None]r   )r   s   "r   r   r   _  s   € ÷ /ñ /Ð3ñ /r   c               #  ó´   "  € \        4       p  V ;_uu_ 4        V x € RRR4       R#   + '       g   i     R# ; i  \         d    \        R4        R# i ; i5i)a‰  
Context manager for debugging Dynamo-generated bytecode.

Any Dynamo-generated code executed within this context will trigger
the interactive bytecode debugger.

Example:
    >>> # xdoctest: +SKIP
    >>> import torch
    >>>
    >>> @torch.compile
    >>> def my_fn(x):
    ...     return x + 1
    >>>
    >>> with torch._dynamo.bytecode_debugger.debug():
    ...     my_fn(torch.randn(3))
Nz
=== Debug session ended ===)rr   rc  rí   )Úctxs    r   Údebugrë  ^  s?   é € ô& ‹/€Cð/ßŠSØŠI÷ �S�SŠSûäô /ÜÐ-×.ð/üs>   ‚AŽ
; ˜'�; ¥A§8	²; ¶A¸; »AÁAÁAÁAc               ó   € V ^8„  d   QhRR/# rt   r   )r   s   "r   r   r   y  s   € ÷ ñ �Dñ r   c                 ó   € R# )zåProgrammatic breakpoint for user code.

Place this in code compiled by Dynamo. During tracing, Dynamo inserts a
BREAKPOINT_MARKER into the compiled bytecode. When the bytecode debugger
is active, execution pauses at this marker.
Nr   r   r   r   Ú
breakpointrî  y  s   ‚ r   )#r-   Ú
__future__r   r«   r†   r$  Ú
contextlibr   Údataclassesr   r   Útypingr   r   r   Úcollections.abcr	   r
   Útyping_extensionsr   Úbytecode_transformationr   r   r   Úhasattrr…   r   r    r  r1   r3   rE   rr   rë  rî  r   r   r   Ú<module>r÷     s·   ðñõ2 #ã 
Û 
Û Ý %ß (ß +Ñ +÷ ß3å&ç WÑ Wñ ˜c <Ó0Ð ÷ñ ñ( &Ó'Ð õ
 9ð ÷	7ð 	7ó ð	7ð ÷,*ð ,*ó ð,*÷^Qñ Qðh ô/ó ð/÷4r   