Ë
    pPêjØT  ã                  óÆ  — U d Z ddlmZ ddlmZmZ ddlmZ ddlm	Z	 ddl
mZmZmZ ddlZddlmZ dd	lmZ dd
lmZmZmZmZmZ ddlmZ ddlmZ ddlm Z! ddl"m#Z#m$Z$m%Z% ddl&m'Z'm(Z(m)Z)m*Z* ddl+m,Z, ddl-m.Z. ddl/m0Z0 erddl1m2Z2m3Z3 e4e5e6eg df   f      Z7de8d<   dZ9de8d<   dZ:de8d<   g d¢Z;de8d<   d.d„Z<d/d„Z=	 	 	 	 	 	 	 	 d0d„Z>d1d „Z?d2d!„Z@d1d"„ZA	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d3d#„ZBe5eCeez  ez  ez  edz  f   ZDde8d$<   e5eCeCeez  ez  ez  edz  f   ZEde8d%<   d4d&„ZF	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d5d'„ZGd.d(„ZH	 	 	 	 	 	 	 	 d6d)„ZId.d*„ZJ	 	 	 	 	 	 	 	 	 	 	 	 	 	 d7d+„ZKd.d,„ZLd8d-„ZMy)9aè  Top-level logic for the semantic analyzer.

The semantic analyzer binds names, resolves imports, detects various
special constructs that don't have dedicated AST nodes after parse
(such as 'cast' which looks like a call), populates symbol tables, and
performs various simple consistency checks.

Semantic analysis of each SCC (strongly connected component; import
cycle) is performed in one unit. Each module is analyzed as multiple
separate *targets*; the module top level is one target and each function
is a target. Nested functions are not separate targets, however. This is
mostly identical to targets used by mypy daemon (but classes aren't
targets in semantic analysis).

We first analyze each module top level in an SCC. If we encounter some
names that we can't bind because the target of the name may not have
been processed yet, we *defer* the current target for further
processing. Deferred targets will be analyzed additional times until
everything can be bound, or we reach a maximum number of iterations.

We keep track of a set of incomplete namespaces, i.e. namespaces that we
haven't finished populating yet. References to these namespaces cause a
deferral if they can't be satisfied. Initially every module in the SCC
will be incomplete.
é    )Úannotations)ÚCallableÚIterator)Únullcontext)Úgroupby)ÚTYPE_CHECKINGÚFinalÚ	TypeAliasN)ÚFineGrainedDeferredNode)ÚErrors)Ú	DecoratorÚFuncDefÚMypyFileÚOverloadedFuncDefÚTypeInfo)ÚOptions)ÚClassDefContext)Údataclasses)ÚSemanticAnalyzerÚapply_semantic_analyzer_patchesÚ#remove_imported_names_from_symtable)Úadd_type_promotionÚcalculate_class_abstract_statusÚcalculate_class_varsÚcheck_protocol_status)Ú#infer_decorator_signature_if_simple)Úfind_dataclass_transform_spec)ÚTypeArgumentAnalyzer)ÚGraphÚStateÚ
_TypeAliasÚPatchesé   r	   ÚMAX_ITERATIONSé   ÚCORE_WARMUP)ÚtypingÚ_collections_abcÚbuiltinsÚabcÚcollectionszcollections.abcÚcore_modulesc                óš  — g }t        | ||«       t        | ||«       t        |«       t        | ||«       t	        | ||«       t        | ||«       t        | |«       d|v rt        | d   «       t        |«      dk\  rQ| |d      j                  }|j                  }|j                  |j                  |j                  |j                  ¬«       yy)zèPerform semantic analysis for all modules in a SCC (import cycle).

    Assume that reachability analysis has already been performed.

    The scc will be processed roughly in the order the modules are included
    in the list.
    r)   é   r   )Útype_expression_parse_countÚ(type_expression_full_parse_success_countÚ(type_expression_full_parse_failure_countN)Úprocess_top_levelsÚprocess_functionsr   Úapply_class_plugin_hooksÚcheck_type_argumentsÚcalculate_class_propertiesÚcheck_blockersÚcleanup_builtin_sccÚlenÚmanagerÚsemantic_analyzerÚ	add_statsr/   r0   r1   )ÚgraphÚsccÚerrorsÚpatchesr:   Úanalyzers         úV/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/semanal_main.pyÚsemantic_analysis_for_sccrC   O   sÎ   € ð €Gô �u˜c 7Ô+Ü�e˜S 'Ô*ô $ GÔ,ä˜U C¨Ô0ä˜  VÔ,Ü˜u c¨6Ô2Ü�5˜#Ôà�SÑÜ˜E *Ñ-Ô.ô ˆ3ƒx�1‚}à˜˜A™‘-×'Ñ'ˆØ×,Ñ,ˆØ×ÑØ(0×(LÑ(LØ5=×5fÑ5fØ5=×5fÑ5fð 	õ 	
