+
    VBi                        ^ RI t ] P                  ! ]]]]]]]]]]]]R7       ^RIHt ^RIHt ^RIHt ^RIHt ^RIHt ^RI	H
t
Ht ^R	IHtHtHt  ! R
 R]P                   4      t]! ]P$                  4      t ! R R4      t ! R R]4      t ! R R4      t ! R R4      t ! R R4      t ! R R4      t ! R R4      t ! R R]4      t ! R R]4      t ! R R]4      t ! R  R!4      t ! R" R#4      t ! R$ R%4      t  ! R& R']!4      t" ! R( R)4      t# ! R* R+4      t$ ! R, R-4      t%] PL                  R. R/ l4       t' ! R0 R1]
4      t( ! R2 R3]4      t)R# )4    N)
PyrexTypes	ExprNodesNodesBuiltinOptionsTreeVisitorCythonTransformInternalErrorerrorwarningfake_rhs_exprTypedExprNode)r   )r   )r   )r   )r   )r   r	   )r   r   r
   c                   <   a a ] tR t^t oRV 3R lltR tRtVtV ;t# )r   c                >   < \         SV `  V4       Wn        W n        R # N)super__init__type_may_be_none)selfr   may_be_nonepos	__class__s   &&&&@/usr/lib/python3.14/site-packages/Cython/Compiler/FlowControl.pyr   TypedExprNode.__init__   s    	'    c                     V P                   R 8g  # F)r   r   s   &r   r   TypedExprNode.may_be_none   s      E))r   )r   r   NN)	__name__
__module____qualname____firstlineno__r   r   __static_attributes____classdictcell____classcell__r   __classdict__s   @@r   r   r      s     (
* *r   r   c                   <   a  ] tR t^"t o RtR tR tR tR tRt	V t
R# )ControlBlockaC  Control flow graph node. Sequence of assignments and name references.

children  set of children nodes
parents   set of parent nodes
positions set of position markers

stats     list of block statements
gen       dict of assignments generated by this block
bounded   set  of entries that are definitely bounded in this block

Example:

 a = 1
 b = a + c # 'c' is already bounded or exception here

 stats = [Assignment(a), NameReference(a), NameReference(c),
              Assignment(b)]
 gen = {Entry(a): Assignment(a), Entry(b): Assignment(b)}
 bounded = {Entry(a), Entry(c)}

c                    \        4       V n        \        4       V n        \        4       V n        . V n        / V n        \        4       V n        ^ V n        ^ V n        ^ V n	        ^ V n
        ^ V n        R# r   N)setchildrenparents	positionsstatsgenboundedi_inputi_outputi_geni_killi_stater   s   &r   r   ControlBlock.__init__9   sW    u
u
r   c                V    V P                   '       * ;'       d    V P                  '       * # r   )r3   r2   r   s   &r   emptyControlBlock.emptyH   s    JJ55t~~#56r   c                &   V P                    F  pVP                  P                  V 4       K   	  V P                   F  pVP                   P                  V 4       K   	  V P                  P                  4        V P                   P                  4        R# )z'Detach block from parents and children.N)r0   r1   removeclear)r   childparents   &  r   detachControlBlock.detachK   sb    ]]EMM  & #llFOO""4( #r   c                r    V P                   P                  V4       VP                  P                  V 4       R # r   )r0   addr1   r   blocks   &&r   	add_childControlBlock.add_childT   s&    % $r   )r5   r0   r4   r8   r6   r9   r7   r:   r1   r2   r3   N)r"   r#   r$   r%   __doc__r   r=   rD   rJ   r&   r'   r*   s   @r   r,   r,   "   s#     ,7   r   r,   c                   *   a  ] tR t^Yt o RtR tRtV tR# )	ExitBlockzNon-empty exit point block.c                    R # r    r   s   &r   r=   ExitBlock.empty\   s    r   rQ   N)r"   r#   r$   r%   rL   r=   r&   r'   rM   s   @r   rO   rO   Y   s     % r   rO   c                   &   a  ] tR t^`t o R tRtV tR# )AssignmentListc                    . V n         R # r   r3   r   s   &r   r   AssignmentList.__init__a   s	    
r   rV   Nr"   r#   r$   r%   r   r&   r'   rM   s   @r   rT   rT   `   s      r   rT   c                      a  ] tR t^et o RtR tRR l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tV tR# )ControlFlowa  Control-flow graph.

entry_point ControlBlock entry point for this graph
exit_point  ControlBlock normal exit point
block       ControlBlock current block
blocks      set    children nodes
entries     set    tracked entries
loops       list   stack for loop descriptors
exceptions  list   stack for exception descriptors
in_try_block  int  track if we're in a try...except or try...finally block
c                   \        4       V n        \        4       V n        . V n        . V n        \        4       V n        \        4       V n        V P                  P                  V P                  4       V P                  V n
        ^ V n        R# r.   )r/   blocksentriesloops
exceptionsr,   entry_pointrO   
exit_pointrG   rI   in_try_blockr   s   &r   r   ControlFlow.__init__r   s^    eu
'>#+(%%
r   Nc                    \        4       pV P                  P                  V4       V'       d   VP                  V4       V# )z\Create floating block linked to `parent` if given.

NOTE: Block is NOT added to self.blocks
)r,   r\   rG   rJ   r   rC   rI   s   && r   newblockControlFlow.newblock~   s1    
 U#r   c                    \        4       pV P                  P                  V4       V'       d   VP                  V4       M-V P                  '       d   V P                  P                  V4       W n        V P                  # )ziCreate block children block linked to current or `parent` if given.

NOTE: Block is added to self.blocks
)r,   r\   rG   rJ   rI   re   s   && r   	nextblockControlFlow.nextblock   sV    
 U#ZZZJJ  '
zzr   c                
   VP                   '       d   R # VP                  ;'       g]    VP                  ;'       gI    VP                  ;'       g5    VP                  ;'       g!    VP
                  ;'       g    VP                  # r   )is_anonymousis_localis_pyclass_attris_argfrom_closure
in_closureerror_on_uninitializedr   entrys   &&r   
is_trackedControlFlow.is_tracked   sx     - -%"7"7 - -5<< - -""- -&+&6&6- -,,	.r   c                   VP                   '       d   VP                  '       d   VP                  P                  '       g   VP                  P                  '       gg   VP                  P
                  '       gK   VP                  P                  '       g/   VP                  P                  '       d   VP                  '       g   R # R# TF)	rm   is_variabler   is_struct_or_union
is_complexis_arrayis_cython_lock_typeis_cpp_classis_cpp_optionalrs   s   &&r   is_statically_assigned"ControlFlow.is_statically_assigned   sw    NNNu000...&&&$$$///**)))%2G2G2Gr   c                    V P                   '       d9   V P                   P                  P                  VP                  R,          4       R# R# )z0Mark position, will be used to draw graph nodes.N   NN)rI   r2   rG   r   r   nodes   &&r   mark_positionControlFlow.mark_position   s0    :::JJ  $$TXXb\2 r   c                *   V P                   '       d   V P                  V4      '       dh   \        WW4R 7      pV P                   P                  P	                  V4       WPP                   P
                  V&   V P                  P                  V4       R# R# R# )	rhs_scopeN)rI   ru   NameAssignmentr3   appendr4   r]   rG   )r   lhsrhsrt   r   
