+
     Bi)                     .   ^ RI t ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RIHtH	t	H
t
 . ROt]]	,          ]
,          t ! R R]4      t]P                  P                   t ! R R	4      t ! R
 R4      tR t ! R R4      tR tR t ! R R]4      tR tR tR tR# )    N)contextmanager)CO_GENERATORCO_COROUTINECO_ASYNC_GENERATORBdbQuitBdb
Breakpointc                       ] tR t^tRtR# )r    N)__name__
__module____qualname____firstlineno____static_attributes__r       /usr/lib/python3.14/bdb.pyr   r      s    r   c                     a  ] tR t^t o ]P
                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R]P                  R/t]P
                  ]P                  ,          ]P                  ,          ]P                  ,          ]P                  ,          t]P                  ]P                  ,          ]P                  ,          ]P                  ,          ]P                  ,          tR tR	 tR
 tR tR tR tR tR tR tR tR tR tR tRR lt R t!Rt"V t#R# )_MonitoringTracercalllinejumpreturnunwind	exceptionopcodec                    \         P                  P                  V n        R V n        RV n        RV n        RV n        RV n        R# )	bdbtracerNF)	sys
monitoringDEBUGGER_ID_tool_id_name
_tracefunc_disable_current_event_tracing_thread_enabledselfs   &r   __init___MonitoringTracer.__init__(   s8    22 
&+##r   c                l   Wn         \        P                  ! 4       V n        \        P
                  P                  V P                  4      pVf6   \        P
                  P                  V P                  V P                  4       MEW P                  8X  d+   \        P
                  P                  V P                  4       M\        R4      h\        P
                  P                  p^ pV P                  P                  4        Fg  w  rVV P                  \!        W R24      V4      p\        P
                  P#                  V P                  WW4       WSP$                  8w  g   K_  WE,          pKi  	  V P'                  4        \        P
                  P)                  V P                  V P*                  4       RV n        R # )Nz-Another debugger is using the monitoring tool	_callbackT)r#   	threadingcurrent_threadr%   r   r   get_toolr!   use_tool_idr"   clear_tool_id
ValueErroreventsEVENT_CALLBACK_MAPitemscallback_wrappergetattrregister_callbackINSTRUCTIONupdate_local_events
set_eventsGLOBAL_EVENTSr&   )r(   	tracefunc	curr_toolE
all_eventseventcb_namecallbacks   &&      r   start_trace_MonitoringTracer.start_trace0   s)   #(779NN++DMM:	NN&&t}}djjA**$NN((7LMMNN!!
"55;;=NE,,WTYi;P-QSXYHNN,,T]]EL%#
	 >
 	  "!!$--1C1CDr   c                <   R V n         RV n        \        P                  P	                  V P
                  4      pWP                  8w  d   R# \        P                  P                  V P
                  4       \        P                  P                  V P
                  4       R# FN)	r&   r%   r   r   r/   r!   r"   r1   free_tool_id)r(   r>   s   & r   
stop_trace_MonitoringTracer.stop_traceE   sb    #NN++DMM:	