ð	 ó    c                ó`   — | j                   €J ‚t        | j                   j                  d«       y)a8  Remove imported names from builtins namespace.

    This way names imported from typing in builtins.pyi aren't available
    by default (without importing them). We can only do this after processing
    the whole SCC is finished, when the imported names aren't needed for
    processing builtins.pyi itself.
    Nr)   )Útreer   Únames)Ústates    rB   r8   r8   v   s(   € ð �:‰:Ð!Ð!Ð!Ü'¨¯
©
×(8Ñ(8¸*ÕErD   c           
     óZ  — g }t        d„ |D «       «      rt        || j                  g|«       | j                  j                  }|D ]`  }t        |j                  t        «      rŒt        || | j                  |j                  j                  |j                  |j                  |«       Œb t        |«       t        || j                  g| j                  j                  «       t        || | j                  j                  «       t        || j                  g| j                  j                  «       y)a  Semantically analyze only selected nodes in a given module.

    This essentially mirrors the logic of semantic_analysis_for_scc()
    except that we process only some targets. This is used in fine-grained
    incremental mode, when propagating an update.
    c              3  óP   K  — | ]  }t        |j                  t        «      –— Œ  y ­w©N)Ú
isinstanceÚnoder   )Ú.0Úns     rB   ú	<genexpr>z0semantic_analysis_for_targets.<locals>.<genexpr>Œ   s   è ø€ Ò
7¨AŒ:�a—f‘fœh×'Ñ
7ùs   ‚$&N)Úanyr2   Úidr:   r;   rL   rM   r   Úprocess_top_level_functionÚfullnameÚactive_typeinfor   r4   r?   Úcheck_type_arguments_in_targetsr6   )rH   Únodesr=   r@   rA   rO   s         rB   Úsemantic_analysis_for_targetsrX   ‚   sÞ   € ð €GÜ
Ñ
7°Ô
7Ô7ä˜5 5§8¡8 *¨gÔ6Ø�}‰}×.Ñ.€HØò 
ˆÜ�a—f‘fœhÔ'àÜ"Ø�e˜UŸX™X q§v¡v§¡¸¿¹À×@QÑ@QÐSZõ	
ð	
ô $ GÔ,Ü˜U U§X¡X J°·±×0DÑ0DÔEÜ# E¨5°%·-±-×2FÑ2FÔGÜ˜u u§x¡x j°%·-±-×2FÑ2FÕGrD   c           	     ó¢  ‡— t        t        |«      «      }|D ]D  }| |   }|j                  €J ‚|j                  j                  j                  |j                  «       ŒF j                  j                  j                  |«       |j                  «       Št        ˆfd„t        D «       «      r"‰t        t        t        «      «      t        z  z  Šd}d}|j                  j                  }|j                  j                  «        ‰�r%|dz  }|t        kD  rN|j                  €J ‚|j                  |j                  |j                   «      5  |j#                  «        d d d «       nÉ|r$|j                  j                  j                  «        g }d}	‰rw‰j%                  «       }
| |
   }|j                  €J ‚t'        |
|
||j                  d ||«      \  }}}||z  }|	xs |}	|s%|j                  j                  j)                  |
«       ‰rŒw|r	|rJ d«       ‚t        t        |«      «      Š|	 }‰r�Œ%|j*                  j                  «        y # 1 sw Y   ŒîxY w)Nc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrK   © )rN   ÚmÚworklists     €rB   rP   z%process_top_levels.<locals>.<genexpr>°   s   øè ø€ Ò
/˜Qˆ1�Œ=Ñ
/ùó   ƒFr   r.   ú%Must not defer during final iteration)ÚlistÚreversedrF   r:   r;   Úprepare_fileÚincomplete_namespacesÚupdateÚcopyÚallr,   r&   Údeferral_debug_contextÚclearr$   Úfile_contextÚoptionsÚreport_hangÚpopÚsemantic_analyze_targetÚdiscardÚsaved_locals)r=   r>   r@   rR   rH   Úfinal_iterationÚ	iterationrA   Úall_deferredÚany_progressÚnext_idÚdeferredÚ
incompleteÚprogressr]   s                 @rB   r2   r2   �   s  ø€ ô
 Œx˜‹}Ó