assignments   &&&&& r   mark_assignmentControlFlow.mark_assignment   sf    :::$//%00'%MJJJ##J/$.JJNN5!LLU#	 1:r   c                (   V P                   '       d   V P                  V4      '       dg   \        WV4      pV P                   P                  P	                  V4       W@P                   P
                  V&   V P                  P                  V4       R # R # R # r   )rI   ru   Argumentr3   r   r4   r]   rG   )r   r   r   rt   r   s   &&&& r   mark_argumentControlFlow.mark_argument   sf    :::$//%00!#E2JJJ##J/$.JJNN5!LLU#	 1:r   c                0   V P                   '       d   V P                  V4      '       dk   \        W4      pV P                   P                  P	                  V4       \
        V P                   P                  V&   V P                  P                  V4       R # R # R # r   )	rI   ru   NameDeletionr3   r   Uninitializedr4   r]   rG   )r   r   rt   r   s   &&& r   mark_deletionControlFlow.mark_deletion   sf    :::$//%00%d2JJJ##J/$1DJJNN5!LLU#	 1:r   c                    V P                   '       de   V P                  V4      '       dL   V P                   P                  P                  \	        W4      4       V P
                  P                  V4       R # R # R # r   )rI   ru   r3   r   NameReferencer]   rG   r   r   rt   s   &&&r   mark_referenceControlFlow.mark_reference   sQ    :::$//%00JJ##M$$>? LLU# 1:r   c                   V P                   0p\        4       pV'       dP   VP                  4       pVP                  V4       VP                   F  pWB9  g   K  VP                  V4       K  	  KW  V P
                  V,
          pV F  pVP                  4        K  	  VP                  V P                   4       V Fs  pVP                  4       '       g   K  VP                   F'  pVP                   F  pVP                  V4       K  	  K)  	  VP                  4        VP                  V4       Ku  	  V ;P
                  V,          un        R# )z%Delete unreachable and orphan blocks.N)r`   r/   poprG   r0   r\   rD   r@   r=   r1   rJ   )r   queuevisitedrootrB   unreachablerI   rC   s   &       r   	normalizeControlFlow.normalize   s    !!"%99;DKK'IIe$ '  ;;0 ELLN ! 	t''( E{{}}#mmF!&((/ "0 , &  	{"r   c                   / V n         ^pV P                   F2  p\        4       pV;Vn        Vn        W0P                   V&   V^,          pK4  	  V P
                   F  pVP                   F{  p\        V\        4      '       g   K  Wn        V P                   VP                  ,          pVP                  P                  V4       V;P                  V,          un        V^,          pK}  	  K  	  V P
                   EF  pVP                  P                  4        F  w  r%V P                   V,          pV\        J d%   V;P                  VP                  ,          un        M#V;P                  VP                  ,          un        V;P                  VP                  ,          un        K  	  VP                  Vn        VP"                   F7  pV;P                  V P                   V,          P                  ,          un        K9  	  EK	  	  V P                   P%                  4        F0  pV P&                  ;P                  VP                  ,          un        K2  	  V P&                  P                  V P&                  n        R# )z+Set initial state, map assignments to bits.N)assmtsr]   rT   maskbitr\   r3   
isinstancer   rt   r   r4   itemsr   r8   r9   r7   r5   valuesr`   )r   r   rt   r   rI   stats   &     r   
initializeControlFlow.initialize   s    \\E#%F'**FK&*!'KKAIC	 " [[EdN33"H![[4FLL''-KK3&KAIC $ ! [[E$yy0U+=(KK6::-KKK488+K+  1 #[[ENE 2 6 66 ' ! kk((*F""fjj0" +$($4$4$:$:!r   c                   \        4       pV P                  V,          pWP                  ,          '       dp   V P                  V4      '       d   VP	                  \        V4      4       M=VP                  '       d   VP	                  \        4       MVP	                  \        4       VP                   F.  pWP                  ,          '       g   K  VP	                  V4       K0  	  V# r   )
r/   r   r   r   rG   StaticAssignmentrp   Unknownr   r3   )r   istatert   retr   assmts   &&&   r   map_oneControlFlow.map_one  s    e!%U!3JJ**511(/0### & \\E		!! " 
r   c                   RpV'       d   RpV P                    Fl  p^ pVP                   F  pW4P                  ,          pK  	  W2P                  ( ,          VP                  ,          pWRP                  8w  d   RpW2n        WRn        Kn  	  K  R# )z(Per-block reaching definitions analysis.TFN)r\   r1   r7   r9   r8   r6   )r   dirtyrI   r6   rC   r7   s   &     r   reaching_definitions ControlFlow.reaching_definitions   ss    
 E#mmF.G ,#||m3u{{B~~- E '!) % r   )	r   rI   r\   r]   r`   r_   ra   rb   r^   r   )r"   r#   r$   r%   rL   r   rf   ri   ru   r   r   r   r   r   r   r   r   r   r   r&   r'   rM   s   @r   rZ   rZ   e   sV     

	.	3
$$$$#8$;L"* *r   rZ   c                   &   a  ] tR tRt o R tRtV tR# )	LoopDescri3  c                ,    Wn         W n        . V n        R # r   )
next_block
loop_blockr_   )r   r   r   s   &&&r   r   LoopDescr.__init__4  s    $$r   )r_   r   r   NrX   rM   s   @r   r   r   3  s      r   r   c                   .   a  ] tR tRt o RtRR ltRtV tR# )ExceptionDescri:  zException handling helper.

entry_point   ControlBlock Exception handling entry point
finally_enter ControlBlock Normal finally clause entry point
finally_exit  ControlBlock Normal finally clause exit point
Nc                *    Wn         W n        W0n        R # r   r`   finally_enterfinally_exit)r   r`   r   r   s   &&&&r   r   ExceptionDescr.__init__B  s    &*(r   r   r!   )r"   r#   r$   r%   rL   r   r&   r'   rM   s   @r   r   r   :  s     ) )r   r   c                   L   a  ] tR tRt o R	R ltR tR tR t]R 4       t	Rt
V tR# )
r   iH  Nc                    VP                   f   \        4       Vn         Wn        W n        W0n        VP
                  V n        \        4       V n        RV n        RV n        R V n	        W@n
        R # )NF)cf_stater/   r   r   rt   r   refsro   is_deletioninferred_typer   )r   r   r   rt   r   s   &&&&&r   r   NameAssignment.__init__I  sT    <<5CL
77E	 !"r   c                R    V P                   P                  : R V P                  : R2# z(entry=)r   r"   rt   r   s   &r   __repr__NameAssignment.__repr__W      !%!8!8$**EEr   c                    V P                   P                  V P                  ;'       g    V P                  P                  4      V n        V P
                  # r   )r   