"$$T]]3##DMM2r   c                    R V n         R# TN)r$   r'   s   &r   disable_current_event'_MonitoringTracer.disable_current_eventN   s
    &*#r   c                    \         P                  P                  V P                  4      V P                  8X  d!   \         P                  P                  4        R # R # N)r   r   r/   r!   r"   restart_eventsr'   s   &r   rQ    _MonitoringTracer.restart_eventsQ   s7    >>""4==1TZZ?NN))+ @r   c                L   a aa ^ RI pVP                  S4      VVV 3R l4       pV# )r   Nc                    < SP                   \        P                  ! 4       8w  d   R #  \        P                  ! 4       P
                  pS! V.V O5!  pSP                  '       d#   VP                  '       d   SP                  4        SP                  '       dV   S\        P                  \        P                  \        P                  39  d"   \        P                  P                  RSn	        # VRSn	        #   \          d7    SP#                  4        R \        P                  ! 4       P
                  n        h i ; i  RSn	        i ; i)NF)r%   r-   r.   r   	_getframef_backr&   f_tracer:   r$   r?   PY_THROW	PY_UNWINDRAISEr   DISABLEBaseExceptionrI   )argsframeretrA   funcr(   s   *  r   wrapper3_MonitoringTracer.callback_wrapper.<locals>.wrapperX   s    ##y'?'?'AA4..5(4(===U]]],,.///ajj!++qww%GG>>11 /4+  /4+ ! !15&&.
 /4+s,   AC6 6!C6 AC6 -C6 6AD77D: :	E)	functoolswraps)r(   r`   rA   rc   ra   s   fff  r   r6   "_MonitoringTracer.callback_wrapperU   s(    			4 
	4, r   c                    V P                  VR R4      pVeQ   WAn        V P                  '       d7   \        P                  P                  V P                  W P                  4       R# R# R# )r   N)r#   rW   r&   r   r   set_local_eventsr!   LOCAL_EVENTS)r(   r^   coder]   local_tracefuncs   &&&* r   call_callback_MonitoringTracer.call_callbackq   sP    //%>&+M}}}//tEVEVW  'r   c                T    VP                   '       d   VP                  VR V4       R# R# r   NrW   )r(   r^   ri   offsetretvals   &&&&&r   return_callback!_MonitoringTracer.return_callbackx   s     ===MM%62 r   c                T    VP                   '       d   VP                  VR R4       R# R# rn   ro   r(   r^   ri   r]   s   &&&*r   unwind_callback!_MonitoringTracer.unwind_callback|   s     ===MM%40 r   c                |    VP                   '       d*   VP                  '       d   VP                  VR R4       R# R# R# r   N)rW   f_trace_linesru   s   &&&*r   line_callback_MonitoringTracer.line_callback   s-    ===U000MM%. 1=r   c                @   WC8  d   \         P                  P                  # V P                  W#4      pV P                  W$4      pWV8w  d   \         P                  P                  # VP                  '       d*   VP
                  '       d   VP	                  VR R4       R# R# R# ry   )r   r   r[   _get_linenorW   rz   )r(   r^   ri   inst_offsetdest_offsetinst_linenodest_linenos   &&&&&  r   jump_callback_MonitoringTracer.jump_callback   sy    $>>)))&&t9&&t9%>>)))===U000MM%. 1=r   c                t   VP                   '       d   VP                  '       dj   \        VP                  R 4      '       dN   VP                  pV'       d:   VP                  P                  P                  R4      V J d   R# VP                  pKA  VP                  VR\        V4      WDP                  34       R# R# )tb_framer(   Nr   )rW   __traceback__hasattrr   f_localsgettb_nexttype)r(   r^   ri   rp   exctbs   &&&&& r   exception_callback$_MonitoringTracer.exception_callback   s    ===   WS->->
%K%K&&{{++//74?BMM%tCy#?P?P.QR r   c                |    VP                   '       d*   VP                  '       d   VP                  VR R4       R# R# R# )r   N)rW   f_trace_opcodes)r(   r^   ri   rp   s   &&&&r   opcode_callback!_MonitoringTracer.opcode_callback   s-    ===U222MM%40 3=r   Nc                   \         P                  P                  V P                  4      V P                  8w  d   R # Vf    \         P
                  ! 4       P                  pVe   VP                  ev   VP                  '       d#   V P                  \        P                  ,          pMV P                  p\         P                  P                  V P                  VP                  V4       VP                  pK  R # rP   )r   r   r/   r!   r"   rU   rV   rW   r   rh   r?   r9   rg   f_code)r(   r^   r3   s   && r   r:   %_MonitoringTracer.update_local_events   s    >>""4==1TZZ?=MMO**E}}((((!..>F!..F//u||VTLLE  r   c                ^    ^ RI pRpVP                  V4       F  w  rVW%8  d   Vu # TpK  	  V# r   N)disfindlinestarts)r(   ri   rp   r   last_linenostartlinenos   &&&    r   r~   _MonitoringTracer._get_lineno   s9     //5ME~"" K 6 r   )r$   r&   r"   r!   r#   r%   rP   )$r   r   r   r   r?   PY_START	PY_RESUMErX   LINEJUMP	PY_RETURNPY_YIELDrY   rZ   STOP_ITERATIONr9   r4   r<   rh   r)   rD   rI   rM   rQ   r6   rk   rr   rv   r{   r   r   r   r:   r~   r   __classdictcell____classdict__s   @r   r   r      s!    	

F	V	

F			X	

H	X		+	x JJ,qzz9AKKG!''QM66AFF?Q[[01::=@P@PPL*3+,8X31//S1! r   r   c                     a  ] tR t^t o R:R ltR tR tR tR t]	R 4       t
R tR	 tR
 tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR tR;R ltR tR<R ltR t R t!R t"R  t#R<R! lt$R" t%R# t&R$ t'R=R% lt(R& t)R' t*R( t+R) t,R* t-R+ t.R, t/R- t0R. t1R/ t2R0 t3R1 t4R>R2 lt5R3 t6R4 t7R?R5 lt8R?R6 lt9R7 t:R8 t;R9t<V t=R# )@r   Nc                X   V'       d   \        V4      MR V n        / V n        / V n        / V n        R V n        RV n        R V n        \        P                  ! 4       V n
        W n        VR8X  d   \        4       V n        MVR8X  d	   R V n        M\        RV R24      hV P                  4        R # )NFr   settracezInvalid backend '')setskipbreaksfncacheframe_trace_lines_opcodesframe_returningtrace_opcodes
enterframeweakrefWeakKeyDictionarycode_linenosbackendr   monitoring_tracerr2   _load_breaks)r(   r   r   s   &&&r   r)   Bdb.__init__   s    !%CI4	)+&#"#557l"%6%8D"
"%)D"0	;<<r   c                   VR V^R ,           R,           8X  d   V# V P                   P                  V4      pV'       gM   \        P                  P	                  V4      p\        P                  P                  V4      pW P                   V&   V# )<>)r   r   ospathabspathnormcase)r(   filenamecanonics   && r   r   Bdb.canonic   so     sXa^+c11O,,""8,ggooh/Ggg&&w/G%,LL"r   c                    V P                   '       d(   V P                   P                  V P                  4       R # \        P                  ! V P                  4       R # rP   )r   rD   trace_dispatchr   r   r'   s   &r   rD   Bdb.start_trace   s:    !!!""..t/B/BCLL,,-r   c                    V P                   '       d   V P                   P                  4        R # \        P                  ! R 4       R # rP   )r   rI   r   r   r'   s   &r   rI   Bdb.stop_trace   s,    !!!""--/LLr   c                `    ^ RI pVP                  4        RV n        V P                  RR4       R# r   )	linecache
checkcachebotframe_set_stopinfo)r(   r   s   & r   reset	Bdb.reset   s(    4&r   c              #  0   "   Wn         R x  R V n         R # 5irP   )r   r(   r^   s   &&r   set_enterframeBdb.set_enterframe   s     s   c                   V P                  V4      ;_uu_ 4        V P                  '       d    R R R 4       R # VR8X  d   V P                  V4      uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # VR8X  d   V P	                  W4      uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  uuR R R 4       # VR8X  d   V P                  W4      uuR R R 4       # \        R	\        V4      4       V P                  uuR R R 4       #   + '       g   i     R # ; i)
Nr   r   r   r   c_callc_exceptionc_returnr   z*bdb.Bdb.dispatch: unknown debugging event:)
r   quittingdispatch_linedispatch_calldispatch_returndispatch_exceptionr   dispatch_opcodeprintrepr)r(   r^   rA   args   &&&&r   r   Bdb.trace_dispatch   sA   2   ''}}} (' ))%0	 ('
 ))%5 ('  ++E7 (' #..u: ('  ** (' %** (' 
"**! ('"  ++E7% ('& >UL&&) ('''s@   E$E$E$<E$E$ E$E$:E$E$9 E$$E5	c                   V P                  V4      '       g   V P                  V4      '       dG   V P                  V4       V P                  4        V P                  '       d   \
        h V P                  # V P                  VP                  P                  VP                  4      '       g   V P                  4        V P                  # rP   )	stop_here
break_here	user_linerQ   r   r   	get_breakr   co_filenamef_linenorM   r   r   s   &&r   r   Bdb.dispatch_line.  s     >>%  DOOE$:$:NN5!!}}}Gm} """  8 8%..II&&("""r   c                   V P                   f   VP                  V n         V P                  # V P                  V4      '       g*   V P	                  V4      '       g   V P                  4        R # V P                  '       d4   VP                  P                  \        ,          '       d   V P                  # V P                  W4       V P                  4        V P                  '       d   \        hV P                  # rP   )r   rV   r   r   break_anywhererM   	stopframer   co_flagsGENERATOR_AND_COROUTINE_FLAGS	user_callrQ   r   r   r(   r^   r   s   &&&r   r   Bdb.dispatch_call=  s     == !LLDM&&&u%%)<)<U)C)C &&(>>>ell336SSS&&&u"===-"""r   c                d   V P                  V4      '       g   WP                  8X  d   V P                  '       dE   VP                  P                  \
        ,          '       d   V P                  V4       V P                  #  Wn        V P                  W4       V P                  4        R V n        V P                  '       d   \        hV P                  VJ d$   V P                  R8w  d   V P                  R R 4       V P                  R8w  d   V P                  V4       V P                  #   R T n        i ; i)Nr   )r   returnframer   r   r   r   _set_caller_tracefuncr   r   user_returnrQ   r   r   
