
    X-Phr                    &   d Z ddlmZ ddlmZmZ ddlmZmZm	Z	m
Z
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3m4Z4m5Z5m6Z6m7Z7m8Z8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z?m@Z@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZU ddlVmWZWmXZXmYZYmZZZm[Z[m\Z\m]Z]m^Z^ ddl_m`Z` e ed           G d	 d
e`d                                           Za G d dea          Zb G d dea          Zcd.dZd G d dea          Ze G d dee          Zfd.dZg G d dee          Zhd.dZi G d dea          Zjd/d!Zk G d" d#ee          Zld0d'Zm G d( d)ee          Znd1d+Zo G d, d-ee          ZpdS )2zGeneric node traverser visitor    )annotations)
mypyc_attrtrait)OREVEAL_TYPE
AssertStmtAssertTypeExprAssignmentExprAssignmentStmt	AwaitExprBlock	BreakStmt	BytesExprCallExprCastExprClassDefComparisonExprComplexExprConditionalExprContinueStmt	DecoratorDelStmtDictExprDictionaryComprehensionEllipsisExprEnumCallExpr
ExpressionExpressionStmt	FloatExprForStmtFuncBaseFuncDefFuncItemGeneratorExpr
GlobalDeclIfStmtImport	ImportAll
ImportFrom	IndexExprIntExpr
LambdaExprListComprehensionListExpr	MatchStmt
MemberExprMypyFileNamedTupleExprNameExprNewTypeExprNodeNonlocalDeclOperatorAssignmentStmtOpExprOverloadedFuncDefParamSpecExprPassStmtPromoteExpr	RaiseStmt
ReturnStmt
RevealExprSetComprehensionSetExpr	SliceExprStarExprStrExpr	SuperExprTempNodeTryStmt	TupleExpr	TypeAliasTypeAliasExprTypeAliasStmtTypeApplicationTypedDictExprTypeVarExprTypeVarTupleExpr	UnaryExprVar	WhileStmtWithStmt	YieldExprYieldFromExpr)	AsPatternClassPatternMappingPattern	OrPatternSequencePatternSingletonPatternStarredPatternValuePattern)NodeVisitorT)allow_interpreted_subclassesc                     e Zd ZdZddZddZdd
ZddZddZddZ	ddZ
ddZddZddZddZddZddZdd Zdd"Zdd$Zdd&Zdd(Zdd*Zdd,Zdd.Zdd0Zdd2Zdd4Zdd6Zdd8Zdd:Zdd<Zdd>Z dd@Z!ddBZ"ddDZ#ddFZ$ddHZ%ddJZ&ddLZ'ddNZ(ddPZ)ddRZ*ddTZ+ddVZ,ddXZ-ddZZ.dd\Z/dd^Z0dd`Z1ddbZ2dddZ3ddfZ4ddhZ5ddjZ6ddlZ7ddnZ8ddpZ9ddrZ:ddtZ;ddvZ<ddxZ=ddzZ>dd|Z?dd~Z@ddZAddZBddZCddZDddZEddZFddZGddZHddZIddZJddZKddZLddZMddZNddZOddZPddZQddZRddZSddZTddZUd dZVddZWdS (  TraverserVisitora)  A parse tree visitor that traverses the parse tree during visiting.

    It does not perform any actions outside the traversal. Subclasses
    should override visit methods to perform actions during
    traversal. Calling the superclass method allows reusing the
    traversal implementation.
    returnNonec                    d S N selfs    N/var/www/html/test/jupyter/venv/lib/python3.11/site-packages/mypy/traverser.py__init__zTraverserVisitor.__init__p   s        or0   c               D    |j         D ]}|                    |            d S rd   )defsaccept)rg   rk   ds      rh   visit_mypy_filez TraverserVisitor.visit_mypy_fileu   s.     	 	AHHTNNNN	 	rj   blockr   c               D    |j         D ]}|                    |            d S rd   )bodyrn   )rg   rq   ss      rh   visit_blockzTraverserVisitor.visit_blocky   s.     	 	AHHTNNNN	 	rj   r"   c                   |j         L|j         D ] }|j        }||                    |            !|j         D ]}|                     |j                   |j                            |            d S rd   )	argumentsinitializerrn   	visit_varvariablers   )rg   rk   arginits       rh   