infer_typer   rt   scoper   r   s   &r   r   NameAssignment.infer_typeZ  s;    !XX001S1S4::CSCST!!!r   c                    V P                   P                  V P                  ;'       g    V P                  P                  4      # r   )r   type_dependenciesr   rt   r   r   s   &r   r    NameAssignment.type_dependencies^  s-    xx))$..*L*LDJJ<L<LMMr   c                    V P                   P                  P                  '       g   V P                   P                  # V P                  # r   )rt   r   is_unspecifiedr   r   s   &r   r   NameAssignment.typea  s0    zz---::??"!!!r   )	rt   r   ro   r   r   r   r   r   r   r   )r"   r#   r$   r%   r   r   r   r   propertyr   r&   r'   rM   s   @r   r   r   H  s/     #F"N " "r   r   c                   B   a a ] tR tRt oRtV 3R ltR tR tRtVt	V ;t
# )r   ih  z7Initialised at declaration time, e.g. stack allocation.c                   < VP                   P                  '       g   R pMRp\        VP                   W!P                  R7      p\        SV `  W3V4       R# )FNr   r   )r   is_pyobjectr   r   r   r   )r   rt   r   r   r   s   &&  r   r   StaticAssignment.__init__j  sD    zz%%%KKJJKYY@5)r   c                .    V P                   P                  # r   )rt   r   r   s   &r   r   StaticAssignment.infer_types  s    zzr   c                    R# )NrQ   rQ   r   s   &r   r   "StaticAssignment.type_dependenciesv  s    	r   rQ   )r"   r#   r$   r%   rL   r   r   r   r&   r'   r(   r)   s   @@r   r   r   h  s     A* r   r   c                   &   a  ] tR tRt o R tRtV tR# )r   iz  c                @    \         P                  WW#4       R V n        R# TN)r   r   ro   )r   r   r   rt   s   &&&&r   r   Argument.__init__{  s    36r   )ro   NrX   rM   s   @r   r   r   z  s      r   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )r   i  c                @    \         P                  WW4       R V n        R# r   )r   r   r   )r   r   rt   s   &&&r   r   NameDeletion.__init__  s    36r   c                
   V P                   P                  V P                  P                  4      pVP                  '       g<   VP                  V P                  P                  4      '       d   \        P                  # Wn        V# r   )	r   r   rt   r   r   can_coerce_to_pyobjectr   py_object_typer   )r   r   s   & r   r   NameDeletion.infer_type  s_    ++DJJ,<,<=)))!889I9IJJ,,,*r   )r   r   N)r"   r#   r$   r%   r   r   r&   r'   rM   s   @r   r   r     s       r   r   c                       ] tR tRtRtRtR# )r   i  zDefinitely not initialised yet.rQ   Nr"   r#   r$   r%   rL   r&   rQ   r   r   r   r     s    )r   r   c                       ] tR tRtRtRtR# )r   i  z7Coming from outer closure, might be initialised or not.rQ   Nr   rQ   r   r   r   r     s    Ar   r   c                   ,   a  ] tR tRt o R tR tRtV tR# )r   i  c                z    VP                   f   \        4       Vn         Wn        W n        VP                  V n        R # r   )r   r/   r   rt   r   r   s   &&&r   r   NameReference.__init__  s*    == EDM	
88r   c                R    V P                   P                  : R V P                  : R2# r   r   r   s   &r   r   NameReference.__repr__  r   r   )rt   r   r   N)r"   r#   r$   r%   r   r   r&   r'   rM   s   @r   r   r     s     F Fr   r   c                   D   a a ] tR tRt oRtRtRtV 3R ltR tRt	Vt
V ;t# )ControlFlowStatei  Fc                f  < \         V9   d-   VP                  \         4       R V n        V'       g   R V n        M?\        V9   d   VP                  \        4       R V n        M\        V4      ^8X  d   R V n        \        ST `!  V Uu. uF  q"P                  \        Jg   K  VNK  	  up4       R# u upi r   )r   discardcf_maybe_null
cf_is_nullr   len	is_singler   r   r   r   )r   stateir   s   && r   r   ControlFlowState.__init__  s    E!MM-(!%D"&MM'"!%D5zQ!%<1m!;QQ<	><s   B.B.c                    V ^ ,          # )r   rQ   r   s   &r   oneControlFlowState.one  s    Awr   )r  r  r  )r"   r#   r$   r%   r  r  r  r   r  r&   r'   r(   r)   s   @@r   r  r    s%      MJI>  r   r  c                   L   a  ] tR tRt o RtR tR tR tR tRR lt	R t
R	tV tR
# )	GVContexti  zGraphviz subgraph object.c                >    / V n         ^ V n        . V n        / V n        R# r.   )blockidsnextidr0   sourcesr   s   &r   r   GVContext.__init__  s    r   c                <    V P                   P                  V4       R # r   )r0   r   )r   rB   s   &&r   rG   GVContext.add  s    U#r   c                    WP                   9  d:   R V P                  ,          V P                   V&   V ;P                  ^,          un        V P                   V,          # )zblock%d)r  r  rH   s   &&r   nodeidGVContext.nodeid  s@    %#,t{{#:DMM% KK1K}}U##r   c                   VP                   '       g   R # \        VP                   4      p\        VP                   4      pV^ ,          pW@P                  9  d'   \	        VP                  4       4      V P                  V&   V P                  V,          pRP                  WR^,          ^,
          V^,            Uu. uF  qfP                  4       NK  	  up4      # u upi ) \n)r2   minmaxr  list	get_linesjoinstrip)r   rI   startstopsrcdescrlinesls   &&     r   extract_sourcesGVContext.extract_sources  s    EOO$5??#8<<'%)(*<*<*>%?DLL"X&zze!HqLa.IJ.I779.IJKKJs   7Cc                    VP                  RV,          4       VP                  R4       V P                   F  pVP                  WV4       K  	  VP                  R4       R# )zRender graphviz dot graphzdigraph %s {
z node [shape=box];
z}
N)writer0   render)r   fpnameannotate_defsrB   s   &&&& r   r-  GVContext.render  sH    
!D()
'(]]ELL=1 #
r   c                F    VP                  R R4      P                  RR4      # )"z\"
r  )replace)r   texts   &&r   escapeGVContext.escape  s     ||C'//e<<r   )r  r0   r  r  Nr   )r"   r#   r$   r%   rL   r   rG   r  r)  r-  r7  r&   r'   rM   s   @r   r  r    s,     #$$	L= =r   r  c                   4   a  ] tR tRt o RtR tRR ltRtV tR# )GVi  zGraphviz DOT renderer.c                    Wn         W n        R # r   )r/  flow)r   r/  r<  s   &&&r   r   GV.__init__  s    		r   c           
        VP                  R V P                  ,          4       V P                  P                   EF>  pVP	                  V4      pV'       d   VP
                   F  p\        V\        4      '       dR   TRVP                  P                  : RVP                  '       d   RMR: RVP                  ^,          : R2,          pKj  \        V\        4      '       g   K  VP                  '       g   K  VRVP                  P                  : RVP                  ^,          : R2,          pK  	  V'       g   RpVP                  V4      pVP                  R	V: R