€Cð ò AˆØ�b‘	ˆØ�z‰zÐ%Ð%Ð%Ø�‰×'Ñ'×4Ñ4°U·Z±ZÕ@ðAð 
‡M�M×'Ñ'×.Ñ.¨sÔ3à�x‰x‹z€Hô Ó
/¤,Ô
/Ô/Ø”Dœ¤,Ó/Ó0´;Ñ>Ñ>ˆØ€OØ€IØ�}‰}×.Ñ.€HØ×#Ñ#×)Ñ)Ô+â
Ø�Q‰ˆ	Ø”~Ò%à—:‘:Ð)Ð)Ð)Ø×&Ñ& u§z¡z°5·=±=ÓAñ 'Ø×$Ñ$Ô&÷'àÙà�M‰M×/Ñ/×5Ñ5Ô7Ø"$ˆØˆÙØ—l‘l“nˆGØ˜'‘NˆEØ—:‘:Ð)Ð)Ð)Ü-DØ˜ %¨¯©°T¸?ÈGó.Ñ*ˆH�j (ð ˜HÑ$ˆLØ'Ò3¨8ˆLÙØ—‘×3Ñ3×;Ñ;¸GÔDò ñ Ù#ÐLÐ%LÓLÐ#ô œ Ó.Ó/ˆØ*Ð*ˆó; ð@ ×Ñ×ÑÕ!÷7'ð 'ús   ÅIÉIc              #  óì  ‡	K  — t        | d„ ¬«      D ��cg c]  \  }}|t        |«      f‘Œ }}}|D ��ch c]
  \  }}|€Œ	|’Œ c}}Š	d}|r˜|t        |«      k\  rt        d«      ‚||   \  }}|€|E d{  –—†  |j	                  |«       ŒAt        ˆ	fd„|j                  dd D «       «      r|dz  }Œh|E d{  –—†  |j	                  |«       ‰	j                  |«       d}|rŒ—yyc c}}w c c}}w 7 Œ|7 Œ;­w)zÜMake sure that superclass methods are always processed before subclass methods.

    This algorithm is not very optimal, but it is simple and should work well for lists
    that are already almost correctly ordered.
    c                ó   — | d   S )Né   r[   ©Úxs    rB   ú<lambda>z&order_by_subclassing.<locals>.<lambda>ã   s
   € ÀqÈÁt€ rD   ©ÚkeyNr   z"Cannot order method targets by MROc              3  ó&   •K  — | ]  }|‰v –— Œ
 y ­wrK   r[   )rN   ÚparentÚremaining_infoss     €rB   rP   z'order_by_subclassing.<locals>.<genexpr>ò   s   øè ø€ ÒI¨Vˆv˜Ô(ÑIùr^   r.   )r   r`   r9   Ú
ValueErrorrl   rQ   Úmrorn   )
ÚtargetsÚkÚgÚgroupedÚinfoÚ_Ú
next_groupÚ	next_infoÚgroupr‚   s
            @rB   Úorder_by_subclassingrŽ   Ú   sÿ   øè ø€ ô )0°¹^Ô(L×M¡  1�”4˜“7Š|ÐM€GÑMØ+2×G¡  a°dÑ6F’tÓG€Oà€JÙ
Øœ˜W›Ò%ô ÐAÓBÐBØ" :Ñ.Ñˆ	�5ØÐà×ÐØ�K‰K˜
Ô#ØÜÓI°y·}±}ÀQÀRÐ7HÔIÔIà˜!‰OˆJØØ×ÐØ�‰�JÔØ×Ñ 	Ô*ð ˆ
ô) ùó	 NùÛGð øð 	úsD   ƒC4•C$¬C4´
C*¿C*Á0C4Á3C0Á4AC4Â6C2Â7*C4Ã"C4Ã2C4c                ó–  — g }|D ]W  }| |   j                   }|€J ‚t        t        |«      d„ ¬«      }|j                  |D ���	cg c]  \  }}}	||||	f‘Œ c}	}}«       ŒY t	        |«      D ]V  \  }}}}	| |   j
                  j                  }