visit_funczTraverserVisitor.visit_func}   s}    ;"{ & &#KK%%%{ - -s|,,,,	drj   r!   c               0    |                      |           d S rd   r}   rg   rk   s     rh   visit_func_defzTraverserVisitor.visit_func_def       rj   r8   c                   |j         D ]}|                    |            |j        r|j                            |            d S d S rd   )itemsrn   implrg   rk   items      rh   visit_overloaded_func_defz*TraverserVisitor.visit_overloaded_func_def   sV    G 	 	DKK6 	 FMM$	  	 rj   r   c                  |j         D ]}|                    |            |j        D ]}|                    |            |j        r|j                            |            |j                                        D ]}|                    |            |j                            |            |j        r|j                            |            d S d S rd   )
decoratorsrn   base_type_exprs	metaclasskeywordsvaluesrm   analyzed)rg   rk   ro   basevs        rh   visit_class_defz TraverserVisitor.visit_class_def   s     	 	AHHTNNNN% 	 	DKK; 	%Kt$$$""$$ 	 	AHHTNNNN	d: 	$Jd#####	$ 	$rj   r   c                   |j                             |            |j                            |            |j        D ]}|                    |            d S rd   )funcrn   varr   )rg   rk   	decorators      rh   visit_decoratorz TraverserVisitor.visit_decorator   s\    	d	T 	# 	#IT""""	# 	#rj   r   c               :    |j                             |            d S rd   exprrn   r   s     rh   visit_expression_stmtz&TraverserVisitor.visit_expression_stmt       	drj   r
   c               x    |j                             |            |j        D ]}|                    |            d S rd   )rvaluern   lvalues)rg   rk   ls      rh   visit_assignment_stmtz&TraverserVisitor.visit_assignment_stmt   sB    	 	 	AHHTNNNN	 	rj   r6   c               n    |j                             |            |j                            |            d S rd   )r   rn   lvaluer   s     rh   visit_operator_assignment_stmtz/TraverserVisitor.visit_operator_assignment_stmt   s0    		rj   rQ   c                   |j                             |            |j                            |            |j        r|j                            |            d S d S rd   r   rn   rs   	else_bodyr   s     rh   visit_while_stmtz!TraverserVisitor.visit_while_stmt   sZ    	d	d; 	%Kt$$$$$	% 	%rj   r   c                   |j                             |            |j                            |            |j                            |            |j        r|j                            |            d S d S rd   )indexrn   r   rs   r   r   s     rh   visit_for_stmtzTraverserVisitor.visit_for_stmt   sn    	t	d	d; 	%Kt$$$$$	% 	%rj   r=   c               L    |j         |j                             |            d S d S rd   r   r   s     rh   visit_return_stmtz"TraverserVisitor.visit_return_stmt   ,    6FMM$ rj   r   c                   |j         |j                             |            |j        |j                            |            d S d S rd   )r   rn   msgr   s     rh   visit_assert_stmtz"TraverserVisitor.visit_assert_stmt   sH    6FMM$5ELL rj   r   c               L    |j         |j                             |            d S d S rd   r   r   s     rh   visit_del_stmtzTraverserVisitor.visit_del_stmt   r   rj   r%   c                   |j         D ]}|                    |            |j        D ]}|                    |            |j        r|j                            |            d S d S rd   r   )rg   rk   ebs       rh   visit_if_stmtzTraverserVisitor.visit_if_stmt   sv     	 	AHHTNNNN 	 	AHHTNNNN; 	%Kt$$$$$	% 	%rj   r<   c                   |j         |j                             |            |j        |j                            |            d S d S rd   )r   rn   	from_exprr   s     rh   visit_raise_stmtz!TraverserVisitor.visit_raise_stmt   sJ    6FMM$;"Kt$$$$$ #"rj   rF   c                  |j                             |            t          t          |j                            D ]F}|j        |         }||                    |            |j        |                             |            G|j        D ]}||                    |            |j        |j                            |            |j        |j                            |            d S d S rd   )	rs   rn   rangelentypeshandlersvarsr   finally_body)rg   rk   itpr   s        rh   visit_try_stmtzTraverserVisitor.visit_try_stmt   s    	ds17||$$ 	' 	'AB~		$JqM  &&&& 	 	A};"Kt$$$>%N!!$''''' &%rj   rR   c               
   t          t          |j                            D ]F}|j        |                             |            |j        |         }||                    |            G|j                            |            d S rd   )r   r   r   rn   targetrs   )rg   rk   r   targs       rh   visit_with_stmtz TraverserVisitor.visit_with_stmt   sy    s16{{## 	" 	"AF1IT"""8A;DD!!!	drj   r.   c               J   |j                             |            t          t          |j                            D ]f}|j        |                             |            |j        |         }||                    |            |j        |                             |            gd S rd   )subjectrn   r   r   patternsguardsbodies)rg   rk   r   guards       rh   visit_match_stmtz!TraverserVisitor.visit_match_stmt   s    		s1:'' 	% 	%AJqM  &&&HQKE T"""HQKt$$$$	% 	%rj   rJ   c               n    |j                             |            |j                            |            d S rd   )namern   valuer   s     rh   visit_type_alias_stmtz&TraverserVisitor.visit_type_alias_stmt   s0    	d	trj   r/   c               :    |j                             |            d S rd   r   r   s     rh   visit_member_exprz"TraverserVisitor.visit_member_expr   r   rj   rT   c               :    |j                             |            d S rd   r   r   s     rh   visit_yield_from_exprz&TraverserVisitor.visit_yield_from_expr  r   rj   rS   c               L    |j         r|j                             |            d S d S rd   r   r   s     rh   visit_yield_exprz!TraverserVisitor.visit_yield_expr  s0    6 	 FMM$	  	 rj   r   c                   |j                             |            |j        D ]}|                    |            |j        r|j                            |            d S d S rd   )calleern   argsr   rg   rk   as      rh   visit_call_exprz TraverserVisitor.visit_call_expr  sh    	 	 	AHHTNNNN: 	$Jd#####	$ 	$rj   r7   c                   |j                             |            |j                            |            |j        |j                            |            d S d S rd   )leftrn   rightr   r   s     rh   visit_op_exprzTraverserVisitor.visit_op_expr  sV    	d	t:!Jd##### "!rj   r   c               D    |j         D ]}|                    |            d S rd   )operandsrn   )rg   rk   operands      rh   visit_comparison_exprz&TraverserVisitor.visit_comparison_expr  s2    z 	! 	!GNN4    	! 	!rj   rA   c                   |j         |j                             |            |j        |j                            |            |j        |j                            |            d S d S rd   )begin_indexrn   	end_indexstrider   s     rh   visit_slice_exprz!TraverserVisitor.visit_slice_expr  sh    =$M  &&&;"Kt$$$8HOOD!!!!!  rj   r   c               :    |j                             |            d S rd   r   r   s     rh   visit_cast_exprz TraverserVisitor.visit_cast_expr!  r   rj   r   c               :    |j                             |            d S rd   r   r   s     rh   visit_assert_type_exprz'TraverserVisitor.visit_assert_type_expr$  r   rj   r>   c               p    |j         t          k    r%|j        J |j                            |            d S d S rd   )kindr   r   rn   r   s     rh   visit_reveal_exprz"TraverserVisitor.visit_reveal_expr'  s>    6[  6%%%FMM$ Drj   r	   c               n    |j                             |            |j                            |            d S rd   )r   rn   r   r   s     rh   visit_assignment_exprz&TraverserVisitor.visit_assignment_expr/  s0    		trj   rO   c               :    |j                             |            d S rd   r   r   s     rh   visit_unary_exprz!TraverserVisitor.visit_unary_expr3  r   rj   r-   c               D    |j         D ]}|                    |            d S rd   r   rn   r   s      rh   visit_list_exprz TraverserVisitor.visit_list_expr6  2    G 	 	DKK	 	rj   rG   c               D    |j         D ]}|                    |            d S rd   r   r   s      rh   visit_tuple_exprz!TraverserVisitor.visit_tuple_expr:  r   rj   r   c               x    |j         D ]1\  }}||                    |            |                    |            2d S rd   r   )rg   rk   kr   s       rh   visit_dict_exprz TraverserVisitor.visit_dict_expr>  sF    G 	 	DAq}HHTNNNN	 	rj   r@   c               D    |j         D ]}|                    |            d S rd   r   r   s      rh   visit_set_exprzTraverserVisitor.visit_set_exprD  r   rj   r)   c                   |j                             |            |j                            |            |j        r|j                            |            d S d S rd   )r   rn   r   r   r   s     rh   visit_index_exprz!TraverserVisitor.visit_index_exprH  sZ    	d	t: 	$Jd#####	$ 	$rj   r#   c                  t          |j        |j        |j                  D ]J\  }}}|                    |            |                    |            |D ]}|                    |            K|j                            |            d S rd   )zipindices	sequences	condlistsrn   	left_exprrg   rk   r   sequence
conditionsconds         rh   visit_generator_exprz%TraverserVisitor.visit_generator_exprN  s    +.qy!+q{+S+S 	" 	"'E8ZOOD!!!LL" " "D!!!!"	4     rj   r   c               D   t          |j        |j        |j                  D ]J\  }}}|                    |            |                    |            |D ]}|                    |            K|j                            |            |j                            |            d S rd   )r  r  r  r	  rn   keyr   r  s         rh   visit_dictionary_comprehensionz/TraverserVisitor.visit_dictionary_comprehensionV  s    +.qy!+q{+S+S 	" 	"'E8ZOOD!!!LL" " "D!!!!"	T	trj   r,   c               :    |j                             |            d S rd   	generatorrn   r   s     rh   visit_list_comprehensionz)TraverserVisitor.visit_list_comprehension_      	4     rj   r?   c               :    |j                             |            d S rd   r  r   s     rh   visit_set_comprehensionz(TraverserVisitor.visit_set_comprehensionb  r  rj   r   c                   |j                             |            |j                            |            |j                            |            d S rd   )r  rn   if_expr	else_exprr   s     rh   visit_conditional_exprz'TraverserVisitor.visit_conditional_expre  sH    	d			4     rj   rK   c               :    |j                             |            d S rd   r   r   s     rh   visit_type_applicationz'TraverserVisitor.visit_type_applicationj  r   rj   r+   c               0    |                      |           d S rd   r   r   s     rh   visit_lambda_exprz"TraverserVisitor.visit_lambda_exprm  r   rj   rB   c               :    |j                             |            d S rd   r   r   s     rh   visit_star_exprz TraverserVisitor.visit_star_exprp  r   rj   r   c               :    |j                             |            d S rd   r   r   s     rh   visit_await_exprz!TraverserVisitor.visit_await_exprs  r   rj   rD   c               :    |j                             |            d S rd   )callrn   r   s     rh   visit_super_exprz!TraverserVisitor.visit_super_exprv  r   rj   rU   c                   |j         |j                             |            |j        |j                            |            d S d S rd   )patternrn   r   r   s     rh   visit_as_patternz!TraverserVisitor.visit_as_patterny  sJ    9 IT"""6FMM$ rj   rX   c               D    |j         D ]}|                    |            d S rd   r   rn   rg   rk   ps      rh   visit_or_patternz!TraverserVisitor.visit_or_pattern  .     	 	AHHTNNNN	 	rj   r\   c               :    |j                             |            d S rd   r   r   s     rh   visit_value_patternz$TraverserVisitor.visit_value_pattern  r   rj   rY   c               D    |j         D ]}|                    |            d S rd   r-  r.  s      rh   visit_sequence_patternz'TraverserVisitor.visit_sequence_pattern  r1  rj   r[   c               L    |j         |j                             |            d S d S rd   )capturern   r   s     rh   visit_starred_patternz&TraverserVisitor.visit_starred_pattern  s.    9 IT""""" ! rj   rW   c                   |j         D ]}|                    |            |j        D ]}|                    |            |j        |j                            |            d S d S rd   )keysrn   r   rest)rg   rk   r  r   s       rh   visit_mapping_patternz&TraverserVisitor.visit_mapping_pattern  sx    6 	 	CJJtX 	 	ELL6FMM$ rj   rV   c                   |j                             |            |j        D ]}|                    |            |j        D ]}|                    |            d S rd   )	class_refrn   positionalskeyword_values)rg   rk   r/  r   s       rh   visit_class_patternz$TraverserVisitor.visit_class_pattern  sg    	4    	 	AHHTNNNN! 	 	AHHTNNNN	 	rj   r&   c               D    |j         D ]}|                    |            d S rd   assignmentsrn   r   s      rh   visit_importzTraverserVisitor.visit_import  .     	 	AHHTNNNN	 	rj   r(   c               D    |j         D ]}|                    |            d S rd   rC  r   s      rh   visit_import_fromz"TraverserVisitor.visit_import_from  rF  rj   r2   c                   d S rd   re   r   s     rh   visit_name_exprz TraverserVisitor.visit_name_expr      trj   rC   c                   d S rd   re   r   s     rh   visit_str_exprzTraverserVisitor.visit_str_expr  rK  rj   r*   c                   d S rd   re   r   s     rh   visit_int_exprzTraverserVisitor.visit_int_expr  rK  rj   r   c                   d S rd   re   r   s     rh   visit_float_exprz!TraverserVisitor.visit_float_expr  rK  rj   r   c                   d S rd   re   r   s     rh   visit_bytes_exprz!TraverserVisitor.visit_bytes_expr  rK  rj   r   c                   d S rd   re   r   s     rh   visit_ellipsiszTraverserVisitor.visit_ellipsis  rK  rj   rP   c                   d S rd   re   r   s     rh   ry   zTraverserVisitor.visit_var  rK  rj   r   c                   d S rd   re   r   s     rh   visit_continue_stmtz$TraverserVisitor.visit_continue_stmt  rK  rj   r:   c                   d S rd   re   r   s     rh   visit_pass_stmtz TraverserVisitor.visit_pass_stmt  rK  rj   r   c                   d S rd   re   r   s     rh   visit_break_stmtz!TraverserVisitor.visit_break_stmt  rK  rj   rE   c                   d S rd   re   r   s     rh   visit_temp_nodez TraverserVisitor.visit_temp_node  rK  rj   r5   c                   d S rd   re   r   s     rh   visit_nonlocal_declz$TraverserVisitor.visit_nonlocal_decl  rK  rj   r$   c                   d S rd   re   r   s     rh   visit_global_declz"TraverserVisitor.visit_global_decl  rK  rj   r'   c                   d S rd   re   r   s     rh   visit_import_allz!TraverserVisitor.visit_import_all  rK  rj   rM   c                   d S rd   re   r   s     rh   visit_type_var_exprz$TraverserVisitor.visit_type_var_expr  rK  rj   r9   c                   d S rd   re   r   s     rh   visit_paramspec_exprz%TraverserVisitor.visit_paramspec_expr  rK  rj   rN   c                   d S rd   re   r   s     rh   visit_type_var_tuple_exprz*TraverserVisitor.visit_type_var_tuple_expr  rK  rj   rI   c                   d S rd   re   r   s     rh   visit_type_alias_exprz&TraverserVisitor.visit_type_alias_expr  rK  rj   rH   c                   d S rd   re   r   s     rh   visit_type_aliasz!TraverserVisitor.visit_type_alias  rK  rj   r1   c                   d S rd   re   r   s     rh   visit_namedtuple_exprz&TraverserVisitor.visit_namedtuple_expr  rK  rj   rL   c                   d S rd   re   r   s     rh   visit_typeddict_exprz%TraverserVisitor.visit_typeddict_expr  rK  rj   r3   c                   d S rd   re   r   s     rh   visit_newtype_exprz#TraverserVisitor.visit_newtype_expr  rK  rj   r;   c                   d S rd   re   r   s     rh   visit__promote_exprz$TraverserVisitor.visit__promote_expr  rK  rj   r   c                   d S rd   re   r   s     rh   visit_complex_exprz#TraverserVisitor.visit_complex_expr  rK  rj   r   c                   d S rd   re   r   s     rh   visit_enum_call_exprz%TraverserVisitor.visit_enum_call_expr  rK  rj   rZ   c                   d S rd   re   r   s     rh   visit_singleton_patternz(TraverserVisitor.visit_singleton_pattern  rK  rj   Nra   rb   rk   r0   ra   rb   rq   r   ra   rb   )rk   r"   ra   rb   rk   r!   ra   rb   rk   r8   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   r
   ra   rb   rk   r6   ra   rb   rk   rQ   ra   rb   rk   r   ra   rb   rk   r=   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   r%   ra   rb   rk   r<   ra   rb   rk   rF   ra   rb   rk   rR   ra   rb   rk   r.   ra   rb   )rk   rJ   ra   rb   rk   r/   ra   rb   rk   rT   ra   rb   rk   rS   ra   rb   rk   r   ra   rb   rk   r7   ra   rb   rk   r   ra   rb   rk   rA   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   r>   ra   rb   rk   r	   ra   rb   rk   rO   ra   rb   rk   r-   ra   rb   rk   rG   ra   rb   rk   r   ra   rb   rk   r@   ra   rb   rk   r)   ra   rb   rk   r#   ra   rb   rk   r   ra   rb   rk   r,   ra   rb   rk   r?   ra   rb   rk   r   ra   rb   rk   rK   ra   rb   rk   r+   ra   rb   rk   rB   ra   rb   rk   r   ra   rb   rk   rD   ra   rb   rk   rU   ra   rb   rk   rX   ra   rb   rk   r\   ra   rb   rk   rY   ra   rb   rk   r[   ra   rb   rk   rW   ra   rb   rk   rV   ra   rb   rk   r&   ra   rb   rk   r(   ra   rb   rk   r2   ra   rb   rk   rC   ra   rb   rk   r*   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   r   ra   rb   )rk   rP   ra   rb   rk   r   ra   rb   rk   r:   ra   rb   rk   r   ra   rb   )rk   rE   ra   rb   rk   r5   ra   rb   rk   r$   ra   rb   rk   r'   ra   rb   rk   rM   ra   rb   rk   r9   ra   rb   rk   rN   ra   rb   rk   rI   ra   rb   rk   rH   ra   rb   rk   r1   ra   rb   rk   rL   ra   rb   rk   r3   ra   rb   )rk   r;   ra   rb   rk   r   ra   rb   rk   r   ra   rb   rk   rZ   ra   rb   )X__name__