stoplinenor   r   s   &&&r   r   Bdb.dispatch_returnY  s     >>%  E-=-=$=~~~%,,"7"7:W"W"W **51***,',$  ,##%'+$}}}Gm~~&4??b+@""4. "$**51""" (,$s   ?'D& &	D/c                   V P                  V4      '       d   VP                  P                  \        ,          '       d   V^ ,          \        J d   V^,          e:   V P                  W4       V P                  4        V P                  '       d   \        hV P                  # V P                  '       d   WP                  Jd   V P                  P                  P                  \        ,          '       dR   V^ ,          \        \        39   d:   V P                  W4       V P                  4        V P                  '       d   \        hV P                  # )r   )r   r   r   r   StopIterationuser_exceptionrQ   r   r   r   GeneratorExitr   r   s   &&&r   r   Bdb.dispatch_exceptionx  s     >>%   LL)),IIIA-/CFN##E/##%===- """ nnnnn!<NN))225RRRF}m<<+!}}}Gm"""r   c                    V P                  V4       V P                  4        V P                  '       d   \        hV P                  # rP   )user_opcoderQ   r   r   r   r   s   &&&r   r   Bdb.dispatch_opcode  s7     	===-"""r   c                v    Vf   R# V P                    F"  p\        P                  ! W4      '       g   K!   R# 	  R# )NFT)r   fnmatch)r(   module_namepatterns   && r   is_skipped_moduleBdb.is_skipped_module  s0    yyG{44 ! r   c                ,   V P                   '       d3   V P                  VP                  P                  R 4      4      '       d   R# WP                  J d-   V P
                  R8X  d   R# VP                  V P
                  8  # V P                  '       g   R# R# )r   FTr   )r   r  	f_globalsr   r   r   r   r   s   &&r   r   Bdb.stop_here  sk     999%%eoo&9&9*&EFFNN""$>>T__44~~~r   c                   V P                  VP                  P                  4      pW P                  9  d   R # VP                  pW0P                  V,          9  d0   VP                  P
                  pW0P                  V,          9  d   R # \        W#V4      w  rEV'       dR   VP                  V n        V'       d7   VP                  '       d%   V P                  \        VP                  4      4       R# R # FT)r   r   r   r   r   co_firstlineno	effectivenumber	currentbp	temporarydo_clearstr)r(   r^   r   r   bpflags   &&    r   r   Bdb.break_here  s     << 8 89;;&X.. \\00F[[22 x7
YYDNc"))n-r   c                    \        R 4      h)z)subclass of bdb must implement do_clear())NotImplementedError)r(   r   s   &&r   r  Bdb.do_clear  s    
 ""MNNr   c                    V P                  VP                  P                  4      pW P                  9  d   R # V P                  V,           F  pV P	                  W14      '       g   K   R# 	  R # r  )r   r   r   r   _lineno_in_frame)r(   r^   r   r   s   &&  r   r   Bdb.break_anywhere  sX     << 8 89;;&kk(++F$$V33 , r   c                    VP                   pWP                  8  d   R # W0P                  9  d.   \        R VP	                  4        4       4      V P                  V&   WP                  V,          9   # )Fc              3   ,   "   T F
  w   rVx  K  	  R # 5irP   r   ).0_r   s   &  r   	<genexpr>'Bdb._lineno_in_frame.<locals>.<genexpr>  s     )U_\Q&_s   )r   r  r   r   co_lines)r(   r   r^   ri   s   &&& r   r  Bdb._lineno_in_frame  s]     ||'''(((&))UT]]_)U&UDd#**4000r   c                    R # rP   r   )r(   r^   argument_lists   &&&r   r   Bdb.user_call      r   c                    R # rP   r   r   s   &&r   r   Bdb.user_line  r*  r   c                    R # rP   r   )r(   r^   return_values   &&&r   r   Bdb.user_return  r*  r   c                    R # rP   r   )r(   r^   exc_infos   &&&r   r   Bdb.user_exception  r*  r   c                    R # rP   r   r   s   &&r   r  Bdb.user_opcode
  r*  r   c                    WP                   8w  dk   Wn         V P                  pVe%   Wn        W P                  J d   MVP                  pK(  V P
                  '       d   V P
                  P                  4        R # R # R # rP   )r   r   r   r   rV   r   r:   )r(   r   r^   s   && r   _set_trace_opcodesBdb._set_trace_opcodes  sg    ...!.OOE#(5%MM)%%%&&::< & /r   c                Z    Wn         W n        R V n        W0n        V P	                  V4       R# rG   )r   r   r   r   r6  )r(   r   r   r   r   s   &&&&&r   r   Bdb._set_stopinfo  s+     #& %'r   c                    VP                   pV'       d9   VP                  '       g%   W P                  Jd   V P                  Vn        R # R # R # R # rP   )rV   rW   r   r   )r(   current_framecaller_frames   && r   r   Bdb._set_caller_tracefunc)  s?     %++ 4 4 4]]9Z#'#6#6L  :[ 4<r   c                X    Vf   VP                   ^,           pV P                  WV4       R # rP   )r   r   )r(   r^   r   s   &&&r   	set_untilBdb.set_until6  s'     >^^a'F50r   c                *    V P                  R R 4       R # rP   r   r'   s   &r   set_stepBdb.set_step>  s    4&r   c                .    V P                  R R RR7       R # )NT)r   rB  r'   s   &r   set_stepinstrBdb.set_stepinstrB  s    4d3r   c                *    V P                  VR 4       R # rP   rB  r   s   &&r   set_nextBdb.set_nextF  s    5$'r   c                    VP                   P                  \        ,          '       d   V P                  WR4       R# V P                  VP                  V4       R# )   Nr   )r   r   r   r   rV   r   s   &&r   
set_returnBdb.set_returnJ  s<    <<  #@@@uR0u||U3r   c                   V P                  4        Vf    \        P                  ! 4       P                  pV P	                  4        V P                  V4      ;_uu_ 4        V'       dR   V P                  Vn        Wn        VP                  VP                  3V P                  V&   RVn	        VP                  pKY  V P                  4        R V n        R R R 4       V P                  4        R #   + '       g   i     L"; iNT)rI   r   rU   rV   r   r   r   rW   r   rz   r   r   rF  r   rD   r   s   &&r   	set_traceBdb.set_traceQ  s    
 	=MMO**E

  '' $ 3 3 %9>9L9LeNcNc8d..u5&*# "DO ( 	 ('s   C(&A(C((C8	c                   V P                  V P                  R R4       V P                  '       g   V P                  4        \        P
                  ! 4       P                  pV'       d    WP                  Jd   V=VP                  pK'  V P                  P                  4        F  w  pw  r#W#uVn
        Vn        K  	  V P                  R8X  d   V P                  P                  4        / V n        R # R # )Nr   r   )r   r   r   rI   r   rU   rV   rW   r   r5   rz   r   r   r   r:   )r(   r^   trace_linesr   s   &   r   set_continueBdb.set_continuef  s     	4==$3{{{OOMMO**EE6M7;7U7U7[7[7]33=H:#U%: 8^|||+&&::<-/D* r   c                d    V P                   V n        R V n        RV n        V P	                  4        R # rP  )r   r   r   r   rI   r'   s   &r   set_quitBdb.set_quitz  s(    
 r   c                p    V P                   P                  V. 4      pW#9  d   VP                  V4       R # R # rP   )r   
setdefaultappend)r(   r   r   
bp_linenoss   &&& r   _add_to_breaksBdb._add_to_breaks  s1    [[++Hb9
#f% $r   c                F   V P                  V4      p^ RIpVP                  W4      pV'       g   RW3,          # V P                  W4       \	        WW4V4      pV P
                  p	V	'       d7   V P                  V	4      '       d   V P                  V	n        V	P                  p	K>  R# )r   NzLine %s:%d does not exist)
r   r   getliner^  r	   r   r   r   rW   rV   )
r(   r   r   r  condfuncnamer   r   r  r^   s
   &&&&&&    r   	set_breakBdb.set_break  s     <<)  2.(1CCCH-)8D ""5)) $ 3 3LLEr   c                v    \         P                  P                  4        F  w  rV P                  W4       K  	  R # rP   )r	   bplistkeysr^  r(   r   r   s   &  r   r   Bdb._load_breaks  s.     #-"3"3"8"8":X1 #;r   c                    W3\         P                  9  d#   V P                  V,          P                  V4       V P                  V,          '       g   V P                  V R # R # rP   )r	   rg  r   removeri  s   &&&r   _prune_breaksBdb._prune_breaks  sL     Z%6%66KK!((0{{8$$H% %r   c                *   V P                  V4      pWP                  9  d
   R V,          # W P                  V,          9  d   RW3,          # \        P                  W3,          R,           F  pVP	                  4        K  	  V P                  W4       R# )There are no breakpoints in %szThere is no breakpoint at %s:%d:NNNN)r   r   r	   rg  deleteMerm  )r(   r   r   r  s   &&& r   clear_breakBdb.clear_break  s    
 <<);;&3h>>X..47III ##H$45a88BKKM 98,r   c                     V P                  V4      pTP                  4        T P	                  TP
                  TP                  4       R #   \         d   p\        T4      u R p?# R p?ii ; irP   )get_bpbynumberr2   r  rq  rm  filer   )r(   r   r  errs   &&  r   clear_bpbynumberBdb.clear_bpbynumber  sX    
	$$S)B 	277BGG,	  	s8O	s   A A+