VP                  V4      : R24       EKA  	  V P                  P                   FP  pVP                  V4      pVP                   F,  pVP                  R	V: RVP                  V4      : R24       K.  	  KR  	  VP                  R4       R# )z subgraph %s {
z
 z [deletion
definition ]z [reference r=   z  z	 [label="z"];
z -> z;
z }
N)r,  r/  r<  r\   r)  r3   r   r   rt   r   r   r   r  r7  r0   )	r   r.  ctxr0  rI   labelr   pidrB   s	   &&&&     r   r-  	GV.render  sd   
#dii/0YY%%E''.E!KKD!$77 JJOO4;K;K;KZQ]-]_c_g_ghi_j_j"l l#D-88:::!tzzPTPXPXYZP[P[%\\E ( **U#CHHsCJJu4EFG & YY%%E**U#CCE1BCD ( & 	r   )r<  r/  Nr   )	r"   r#   r$   r%   rL   r   r-  r&   r'   rM   s   @r   r:  r:    s       r   r:  c                   <   a  ] tR tRt o RtR tR tR tR tRt	V t
R# )	MessageCollectioni  z/Collect error/warnings messages first then sortc                $    \        4       V n        R # r   )r/   messagesr   s   &r   r   MessageCollection.__init__
  s    r   c                B    V P                   P                  VR V34       R# r   rJ  rG   r   r   messages   &&&r   r   MessageCollection.error  s    3g./r   c                B    V P                   P                  VR V34       R# )FNrM  rN  s   &&&r   r   MessageCollection.warning  s    3w/0r   c                    \        V P                  4       F'  w  rpV'       d   \        W4       K  \        W^4       K)  	  R# r   N)sortedrJ  r   r   )r   r   is_errorrO  s   &   r   reportMessageCollection.report  s/    &,T]]&;"C7c#a(	 '<r   )rJ  N)r"   r#   r$   r%   rL   r   r   r   rW  r&   r'   rM   s   @r   rH  rH    s!     901) )r   rH  c                0    V ^8  d   QhR\         R\        /# )r   r<  compiler_directives)rZ   dict)formats   "r   __annotate__r]    s     H8 H8K H8d H8r   c                 b   V P                  4        V P                  4        \        4       p/ p\        4       pV P                   EF  pVP                  pVP
                   EF  pV P                  VP                  ,          pV P                  WgP                  4      p	\        V\        4      '       d   VP                  P                  P                  V	4       VP                  VP                  4       WhP                  ( ,          pVP                   '       d   WhP"                  ,          pMWgP"                  ,          pVP                  V4       VP$                  \&        Jd)   VP                  P(                  P+                  V4       EK)  EK,  \        V\,        4      '       g   EKE  VP                  W7P.                  &   VP                  P0                  P+                  V4       VP.                  P                  P                  V	4       V	P3                  \4        4       V	P3                  \6        4       V	 F  p
V
P8                  P                  V4       K   	  EK  	  EK  	  VR ,          pVR,          pVR,          pVR,          p\;        4       pV Fw  p\4        VP                  9   d4   RVn        \?        VP                  4      ^8X  d
   RVn         KB  RVn         KK  \6        VP                  9   d
   RVn        Ki  RVn         RVn        Ky  	  VPC                  4        EF9  w  pp\4        VP                  9   Ed   RVn        VPD                  '       gG   \?        VP                  4      ^8X  d-   VPF                  VPH                  PJ                  9  d   RVn         VPL                  '       gA   VPD                  '       g/   VPN                  '       g   VPP                  PR                  '       d   K  VP@                  '       d   VPT                  '       g   VPV                  '       gO   \X        PV                  '       di   VPP                  PZ                  '       g   VPP                  P\                  '       d1   VP_                  VP`                  RVPF                  ,          4       EK  VPc                  VP`                  RVPF                  ,          4       EK  V'       dN   RVPF                  ,          pVPT                  '       d
   VR,          pVPc                  VP`                  V4       EK	  EK  \6        VP                  9   d   RVn        EK+  RVn         RVn        EK<  	  V EF
  p
V
P8                  '       d   K  V
P                  PN                  '       d   K6  V
P                  PT                  '       d   KT  V
P                  P0                  '       d   V'       d   V
Pd                  '       d9   VPc                  V
P`                  R	V
P                  PF                  ,          4       M7VPc                  V
P`                  R
V
P                  PF                  ,          4       RV
P                  n3        EK  	  V Ph                   F  pVP0                  '       d   K  VPN                  '       d   K+  VPF                  R8w  d   VPF                  Pk                  R4      '       g~   VPd                  '       d7   V'       d.   VPc                  VP`                  RVPF                  ,          4       M5V'       d.   VPc                  VP`                  RVPF                  ,          4       RVn3        K  	  VPm                  4        V F  p\o        VP                  4      Vn        K  	  V F  p\o        VP                  4      Vn        K  	  R# )zwarn.maybe_uninitializedzwarn.unused_resultzwarn.unusedzwarn.unused_argTFz0local variable '%s' referenced before assignmentz9local variable '%s' might be referenced before assignmentz% (maybe initialized inside a closure)zUnused argument value '%s'zUnused result in '%s'_unusedzUnused argument '%s'zUnused entry '%s'N)8r   r   r/   r\   r6   r3   r   rt   r   r   r   r   r   updaterG   r   r   r   r   r   cf_assignmentsr   r   r   cf_referencesr  r   r   r   rH  r  r  r  r   rp   r/  r   scope_predefined_names
allow_nullrn   r   rV  rq   rr   r   r   r   r   r   r   ro   cf_usedr]   
startswithrW  r  )r<  rZ  assignments
referencesassmt_nodesrI   r:   r   i_assmtsr	  r   warn_maybe_uninitializedwarn_unused_resultwarn_unusedwarn_unused_argrJ  r   rt   msgs   &&                 r   check_definitionsrq    sc   OO %KJ%K --KKD{{4::.HLL**5E$//!!((/)!]]N2###||+Gxx'G%88=0JJ--44T: 1D-00(,


99%

((//5		""))%0 m,g&"EJJNN4( #/   :  33MN,-AB%m4K)*;<O "H DMM)!%D4==!Q&"&"'%!%D#DO!&D  "'')eDMM)!%D&&&3t}}+=+B

%++*L*LL"&5#5#5#5,,,

0C0C0C)9)9)9///666

...%**2K2K2KNNJ**%&
 $$J**%& *QTYT^T^^###BBC  HH	 * %
 "&D#DO!&DK *P 


5;;#>#>#>...{{(((-?<<<$$UYY0L%*[[%5%516 7 $$UYY0G%*[[%5%516 7 %EII  ###---zzS )>)>x)H)H<<<& ((4J).54 5 # ((4G).54 5!EM  OO(7 (7 r   c                   D   a a ] tR tRt oV 3R ltR tR tR tRtVt	V ;t
# )AssignmentCollectori  c                2   < \         SV `  4        . V n        R # r   )r   r   rh  )r   r   s   &r   r   AssignmentCollector.__init__  s    r   c                ,    V P                  V R R 4       R # r   )_visitchildrenr   s   &r   
visit_NodeAssignmentCollector.visit_Node  s    D$-r   c                h    V P                   P                  VP                  VP                  34       R # r   )rh  r   r   r   r   s   &&r   visit_SingleAssignmentNode.AssignmentCollector.visit_SingleAssignmentNode  s#    488 45r   c                x    VP                    F)  pV P                  P                  W!P                  34       K+  	  R # r   )lhs_listrh  r   r   r   r   r   s   && r   visit_CascadedAssignmentNode0AssignmentCollector.visit_CascadedAssignmentNode  s*    ==C##S((O4 !r   )rh  )r"   r#   r$   r%   r   rx  r{  r  r&   r'   r(   r)   s   @@r   rs  rs    s     .65 5r   rs  c                   N  a  ] tR tRt o R tR tR tR tR tR t	R5R	 l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 tR tR tR6R l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/ t0R0 t1R1 t2R2 t3R3 t4R4t5V t6R# )7ControlFlowAnalysisi  c                    WP                   8X  d   V P                  # \        V P                  4       F  w  r#W!J g   K  Vu # 	  Q hr   )envr<  reversedstack)r   r  er<  s   &&  r   find_in_stack!ControlFlowAnalysis.find_in_stack  s;    ((?99

+GAx , 	ur   c                v   V P                   R ,          pV'       d   \        4       MRT n        ^RIHp V! 4       V n        \        4       V n        RV n        VP                  V n
        \        4       V n        . V n        \        \        P                   RR7      V n        V P%                  V4       \'        V P                  V P                   4       V'       dQ   V P                   R,          p\)        VR4      ;_uu_ 4       pV P                  P+                  VRVR	7       RRR4       V# V#   + '       g   i     T# ; i)