__module____qualname____doc__ri   rp   ru   r}   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r  r!  r#  r%  r(  r+  r0  r3  r5  r8  r<  rA  rE  rH  rJ  rM  rO  rQ  rS  rU  ry   rX  rZ  r\  r^  r`  rb  rd  rf  rh  rj  rl  rn  rp  rr  rt  rv  rx  rz  r|  re   rj   rh   r`   r`   e   s           
      
 
 
 
          $ $ $ $# # # #      
   % % % %% % % %                 % % % %% % % %( ( ( (   % % % %                $ $ $ $$ $ $ $! ! ! !" " " "                           $ $ $ $! ! ! !   ! ! ! !! ! ! !! ! ! !
                               # # # #                
                                                                                rj   r`   Nc                      e Zd ZdZddZd fd	Zd fdZd fdZd fdZd fdZ	d fdZ
d fdZd fdZd fdZd fdZd fdZd fd Zd fd"Zd fd$Zd fd&Zd fd(Zd fd*Zd fd,Zd fd.Zd fd0Zd fd2Zd fd4Zd fd6Zd fd8Zd fd:Zd fd<Zd fd>Zd fd@Z d fdBZ!dÈ fdDZ"dĈ fdFZ#dň fdHZ$dƈ fdJZ%dǈ fdLZ&dȈ fdNZ'dɈ fdPZ(dʈ fdRZ)dˈ fdTZ*d̈ fdVZ+d͈ fdXZ,dΈ fdZZ-dψ fd\Z.dЈ fd^Z/dш fd`Z0d҈ fdbZ1dӈ fddZ2dԈ fdfZ3dՈ fdhZ4dֈ fdjZ5d׈ fdlZ6d؈ fdnZ7dو fdpZ8dڈ fdrZ9dۈ fdtZ:d܈ fdvZ;d݈ fdxZ<dވ fdzZ=d߈ fd|Z>d fd~Z?d fdZ@d fdZAd fdZBd fdZCd fdZDd fdZEd fdZFd fdZGd fdZHd fdZId fdZJd fdZKd fdZLd fdZMd fdZNd fdZOd fdZPd fdZQd fdZR xZSS )ExtendedTraverserVisitora\  This is a more flexible traverser.

    In addition to the base traverser it:
        * has visit_ methods for leaf nodes
        * has common method that is called for all nodes
        * allows to skip recursing into a node

    Note that this traverser still doesn't visit some internal
    mypy constructs like _promote expression and Var.
    rk   r4   ra   boolc                    dS NTre   r   s     rh   visitzExtendedTraverserVisitor.visit  s    trj   r0   rb   c               x    |                      |          sd S t                                          |           d S rd   )r  superrp   rg   rk   	__class__s     rh   rp   z(ExtendedTraverserVisitor.visit_mypy_file  8    zz!}} 	F"""""rj   r&   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rE  r  s     rh   rE  z%ExtendedTraverserVisitor.visit_import  s8    zz!}} 	FQrj   r(   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rH  r  s     rh   rH  z*ExtendedTraverserVisitor.visit_import_from  8    zz!}} 	F!!!$$$$$rj   r'   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rd  r  s     rh   rd  z)ExtendedTraverserVisitor.visit_import_all  8    zz!}} 	F  #####rj   r!   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z'ExtendedTraverserVisitor.visit_func_def  8    zz!}} 	Fq!!!!!rj   r8   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z2ExtendedTraverserVisitor.visit_overloaded_func_def"  8    zz!}} 	F))!,,,,,rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_class_def'  r  rj   r$   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rb  r  s     rh   rb  z*ExtendedTraverserVisitor.visit_global_decl,  r  rj   r5   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r`  r  s     rh   r`  z,ExtendedTraverserVisitor.visit_nonlocal_decl1  8    zz!}} 	F##A&&&&&rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_decorator6  r  rj   rH   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rn  r  s     rh   rn  z)ExtendedTraverserVisitor.visit_type_alias;  r  rj   rq   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  ru   )rg   rq   r  s     rh   ru   z$ExtendedTraverserVisitor.visit_blockB  s:    zz%   	FE"""""rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z.ExtendedTraverserVisitor.visit_expression_stmtG  8    zz!}} 	F%%a(((((rj   r
   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z.ExtendedTraverserVisitor.visit_assignment_stmtL  r  rj   r6   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z7ExtendedTraverserVisitor.visit_operator_assignment_stmtQ  8    zz!}} 	F..q11111rj   rQ   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_while_stmtV  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z'ExtendedTraverserVisitor.visit_for_stmt[  r  rj   r=   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z*ExtendedTraverserVisitor.visit_return_stmt`  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z*ExtendedTraverserVisitor.visit_assert_stmte  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z'ExtendedTraverserVisitor.visit_del_stmtj  r  rj   r%   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z&ExtendedTraverserVisitor.visit_if_stmto  8    zz!}} 	Fa     rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r\  r  s     rh   r\  z)ExtendedTraverserVisitor.visit_break_stmtt  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rX  r  s     rh   rX  z,ExtendedTraverserVisitor.visit_continue_stmty  r  rj   r:   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rZ  r  s     rh   rZ  z(ExtendedTraverserVisitor.visit_pass_stmt~  r  rj   r<   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_raise_stmt  r  rj   rF   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z'ExtendedTraverserVisitor.visit_try_stmt  r  rj   rR   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_with_stmt  r  rj   r.   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_match_stmt  r  rj   r*   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rO  r  s     rh   rO  z'ExtendedTraverserVisitor.visit_int_expr  r  rj   rC   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rM  r  s     rh   rM  z'ExtendedTraverserVisitor.visit_str_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rS  r  s     rh   rS  z)ExtendedTraverserVisitor.visit_bytes_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rQ  r  s     rh   rQ  z)ExtendedTraverserVisitor.visit_float_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rx  r  s     rh   rx  z+ExtendedTraverserVisitor.visit_complex_expr  8    zz!}} 	F""1%%%%%rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rU  r  s     rh   rU  z'ExtendedTraverserVisitor.visit_ellipsis  r  rj   rB   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r#  r  s     rh   r#  z(ExtendedTraverserVisitor.visit_star_expr  r  rj   r2   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rJ  r  s     rh   rJ  z(ExtendedTraverserVisitor.visit_name_expr  r  rj   r/   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z*ExtendedTraverserVisitor.visit_member_expr  r  rj   rT   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z.ExtendedTraverserVisitor.visit_yield_from_expr  r  rj   rS   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_yield_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_call_expr  r  rj   r7   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z&ExtendedTraverserVisitor.visit_op_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z.ExtendedTraverserVisitor.visit_comparison_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_cast_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z/ExtendedTraverserVisitor.visit_assert_type_expr  8    zz!}} 	F&&q)))))rj   r>   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z*ExtendedTraverserVisitor.visit_reveal_expr  r  rj   rD   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r(  r  s     rh   r(  z)ExtendedTraverserVisitor.visit_super_expr  r  rj   r	   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z.ExtendedTraverserVisitor.visit_assignment_expr  r  rj   rO   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_unary_expr  r  rj   r-   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_list_expr  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z(ExtendedTraverserVisitor.visit_dict_expr  r  rj   rG   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_tuple_expr  r  rj   r@   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z'ExtendedTraverserVisitor.visit_set_expr  r  rj   r)   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z)ExtendedTraverserVisitor.visit_index_expr  r  rj   rK   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z/ExtendedTraverserVisitor.visit_type_application  r  rj   r+   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r!  r  s     rh   r!  z*ExtendedTraverserVisitor.visit_lambda_expr  r  rj   r,   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z1ExtendedTraverserVisitor.visit_list_comprehension   s8    zz!}} 	F((+++++rj   r?   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z0ExtendedTraverserVisitor.visit_set_comprehension%  8    zz!}} 	F''*****rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z7ExtendedTraverserVisitor.visit_dictionary_comprehension*  r  rj   r#   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z-ExtendedTraverserVisitor.visit_generator_expr/  8    zz!}} 	F$$Q'''''rj   rA   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r   r  s     rh   r   z)ExtendedTraverserVisitor.visit_slice_expr4  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r  r  s     rh   r  z/ExtendedTraverserVisitor.visit_conditional_expr9  r  rj   rM   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rf  r  s     rh   rf  z,ExtendedTraverserVisitor.visit_type_var_expr>  r  rj   r9   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rh  r  s     rh   rh  z-ExtendedTraverserVisitor.visit_paramspec_exprC  r   rj   rN   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rj  r  s     rh   rj  z2ExtendedTraverserVisitor.visit_type_var_tuple_exprH  r  rj   rI   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rl  r  s     rh   rl  z.ExtendedTraverserVisitor.visit_type_alias_exprM  r  rj   r1   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rp  r  s     rh   rp  z.ExtendedTraverserVisitor.visit_namedtuple_exprR  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rz  r  s     rh   rz  z-ExtendedTraverserVisitor.visit_enum_call_exprW  r   rj   rL   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rr  r  s     rh   rr  z-ExtendedTraverserVisitor.visit_typeddict_expr\  r   rj   r3   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rt  r  s     rh   rt  z+ExtendedTraverserVisitor.visit_newtype_expra  r  rj   r   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r%  r  s     rh   r%  z)ExtendedTraverserVisitor.visit_await_exprf  r  rj   rU   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r+  r  s     rh   r+  z)ExtendedTraverserVisitor.visit_as_patternm  r  rj   rX   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r0  r  s     rh   r0  z)ExtendedTraverserVisitor.visit_or_patternr  r  rj   r\   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r3  r  s     rh   r3  z,ExtendedTraverserVisitor.visit_value_patternw  r  rj   rZ   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r|  r  s     rh   r|  z0ExtendedTraverserVisitor.visit_singleton_pattern|  r  rj   rY   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r5  r  s     rh   r5  z/ExtendedTraverserVisitor.visit_sequence_pattern  r  rj   r[   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r8  r  s     rh   r8  z.ExtendedTraverserVisitor.visit_starred_pattern  r  rj   rW   c               x    |                      |          sd S t                                          |           d S rd   )r  r  r<  r  s     rh   r<  z.ExtendedTraverserVisitor.visit_mapping_pattern  r  rj   rV   c               x    |                      |          sd S t                                          |           d S rd   )r  r  rA  r  s     rh   rA  z,ExtendedTraverserVisitor.visit_class_pattern  r  rj   )rk   r4   ra   r  r~  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  )Tr  r  r  r  r  rp   rE  rH  rd  r   r   r   rb  r`  r   rn  ru   r   r   r   r   r   r   r   r   r   r\  rX  rZ  r   r   r   r   rO  rM  rS  rQ  rx  rU  r#  rJ  r   r   r   r   r   r   r   r   r   r(  r   r   r   r   r   r  r  r  r!  r  r  r  r  r   r  rf  rh  rj  rl  rp  rz  rr  rt  r%  r+  r0  r3  r|  r5  r8  r<  rA  __classcell__r  s   @rh   r  r    sa	       	 	   # # # # # #           
% % % % % %
$ $ $ $ $ $" " " " " "
- - - - - -
# # # # # #
% % % % % %
' ' ' ' ' '
# # # # # #
$ $ $ $ $ $# # # # # #
) ) ) ) ) )
) ) ) ) ) )
2 2 2 2 2 2
$ $ $ $ $ $
" " " " " "
% % % % % %
% % % % % %
" " " " " "
! ! ! ! ! !
$ $ $ $ $ $
' ' ' ' ' '
# # # # # #
$ $ $ $ $ $
" " " " " "
# # # # # #
$ $ $ $ $ $" " " " " "
" " " " " "
$ $ $ $ $ $
$ $ $ $ $ $
& & & & & &
" " " " " "
# # # # # #
# # # # # #
% % % % % %
) ) ) ) ) )
$ $ $ $ $ $
# # # # # #
! ! ! ! ! !
) ) ) ) ) )
# # # # # #
* * * * * *
% % % % % %
$ $ $ $ $ $
) ) ) ) ) )
$ $ $ $ $ $
# # # # # #
# # # # # #
$ $ $ $ $ $
" " " " " "
$ $ $ $ $ $
* * * * * *
% % % % % %
, , , , , ,
+ + + + + +
2 2 2 2 2 2
( ( ( ( ( (
$ $ $ $ $ $
* * * * * *
' ' ' ' ' '
( ( ( ( ( (
- - - - - -
) ) ) ) ) )
) ) ) ) ) )
( ( ( ( ( (
( ( ( ( ( (
& & & & & &
$ $ $ $ $ $$ $ $ $ $ $
$ $ $ $ $ $
' ' ' ' ' '
+ + + + + +
* * * * * *
) ) ) ) ) )
) ) ) ) ) )
' ' ' ' ' ' ' ' ' 'rj   r  c                      e Zd ZddZd	dZdS )
ReturnSeekerra   rb   c                    d| _         d S NFfoundrf   s    rh   ri   zReturnSeeker.__init__  s    