t        |t        t        t        f«      sJ |«       ‚t        |
| |   ||||	|«       ŒX y c c}	}}w )Nc                ó*   — | d   j                   | d   fS )Nr.   r   )Úliner{   s    rB   r}   z#process_functions.<locals>.<lambda>  s   € ÀAÀaÁDÇIÁIÈqÐQRÉtÐCT€ rD   r~   )rF   ÚsortedÚget_all_leaf_targetsÚextendrŽ   r:   r;   rL   r   r   r   rS   )r=   r>   r@   Úall_targetsÚmodulerF   r…   ÚtargetrM   Úactive_typerA   s              rB   r3   r3   þ   sè   € à€KØò 
ˆØ�V‰}×!Ñ!ˆØÐÐÐô Ô-¨dÓ3Ñ9TÔUˆØ×ÑØRY×ZÐZÑ5N°V¸TÀ;ˆf�f˜d KÒ0ÔZõ	
ð
ô .BÀ+Ó-Nò 
Ñ)ˆ�˜˜kØ˜‘=×(Ñ(×:Ñ:ˆÜ˜$¤Ô*;¼YÐ GÔHÐNÈ$ÓNÐHÜ"Ø�e˜F‘m V¨V°T¸;Èõ	
ñ
ùô [s   ÁCc           	     óœ  — d}d}|g}	| j                   j                  «        | j                  j                  |«       d}
|	rË|
dz  }
|
t        k(  rN|j
                  €J ‚| j                  |j
                  |j                  «      5  | j                  «        ddd«       no|	s|r|r| j                  j                  |«       t        |||||||«      \  }	}}|s%|j                  j                  j                  |«       |r	|	rJ d«       ‚|sd}|	rŒË| j                  j                  |«       | j                  j                  «        y# 1 sw Y   Œ¯xY w)zÊAnalyze single top-level function or method.

    Process the body of the function (including nested functions) again and again,
    until all names have been resolved (or iteration limit reached).
    FTr   r.   Nr_   )rg   rh   rc   Úaddr$   rF   ri   rj   rk   rn   rm   r:   ro   )rA   rH   r–   r—   rM   r˜   r@   rp   rv   ru   rq   rw   s               rB   rS   rS     sB  € ð €OØ€Jð ˆx€HØ×#Ñ#×)Ñ)Ô+Ø×"Ñ"×&Ñ& vÔ.Ø€IÙ
Ø�Q‰ˆ	ØœÒ&à—:‘:Ð)Ð)Ð)Ø×&Ñ& u§z¡z°5·=±=ÓAñ 'Ø×$Ñ$Ô&÷'àÙ™J©?à×*Ñ*×2Ñ2°6Ô:Ü)@Ø�F˜E 4¨°oÀwó*
Ñ&ˆ�*˜hñ Ø�M‰M×/Ñ/×7Ñ7¸Ô?ÙÙÐHÐ!HÓH�<ÙØ"ˆOò' ð* ×"Ñ"×*Ñ*¨6Ô2ð ×Ñ×ÑÕ!÷''ð 'ús   ÂEÅEÚ
TargetInfoÚFullTargetInfoc                óÄ   — g }| j                  «       D ]J  \  }}}t        |j                  t        t        t
        f«      sŒ-|j                  ||j                  |f«       ŒL |S )zEReturn all leaf targets in a symbol table (module-level and methods).)Úlocal_definitionsrL   rM   r   r   r   Úappend)ÚfileÚresultrT   rM   r˜   s        rB   r“   r“   T  sZ   € à!€FØ'+×'=Ñ'=Ó'?ò >Ñ#ˆ�$˜Ü�d—i‘i¤'Ô+<¼iÐ!HÕIØ�M‰M˜8 T§Y¡Y°Ð<Õ=ð>ð €MrD   c           	     ó¾  — |j                   j                  j                  || f«       |j                  }|€J ‚|j                   j                  }t        «       g|_        t        «       g|_        |j                  |_	        t        «       |_
        d|_        |j                  d¬«      5  |}	t        |	t        «      r|	j                  }	|j!                  |	||||j"                  |¬«       t        |t        «      rt%        ||«       ddd«       d|_        |`|j*                  r| g|j,                  |j                  fS g |j,                  |j                  fS # 1 sw Y   ŒQxY w)zéSemantically analyze a single target.

    Return tuple with these items:
    - list of deferred targets
    - was some definition incomplete (need to run another pass)
    - were any new names defined (or placeholders replaced)
    NF©r7   )Ú	file_noderj   r˜   )r:   Úprocessed_targetsrŸ   rF   r;   ÚsetÚglobal_declsÚnonlocal_declsrG   ÚglobalsÚimportsrw   Úwrap_contextrL   r   ÚfuncÚrefresh_partialrj   r   Ú	statementÚcur_mod_noderu   rv   )