control_flow.dot_outputN)ConstantFoldingFTr   zcontrol_flow.dot_annotate_defswmodule)r0  )current_directivesr  gv_ctxOptimizer  constant_folderr/   
reductionsin_inplace_assignmentr   r  rZ   r<  r  r   r   r   object_exprvisitchildrenrq  openr-  )r   r   
dot_outputr  r0  r.  s   &&    r   visit_ModuleNode$ControlFlowAnalysis.visit_ModuleNode  s    ,,-FG
%/ikT-.0 %%*"::M	
()B)BPTU4 $))T%<%<= 334TUMj#&&"""2x}"M 't '&s   <D''D8	c                |   VP                    F(  pVP                  '       g   K  V P                  V4       K*  	  V P                  VR4       V P                  P	                  V P
                  V P                  34       VP                  V n        \        4       V n        VP                  P                  P                  4        FK  pV P                  P                  V4      '       g   K&  V P                  P                  P                  V4       KM  	  V P                  V4       V P                  P                  4        VP                    F  pV P                  V4       K  	  VP                   '       dU   V P                  P#                  VP                   \%        \&        P(                  RR7      VP                   P*                  4       VP,                  '       dU   V P                  P#                  VP,                  \%        \&        P.                  RR7      VP,                  P*                  4       V P                  VP0                  4       VP2                  '       d&   V P                  VP4                  P0                  4       V P                  P6                  '       d:   V P                  P6                  P9                  V P                  P:                  4       V P                  P=                  4        \?        V P                  V P@                  4       V P                  PB                  P                  V P                  PD                  4       V PF                  eD   V PF                  P                  \I        VP                  PJ                  V P                  4      4       V P                  PM                  4       w  V n        V n        V# )
decoratorsFr  )r  )'argsdefaultr  r  r   r  r<  local_scoperZ   r]   r   ru   rG   r   ri   _visitstar_argr   r   r   
tuple_typert   starstar_arg	dict_typebodyis_generatorgbodyrI   rJ   ra   r   rq  r  r\   r`   r  r:  r/  r   r   r   argrt   s   &&  r   visit_FuncDefNode%ControlFlowAnalysis.visit_FuncDefNode  s{   99C{{{""3'  	41

488TYY/0##M	 %%--446Eyy##E**		!!%%e, 7 	4 		99CKK ===II##DMM$1'2D2D>C%E$(MM$7$79 II##D$5$5$1'2C2C>C%E$($5$5$;$;= 	DIIKK

( 99???IIOO%%dii&:&:; 			$))T%<%<=		TYY223;;"KKOOBt//44dii@A"jjnn.$)r   c                2    R Vn         V P                  V4      # T)usedr  r   s   &&r   visit_DefNode!ControlFlowAnalysis.visit_DefNode  s    	%%d++r   c                    V# r   rQ   r   s   &&r   visit_GeneratorBodyDefNode.ControlFlowAnalysis.visit_GeneratorBodyDefNode      r   c                    V# r   rQ   r   s   &&r   visit_CTypeDefNode&ControlFlowAnalysis.visit_CTypeDefNode  r  r   Nc                   V P                   P                  '       g   R # V P                   P                  '       dg   V P                   P                  R,          pV P                   P                  P                  VP                  4       V P                   P                  4        V'       g   V P                  pVP                  '       de   VP                  e   VP                  pM%V P                  P                  VP                  4      pVf   R # V P                   P                  WWSR7       MVP                  '       d   \        VP                  4       Ft  w  rgVP                   '       d(   \#        \$        P&                  RVP(                  R7      pM#W P                  J d   TpMVP+                  V4      pV P                  WxVR7       Kv  	  MV P-                  V4       V P                   P                  '       di   V P                   P                  R,          pV P                   P                  P                  VP                  4       V P                   P                  4        R # R # )Nr   Fr   )r<  rI   r_   rJ   r`   ri   r  is_namert   r  lookupr/  r   is_sequence_constructor	enumerater  
is_starredr   r   	list_typer   inferable_item_noder  )	r   r   r   r   	exc_descrrt   r
  r  	item_nodes	   &&&&     r   r   #ControlFlowAnalysis.mark_assignment  s   yy99		,,R0IIIOO%%i&;&;<II!""C;;;yy$		1}II%%c%K(((#CHH->>> -g.?.?UX[X_X_ `I,,, #I # 7 7 :I$$Sy$I . KK99		,,R0IIIOO%%i&;&;<II!  r   c                r    V P                   R,          '       d   V P                  P                  V4       R# R# )z'Mark position if DOT output is enabled.r  N)r  r<  r   r   s   &&r   r   !ControlFlowAnalysis.mark_position:  s+    ""#<==II##D) >r   c                    VP                    F  w  r#VR 8w  g   K  V P                  V4       K!  	  V P                  V4       V# )*)r   r   r  )r   r   r/  targets   &&  r   visit_FromImportStatNode,ControlFlowAnalysis.visit_FromImportStatNode?  s<     JJLDs{$$V, ' 	4 r   c                8    \        R \        V4      ,          4      h)zUnhandled assignment node %s)r
   r   r   s   &&r   visit_AssignmentNode(ControlFlowAnalysis.visit_AssignmentNodeF  s    :T$ZGHHr   c                    V P                  VP                  4       V P                  VP                  VP                  4       V# r   )r  r   r   r   r   s   &&r   r{  .ControlFlowAnalysis.visit_SingleAssignmentNodeI  s/    DHHTXXtxx0r   c                    V P                  VP                  4       VP                   F  pV P                  W!P                  4       K   	  V# r   )r  r   r~  r   r  s   && r   r  0ControlFlowAnalysis.visit_CascadedAssignmentNodeN  s7    DHH==C  hh/ !r   c                    \        4       pVP                  V4       VP                   F  w  r4V P                  V4       K  	  VP                   F  w  r4V P	                  W44       K  	  V# r   )rs  r  rh  r  r   )r   r   	collectorr   r   s   &&   r   visit_ParallelAssignmentNode0ControlFlowAnalysis.visit_ParallelAssignmentNodeT  s[    ')	%!--HCKK .!--HC  * .r   c                    R V n         V P                  V4       RV n         V P                  VP                  V P	                  VP                  4       4      4       V# rx   )r  r  r   r   r  create_binop_noder   s   &&r   visit_InPlaceAssignmentNode/ControlFlowAnalysis.visit_InPlaceAssignmentNode]  sM    %)"4 %*"TXXt';';D<R<R<T'UVr   c                   VP                    F  pVP                  '       d   VP                  ;'       g&    V P                  P	                  VP
                  4      pVP                  '       g   VP                  '       d(   \        VP                  R VP
                  ,          4       VP                  '       g   V P                  V4       V P                  P                  W#4       K  V P                  V4       K  	  V# )z7can not delete variable '%s' referenced in nested scope)r  r  rt   r  r  r/  rq   rp   r   r   ignore_nonexistingr  r<  r   r  s   &&  r   visit_DelStatNode%ControlFlowAnalysis.visit_DelStatNoded  s    99C{{{		>>TXX__SXX%>###u'9'9'9#''79>DE ...KK$		''3C   r   c                    V P                   P                  VP                  4      pV'       dC   VP                  '       * pV P                  P                  V\        VP                  V4      V4       V# r   )r  r  r/  not_noner<  r   r   r   )r   r   rt   r   s   &&  r   visit_CArgDeclNode&ControlFlowAnalysis.visit_CArgDeclNodes  sQ    		*"mm+KII##mEJJ<eEr   c                f   V P                   P                  '       d   VP                  ;'       g&    V P                  P	                  VP
                  4      pV'       dT   V P                   P                  W4       W P                  9   d)   V P                  '       g   \        VP                  R 4       V# )z+Cannot read reduction variable in loop body)r<  rI   rt   r  r  r/  r   r  r  r   r   r   s   && r   visit_NameNode"ControlFlowAnalysis.visit_NameNode{  st    99???JJ<<$((//$))"<E		((5OO+D4N4N4N$((GI r   c                    V P                   P                  '       dK   VP                   F:  pV P                  V4       V P                   P                  '       d   K2  R Vn         V# 	  V# r  )r<  rI   r3   r  is_terminator)r   r   r   s   && r   visit_StatListNode&ControlFlowAnalysis.visit_StatListNode  sM    99???

D!yy)-D& #
 r   c                J    V P                  V4       V P                  V4       V# r   )r  r   r   s   &&r   rx  ControlFlowAnalysis.visit_Node  s#    4 4 r   c                    V# r   rQ   r   s   &&r   visit_SizeofVarNode'ControlFlowAnalysis.visit_SizeofVarNode  r  r   c                    V# r   rQ   r   s   &&r   visit_TypeidNode$ControlFlowAnalysis.visit_TypeidNode  r  r   c                   V P                   P                  4       pV P                   P                  pVP                   F  pV P                   P	                  V4      pV P                  VP                  4       V P                   P	                  4        V P                  VP                  4       V P                   P                  '       g   K  V P                   P                  P                  V4       K  	  VP                  '       dz   V P                   P	                  VR 7       V P                  VP                  4       V P                   P                  '       d&   V P                   P                  P                  V4       MVP                  V4       VP                  '       d   W P                   n        V# RV P                   n        V# rC   N)r<  rf   rI   
if_clausesri   r  	conditionr  rJ   else_clauser1   )r   r   r   rC   clauses   &&   r   visit_IfStatNode$ControlFlowAnalysis.visit_IfStatNode  s-   YY'')
ooFYY((0FKK(()II!KK$yy		))*5 & IIv.KK(()yy		))*5Z((IIO  #DIIOr   c                l   V P                  V4       V P                  P                  4       pV P                  P                  pV P                  P	                  V4      pV P                  VP                  4       V P                  P	                  4        V P                  VP                  4       V P                  P                  '       d&   V P                  P                  P                  V4       VP                  V4       VP                  '       d   W P                  n        V# RV P                  n        V# )z@Essentially an if-condition that wraps a RaiseStatNode.
        N)
r   r<  rf   rI   ri   r  r  	exceptionrJ   r1   r   r   r   rC   s   &&  r   visit_AssertStatNode(ControlFlowAnalysis.visit_AssertStatNode  s     	4 YY'')
$$V,DNN#		DNN#99???IIOO%%j1$(IIO  #DIIOr   c                D   V P                   P                  4       pV P                   P                  4       pV P                   P                  P	                  \        W24      4       VP                  '       d   V P                  VP                  4       V P                   P                  4        V P                  VP                  4       V P                   P                  P                  4        V P                   P                  '       dK   V P                   P                  P                  V4       V P                   P                  P                  V4       VP                  '       dz   V P                   P                  VR 7       V P                  VP                  4       V P                   P                  '       d&   V P                   P                  P                  V4       MVP                  V4       VP                  '       d   W0P                   n
        V# RV P                   n
        V# r  )r<  ri   rf   r^   r   r   r  r  r  r   rI   rJ   r  r1   r   r   condition_blockr   s   &&  r   visit_WhileStatNode'ControlFlowAnalysis.visit_WhileStatNode  sZ   ))--/YY'')
		yEF>>>KK'		DII		99???IIOO%%o6IIOO%%j1II7KK(()yy		))*5%%j1(IIO  #DIIOr   c                   R pVP                   P                  pVP                  pVP                   P                  ;'       g    V P                  p\        V\        P                  4      '       Ed   VP                  pVP                  Ef   VP                  '       Ed   VP                  VP                  4      pV'       d   VP                  '       Edp   VP                  R8X  d0   \        VP                  4      ^8X  d   VP                  ^ ,          pEM/VP                  R8X  Ed   \        VP                  4      ^8X  Ed   VP                   '       d   \        VP                  4      ^8X  d   VP                  ^ ,          pVP                  '       d   VP#                  V4      p	V	P$                  '       d   V P'                  VP                  ^ ,          \        P(                  ! VP*                  R\,        P.                  R7      VP                   P                  R7       VP                  ^,          pVP                  ^ ,          p\        V\        P                  4      '       Edk   VP                  pVP                  EfP   VP                  '       Ed=   VP                  R
9   Ed+   VP                  VP                  4      pV'       Ed   VP0                  '       d   VP2                  \4        P6                  J d   RpVP                  R,           F*  p
V P'                  WJVP                   P                  R7       K,  	  \        VP                  4      ^8  dz   V P'                  W@P9                  \        P:                  ! VP*                  R	VP                  ^ ,          VP                  ^,          4      4      VP                   P                  R7       V'       g4   V P'                  WAP<                  VP                   P                  R7       R# R# )FNr  r  PY_SSIZE_T_MAX)valuer   r   Tr   +)rangexrange)iteratorsequencer  
expr_scoper  r   r   SimpleCallNodefunctionr   r  r  r/  
is_builtinr  r  r  r   is_builtin_typer   IntNoder   r   c_py_ssize_t_typeis_typer   r   
range_typer  
binop_nodeitem)r   r   
is_specialr  r  r  r  rt   r  iterator_typer  s   &&         r   mark_forloop_target'ControlFlowAnalysis.mark_forloop_target  s   
==))mm&&22$((h	 8 899((H}}$)9)9)9