rj   rk   r=   c                z    |j         *t          |j         t                    r|j         j        dk    rd S d| _        d S )Nrb   T)r   
isinstancer2   r   r;  r   s     rh   r   zReturnSeeker.visit_return_stmt  s7    6>Z99>afkV>S>SF


rj   Nr}  r  )r  r  r  ri   r   re   rj   rh   r7  r7    s<                rj   r7  fdefr    ra   r  c                V    t                      }|                     |           |j        S )znFind if a function has a non-trivial return statement.

    Plain 'return' and 'return None' don't count.
    )r7  rn   r;  r>  seekers     rh   has_return_statementrB    s'    
 ^^FKK<rj   c                  (     e Zd ZddZd fdZ xZS )	FuncCollectorBasera   rb   c                    d| _         d S r9  )inside_funcrf   s    rh   ri   zFuncCollectorBase.__init__  s     rj   defnr!   c                x    | j         s1d| _         t                                          |           d| _         d S d S NTF)rF  r  r   )rg   rG  r  s     rh   r   z FuncCollectorBase.visit_func_def  sF     	%#DGG""4((($D	% 	%rj   r}  )rG  r!   ra   rb   )r  r  r  ri   r   r4  r5  s   @rh   rD  rD    sQ        ! ! ! !% % % % % % % % % %rj   rD  c                  (     e Zd Zd fdZddZ xZS )	YieldSeekerra   rb   c                V    t                                                       d| _        d S r9  r  ri   r;  rg   r  s    rh   ri   zYieldSeeker.__init__  $    