r—   r–   rH   rM   r˜   rp   r@   rF   rA   Úrefresh_nodes
             rB   rm   rm   ]  sK  € ð  
‡M�M×#Ñ#×*Ñ*¨F°FÐ+;Ô<Ø�:‰:€DØÐÐÐØ�}‰}×.Ñ.€Hä ›U˜G€HÔÜ"›u˜g€HÔØ—z‘z€HÔÜ“u€HÔØ€HÔØ	×	Ñ	¨5Ð	Ó	1ñ @ØˆÜ�l¤IÔ.à'×,Ñ,ˆLØ× Ñ ØØØØØ—M‘MØ#ð 	!ô 	
ô �dœIÔ&Ü/°°hÔ?÷@ð$ €HÔØÐà×ÒØˆx˜×,Ñ,¨h×.?Ñ.?Ð?Ð?à�8×&Ñ&¨×(9Ñ(9Ð9Ð9÷1@ð @ús   Â'AEÅEc                ó  — |D ]è  }| |   }|j                   sJ ‚t        ||j                  |j                   j                  |j                  «      |j                  j
                  j                  «      }|j                  «       5  t        j                  j                  j                  |j                  j                  «      5  |j                   j                  |«       d d d «       d d d «       Œê y # 1 sw Y   ŒxY w# 1 sw Y   �ŒxY wrK   )rF   r   rj   Úis_typeshed_filer:   r;   Ú
named_typer«   ÚmypyrH   Ústrict_optional_setÚstrict_optionalÚaccept)r=   r>   r?   r–   rH   rA   s         rB   r5   r5   ’  sÔ   € Øò ,ˆØ�f‘ˆØ�zŠzÐˆzÜ'ØØ�M‰MØ�J‰J×'Ñ'¨¯©Ó6Ø�M‰M×+Ñ+×6Ñ6ó	
ˆð ×ÑÓ!ñ 	,Ü—‘×!Ñ!×5Ñ5°e·m±m×6SÑ6SÓTñ ,Ø—
‘
×!Ñ! (Ô+÷,÷	,ð 	,ñ,÷,ð ,ú÷	,ñ 	,ús$   Â>C;Ã C/ÃC;Ã/C8Ã4C;Ã;D	c           	     ó2  — |j                   sJ ‚t        ||j                  |j                   j                  |j                  «      |j                  j
                  j                  «      }|j                  «       5  t        j                  j                  j                  |j                  j                  «      5  | D ]§  }d}t        |j                  t        t        f«      r|j                  }|j                   |j"                  |f}|j$                  r|j$                  j'                  |«      n	t)        «       5  |du|_        |j                  j-                  |«       ddd«       Œ© 	 ddd«       ddd«       y# 1 sw Y   ŒÅxY w# 1 sw Y   ŒxY w# 1 sw Y   yxY w)zÛCheck type arguments against type variable bounds and restrictions.

    This mirrors the logic in check_type_arguments() except that we process only
    some targets. This is used in fine grained incremental mode.
    N)rF   r   rj   r²   r:   r;   r³   r«   r´   rH   rµ   r¶   rL   rM   r   r   rR   rU   ÚscopeÚsaved_scoper   Úrecurse_into_functionsr·   )r…   rH   r?   rA   r—   r¬   Úsaveds          rB   rV   rV   ¡  sH  € ð �:Š:Ðˆ:Ü#ØØ�‰Ø�
‰
×#Ñ# E§M¡MÓ2Ø�‰×'Ñ'×2Ñ2ó	€Hð 
×	Ñ	Ó	ñ 	1Ü�Z‰Z×Ñ×1Ñ1°%·-±-×2OÑ2OÓPñ 	1Ø!ò 1�Ø;?�Ü˜fŸk™k¬GÔ5FÐ+GÔHØ!Ÿ;™;�DØŸ™ 6×#9Ñ#9¸4Ð@�Ø8>¿º�V—\‘\×-Ñ-¨eÔ4Ì+Ë-ñ 1Ø6:À$Ð6F�HÔ3Ø—K‘K×&Ñ& xÔ0÷1ð 1ñ1÷	1÷	1ð 	1÷1ð 1ú÷	1ð 	1ú÷	1ð 	1ús=   Á8>FÂ6A>FÄ4%E5	Å
FÅ$FÅ5E>Å:FÆF
	ÆFÆFc                ó   — d}d}|r¼|dk  sJ d«       ‚|dz  }d}|D ]   }| |   }|j                   }|sJ ‚|j                  «       5  |j                  «       D ]\  \  }}	}t        |	j                  t
        «      sŒ"t        |j                  j                  ||	j                  |j                  ||«      rŒ[d}Œ^ 	 ddd«       Œ¢ |rŒ»yy# 1 sw Y   Œ±xY w)a3  Apply class plugin hooks within a SCC.

    We run these after to the main semantic analysis so that the hooks
    don't need to deal with incomplete definitions such as placeholder
    types.

    Note that some hooks incorrectly run during the main semantic
    analysis pass, for historical reasons.
    r   Té
   z1Internal error: too many class plugin hook passesr.   FN)
rF   r«   rž   rL   rM   r   Úapply_hooks_to_classr:   r;   rj   )
r=   r>   r?   Ú
num_passesrv   r–   rH   rF   rŠ   rM   s
             rB   r4   r4   ¼  så   € ð €JØ€Jñ Ø˜BŠÐSÐ SÓSˆØ�a‰ˆ
Øˆ
Øò 	.ˆFØ˜&‘MˆEØ—:‘:ˆDÙˆK�4Ø×#Ñ#Ó%ñ .Ø"&×"8Ñ"8Ó":ò 
.‘J�A�t˜QÜ! $§)¡)¬XÕ6Ü3Ø!ŸM™M×;Ñ;Ø"Ø ŸI™IØ!ŸM™MØ Ø"õ ð *.™Jñ
.÷.ð .ð		.ô	 ÷.ð .ús   Á2CÁ78CÂ0CÃC	c           	     ó$  — |j                   }d}|j                  D ]„  }| j                  |||«      5  d }	| j                  |«      }
|
r| j                  j                  |
«      }	|	€t        |«      rt        j                  }	|	r|xr  |	t        ||| «      «      }d d d «       Œ† t        |«      }|�H| j                  |||«      5  |xr& t        j                  |||| «      j                  «       }d d d «       |S |S # 1 sw Y   ŒçxY w# 1 sw Y   |S xY w)NT)ÚdefnÚ
decoratorsri   Úget_fullname_for_hookÚpluginÚget_class_decorator_hook_2r   Údataclasses_pluginÚdataclass_class_maker_callbackr   ÚDataclassTransformerÚ	transform)Úselfr–   r‰   rj   r¤   r?   rÂ   ÚokÚ	decoratorÚhookÚdecorator_nameÚspecs               rB   r¿   r¿   à  s*  € ð �9‰9€DØ	€BØ—_‘_ò Iˆ	Ø×Ñ˜y¨'°4Ó8ñ 	IØˆDà!×7Ñ7¸	ÓBˆNÙØ—{‘{×=Ñ=¸nÓM�ð ˆ|Ô =¸iÔ HÜ)×HÑH�áØÒH™D¤°°yÀ$Ó!GÓH�÷	Ið 	IðIô$ )¨Ó.€DØÐØ×Ñ˜y¨'°4Ó8ñ 	dð ÒcÔ*×?Ñ?ÀÀdÈDÐRVÓW×aÑaÓcˆB÷	dð
 €Iˆ2€I÷1	Ið 	Iú÷&	dð
 €Iús   ±A'C9Ã+DÃ9D	ÄDc           
     óÈ  — | d   j                   }|sJ ‚|D �]0  }| |   }|j                   }|sJ ‚|j                  «       D �]  \  }}}t        |j                  t        «      sŒ#|j                  «       5  |j                  j                  j                  ||j                  |j                  «      5  t        |j                  |j                  |«       t        |j                  |«       t        |j                  «       t        |j                  |j                  | |   j                  |j                  «       d d d «       d d d «       �Œ �Œ3 y # 1 sw Y   ŒxY w# 1 sw Y   �Œ"xY w)Nr)   )rF   rž   rL   rM   r   r«   r:   r;   ri   rj   r   Úis_stubr   r   r   rG   )	r=   r>   r?   r)   r–   rH   rF   rŠ   rM   s	            rB   r6   r6     s&  € Ø�ZÑ ×%Ñ%€HÙ€Oˆ8Øó ˆØ�f‘ˆØ�z‰zˆÙˆˆtØ×0Ñ0Ó2ó 	‰JˆAˆt�QÜ˜$Ÿ)™)¤XÕ.à×&Ñ&Ó(ñ	à—M‘M×3Ñ3×@Ñ@ÀÀuÇ}Á}ÐVZ×V_ÑV_Ó`ñ	ô 4°D·I±I¸t¿|¹|ÈVÔTÜ)¨$¯)©)°VÔ<Ü(¨¯©Ô3Ü&ØŸ	™	 4§:¡:¨u°V©}×/DÑ/DÀhÇnÁnô÷	÷ 	ñ 	ò	ñ	÷	ð 	ú÷ 	ñ 	ús%   Á2<EÂ.BE	Ä4EÅEÅEÅE!c                ó8   — |D ]  }| |   j                  «        Œ y rK   r£   )r=   r>   r–   s      rB   r7   r7     s!   € Øò 'ˆØˆf‰×$Ñ$Õ&ñ'rD   )r=   r   r>   ú	list[str]r?   r   ÚreturnÚNone)rH   r    rÕ   rÖ   )rH   r    rW   úlist[FineGrainedDeferredNode]r=   r   rÕ   rÖ   )r=   r   r>   rÔ   r@   r"   rÕ   rÖ   )r…   zlist[FullTargetInfo]rÕ   zIterator[FullTargetInfo])rA   r   rH   r    r–   Ústrr—   rØ   rM   z'FuncDef | OverloadedFuncDef | Decoratorr˜   úTypeInfo | Noner@   r"   rÕ   rÖ   )r    r   rÕ   zlist[TargetInfo])r—   rØ   r–   rØ   rH   r    rM   z2MypyFile | FuncDef | OverloadedFuncDef | Decoratorr˜   rÙ   rp   Úboolr@   r"   rÕ   ztuple[list[str], bool, bool])r…   r×   rH   r    r?   r   rÕ   rÖ   )rË   r   r–   rØ   r‰   r   rj   r   r¤   r   r?   r   rÕ   rÚ   )r=   r   r>   rÔ   rÕ   rÖ   )NÚ__doc__Ú