8==1 0 0 0}}
2s8==7IQ7N#+==#3!+5#hmm:LPQ:Q!999c&++>NRS>S'/}}Q'7H'///080C0CC0H#0#@#@#@$($8$8(.A(1(9(9&**L\?I?[?[)]26--2J2J	 %9 %L
 .4[[^F/7}}Q/?Hh	 8 899((H}}$)9)9)9hmmOb>b

8==15U]]]uzzW=O=O/O!%J'}}R00,,VDMMD\D\,]  18==)A-,,V5I5I%00474<MM!4D4<MM!4DF6G
 7;mm6N6N - P    dmm>V>V W r   c                   VP                   pVP                  R ,           F  pV P                  W#4       K  	  \        VP                  4      ^8  dd   V P                  W P	                  \
        P                  ! VP                  RVP                  ^ ,          VP                  ^,          4      4      4       VP                  '       g   V P                  V4       R# R# )r   r	  N)r  r  r   r  r  r   r  r   )r   r   r  r  s   &&  r    mark_parallel_forloop_assignment4ControlFlowAnalysis.mark_parallel_forloop_assignment  s    99R==C  - !tyy>A  )=)=$$TXX(+(,		!(,		!6*7 8
 yyy  ( r   c                $    V P                  V4      # r   )visit_ForInStatNoder   s   &&r   visit_AsyncForStatNode*ControlFlowAnalysis.visit_AsyncForStatNode)  s    ''--r   c                   V P                   P                  4       pV P                   P                  4       pV P                   P                  P	                  \        W24      4       V P                  VP                  4       V P                   P                  4        \        V\        P                  4      '       d   V P                  V4       M\        V\        P                  4      '       d(   V P                  VP                  VP                  4       MB\        V\        P                   4      '       d   V P#                  V4       MQ \%        T4      4       hV P                   P                  4        V P                  VP&                  4       V P                   P                  P)                  4        V P                   P*                  '       d&   V P                   P*                  P-                  V4       VP.                  '       dz   V P                   P                  VR7       V P                  VP.                  4       V P                   P*                  '       d&   V P                   P*                  P-                  V4       MVP-                  V4       VP0                  '       d   W0P                   n        V# RV P                   n        V# )Fr  N)r<  ri   rf   r^   r   r   r  r  r   r   ForInStatNoder  AsyncForStatNoder   r  r  ParallelRangeNoder  r   r  r   rI   rJ   r  r1   r  s   &&  r   r!  'ControlFlowAnalysis.visit_ForInStatNode,  s   ))--/YY'')
		yEFDMM"		dE//00$$T*e4455  dii8e556611$7$$t*$5 			DII		 99???IIOO%%o6II7KK(()yy		))*5%%j1(IIO  #DIIOr   c                    VP                    FB  pV'       d   VP                  VJg   K  V P                  P                  W3P                  4       KD  	  R # r   )assigned_nodesrt   r<  r   )r   r   excludeprivate_nodes   &&& r   _delete_privates$ControlFlowAnalysis._delete_privatesW  s:     //Ll00?		''6H6HI 0r   c                   V P                   p\        VP                  R 4      '       d   \        V4      V n         VP                   Fb  pRVP
                  n        VP                  VP
                  ,          w  rEV'       g   K=  V P                   P                  VP
                  4       Kd  	  V P                  V4      pW n         V# )rt   T)
r  hasattrr  r/   r*  rt   rr   rh  rG   r!  )r   r   r  r,  r   	reductions   &&    r   visit_ParallelRangeNode+ControlFlowAnalysis.visit_ParallelRangeNode\  s    __
 4;;((!*oDO $ 3 3<@""9!%!1!1,2D2D!E9OO''(:(:;	 !4 ++D1D$r   c                    VP                    F  pR VP                  n        K  	  V P                  V4       V P	                  V4       V# r  )r*  rt   rr   r  r-  )r   r   r,  s   && r   visit_ParallelWithBlockNode/ControlFlowAnalysis.visit_ParallelWithBlockNodeo  sC     //L8<L5 0 	4 d#r   c                   V P                   P                  4       pV P                   P                  4       pV P                   P                  P	                  \        W24      4       V P                  VP                  4       V P                  VP                  4       VP                  e   V P                  VP                  4       V P                   P                  4        V P                  VP                  VP                  4       VP                  ea   V P                  VP                  V P                  \        P                  ! VP                  RVP                  VP                  4      4      4       V P                   P                  4        V P                  VP                   4       V P                   P                  P#                  4        V P                   P$                  '       d&   V P                   P$                  P'                  V4       VP(                  '       dz   V P                   P                  VR7       V P                  VP(                  4       V P                   P$                  '       d&   V P                   P$                  P'                  V4       MVP'                  V4       VP*                  '       d   W0P                   n        V# R V P                   n        V# )Nr	  r  )r<  ri   rf   r^   r   r   r  bound1bound2stepr   r  r  r   r  r   r  r   rI   rJ   r  r1   r  s   &&  r   visit_ForFromStatNode)ControlFlowAnalysis.visit_ForFromStatNodey  s   ))--/YY'')
		yEFDKK DKK 99 KK		"		T[[$++699   d.B.B$$TXXsDKKK/M N 			DII		99???IIOO%%o6II7KK(()yy		))*5%%j1(IIO  #DIIOr   c                    \        R 4      h)zGeneric loops are not supported)r
   r   s   &&r   visit_LoopNode"ControlFlowAnalysis.visit_LoopNode  s    =>>r   c                f    V P                  VP                  VP                  P                  4       V# r   )r   r   	with_node
enter_callr   s   &&r   "visit_WithTargetAssignmentStatNode6ControlFlowAnalysis.visit_WithTargetAssignmentStatNode  s%    TXXt~~'@'@Ar   c                    V P                  VP                  4       V P                  VP                  4       V P                  VP                  4       V# r   )r  managerrB  r  r   s   &&r   visit_WithStatNode&ControlFlowAnalysis.visit_WithStatNode  s7    DLL!DOO$DIIr   c                   V P                   P                  4       pV P                   P                  4        V P                   P                  4       pV P                   P                  P                  \	        V4      4       V P                   P                  4        V P                   P                  P                  V4       V P                   P                  4        V P                   ;P                  ^,          un        V P                  VP                  4       V P                   ;P                  ^,          un        V P                   P                  P                  4        V P                   P                  '       d   VP                  '       d6   V P                   P                  4        V P                  VP                  4       V P                   P                  '       d&   V P                   P                  P                  V4       VP                   EF-  pW0P                   n        VP                  '       d&   VP                   F  pV P                  V4       K  	  M V P                   P                  V P                   P                  R7      pV P                   P                  4        VP                  '       d'   V P!                  VP                  VP"                  4       V P                  VP                  4       V P                   P                  '       g   EK  V P                   P                  P                  V4       EK0  	  V P                   P                  '       d7   VP                  V P                   P                  R,          P$                  4       VP&                  '       d   W P                   n        V# RV P                   n        V#    r  Nr  )r<  rf   r_   r   r   ri   rI   rJ   rb   r  r  r   r  except_clausespatternr  r   	exc_valuer`   r1   )r   r   r   r`   r  rM  s   &&    r   visit_TryExceptStatNode+ControlFlowAnalysis.visit_TryExceptStatNode  sd   YY'')
		ii((*		##N;$?@		 			!!+.				!#DII		!#		  " 99???		##%D,,-yy		))*5))F)IIO~~~%~~GKK(  . )),,DIIOO,DKII!}}}$$V]]F4D4DEKK$yy		))*5 *  99!!$))"6"6r":"F"FG(IIO  #DIIOr   c                   V P                   P                  4       pV P                   P                  4       pW0P                   n        V P	                  VP
                  4       V P                   P                  '       dg   V P                   P                  '       dK   V P                   P                  P                  V P                   P                  R,          P                  4       V P                   P                  4       pW@P                   n        V P	                  VP                  4       V P                   P                  p\        W4V4      pV P                   P                  P                  V4       V P                   P                  '       d7   V P                   P                  R,          P                  P                  V4       W P                   n        VP                  V4       V P                   P                  4        V P                   ;P                  ^,          un        V P	                  VP                  4       V P                   ;P                  ^,          un        V P                   P                  P                  4        V P                   P                  '       d6   V P                   P                  R,          P                  P                  4        V P                   P                  '       dl   V P                   P                  P                  V4       V'       d.   V P                   P                  VR7      V P                   n        V# RV P                   n        V# rJ  )r<  ri   rf   rI   r  finally_except_clauser_   rJ   r`   finally_clauser   r   r^   rb   r  r   )r   r   
body_blockr`   r   r   descrs   &&     r   visit_TryFinallyStatNode,ControlFlowAnalysis.visit_TryFinallyStatNode  s   YY((*
 ii((*%		D../99???tyy333IIOO%%dii&:&:2&>&J&JK 		**,'		D''(yy{<H		##E*99???IIOOB**11%8$		[)				!#DII		!#		  "99???IIOOB**..099???IIOO%%m4"&))"5"5\"5"J		  #'		r   c                ~   V P                  V4       V P                  V4       V P                  P                  '       dK   V P                  P                  P                  V P                  P                  R,          P                  4       RV P                  n        V P                  P                  '       d   RVn        V# )rK  NTr  )r   r  r<  r_   rI   rJ   r`   rb   r   s   &&r   visit_RaiseStatNode'ControlFlowAnalysis.visit_RaiseStatNode  s    4 4 99IIOO%%dii&:&:2&>&J&JK		99!!! $Dr   c                   V P                  V4       V P                  P                  '       dK   V P                  P                  P	                  V P                  P                  R,          P
                  4       RV P                  n        V# rK  Nr  )r   r<  r_   rI   rJ   r`   r   s   &&r   visit_ReraiseStatNode)ControlFlowAnalysis.visit_ReraiseStatNode  s[    4 99IIOO%%dii&:&:2&>&J&JK		r   c                   V P                  V4       V P                  V4       \        V P                  P                  R R R1,          4      pV F  pVP
                  '       g   K  V P                  P                  P                  VP
                  4       VP                  '       d[   V P                  P                  pV F#  pVP
                  '       g   K  VP
                  p M	  VP                  P                  V4        MW	  V P                  P                  '       d:   V P                  P                  P                  V P                  P                  4       R V P                  n        V# )Nr  )
r   r  iterr<  r_   r   rI   rJ   r   ra   )r   r   outer_exception_handlershandlerra   next_handlers   &&    r   visit_ReturnStatNode(ControlFlowAnalysis.visit_ReturnStatNode  s   4 4 #'		(<(<TrT(B#C /G$$$		))'*?*?@'''!%!5!5J(@'555)5)C)CJ! )A ((22:> 0 yy		))$))*>*>?		r   c                L   V P                   P                  '       g   V# V P                   P                  R,          pV P                  V4       VP                  RRR1,           F}  pVP                  '       g   K  V P                   P
                  P                  VP                  4       VP                  '       d&   VP                  P                  VP                  4        M1	  V P                   P
                  P                  VP                  4       RV P                   n        V# r\  )	r<  r^   r   r_   r   rI   rJ   r   r   r   r   loopr  s   &&  r   visit_BreakStatNode'ControlFlowAnalysis.visit_BreakStatNode-      yyKyyr"4 2..I&&&		)))*A*AB)))**44T__E / IIOO%%doo6		r   c                L   V P                   P                  '       g   V# V P                   P                  R,          pV P                  V4       VP                  RRR1,           F}  pVP                  '       g   K  V P                   P
                  P                  VP                  4       VP                  '       d&   VP                  P                  VP                  4        M1	  V P                   P
                  P                  VP                  4       RV P                   n        V# r\  )	r<  r^   r   r_   r   rI   rJ   r   r   rg  s   &&  r   visit_ContinueStatNode*ControlFlowAnalysis.visit_ContinueStatNode>  rk  r   c                L   VP                   '       dC   V P                  P                  V P                  V P                  34       VP                   V n        V P                  VP                  4       VP                   '       d#   V P                  P                  4       w  V n        pV# r   )r  r  r   r  r<  r  rh  r   r   r   r_  s   && r   visit_ComprehensionNode+ControlFlowAnalysis.visit_ComprehensionNodeO  si    ???JJtxx34DHDII???**..*KDHar   c                   \        V\        P                  \        P                  34      '       g   Q V4       hVP                  '       dc   V P
                  P                  V P                  V P                  34       V P                  VP                  4      V n        VP                  V n        V P                  V4       VP                  '       d(   V P
                  P                  4       w  V n        V n        V# r   )r   r   IteratorNodeAsyncIteratorNoder  r  r   r  r<  r  r  r   r   s   &&r   visit_ScopedExprNode(ControlFlowAnalysis.visit_ScopedExprNodeY  s     $!7!79T9T UVV\X\\V???JJtxx34**4??;DIDH4 ???"&**.."2DHdir   c                   V P                  VR4       V P                  P                  VP                  VP                  V P
                  P                  VP                  P                  4      4       V P                  P                  V P
                  V P                  34       VP                  V n        V P                  P                  4        VP                  '       d@   V P                  P                  VP                  \        VP                  P                  4       V P                  VR4       V P                  P                  4        V P                  P                  4       w  V n        pV# )r[  )r[  	metaclassmkwbasesclass_result)r  )r  r<  r   r  classobjr  r  r/  r  r   r   ri   doc_noder   rt   r   rp  s   && r   visit_PyClassDefNode(ControlFlowAnalysis.visit_PyClassDefNodef  s    4 "B 	C		!!$++t}}"&((//$++2B2B"C	E

488TYY/0::		===II%%dmm]DMMDWDWX4+		jjnn&!r   c                    V P                   P                  VP                  V P                  34       V P	                  V4       V P                   P                  4        V# r   )r  r   r   r<  r  r   r   s   &&r   visit_CClassDefNode'ControlFlowAnalysis.visit_CClassDefNodeu  sB    

4::tyy124 

r   c                    VP                   P                  '       d!   V P                  VP                   \        4       V P	                  V4       V# r   )operandr  r   r   r  r   s   &&r   visit_AmpersandNode'ControlFlowAnalysis.visit_AmpersandNode|  s9    <<  }=4 r   c                L   \        VP                  4      ^8X  g   Q hV P                  P                  4       pV P                  P                  pV P                  VP                  4       V P                  P                  4        V P                  VP                  4       V P                  P                  '       d&   V P                  P                  P                  V4       VP                  V4       VP                  '       d   W P                  n        V# RV P                  n        V# rT  )r  subexprsr<  rf   rI   r  operand1ri   operand2rJ   r1   r  s   &&  r   visit_BoolBinopNode'ControlFlowAnalysis.visit_BoolBinopNode  s    4==!Q&&&YY'')
DMM"		DMM"99???IIOO%%j1$(IIO  #DIIOr   c                   \        VP                  4      ^8X  g   Q hV P                  VP                  4       V P                  P
                  pV P                  P                  4       pV P                  P                  4        V P                  VP                  4       V P                  P
                  '       d&   V P                  P
                  P                  V4       V P                  P                  VR7       V P                  VP                  4       V P                  P
                  '       d&   V P                  P
                  P                  V4       VP                  '       d   W0P                  n        V# RV P                  n        V# )   r  N)r  r  r  testr<  rI   rf   ri   true_valrJ   	false_valr1   )r   r   rC   r   s   &&  r   visit_CondExprNode&ControlFlowAnalysis.visit_CondExprNode  s   4==!Q&&&DIIYY'')
		DMM"99???IIOO%%j1		6*DNN#99???IIOO%%j1(IIO  #DIIOr   )r  r  r<  r  r  r  r  r  r!   r   )7r"   r#   r$   r%   r  r  r  r  r  r  r   r   r  r  r{  r  r  r  r  r  r  r  rx  r  r  r  r  r  r  r  r"  r!  r-  r2  r5  r;  r>  rC  rG  rO  rV  rY  r]  rd  ri  rm  rq  rv  r  r  r  r  r  r&   r'   rM   s   @r   r  r    s	    20d,""H*
I


4(<2Xh).)VJ
&#J?1f%N."", r   r  )*cythondeclareobjectr  r   r   r   r   r   Visitorr   r	   Errorsr   r   r
   ExprNoder   unspecified_typer   r,   rO   rT   rZ   r   r   r   r   r   r   r   r   r   r   r  r  r:  rH  cfuncrq  rs  r  rQ   r   r   <module>r     sb    &F&&66#66#6;
      1 1 1*I&& * j99:4  4 n  
K* K*\ ) )" "@~ $~ > * *B B	F 	Ft >&= &=R <) )& H8 H8V5+ 5 t/ tr   