A& A+&A+c                
   V P                  V4      pWP                  9  d
   R V,          # V P                  V,           F4  p\        P                  W3,          pV F  pVP	                  4        K  	  K6  	  V P                  V R# )rp  N)r   r   r	   rg  rq  )r(   r   r   blistr  s   &&   r   clear_all_file_breaksBdb.clear_all_file_breaks  ss    
 <<);;&3h>>KK))D%%hn5E  * KK!r   c                    V P                   '       g   R # \        P                   F  pV'       g   K  VP                  4        K  	  / V n         R# )zThere are no breakpointsN)r   r	   
bpbynumberrq  )r(   r  s   & r   clear_all_breaksBdb.clear_all_breaks  s:    
 {{{-''Br ( r   c                (   V'       g   \        R 4      h \        V4      p \        P                  T,          pTf   \        RT,          4      hT#   \          d    \        RT,          4      Rhi ; i  \         d    \        RT,          4      Rhi ; i)zBreakpoint number expectedz Non-numeric breakpoint number %sNz!Breakpoint number %d out of rangezBreakpoint %d already deleted)r2   intr	   r  
IndexError)r(   r   r  r  s   &&  r   ru  Bdb.get_bpbynumber  s     9::	QXF	U&&v.B :<vEFF	  	Q?#EFDP	Q  	U@6IJPTT	Us   A A2 A/2Bc                z    V P                  V4      pWP                  9   ;'       d    W P                  V,          9   # rP   r   r   ri  s   &&&r   r   Bdb.get_break  s8    <<);;& , ,kk(++	,r   c                    V P                  V4      pWP                  9   ;'       d>    W P                  V,          9   ;'       d!    \        P                  W3,          ;'       g    . # rP   )r   r   r	   rg  ri  s   &&&r   
get_breaksBdb.get_breaks  sb    
 <<);;& 0 0kk(++0 0h./6 635	6r   c                n    V P                  V4      pWP                  9   d   V P                  V,          # . # rP   r  )r(   r   s   &&r   get_file_breaksBdb.get_file_breaks  s0    
 <<){{";;x((Ir   c                    V P                   # rP   )r   r'   s   &r   get_all_breaksBdb.get_all_breaks*  s    {{r   c                   . pV'       d   VP                   VJ d   VP                  pVe;   VP                  WP                  34       WP                  J d   MVP
                  pK>  VP                  4        \        ^ \        V4      ^,
          4      pVe6   VP                  VP                   VP                  34       VP                  pK9  Vf   \        ^ \        V4      ^,
          4      pW43# rP   )
r   r   r\  r   r   rV   reversemaxlen	tb_lineno)r(   ftstackis   &&&  r   	get_stackBdb.get_stack1  s     q		AmLL!ZZ)MM!A3u:>"mLL!**akk23		A9As5zA~&Axr   c                >   ^ RI p^ RIpVw  rVV P                  VP                  P                  4      pV: RV: R2pVP                  P
                  '       d   WP                  P
                  ,          pM	VR,          pVR,          pRVP                  9   d4   VP                  R,          p	VR,          pWP                  V	4      ,          pVeD   VP                  WvVP                  4      p
V
'       d   WV
P                  4       ,           ,          pV# W R2,          pV# )	r   N()z<lambda>z()
__return__z->zWarning: lineno is None)r   reprlibr   r   r   co_namer   r   ra  r  strip)r(   frame_linenolprefixr   r  r^   r   r   srvr   s   &&&        r   format_stack_entryBdb.format_stack_entryH  s     	"$<< 8 89 &)<<%%%AOA	T	5>>)-BIAb!!A$$XuGDtzz|++  9344Ar   c                `    V P                   R 8X  d   V P                  P                  4        R# R# r   N)r   r   rM   r'   s   &r   rM   Bdb.disable_current_eventf  s%    <<<'""88: (r   c                `    V P                   R 8X  d   V P                  P                  4        R# R# r  )r   r   rQ   r'   s   &r   rQ   Bdb.restart_eventsk  s%    <<<'""113 (r   c                b   Vf   ^ R I pVP                  pVf   TpV P                  4        \        V\        4      '       d   \        VRR4      pV P                  4         \        WV4       RV n	        V P                  4        R #   \         d     L&i ; i  RT n	        T P                  4        i ; i)Nz<string>execT)__main____dict__r   
isinstancer  compilerD   r  r   r   rI   )r(   cmdglobalslocalsr  s   &&&& r   runBdb.runt  s    
 ?''G>F

c3#z62C	v& !DMOO	  		 !DMOOs$   B BB BB B.c                L   Vf   ^ R I pVP                  pVf   TpV P                  4        V P                  4         \	        WV4      RV n        V P                  4        #   \         d     Mi ; i RT n        T P                  4        R #   RT n        T P                  4        i ; irP  )r  r  r   rD   evalr   rI   r   )r(   exprr  r  r  s   &&&& r   runevalBdb.runeval  s    
 ?''G>F

	v. !DMOO	  		 DMOO !DMOOs#   A A-*B
 ,A--B
 
B#c                *    V P                  WV4       R # rP   )r  )r(   r  r  r  s   &&&&r   runctx
Bdb.runctx  s     	v&r   c                   V P                  4        V P                  4        R p V! V/ VB pRV n        V P	                  4        V#   \         d     L&i ; i  RT n        T P	                  4        i ; irP  )r   rD   r   r   rI   )r(   r`   r]   kwdsress   ""*, r   runcallBdb.runcall  sr    
 	

	%%C !DMOO
  		 !DMOOs#   A AA AA A/)r   r   r   r   r  r   r   r   r   r   r   r   r   r   r   r   )Nr   )r   FrP   FNN)z: NN)>r   r   r   r   r)   r   rD   rI   r   r   r   r   r   r   r   r   r   r  r   r   r  r   r  r   r   r   r   r  r6  r   r   r?  rC  rF  rI  rM  rQ  rU  rX  r^  rd  r   rm  rr  rx  r|  r  ru  r   r  r  r  r  r  rM   rQ   r  r  r  r  r   r   r   s   @r   r   r      s.    &".'  
-'^##8#>#:#&6O	1
=(71'4(4*0("&0	2&"(,6	.<;
4,(' r   c                  6    \        4       P                  4        R # rP   )r   rQ  r   r   r   rQ  rQ    s    EOOr   c                   p   a  ] tR tRt o ^t/ tR.tRR lt]R 4       t	R t
R tR tRR ltR	 tR
 tRtV tR# )r	   i  Nc                   WPn         R V n        Wn        W n        W0n        W@n        RV n        ^ V n        ^ V n        \        P                  V n        \        ;P                  ^,          un
        V P                  P                  V 4       W3V P                  9   d&   V P                  W3,          P                  V 4       R # V .V P                  W3&   R # rP  )rc  func_first_executable_linerv  r   r  rb  enabledignorehitsr	   nextr  r  r\  rg  )r(   rv  r   r  rb  rc  s   &&&&&&r   r)   Breakpoint.__init__  s     *.'		"		 oo1t$<4;;&KK
#**40'+fDKK
#r   c                 J    ^\         n        / \         n        R.\         n        R# )rL  N)r	   r  rg  r  r   r   r   clearBreakpointsBreakpoint.clearBreakpoints  s    

!%
r   c                    V P                   V P                  3pR V P                  V P                  &   V P                  V,          P                  V 4       V P                  V,          '       g   V P                  V R # R # rP   )rv  r   r  r  rg  rl  )r(   indexs   & r   rq  Breakpoint.deleteMe  s_     DII&'+$E!!$'{{5!!E" "r   c                    R V n         R# rL   r  r'   s   &r   enableBreakpoint.enable  s	    r   c                    R V n         R# rG   r  r'   s   &r   disableBreakpoint.disable  s	    r   c                d    Vf   \         P                  p\        V P                  4       VR7       R # )N)rv  )r   stdoutr   bpformat)r(   outs   &&r   bpprintBreakpoint.bpprint  s"     ;**CdmmoC(r   c                   V P                   '       d   R pMRpV P                  '       d   VR,           pM	VR,           pRV P                  VV P                  V P                  3,          pV P
                  '       d   VRV P
                  : 2,          pV P                  '       d   VRV P                  3,          ,          pV P                  '       d3   V P                  ^8  d   RpMRpVR	V P                  V3,          ,          pV# )
zdel  zkeep zyes  zno   z%-4dbreakpoint   %s at %s:%dz
	stop only if z
	ignore next %d hitsr   z"
	breakpoint already hit %d time%s)r  r  r  rv  r   rb  r  r  )r(   dispr_   sss   &   r   r  Breakpoint.bpformat  s     >>>DD<<<'>D'>D,T04		4990F F999DII77C;;;,~==C999yy1}9TYYOKKC
r   c                Z    R V P                   : RV P                  : RV P                  : 2# )zbreakpoint z at :)r  rv  r   r'   s   &r   __str__Breakpoint.__str__/  s    +/;;		499MMr   )
rb  r  rv  r  rc  r  r  r   r  r  r  rP   )r   r   r   r   r  rg  r  r)   staticmethodr  rq  r  r  r  r  r  r   r   r   s   @r   r	   r	     sV     * DFJ-( ' '
#)<N Nr   c                 6   V P                   '       g    V P                  VP                  8w  d   R # R# VP                  P                  V P                   8w  d   R # V P
                  '       g   VP                  V n        V P
                  VP                  8w  d   R # R# r  )rc  r   r   r   r  r  )br^   s   &&r   checkfuncnamer  6  sr     :::66U^^#  ||qzz) '''',~~$##u~~5r   c                 6   \         P                  W3,          pV F  pVP                  '       g   K  \        WB4      '       g   K*  V;P                  ^,          un        VP
                  '       g3   VP                  ^ 8  d   V;P                  ^,          un        K  VR3u #  \        VP
                  VP                  VP                  4      pV'       d3   VP                  ^ 8  d   V;P                  ^,          un        K  VR3u # K  	  R#    TR3u u # ; i)rL  TFr  )
r	   rg  r  r  r  rb  r  r  r  r   )rv  r   r^   	possiblesr  vals   &&&   r   r  r  V  s     !!$*-IyyyQ&&	!vvvxx!|A 4y 
"1665??ENNCxx!|A !"4y( + D " 5z!s   #ADDDc                   8   a  ] tR tRt o R tR tR tR tRtV t	R# )Tdbi  c                ^    VP                   P                  pV'       g   R p\        RW24       R# )???z+++ callN)r   r  r   )r(   r^   r]   names   &&& r   r   Tdb.user_call  s"    ||##ETj$%r   c           	     2   ^ RI pVP                  P                  pV'       g   RpV P                  VP                  P                  4      pVP                  WAP                  VP                  4      p\        RWAP                  VRVP                  4       4       R# )r   Nr  z+++r  )
r   r   r  r   r   ra  r   r  r   r  )r(   r^   r   r  fnr   s   &&    r   r   Tdb.user_line  sg    ||##ET\\%,,223  ^^U__EeRsDJJLAr   c                    \        R V4       R# )z
+++ returnNr   )r(   r^   rq   s   &&&r   r   Tdb.user_return  s    lF#r   c                >    \        R V4       V P                  4        R# )z+++ exceptionN)r   rU  )r(   r^   	exc_stuffs   &&&r   r   Tdb.user_exception  s    oy)r   r   N)
r   r   r   r   r   r   r   r   r   r   r   s   @r   r  r    s     &B$ r   r  c                 \    \        R V R4       \        V ^
,          4      p\        RV4       R# )zfoo(r  zbar returnedN)r   bar)nxs   & r   foor    s%    	&!SAbD	A	.!r   c                 .    \        R V R4       V ^,          # )zbar(r  r  )as   &r   r  r    s    	&!SQ3Jr   c                  <    \        4       p V P                  R 4       R# )zimport bdb; bdb.foo(10)N)r  r  )r  s    r   testr    s    AEE
#$r   )r   r   r	   )r  r   r-   r   r   
contextlibr   inspectr   r   r   __all__r   	Exceptionr   r   r3   r?   r   r   rQ  r	   r  r  r  r  r  r  r   r   r   <module>r     s     
  	  % B B
* ,| ;>P P +i + NN[ [|@ @F
uN uNt@0j# $
%r   