
    ^h                        S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKrS SKrS SK	J
r
  S SKJrJr  S SKJrJr  S SKJrJrJrJrJrJrJrJrJrJrJrJrJrJrJrJ r   S SK!J"r"  S SK#J$r$  S SK%J&r&  S S	K'J(r(  S S
K)J*r*J+r+J,r,J-r-J.r.J/r/J0r0J1r1J2r2  S SK3J4r4J5r5J6r6J7r7J8r8J9r9J:r:  S SK;J<r<  S SK=J>r>  S SK?J@r@  S SKAJBrBJCrC  S SKDJErEJFrFJGrG  S SKHJIrI  S SKJJKrK  \R                  " \M5      rN\NR                  \R                  5        \R                  rR\R                  rT\R                  R                  \R                  R                  S R                  R                  5      5      4rY\Z" 5       r[\Z" 5       r\\Z" 5       r]Sr^S+S jr_ " S S\$5      r`\(       a  \"raO\Zra " S S\a\`S9rb     S,S\\\G\\ R                     4   \\\G\\ R                     4   S4   4   S\\\S\d4   \@4      S\dS\dS \\\ R                  /\e4      S!\d4S" jjrfS-S# jrg\g\Glh        S\\\G\\ R                     4   \\\G\\ R                     4   S4   4   4S$ jriS% rjS& rk " S' S(\b5      rl " S) S*\l5      rmg).    N)defaultdict)contextmanagersuppress)CodeType	FrameType)TYPE_CHECKINGAnyCallableContextManagerDefaultDictDict	FrozenSet	GeneratorListOptionalSetTupleTypeTypeVarUnioncast)SingletonConfigurable)MetaHasTraits)AstBookkeeper)AstRewriter)	_TRACER_STACKSANDBOX_FNAMESANDBOX_FNAME_PREFIXSkipAll_emit_event_file_passes_filter_for_event_file_passes_filter_impl_should_instrument_file_should_instrument_file_impl)
EMIT_EVENTEXEC_SAVED_THUNKFUNCTION_TRACING_ENABLEDPYCCOLO_BUILTIN_PREFIXTRACE_LAMBDATRACING_ENABLEDmake_guard_name)HandlerSpec)patch_meta_path_non_context)	Predicate)AugmentationSpecmake_syntax_augmenter)AST_TO_EVENT_MAPPINGSYS_TRACE_EVENTS
TraceEvent
TraceStack)
clear_keysc                      gNr    r9       H/home/james-whalen/.local/lib/python3.13/site-packages/pyccolo/tracer.py<lambda>r<   I   s    Qr:   PYCCOLO_DEV_MODEc                     [        [        U R                  5      U R                  U '   U R                  R	                  5         SU l        g NT)r   list#EVENT_HANDLERS_PENDING_REGISTRATIONEVENT_HANDLERS_BY_CLASSclear_MANAGER_CLASS_REGISTERED)
tracer_clss    r;   register_tracer_state_machinerF   S   s>    5@j<<6J&&z2 2288:+/J(r:   c                   \   ^  \ rS rSrS rU 4S jrS rSS jrSS jrS\	4S jr
S	 rS
rU =r$ )MetaTracerStateMachine[   c                 X    US;  a
  U[         4-  n[        R                  " XU/UQ70 UD6$ )N)_InternalBaseTracer
BaseTracer)r   r   __new__)mcsnamebasesargskwargss        r;   rM   MetaTracerStateMachine.__new__\   s6    <<+--E$$SGGGGr:   c                    > [         TU ]  " U0 UD6  [        U 5        [        R                  " 5       R
                  R                  R                  U l        g N)	super__init__rF   sys	_getframef_backf_codeco_filenamedefined_file)clsrQ   rR   	__class__s      r;   rW   MetaTracerStateMachine.__init__a   s?     	$)&)%c*==?1188DDr:   c                 Z    [         R                  " U /UQ70 UD6nUR                  5         U$ rU   )r   __call___post_init_hook_end)r^   rQ   rR   objs       r;   rb   MetaTracerStateMachine.__call__h   s-    $$S:4:6:!
r:   returnc                 D    U R                  5       R                  " S0 UD6  g Nr9   )instanceenable_tracing)r^   rR   s     r;   enableMetaTracerStateMachine.enablem   s    %%//r:   c                 @    U R                  5       R                  5         g rU   )ri   disable_tracingr^   s    r;   disableMetaTracerStateMachine.disablep   s    &&(r:   c                 >    U R                  5       R                  5       $ rU   )ri   	__enter__ro   s    r;   rs    MetaTracerStateMachine.__enter__s   s    ||~''))r:   c                 B    U R                  5       R                  XU5      $ rU   )ri   __exit__)r^   exc_typeexc_valexc_tbs       r;   rv   MetaTracerStateMachine.__exit__v   s    ||~&&x&AAr:   r9   rf   N)__name__
__module____qualname____firstlineno__rM   rW   rb   rk   rp   r   rs   rv   __static_attributes____classcell__r_   s   @r;   rH   rH   [   s6    H
E
0)*. *B Br:   rH   c                   
  ^  \ rS rSr% SrSrSrSrSrSr	Sr
\rSrSrSr\" \5      r\\\\   4   \S'   0 r\S\\\\   4   4   \S'   \R6                  " S	5      r\R;                  \R<                  5        \" 5       r \!\"   \S
'   \" \5      r#\\$\!\"   4   \S'   0 r%\\$\4   \S'   0 r&\\"\'4   \S'   0 r(\\$\)RT                  4   \S'   0 r+\\"\\$\$4   4   \S'   0 r,\\$\)RT                  4   \S'   0 r-\\$\)R\                  4   \S'   0 r/\\$\)R\                  4   \S'   \" \05      r1\\$\\$\)R\                  4   4   \S'   \" \5      r2\\3\!\$   4   \S'   S/r4\\5\)Rl                        \S'   SzS\74U 4S jjjr8\9S\'S\5\$   SS4S j5       r:\9S\'S\$SS4S j5       r;\9S{S j5       r<\=S 5       r>\=S\\3   4S  j5       r?S!\@\)RT                  \$4   S\A\3   4S" jrB\9S\"4S# j5       rC\=S\74S$ j5       rDS% rES& rF\GS\HS'   4S( j5       rIS) rJ\9S*\@\"\$\)RT                  4   S\"4S+ j5       rK\9S*\@\"\$\)RT                  4   SS4S, j5       rL\9S*\@\"\$\)RT                  4   SS4S- j5       rM\9S*\"SS4S. j5       rNS/\S0\OS\74S1 jrPS2 rQS3 rR SzS/\@\"\4   S!\5\$   S4\SS5\7S6\T4
S7 jjrUS8 rVS4\SS/\"S9\T4S: jrWS; rXS|S< jrYS}S= jrZS\[4S> jr\\GS\HS'   4S? j5       r]S/\"S@\"S\74SA jr^S@\"S\74SB jr_S@\"S\74SC jr` SzS/\"S@\"SD\7S\74SE jjra S~SF\"S\5\$   S\4SG jjrbSH\S\\[   4SI jrc\GS\HS'   4SJ j5       rdS{SK jreS{SL jrfS\g4SM jrhSN ri\GS\HS'   4SO j5       rjSP\[S\[4SQ jrkSR\@\"\)Rl                  \)R\                  \[4   4SS jrlSR\@\"\)Rl                  \)R\                  \[4   4ST jrmS{SU jrnS{SV jroSW\)Rl                  SS4SX jrpSW\)Rl                  SS4SY jrqSZ rr\G SS[\7S\\5\"   S\HS'   4S] jj5       rs   SS[\7S\\5\"   S^\5\7   S\[4S_ jjrtSR\"S`\S\"4Sa jruSSR\"S\@\)Rl                  \)R                  4   4Sb jjrw  SSR\@\)Rl                  \)R                  \"4   Sc\0Sd\0S@\"Se\7Sf\7S\T4Sg jjrx\ySc\5\0   Sd\5\0   Sh\$S\z\0\04   4Si j5       r{  SSSSSj.SR\@\"\)R                  \)R                  4   Sc\5\0   Sd\5\0   Se\7S@\5\"   Sh\$S\T4Sk jjjr}  SSSSSj.SR\@\"\)Rl                  \)R\                  4   Sc\5\0   Sd\5\0   Se\7S@\5\"   Sh\$S\\"\T4   4Sl jjjr~Sm\[Sn\T4   S\[Sn\T4   4So jrSp rSq rS4\SS\74Sr jrS4\SS/\"S9\T4Ss jr\(       a(  \" StS Su9r\9Sv\\   S\4Sw j5       r\9S{Sx j5       rSyrU =r$ SyrU =r$ )rK      FT r   rA   Type[BaseTracer]rB   eventsguardslocal_guards_by_module_idhandler_spec_by_idast_bookkeeper_by_fnameast_node_by_idnode_id_remapping_by_fnamecontaining_ast_by_idcontaining_stmt_by_idparent_stmt_by_idstmt_by_lineno_by_module_idaugmented_node_ids_by_specNcurrent_moduleis_resetc                 ^  > [         R                  " [        5      S:H  U l        U(       a  g U R                  (       d   [        S[        R                   S3S-   5      e[        T
U ]%  5         [        R                  S:  U l        [        [        5      U l        [!        5       U l        [!        5       n[%        U R&                  R)                  5       5       GH  nU R*                  R-                  U0 5      R/                  5        H  u  pEU HO  nUR0                  n[3        US5      (       d  M"  [5        U [5        UR6                  SS5      S 5      nUc  MI  Xl        MQ     U R                  U   R9                  U5        U =R"                  U V	s1 s H  oS	   R                  iM     sn	-  sl        [;        [<        U5      (       a  M  [?        U5      S	:  d  M  URA                  U5        M     GM     [C        U5      U l"        S U l#        U RH                  1U l%        [L        U l'        S U l(        S
U l)        S
U l*        [W        5       U l,        U R[                  U RX                  5      U l.        S	U l/        [!        5       U l0        [!        5       U l1        [!        5       U l2        U Rg                  5         g s  sn	f )N1zclass not registered; use the `z` zdecorator on the subclass      	conditionr|   z<empty>r   F)4osgetenvPYCCOLO_DEV_MODE_ENV_VAR_is_dev_moderD   
ValueErrorrF   r|   rV   rW   rX   version_info_has_fancy_sys_tracingr   r@   _event_handlersset_handler_namesreversedr_   mrorB   getitems	predicatehasattrgetattrr   extend
issubclassrL   lenadd	frozensetevents_with_registered_handlers_ctxr]   _tracing_enabled_filesr   _current_sandbox_fname_saved_thunk_is_tracing_enabled_is_tracing_hard_disabledsys_gettraceexisting_tracer_make_composed_tracer
sys_tracer_num_sandbox_calls_seen_transient_fields_persistent_fields_manual_persistent_fields_post_init_hook_start)selfr   r   clazzevthandlershandler_specr   r   handlerr_   s             r;   rW   _InternalBaseTracer.__init__   sB   II&>?3F--12O2X2X1YY[\-.  	&)&6&6&&@#KVL
 ),*-%'dnn0023E!%!=!=!A!A%!L!R!R!T$,L , 6 6Iy+66CJ #I$7$7YO D	
 %02;/ %- $$S)00:##8'T8
(;(;8'TT#!*e44X9J377< "U 4  GP+G
, /3	151B1B0C#+8#;?#( ).&+~44T5I5IJ,-$+.5,/E365&""$' (Us   	J*
bookkeeper	module_idrf   c                    [        U R                  UR                  5        [        U R                  UR                  5        [        U R                  UR                  5        [        U R                  UR                  5        Ub#  [        U R
                  U   UR                  5        U R                  R                  5        H  u  p4[        XAR                  5        M     g rU   )	r6   r   r   r   r   r   stmt_by_linenor   r   )r^   r   r   specnode_idss        r;   remove_bookkeeping&_InternalBaseTracer.remove_bookkeeping   s     	3%%z'@'@A3++Z-L-LM3,,j.N.NO3((**F*FG //	:J<U<U "<<BBDNDx!:!:; Er:   c                 |   U R                   R                  UR                   5        U R                  R                  UR                  5        U R                  R                  UR                  5        U R                  R                  UR                  5        U R
                  U   R                  UR                  5        g rU   )r   updater   r   r   r   r   )r^   r   r   s      r;   add_bookkeeping#_InternalBaseTracer.add_bookkeeping   s    !!*";";<  ''
(G(GH!!(()I)IJ$$Z%A%AB''	299*:S:STr:   c                 j   U R                   R                  5         U R                  R                  5         U R                  R                  5         U R                  R                  5         U R
                  R                  5         U R                  R                  5        H  nUR                  5         M     g rU   )r   rC   r   r   r   r   r   values)r^   r   s     r;   reset_bookkeeping%_InternalBaseTracer.reset_bookkeeping   s      "  &&(!!'')##%''--/66==?HNN @r:   c                 6   ^  [        U 4S j[         5       5      $ )Nc              3   @   >#    U  H  oTR                   ;   v   M     g 7frU   )r   ).0r   r   s     r;   	<genexpr>;_InternalBaseTracer.has_sys_trace_events.<locals>.<genexpr>   s      
CSC4777CSs   )anyr2   r   s   `r;   has_sys_trace_events(_InternalBaseTracer.has_sys_trace_events   s     
CS
 
 	
r:   c                     / $ rU   r9   r   s    r;   syntax_augmentation_specs-_InternalBaseTracer.syntax_augmentation_specs  s    	r:   node_idc                     [        U[        R                  5      (       a  [        U5      n/ nU R                  R                  5        H  u  p4X;   d  M  UR                  U5        M     [        U5      $ rU   )
isinstanceastASTidr   r   appendr   )r   r   augsaugr   s        r;   get_augmentations%_InternalBaseTracer.get_augmentations  s]     gsww''kG!<<BBDMC"C  E r:   c                 X    U =R                   S-  sl         [         SU R                    S3$ )N   ->)sandbox_fname_counterr   ro   s    r;   make_sandbox_fname&_InternalBaseTracer.make_sandbox_fname  s.    !!Q&!&'q)B)B(C1EEr:   c                     U R                   $ rU   r   r   s    r;   is_tracing_enabled&_InternalBaseTracer.is_tracing_enabled  s    '''r:   c                 T    [        U R                  R                  5       5      U l        g rU   )r   __dict__keysr   r   s    r;   r   )_InternalBaseTracer._post_init_hook_start  s    "%dmm&8&8&:";r:   c                     [        U R                  R                  5       5      U R                  -
  U R                  -
  U l        g rU   )r   r   r   r   r   r   r   s    r;   rc   '_InternalBaseTracer._post_init_hook_end  s;    ""$%%%&,,- 	r:   )NNNc              #   h  #    [        U R                  R                  5       5      n0 nU R                   H  nX1;   d  M
  U R                  U   X#'   M     S v   U R                  R                  5       U-
  UR                  5       -  U l        UR	                  5        H  u  p4X@R                  U'   M     g 7frU   )r   r   r   r   r   )r   current_fieldssaved_fieldsfieldvals        r;   persistent_fields%_InternalBaseTracer.persistent_fields$  s     T]]//1233E&&*mmE&:# 4 	MM >1* & ',,.JE#&MM%  /s   8B2A4B2c                 b    U R                    H  nU R                  U	 M     U R                  SS9  g )NT)r   )r   r   rW   )r   r  s     r;   reset_InternalBaseTracer.reset2  s,    ++Ee$ ,t$r:   guardc                 n    [        U[        5      (       a  UnO[        U5      nX R                  ;   d   eU$ rU   )r   strr+   r   )r^   r
  
guard_names      r;   _make_guard_name$_InternalBaseTracer._make_guard_name7  s4    eS!!J(/JZZ'''r:   c                 D    [        [        U R                  U5      S5        g NFsetattrbuiltinsr  r^   r
  s     r;   activate_guard"_InternalBaseTracer.activate_guard@  s    #..u5u=r:   c                 D    [        [        U R                  U5      S5        g r?   r  r  s     r;   deactivate_guard$_InternalBaseTracer.deactivate_guardD  s    #..u5t<r:   c                     U R                   S   c   eU R                  [        U R                   S   5         R                  U5        g r8   )r   r   r   r   r  s     r;   register_local_guard(_InternalBaseTracer.register_local_guardH  sB    !!!$000%%b););A)>&?@DDUKr:   r   excc                     gr  r9   )r   r   r  s      r;   "should_propagate_handler_exception6_InternalBaseTracer.should_propagate_handler_exceptionM  s     r:   c                 ~    U[         R                  [         R                  4;   a  [        U R                  4$ [        U4$ rU   )r3   call	exceptionr   r   )r   eventold_rets      r;   _handle_skipall_emit_return/_InternalBaseTracer._handle_skipall_emit_returnR  s3    Z__j&:&:;;T__--W%%r:   c                     U[         L nUb	  U[         L a9  U[        R                  [        R                  4;   a  U R                  nX44$ Un X44$ U[
        L a  S nX44$ rU   )Skipr3   r#  r$  r   Null)r   r%  r&  new_retshould_breaks        r;   _handle_normal_emit_return._InternalBaseTracer._handle_normal_emit_returnX  sj    $?go**>*>??//
 $$ " $$ _G$$r:   framereentrant_handlers_onlyrR   c           	      (    U R                   (       a  UR                  S5      $ [        U[        5      (       a  UO
[        U5      nUR                  S5      nU R                  R                  U/ 5       GH  nU(       a  UR
                  (       d  M  Uc  S OUR                  [        U5      5      n	U	b#  UR                  R                  U	S5      (       a  Mc  UR                  SS 5      n
 UR                  (       a  UO#U R                  R                  U=(       d    S5      nUR                  [        R                  L dD  UR                  R                  (       d)  UR                  R                  U=(       d    S5      (       a  UR                   " U U
UUUU	40 UD6nOS n U[,        L a  U R/                  Xj5      s  $ U R1                  XjU5      u  pXS'   U[        R2                  :X  a  Xl        U(       d  GM    O   UR                  S5      $ ! ["         aK  nU R%                  Xm5      (       a  UeU R&                  (       a  [(        R+                  SU5        S n S nANS nAff = f! [6         a%  nU R9                  SS9  UR;                  S 5      eS nAff = f)Nretguards_by_handler_spec_idFz"An exception while handling evt %scheck_enabled)r   r   r   r3   r   	reentrantr   	f_globalspopuse_raw_node_idr   r   r.   TRUEstaticdynamic_callr   	Exceptionr   r   loggerr$  r   r'  r.  before_stmtr   KeyboardInterrupt_disable_tracingwith_traceback)r   r   r   r0  r1  rR   r%  guards_by_spec_idr   guard_for_specr&  node_id_or_noder,  r  r-  kis                   r;   r    _InternalBaseTracer._emit_eventc  sL   <	*--zz%((%c:66CJsOE &

+F G,,00;*4>> )0 *..r$x8 
 "-%//2E2E"E3 3  **UD1#  //  !0044W]C $ )..8>>00>>667L"MM"&,, #+!!*# %# #' g%;;EKK,0,K,K-)G !(uJ222(/%<g <h ::e$$# ! #>>uJJ!	**(()MuU"G#$ ! 	*!!!6##D))	*sa   !I" CI" )B0H
I" H
I" 97I" 5I" 

IAII" II" "
J, JJc                     [        U 5      $ rU   r4   r   s    r;   
make_stack_InternalBaseTracer.make_stack  s    $r:   argc                 f    Uc  g [        5       nU" X#U40 UD6n[        5       ULa  [        U5        U$ rU   )r   sys_settrace)r   r   r0  r   rM  rR   orig_sys_tracerexisting_rets           r;   _call_existing_tracer)_InternalBaseTracer._call_existing_tracer  s=     "&.&u3A&A>0)r:   c                    ^ ^ [         R                  " T R                  5      S[        S[        S[
        4UU 4S jj5       nU$ )Nr0  r   rM  c                 4  > SnTR                   (       a  TR                  " XU40 UD6nOS n[        U[        5      (       a   [	        U5      S:  a  US   [
        L a  US   $ TR                  " TXU40 UD6nUS:X  a  Ub  Ub  TR                  U5      $ Uc  U$ U$ )NTr   r   r#  )r   _sys_tracerr   tupler   r   rR  r   )	r0  r   rM  rR   __debuggerskip__my_retrQ  r   r   s	          r;   _composed_tracerC_InternalBaseTracer._make_composed_tracer.<locals>._composed_tracer  s    #''))%cDVD&%((S[1_gAUay 55S4:L f}%,*B55lCC^''Mr:   )	functoolswrapsrV  r   r  r	   )r   r   rZ  s   `` r;   r   )_InternalBaseTracer._make_composed_tracer  sA    	))	*	I 	C 	c 	 
+	$  r:   c                 V   U(       a  U R                   (       a   eSU l         U R                  (       aM  U=(       d
    [        5       U l        U R	                  U R                  5      U l        [        U R
                  5        [        [        [        S5        [        [        [        S5        g r?   )r   r   r   r   r   r   rO  r  r  r'   r*   )r   check_disabledr   s      r;   _enable_tracing#_InternalBaseTracer._enable_tracing  sq    ////#' $$#2#DlnD "889M9MNDO)2D9/40r:   c                 h   U R                   nU(       a3  U R                  (       d   eU(       a  [        5       U R                  L d   eSU l        U(       a   [        5       b  [	        U R
                  5        [        [        [        S5        [        [        5      S:X  a  [        [        [        S5        g g )NFr   )r   r   r   r   rO  r   r  r  r'   r   r   r*   )r   r7  r   s      r;   rC  $_InternalBaseTracer._disable_tracing  s    #88+++++|~/PPP#( LN$>--.2E:}"Hou5 #r:   c                    ^ ^^^^^ SS K m[        R                  m[        R                  mTR	                  5       mT R
                  mUU4S jnUUU U4S jnU4S jnU[        l        U[        l        U$ )Nr   c                  2   > T [         l        T[         l        g rU   )rX   gettracesettrace)original_sys_gettraceoriginal_sys_settraces   r;   cleanup_callbackM_InternalBaseTracer._patch_sys_settrace_non_context.<locals>.cleanup_callback  s    0CL0CLr:   c                    > TR                  5       TLa  U c  [        S 5      $ [        U 5      $ U Tl        TR                  (       a$  U c  TR	                  5         TR                  SU S9  g T" U 5        g )NF)r`  r   )current_threadrO  r   r   rC  ra  )
trace_funcorig_threadrj  r   	threadings    r;   patched_sys_settraceQ_InternalBaseTracer._patch_sys_settrace_non_context.<locals>.patched_sys_settrace  sn    '')<%'--'
33#-D ''%))+$$E:$V%j1r:   c                     > T $ rU   r9   )r   s   r;   patched_sys_gettraceQ_InternalBaseTracer._patch_sys_settrace_non_context.<locals>.patched_sys_gettrace   s	    ""r:   )rq  rX   rg  rh  rn  r   )	r   rk  rr  ru  r   rp  ri  rj  rq  s	   `   @@@@@r;   _patch_sys_settrace_non_context3_InternalBaseTracer._patch_sys_settrace_non_context  s]     # #..0..	1	2 	2	# ,+r:   c              #   p   #    S n U R                  5       nS v   Ub  U" 5         g g ! Ub  U" 5         f f = f7frU   )rw  )r   rk  s     r;   _patch_sys_settrace'_InternalBaseTracer._patch_sys_settrace  sE     	##CCE+ " ,+ " ,s   6& 636filenamec                     [        XU5      $ rU   )r!   r   r   r|  s      r;   file_passes_filter_for_event0_InternalBaseTracer.file_passes_filter_for_event  s    ,TAAr:   c                     [        X5      $ rU   )r#   r   r|  s     r;   should_instrument_file*_InternalBaseTracer.should_instrument_file  s    &t66r:   c                     [        X5      $ rU   )r$   r  s     r;   r$   0_InternalBaseTracer._should_instrument_file_impl  s    +D;;r:   is_reentrantc                     [        XX#S9$ )N)r  )r"   )r   r   r|  r  s       r;   r"   ,_InternalBaseTracer._file_passes_filter_impl  s     (8WWr:   pathc                 *    U R                  [        XS9$ )N)r   )ast_rewriter_clsr   )r   r  r   s      r;   make_ast_rewriter%_InternalBaseTracer.make_ast_rewriter  s     $$]D$NNr:   ast_rewriterc                 X    U R                    Vs/ s H  n[        X5      PM     sn$ s  snf rU   )r   r0   )r   r  r   s      r;   make_syntax_augmenters*_InternalBaseTracer.make_syntax_augmenters$  s4     66
6 ",56
 	
 
s   'c              +   p   #    U R                   " SSS0UD6   S v   S S S 5        g ! , (       d  f       g = f7f)NdisabledFr9   )tracing_contextr   rR   s     r;   tracing_enabled#_InternalBaseTracer.tracing_enabled*  s)     !!;5;F; <;;s   6%	6
36c                 (    U R                   " S0 UD6  g rh   )rs   r  s     r;   rj   "_InternalBaseTracer.enable_tracing/  s      r:   c                 *    U R                  S S S 5        g rU   )rv   r   s    r;   rn   #_InternalBaseTracer.disable_tracing2  s    dD$'r:   c                     U R                   b   eU R                  " S0 UD6U l         U R                   R                  5       $ rh   )r   r  rs   r  s     r;   rs   _InternalBaseTracer.__enter__5  s:    yy   ((262	yy""$$r:   c                 j    U R                   c   eU R                   nS U l         UR                  XU5      $ rU   )r   rv   )r   rw   rx   ry   ctxs        r;   rv   _InternalBaseTracer.__exit__:  s3    yy$$$ii	||Hv66r:   c              +      #    U R                   nSU l          U R                  " SSS0UD6   S v   S S S 5        X l         g ! , (       d  f       N= f! X l         f = f7f)N   r  Tr9   )r   r  )r   rR   orig_num_sandbox_calls_seens      r;   tracing_disabled$_InternalBaseTracer.tracing_disabled@  sX     &*&B&B#'($	G%%>t>v> ? ,G( ?> ,G(s/   AA ?A A
A	A AAfc                   ^ ^^ TR                   R                  mT R                  5          [        R                  " [
        R                  " [        R                  " T5      5      5      nT R                  TR                   R                  5      R                  UR                  S   5      UR                  S'   [        UTR                   R                  S5      nUR                   HQ  n[        U[        R                   5      (       d  M$  UR"                  TR                   R"                  :X  d  MJ  UTl           O   S S S 5        [$        R&                  " T5      UUU 4S j5       nU$ ! , (       d  f       N1= f)Nr   execc                  h   > TR                  TS9   T" U 0 UD6sS S S 5        $ ! , (       d  f       g = f)N)tracing_enabled_file)r  )rQ   rR   r  f_defined_filer   s     r;   instrumented_f8_InternalBaseTracer.instrumented.<locals>.instrumented_fZ  s.    %%>%J$)&) KJJs   #
1)__code__r\   r  r   parsetextwrapdedentinspect	getsourcer  visitbodycompile	co_constsr   typesr   co_namer\  r]  )r   r  codecompiledconstr  r  s   ``    @r;   instrumented _InternalBaseTracer.instrumentedJ  s   //""$99X__W->->q-ABCD11!**2H2HIOO		!DIIaL (/tQZZ5K5KV'TH!++uenn55););;!&AJ , % 
		* 
	* ' %$s   CE$"E$.E$$
E2r  c                     [        U[        [        R                  45      (       a  U R	                  USS9$ U R                  U5      $ )Nr   )num_extra_lookback_frames)r   r  r   r   r  r  r   r  s     r;   rb   _InternalBaseTracer.__call__a  s;    dS#''N++99TQ9??$$T**r:   c                     U " U5      $ rU   r9   r  s     r;   __getitem___InternalBaseTracer.__getitem__g  s    Dzr:   c                     g rU   r9   r   s    r;   enter_tracing_hook&_InternalBaseTracer.enter_tracing_hookj      r:   c                     g rU   r9   r   s    r;   exit_tracing_hook%_InternalBaseTracer.exit_tracing_hookm  r  r:   nodec                 B    XR                   S'   U R                  U5        g r8   )r   static_init_moduler   r  s     r;   _static_init_module_impl,_InternalBaseTracer._static_init_module_implp  s    !%A%r:   c                     g rU   r9   r  s     r;   r  &_InternalBaseTracer.static_init_modulet  r  r:   c                    ^ ^^^^^ T R                   mT R                  m[        [        [        S 5      mT R
                  mT R                  mS[        S[        SS 4UUUUUU 4S jjnU$ )Nshould_pushwill_enable_tracingrf   c                   > TTl         TTl        TTl        TTl        U (       a  [        S	 U(       a  TR                  SS9  U (       a  TR                  5         [        [        5      S:X  aR  [        [        [        [        1TR                  -   H*  n[        [        U5      (       d  M  [        [        U5        M,     g Tb  [!        [        [        T5        g g )Nr5  Fr6  r   )r   r   r   r   r   rC  r  r   r%   r&   r)   r*   r   r   r  delattrr  )	r  r  extra_builtinorig_exec_saved_thunkorig_hard_disabledr  orig_sandbox_fnameorig_tracing_enabled_filesr   s	      r;   cleanupK_InternalBaseTracer._make_tracing_context_cleanup_callback.<locals>.cleanup~  s    *DD'*<D'-?D*+FD(!"%"%%E%:&&(=!Q&$ #	&
 KK& M x77-8&  '2"24IJ 3r:   )r   r   r   r  r&   r   r   bool)r   r  r  r  r  r  r  s   ` @@@@@r;   &_make_tracing_context_cleanup_callback:_InternalBaseTracer._make_tracing_context_cleanup_callbackw  sn    &*&B&B#!;; '2BD I!88%)%@%@"	K 	KD 	KT 	K 	K2 r:   r  r  c              #   n   #    S n U R                  XS9nS v   Ub  U" 5         g g ! Ub  U" 5         f f = f7f)Nr  r  )tracing_non_context)r   r  r  rk  s       r;   r  #_InternalBaseTracer.tracing_context  sS       	##77!  8   + " ,+ " ,s   5% 525do_patch_meta_pathc                   ^^	^
^ U R                  5       m	U [        ;  m
Xl        U R                  (       + =(       a    U R                  (       + mU	U
U4S jnU/mU4S jnUb  X l        U R
                  U1-  U l        [        [        [        S 5      [        La=  [        [        [        [        5        U R                   H  nU R                  U5        M     [        [        [        5      (       d  [        [        [        S5        [        [        [        5      (       d  [        [        [        S5        [        [        [         U R"                  5        [        [        [$        U R&                  5        Uc%  U R(                  =(       a    [+        [        5      S:H  nT
(       a  [        R,                  " U 5        U R.                  =(       a    TnU(       a  TR-                  [1        [        5      5        U(       a  TR-                  U R3                  5       5        T(       a  U R5                  5         T
(       a  U R7                  5         U$ )Nc                     > T " TT5      $ rU   r9   )cleanup_callback_implr  r  s   r;   first_cleanup_callbackG_InternalBaseTracer.tracing_non_context.<locals>.first_cleanup_callback  s    (6IJJr:   c                  8   > [        T5       H
  n U " 5         M     g rU   )r   )r  all_cleanup_callbackss    r;   rk  A_InternalBaseTracer.tracing_non_context.<locals>.cleanup_callback  s    #$9:	 ;r:   Fr   )r  r   r   r   r   r   r   r  r%   r    r  r   r  r   r*   r'   r&   exec_saved_thunkr)   trace_lambdashould_patch_meta_pathr   r   r   r-   rw  ra  r  )r   r  r  r  r  rk  r
  do_patch_sys_settracer  r  r  r  s           @@@@r;   r  '_InternalBaseTracer.tracing_non_context  s    !% K K M-/)1&...Ot7O7O3O 		K "8 8	  +*>'*.*E*E$I +D' 8Z.kAHj+6%%e, %x11Hou5x!9::H6>*D,A,AB,(9(9:%!%!<!<!X]ASWXAX  & $ 9 9 Q>Q!(()D])ST !(()M)M)OP  "##%r:   rewriterc                 F    U R                  U5       H  nU" U5      nM     U$ rU   )r  )r   r  r  	augmenters       r;   
preprocess_InternalBaseTracer.preprocess  s%    44X>IT?D ?r:   c                     U R                  U R                  5       5      n[         H  nUR                  X5      nM     UR	                  [
        R                  " XS95      $ )Nmode)r  r   r   r  r  r   r  )r   r  r  r  tracers        r;   r  _InternalBaseTracer.parse  sM    ))$*A*A*CD#F$$T4D $~~cii899r:   
global_env	local_env
instrumentdo_evalc                    Uc  U R                  5       nU(       a  U R                  U R                  US9O	[        5          [	        U[
        5      (       a5  [        R                  " U5      R                  5       nU R                  U5      nU(       a  U R                  US9R                  U5      n[        XU(       a  SOS5      nU(       a  SU l        [        XrU5      sS S S 5        $ [        XrU5      sS S S 5        $ ! , (       d  f       g = f)Nr  r  evalr  r  )r   r  r   r   r   r  r  r  stripr  r  r  r  r   r  r  )r   r  r  r  r|  r  r  code_objs           r;   exec_raw_InternalBaseTracer.exec_raw  s     ..0H 	   77%- ! 
  $$$t,224zz$'--8-<BB4HtvfMH/0,H)< " H)<#  s   BC<'C<<
D
r  c                     U b  Uce  [         R                  " 5       R                  nUc   e[        U5       H  nUR                  nUb  M   e   U c  UR                  n Uc  UR
                  nX4$ rU   )rX   rY   rZ   ranger9  f_locals)r  r  r  r0  _s        r;   _get_environments%_InternalBaseTracer._get_environments  sz     !2MMO**E$$$45((( 6 !"__
 !NN	$$r:   )r  r|  r  c          
         Uc  U R                  5       nU R                  X#US-   5      u  p#U(       a  U R                  U R                  US9O	[	        5          Sn[        U[        5      (       a_  U(       a+  Sn[        [        R                  U R                  USS95      nO-[        [        R                  [        R                  " USS95      n[        U[        R                  5      (       d  [        R                  " U5      nU(       a%  U(       d  U R                  US9R                  U5      nU R                  UUUUSSS9sS S S 5        $ ! , (       d  f       g = f)	Nr   r  FTr  r  r  )r  r  r|  r  r  )r   r  r  r   r   r   r  r   r   
Expressionr  r  r  r
  )r   r  r  r  r  r|  r  visiteds           r;   r  _InternalBaseTracer.eval  s1    ..0H $ 6 6#<q#@!

 	   77%- ! 
  G$$$"G

4f
0MND		$V0LMDdCNN33~~d+'--8-<BB4H==%#!  ! %  s   C+E
Ec                   Uc  U R                  5       nU R                  X#US-   5      u  p#UR                  5        Vs/ s H$  owR                  S5      (       a  M  US:w  d  M"  UPM&     nn[	        U5      S:  a  SR                  S/U-   S/-   5      n	OSn	[         S3n
[         S	3n[        R                  " S
U
 SU SU	 SU
 SU SU
 SU
 SU
 S35      R                  5       n[        R                  " [        [        U5      US5      nU(       a  U R                  U R                  US9O	[!        5          Sn[#        U[        5      (       a  [        R                  " U5      R                  5       nU(       a,  Sn[        [        R$                  U R                  U5      5      nO.[        [        R$                  [        R                  " U5      5      n[#        U[        R$                  5      (       de  [#        U[        R&                  5      (       d   e[(        R*                  S:  a  [        R$                  " U/5      nO[        R$                  " U// 5      nU(       a%  U(       d  U R-                  US9R/                  U5      n[        [        R0                  UR2                  S   5      n[#        U[        R$                  5      (       a  UR2                  nO$[#        U[        R&                  5      (       d   eU/nXR2                  -   Ul        U R5                  UUUUSS9  S S S 5        UR7                  U
5      $ s  snf ! , (       d  f       N$= f)Nr   @__r   z, *z**___pyccolo_local_env_pyccolo_sandboxz
            z" = dict(locals())
            def (z/):
                return locals()
            z = z(**z)
            z.pop("__", None)
            z#.pop("builtins", None)
            r  r  FTr      r  )r  r  r|  r  )r   r  r   
startswithr   joinr(   r  r  r  r   r  r   r  r  r   r   r   ModulestmtrX   r   r  r  FunctionDefr  r
  r:  )r   r  r  r  r  r|  r  kargs_to_usesandbox_argsenv_namefun_namesandboxed_coder  fundef	code_bodys                   r;   r  _InternalBaseTracer.execB  s    ..0H $ 6 6#<q#@!


 !~~'
'!||C/@AQ$YA' 	 
 {a99cU[%8F8%CDL!L,--?@,--=>19J 
!L> *Jc(3xj 1J J 	2
 %' 	 4^#<hO 	   77%- ! 
  G$$$t,224"G

DJJt,<=D

CIIdO<DdCJJ//!$1111##f,::tf-D::tfb1D'--8-<BB4H&*3??N<O<OPQ<R&SF$

++,0II	!$1111!F	#kk1FKMM%#!   ?L }}X&&w
* s   L8L8"L85G*L==
Mlam.c                    UR                   nUR                  S:X  d   e[        R                  S:  a  UR	                  SS9Ul         U$ [        UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  UR                  SUR                   UR"                  UR$                  UR&                  5      Ul         U$ )Nz<lambda>r  z<traced_lambda>)r  )r  r  rX   r   replacer   co_argcountco_kwonlyargcount
co_nlocalsco_stacksizeco_flagsco_coder  co_namesco_varnamesr\   co_firstlineno	co_lnotabco_freevarsco_cellvars)r   r-  r  s      r;   r   _InternalBaseTracer.trace_lambda  s     ||z)))v%<<0A<BCL* 
# $  &&!!    !##    CL" 
r:   c                 |    U R                   c   eU R                   S sol         U[        La  U R                  USSS9$ g )NFr   )r  r  )r   Passr  )r   thunks     r;   r  $_InternalBaseTracer.exec_saved_thunk  sJ      ,,,#'#4#4d  99UuPQ9RR r:   c                 &    U R                   " U0 UD6$ rU   r  )r   rQ   rR   s      r;   execute_InternalBaseTracer.execute  s    yy$)&))r:   c                     [         $ rU   )NotImplemented)r   r0  s     r;   #_should_attempt_to_reenable_tracing7_InternalBaseTracer._should_attempt_to_reenable_tracing  s    r:   c                    U R                  X!R                  R                  5      (       d  g US:X  a[  UR                  R                  U R                  :X  a7  UR                  R                  nXPR
                  ;   a  U R                  (       d  g U R                  (       a  US:X  az  UR                  nUR                  n[        R                  U R                  ;  Ul        [        R                  U R                  ;   Ul	         U R                  US XS9Xal        Xql	        $ U R                  US XS9$ ! Xal        Xql	        f = f)Nr#  )r3  )r"   r[   r\   r]   r  r   allow_reentrant_eventsr   f_trace_linesf_trace_opcodesr3   liner   opcoder    )r   r0  r   rM  r  	func_nameorig_trace_linesorig_trace_opcodess           r;   rV  _InternalBaseTracer._sys_tracer  s   ,,S,,2J2JKK&=U\\559J9JJ,,I///8S8S&&3&=$22!&!6!6t'K'KK  !!T%I%II !;''T5'B&6#(:%##Cu#>> '7#(:%s   D/ /D=TracerT)boundr^   c                     g rU   r9   )r^   rQ   rR   s      r;   ri   _InternalBaseTracer.instance  s    FIr:   c                     g rU   r9   ro   s    r;   clear_instance"_InternalBaseTracer.clear_instance  s    ),r:   )r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )Fr{   )TN)TrU   )FN)FNNrB  )TF)NN)r|   r}   r~   r   instrument_all_filesrJ  multiple_threads_allowedrequires_ast_bookkeepingr  global_guards_enabledbytecode_caching_allowedr   r  r]   r   rD   r   r@   rA   r   r3   r   r,   __annotations__rB   r   logging	getLoggerEVENT_LOGGERsetLevelWARNINGr   r   r   r  r   intr   r   r   r   r   r   r   r   r   r"  r   dictr   r   r/   r   r   r!  r  rW   classmethodr   r   r   propertyr   r   r   r   r   r   r   r   rc   r   r   r  r  r  r  r  r  r?  r   r'  r.  r   r	   r    rK  rR  r   ra  rC  r
   rw  rz  r  r  r$   r"   r  r  r  rj   rn   r   rs   rv   r  r  rb   r  r  r  r  r  r  r  r  r  r  r  r
  staticmethodr   r  exprr  r  r  r  rC  rG  rV  r   r   rS  r   ri   rX  r   r   r   s   @r;   rK   rK      s	    "$#! #"L %D (ZkAR5R)S  	 TJ[ 112	4 
 $$X.L'//*uFCH5@5EtCSM2E13S+-.3 9;T#}"45:)+NDcgg&+<>S$sCx.%8 9>/1$sCGG|,1134SXX.3-/tCM*/BMdBSc4SXX+>&>!?SCNsCS%5s3x%? @S26ND#**-.70% 0% 0%d <&<3;C=<	< < U U3 U4 U U   
 

 40@+A  	SWWc\*		#	$	 F3 F F (D ( (<
 '9-=#> ' '%
 U3SWW+<%= #   >5c377):#; > > > =U3SWW+<%= =$ = = L L L L$-	
&	%  ).D*3
?#D* #D* 	D*
 "&D* D*L 
&/
69
@C
 ,	1
6     D #Y/?%@ # #B Bs Bt B7s 7t 7<S <T < =BXX"%X59X	X 59OO$,SMO	O

; 
4> 
 95E+F  !(%^ %
7 GI6F,G G Gh 8 .+U3

CHHh#FG +c3::sxx&I J &SZZ &D &szz d  D LP##<DSM#	#	$# # .2-1	2 2  'sm2  %TN	2 
 
2 hs k c 
:# :uSZZ5O/P :  =CJJ34= = 	=
 = = = 
=> %TN%D>% $'% 
tTz		% %( &*$(	)  "&)*)C3>>12) TN) D>	) ) 3-) $') 
)\ &*$(	K'  "&)*K'CSXX-.K' TNK' D>	K' K' 3-K' $'K' 
c3hK'Zc 2 xS7I :S* t ? ? ?3 ?2 )+@A	I$w-IWI 
I	, 
, r:   rK   )	metaclassr%  .whenr8  r;  r
  exempt_from_guardsc                 >  ^^^^^^ [        U [        5      (       a  U OU 4mUc  [        R                  OUn[        U[        5      (       a  UmO
[        UTS9mTTl        [
        R                  T;   a  [        R                  S:  a  [        S5      eUUUUUU4S jnU$ )N)r;  r   z#can't trace opcodes on Python < 3.7c           	      *  > T H  n[        U TTTTT5      n[        R                  [        U5      [        L a(  [	        U[
        R                  5      (       a	  [        U   OU   R                  U5        U[        R                  [        U5      '   M     U $ rU   )r,   rK   rA   typer   r   r   r1   r   r   r   )	r   r   r   r   rm  r
  predr8  r;  s	      r;   _inner_registrar*register_handler.<locals>._inner_registrar  s    C&)T5BTL  CC CyD(ZSWW-E-E )-	 f\"GS222l3CD  r:   )
r   rW  r.   r<  r;  r3   rN  rX   r   r   )	r%  rl  r8  r;  r
  rm  rr  r   rq  s	     ```` @@r;   register_handlerrt    s     !..UUHF!\9>>tD$	""?*DF"s'7'7&'@>??  r:   c                 t   ^ ^ Uc	  UU 4S jnU$ [        T5      S:  a  [        S5      e[        T 5      " U5      $ )Nc                 (   > [        T40 TD6" U 5      $ rU   rt  )_handlerrR   r   s    r;   _register_func&__event_call__.<locals>._register_func  s    #D3F3H==r:   r   z?keyword arguments not supported for simple handler registration)r   r   rt  )r   r   rR   ry  s   ` ` r;   __event_call__r{    sB    	> v;?Q   %g..r:   c                     [        U 4SS0UD6$ )Nr;  Trw  )r%  rR   s     r;   register_raw_handlerr}    s     EB4B6BBr:   c                 F   ^  [         R                  " T 5      U 4S j5       nU$ )Nc                 @   > U R                   (       d  g T" U /UQ70 UD6$ rU   r   )r   rQ   rR   r   s      r;   skipping_handler4skip_when_tracing_disabled.<locals>.skipping_handler  s$    ''t-d-f--r:   )r\  r]  )r   r  s   ` r;   skip_when_tracing_disabledr    s&    __W. .
 r:   c                 L    [        [        S [         5       5      5      " U 5      $ )Nc              3   $   #    U  H  ov   M     g 7frU   r9   )r   r   s     r;   r   -register_universal_handler.<locals>.<genexpr>(  s     !<##s   )rt  rW  r3   )r   s    r;   register_universal_handlerr  '  s    E!<!<<=gFFr:   c                     ^  \ rS rSrSU 4S jjr\" \R                  SS9S\SS4S j5       r	\" \R                  SS9S\4S	 j5       r
\" \R                  \R                  \R                  4SS9S
\4S j5       r\" \R                  SS9S 5       r\S\\\R(                  4   S\\\R(                     S4   4S j5       r\SS j5       r\S\\\R(                  4   4S j5       rSrU =r$ )rL   i+  rf   Nc                 B   > [         TU ]  " U0 UD6  S U l        S U l        g rU   )rV   rW   _saved_expr_stmt_ret_saved_slice)r   rQ   rR   r_   s      r;   rW   BaseTracer.__init__,  s%    $)&)37!+/r:   T)r8  ret_exprc                     Xl         g rU   r  )r   r  r  r  s       r;   _save_expr_stmt_ret_for_later(BaseTracer._save_expr_stmt_ret_for_later1  s    $,!r:   c                 ,    U R                   nS U l         U$ rU   r  r   r  r  r3  s       r;   _load_saved_expr_stmt_ret$BaseTracer._load_saved_expr_stmt_ret5  s    ''$(!
r:   attr_or_subscriptc                    Xl         g rU   r  )r   r  r  r  s       r;   _save_slice_for_later BaseTracer._save_slice_for_later;  s
     .r:   c                 ,    U R                   nS U l         U$ rU   r  r  s       r;   _load_saved_sliceBaseTracer._load_saved_sliceF  s     
r:   
node_or_idancestor_types.c                    [        U[        5      (       a  UO
[        U5      nU R                  R	                  U5      nU R
                  R	                  Uc  UO
[        U5      5      nUbI  [        XR5      (       a9  U R
                  R	                  [        U5      5      nUb  [        XR5      (       a  M9  US L =(       d    [        U[        R                  5      $ rU   )r   re  r   r   r   r   r   r!  )r^   r  r  r   containing_stmtparent_stmts         r;   stmt_only_has_ancestor_types'BaseTracer.stmt_only_has_ancestor_typesL  s     !+:s ; ;*J3377@++//&.GB4G
 %*[*Q*Q//33B{ODK %*[*Q*Qd"Ijcjj&IIr:   c                     [        [        R                  [        R                  [        R                  [        R
                  1U=(       d
    [        5       -
  5      nU R                  X5      $ rU   )rW  r   IfTryWith	AsyncWithr   r  )r^   r  exclude_outer_stmt_typesr  s       r;   is_outer_stmtBaseTracer.is_outer_stmt[  sJ    VVSWWchh6'0352
 //
KKr:   c           
          U R                  U[        R                  [        R                  [        R                  [        R
                  [        R                  [        R                  [        R                  45      $ rU   )	r  r   r  r  r  r  ForAsyncForWhile)r^   r  s     r;   is_initial_frame_stmt BaseTracer.is_initial_frame_stmtc  sN    //		
 	
r:   )r  r  r{   rU   )r|   r}   r~   r   rW   r}  r3   
after_stmtr	   r  r  before_subscript_loadbefore_subscript_storebefore_subscript_delr  r  rg  r   re  r   r   r   r   r  r  r  r   r   r   s   @r;   rL   rL   +  sO   0
 *//4@-c - - A- *>>$OS  P
 ,,--++	

 .3 .. *66$G H
 J#sww,'J d377mS01J J L L 
uS#''\/B 
 
r:   rL   c                   2    \ rS rSrSrSrS\S\S\4S jrSr	g)	
NoopTraceris  Fr   r|  rf   c                     gr  r9   r~  s      r;   r  'NoopTracer.file_passes_filter_for_eventw  s    r:   r9   N)
r|   r}   r~   r   r  r]  r  r  r  r   r9   r:   r;   r  r  s  s(    "! s t r:   r  )rE   r   rf   N)NFFNFrU   )nr   r  r\  r  r`  r   rX   r  r  collectionsr   
contextlibr   r   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   traitlets.config.configurabler   traitlets.traitletsr   pyccolo.ast_bookkeepingr   pyccolo.ast_rewriterr   pyccolo.emit_eventr   r   r   r   r    r!   r"   r#   r$   pyccolo.extra_builtinsr%   r&   r'   r(   r)   r*   r+   pyccolo.handlerr,   pyccolo.import_hooksr-   pyccolo.predicater.   pyccolo.syntax_augmentationr/   r0   pyccolo.trace_eventsr1   r2   r3   pyccolo.trace_stackr5   pyccolo.utilsr6   ra  r|   r@  rc  ERRORrg  r   rh  rO  r  dirnamer  r\   internal_directoriesobjectr+  r>  r*  r   rF   rH   _InternalBaseTracerSuperrK   r   r  r  rt  r{  rb   r}  r  r  rL   r  r9   r:   r;   <module>r     s   
     	 
   # / %    & @ - 1 ,
 
 
   ( < ' O S S * $			8	$   ||||GGOOBGGOOY$8$8$D$DEF  xxx . 0B] B> 4%X-2>T X-~ =A!04$$j$sww-'(%j$sww-6O0PRU0U*VV$ 5#t),i78
9	$
 $ $ HcggY^,-$ $N/ %
 Cj$sww-'(%j$sww-6O0PRU0U*VVCGE
$ E
P r:   