rj   rk   rS   c                    d| _         d S r  r:  r   s     rh   r   zYieldSeeker.visit_yield_expr      


rj   r}  r  )r  r  r  ri   r   r4  r5  s   @rh   rK  rK    Q                    rj   rK  c                V    t                      }|                     |           |j        S rd   )rK  rn   r;  r@  s     rh   has_yield_expressionrT    %    ]]FKK<rj   c                  (     e Zd Zd fdZddZ xZS )	YieldFromSeekerra   rb   c                V    t                                                       d| _        d S r9  rM  rN  s    rh   ri   zYieldFromSeeker.__init__  rO  rj   rk   rT   c                    d| _         d S r  r:  r   s     rh   r   z%YieldFromSeeker.visit_yield_from_expr  rQ  rj   r}  r  )r  r  r  ri   r   r4  r5  s   @rh   rW  rW    rR  rj   rW  c                V    t                      }|                     |           |j        S rd   )rW  rn   r;  r@  s     rh   has_yield_from_expressionr[    s'    FKK<rj   c                  (     e Zd Zd fdZddZ xZS )	AwaitSeekerra   rb   c                V    t                                                       d| _        d S r9  rM  rN  s    rh   ri   zAwaitSeeker.__init__  rO  rj   rk   r   c                    d| _         d S r  r:  r   s     rh   r%  zAwaitSeeker.visit_await_expr  rQ  rj   r}  r  )r  r  r  ri   r%  r4  r5  s   @rh   r]  r]    rR  rj   r]  r   r   c                V    t                      }|                     |           |j        S rd   )r]  rn   r;  )r   rA  s     rh   has_await_expressionra    rU  rj   c                  (     e Zd Zd fdZddZ xZS )	ReturnCollectorra   rb   c                V    t                                                       g | _        d S rd   )r  ri   return_statementsrN  s    rh   ri   zReturnCollector.__init__  s'    35rj   stmtr=   c                :    | j                             |           d S rd   )re  append)rg   rf  s     rh   r   z!ReturnCollector.visit_return_stmt  s    %%d+++++rj   r}  )rf  r=   ra   rb   )r  r  r  ri   r   r4  r5  s   @rh   rc  rc    sQ        6 6 6 6 6 6, , , , , , , ,rj   rc  noder4   list[ReturnStmt]c                V    t                      }|                     |           |j        S rd   )rc  rn   re  ri  r   s     rh   all_return_statementsrm    s%    AKKNNNrj   c                  4     e Zd Zd
 fdZd fdZdd	Z xZS )YieldCollectorra   rb   c                d    t                                                       d| _        g | _        d S r9  )r  ri   in_assignmentyield_expressionsrN  s    rh   ri   zYieldCollector.__init__  s/    "?Arj   rf  r
   c                f    d| _         t                                          |           d| _         d S rI  rq  r  r   rg   rf  r  s     rh   r   z$YieldCollector.visit_assignment_stmt  1    !%%d+++"rj   r   rS   c                H    | j                             || j        f           d S rd   )rr  rh  rq  rg   r   s     rh   r   zYieldCollector.visit_yield_expr  s'    %%tT-?&@AAAAArj   r}  rf  r
   ra   rb   )r   rS   ra   rb   )r  r  r  ri   r   r   r4  r5  s   @rh   ro  ro    s}        B B B B B B