__future__r   Úcollections.abcr   r   Ú
contextlibr   Ú	itertoolsr   r'   r   r	   r
   r!   Ú
mypy.stater´   Úmypy.checkerr   Úmypy.errorsr   Ú
mypy.nodesr   r   r   r   r   Úmypy.optionsr   Úmypy.pluginr   Úmypy.pluginsr   rÇ   Úmypy.semanalr   r   r   Úmypy.semanal_classpropr   r   r   r   Úmypy.semanal_inferr   Úmypy.semanal_sharedr   Úmypy.semanal_typeargsr   Ú
mypy.buildr   r    r`   ÚtupleÚintr"   Ú__annotations__r$   r&   r,   rC   r8   rX   r2   rŽ   r3   rS   rØ   r›   rœ   r“   rm   r5   rV   r4   r¿   r6   r7   r[   rD   rB   ú<module>rð      s|  ðòõ4 #ç .Ý "Ý ß @Ñ @ã Ý 0Ý ß PÕ PÝ  Ý 'Ý :÷ñ ÷
ó õ CÝ =Ý 6áß'ð ˜5  h¨r°4¨xÑ&8Ð!8Ñ9Ñ:€ˆÓ :ð €�Ó ð €ˆUÓ ò€ˆeó ó$
óN	FðHØðHØ6ðHØ?DðHà	óHó6:"óz!óH
ð4/"Øð/"àð/"ð ð/"ð ð	/"ð
 2ð/"ð !ð/"ð ð/"ð 
ó/"ðd Øˆ�GÑ	Ð/Ñ	/°)Ñ	;¸XÈ¹_ÐLñ€
ˆJó ð
 #Øˆˆh˜Ñ Ð#4Ñ4°yÑ@À(ÈTÁ/ÐQñ€�
ó ó
ð2:Øð2:àð2:ð ð2:ð =ð	2:ð
 !ð2:ð ð2:ð ð2:ð "ó2:ój,ð1Ø*ð1Ø38ð1ØBHð1à	ó1ó6!.ðH$Ø
ð$àð$ð ð$ð ð	$ð
 ð$ð ð$ð 
ó$óNô*'rD   