# # # # # #
B B B B B B B Brj   ro  list[tuple[YieldExpr, bool]]c                V    t                      }|                     |           |j        S rd   )ro  rn   rr  rl  s     rh   all_yield_expressionsr|     s%    AKKNNNrj   c                  4     e Zd Zd
 fdZd fdZdd	Z xZS )YieldFromCollectorra   rb   c                d    t                                                       d| _        g | _        d S r9  )r  ri   rq  yield_from_expressionsrN  s    rh   ri   zYieldFromCollector.__init__  s/    "HJ###rj   rf  r
   c                f    d| _         t                                          |           d| _         d S rI  rt  ru  s     rh   r   z(YieldFromCollector.visit_assignment_stmt  rv  rj   r   rT   c                H    | j                             || j        f           d S rd   )r  rh  rq  rx  s     rh   r   z(YieldFromCollector.visit_yield_from_expr  s'    #**D$2D+EFFFFFrj   r}  ry  )r   rT   ra   rb   )r  r  r  ri   r   r   r4  r5  s   @rh   r~  r~    s}        K K K K K K
# # # # # #
G G G G G G G Grj   r~  )r>  r    ra   r  )r   r   ra   r  )ri  r4   ra   rj  )ri  r4   ra   rz  )qr  
__future__r   mypy_extensionsr   r   
mypy.nodesr   r   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   mypy.patternsrU   rV   rW   rX   rY   rZ   r[   r\   mypy.visitorr]   r`   r  r7  rB  rD  rK  rT  rW  r[  r]  ra  rc  rm  ro  r|  r~  re   rj   rh   <module>r     s   $ $ " " " " " " - - - - - - - -P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P P Pb	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 % $ $ $ $ $ ...K K K K K{4( K K /. K\^' ^' ^' ^' ^'/ ^' ^' ^'B    #      % % % % %( % % %    #          '          "      , , , , ,' , , ,   B B B B B& B B B   G G G G G* G G G G Grj   