ó
    Ð]j’  ã                   óD  • S r SSKrSSKrSSKJr  SSKJr  SSKJr  SSKJ	r	J
r
JrJrJr  SSKJr  SSKJr  SS	KJr  SS
KJr  SSKJr  SSKJr  SSKJrJr  SSKJr  SSKJrJr  SSKJr  SSKJrJ r J!r!J"r"J#r#  SSK$J%r%  SSK&J'r'  SSK(J)r)  SSK*J+r+  SSK,J-r-  SSK.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5J6r6  SSK7J8r8  SSSSS S!S"S#S$S%S&S'S(S).r9\9Ru                  5        V Vs0 s H  u  pU S*US+S -   _M     snn r;S, r<S- r=S. r>\'" \
S/9S0 5       r?\R€                  \<S1 5       5       rAS2 rBS3 rC\<SFS4 j5       rD\R€                  SFS5 j5       rES6 rF\S7 5       rGS8 rHS9 rIS: rJS; rKS< rLS= rMS> rNS? rO\3R                   " 5       S@ 5       rQ\'" 5       SA 5       rRSB rS " SC SD\5      rTSE rUgs  snn f )Gz&
Functions inferring the syntax tree.
é    N)Útree)Údebug)Úparser_utils)ÚValueSetÚ	NO_VALUESÚContextualizedNodeÚiterator_to_value_setÚiterate_values)ÚLazyTreeValue)Úcompiled)Ú	recursion)Úanalysis)Úimports)Ú	arguments)Ú
ClassValueÚFunctionValue)Úiterable)ÚListModificationÚDictModification)ÚTreeInstance)Ú	is_stringÚ
is_literalÚ	is_numberÚget_names_of_nodeÚis_big_annoying_library)ÚCOMPARISON_OPERATORS)Úinference_state_method_cache)ÚVersionInfo)Ú
annotation)ÚTreeNameDefinition)ÚCompForContext)Ú	Decoratee)Úplugin_manager)ÚProxyTypingValueÚIGNORE_ANNOTATION_PARTS)ÚTypeVarÚ__add__Ú__sub__Ú__mul__Ú
__matmul__Ú__truediv__Ú__floordiv__Ú__mod__Ú__pow__Ú
__lshift__Ú
__rshift__Ú__and__Ú__or__Ú__xor__)Ú+Ú-Ú*Ú@Ú/z//Ú%ú**z<<z>>Ú&Ú|Ú^Ú__ré   c                 ó   ^ • U 4S jnU$ )ac  
This is for now the way how we limit type inference going wild. There are
other ways to ensure recursion limits as well. This is mostly necessary
because of instance (self) access that can be quite tricky to limit.

I'm still not sure this is the way to go, but it looks okay for now and we
can still go anther way in the future. Tests are there. ~ dave
c                 ó~  >• U R                   nU R                  n UR                  U==   S-  ss'   SnU R                  c"  U R	                  5       UR
                  L a  US-  nUR                  U   U:”  a  [        R                  " SU5        [        $  T" U /UQ70 UD6$ ! [         a    SUR                  U'    N'f = f)Né   i,  éd   z+In value %s there were too many inferences.)
Ú	tree_nodeÚinference_stateÚinferred_element_countsÚparent_contextÚ	get_valueÚbuiltins_moduler   Úwarningr   ÚKeyError)ÚcontextÚargsÚkwargsÚnrE   ÚmaximumÚfuncs         €ÚW/home/mande/repo/quber/.venv/lib/python3.13/site-packages/jedi/inference/syntax_tree.pyÚwrapperÚ$_limit_value_infers.<locals>.wrapperB   sÍ   ø€ Ø×ÑˆØ!×1Ñ1ˆð	;Ø×3Ñ3°AÓ6¸!Ñ;Ó6ØˆGØ×%Ñ%Ñ-Ø×)Ñ)Ó+¨×/NÑ/NÒNð
 ˜3‘�à×6Ñ6°qÑ9¸GÓCÜ—’ÐKÈQÔOÜ Ð ð Dñ
 �GÐ-˜dÒ- fÑ-Ð-øô ó 	;Ø9:ˆO×3Ñ3°AÓ6ð	;ús   ›A7B  Â B<Â;B<© )rQ   rS   s   ` rR   Ú_limit_value_infersrV   9   s   ø€ õ.ð* €Nó    c                 óH  ^• [        U [        5      (       a  [        X5      $ 0 /nUnUb@  UR                  nUR                  S;   a  O#[
        R                  " U5      (       a  S nOUb  M@  U R                  R                  U5      nUGcç  U(       Gaß  UR                  S:X  GaÎ  U R                  R                  (       Ga²  UR                  S   nUR                  UR                  :”  Ga5  [        U5      n[        U5      nU Vs/ s H  oˆR                  PM     snm[!        U4S jU 5       5      (       aé  U Hã  n	U R                  R#                  X	5      n
[%        U
5      S:”  aŸ  [%        U5      [%        U
5      -  S:”  a  [&        R(                  " SU5        0 /n  Oƒ[+        U5      n/ nU
 HS  n[+        U5      n[-        U5       H2  u  pïUR/                  5       XÞ'   [1        U/5      XÞ   U	R                  '   M4     X--  nMU     MÌ  U H  nX¯U	R                  '   M     Må     [%        U5      S:”  a9  [2        nU H+  nU R5                  X?5         U[        X5      -  nS S S 5        M-     U$ [7        X5      $ U(       a  [        X5      $ [7        X5      $ s  snf ! , (       d  f       Mm  = f)N)Úif_stmtÚfor_stmtrY   rB   c              3   ó@   >#   • U  H  oR                   T;   v •  M     g 7f©N©Úvalue)Ú.0ÚiÚstr_element_namess     €rR   Ú	<genexpr>Úinfer_node.<locals>.<genexpr>x   s   øé € ÐBº°A—7‘7Ð/Ö/ºùs   ƒé   z,Too many options for if branch inference %s.)Ú
isinstancer!   Ú_infer_nodeÚparentÚtyper   Úis_scopeÚpredefined_namesÚgetrE   Úis_analysisÚchildrenÚ	start_posÚend_posr   r^   ÚanyÚinferÚlenr   ÚdbgÚlistÚ	enumerateÚcopyr   r   Úpredefine_namesÚ_infer_node_if_inferred)rL   ÚelementÚ
name_dictsrY   Úpredefined_if_name_dictÚif_stmt_testÚif_namesÚelement_namesÚeÚif_nameÚdefinitionsÚoriginal_name_dictsÚ
definitionÚnew_name_dictsr`   Ú	name_dictÚresultra   s                    @rR   Ú
infer_noder‡   Z   sk  ø€ Ü�'œ>×*Ñ*Ü˜7Ó,Ð,à�€JØ€GØ
Ñ
Ø—.‘.ˆØ�<‰<Ð2Ó2ØÜ× Ò  ×)Ñ)ØˆGØð Ó
ð &×6Ñ6×:Ñ:¸7ÓCÐð Ò&¯7Ø—‘ 	Ô)¨g×.EÑ.E×.Q×.QÐ.QØ×'Ñ'¨Ñ*ˆð
 ×Ñ˜|×3Ñ3Ô3ô )¨Ó6ˆHÜ-¨gÓ6ˆMÙ2?Ó @²-¨Q§¤±-Ñ @ÐÜÔB¹ÓB×BÑBÛ'�GØ")×"9Ñ"9×"?Ñ"?ÀÓ"Q�Kô ˜;Ó'¨!Ó+Ü˜z›?¬S°Ó-=Ñ=ÀÓBÜ!ŸIšIÐ&TÐV]Ô^ð +-¨˜JÙ!ä.2°:Ó.>Ð+Ø%'˜
Û*5˜JÜ-1Ð2EÓ-F˜NÜ09¸.Ö0I¡ Ø4=·N±NÓ4D Ñ 1ÜCKÈZÈLÓCY Ñ 1°'·-±-Ó @ñ 1Jð 'Ñ8šJó +6ó *4˜IØ7B g§m¡mÓ4ó *4ñ1  (ô4 ˆz‹?˜QÓÜˆFÛ'�	Ø×,Ñ,¨WÕ@Øœk¨'Ó;Ñ;�F÷ AÑ@ñ (ð ˆMä*¨7Ó<Ð<æ"Ü˜wÓ0Ð0ä*¨7Ó<Ð<ùòQ !A÷> AÖ@ús   ÄJÉJÊ
J!	c                 ó–   • UnUb:  UR                   nU R                  R                  U5      nUb  [        X5      $ Ub  M:  [	        X5      $ )z9
TODO This function is temporary: Merge with infer_node.
)rg   rj   rk   rf   Ú_infer_node_cached)rL   ry   rg   r{   s       rR   rx   rx   ¢   sU   € ð €FØ
Ñ
Ø—‘ˆØ")×":Ñ":×">Ñ">¸vÓ"FÐØ"Ñ.Ü˜wÓ0Ð0ð	 Ó
ô
 ˜gÓ/Ð/rW   )Údefaultc                 ó   • [        X5      $ r\   )rf   )rL   ry   s     rR   r‰   r‰   ¯   s   € ä�wÓ(Ð(rW   c                 óî  • [         R                  " SXR                  U 5        U R                  nUR                  nUS;   a  [        X5      $ US:X  a   [        [        R                  " X5      /5      $ US:X  a  [        X5      $ US;   a×  UR                  S   nUR                  SS  nSnUR                  S	:X  a#  UR                  S
:X  a  SnUR                  S5      nU R                  U5      n[        U5       H=  u  p‰U	S:X  a&  U R                  XXS-      5      n
[        U UU	U
5      n  O[!        XU	5      nM?     U(       a  UR#                  5       R%                  5       $ U$ US;   a!  [        [&        R(                  " X U5      /5      $ US;   aA  U R                  UR                  S   5      nUR                  S S  H  n[+        X{5      nM     U$ US:X  a=  U R                  UR                  S   5      U R                  UR                  S   5      -  $ US:X  ad  UR                  S:w  a3  UR,                  n[/        S[1        UR                  5      < SU< S35      e[        [2        R4                  " US5      /5      $ US:X  aB  [        XR                  S   5      nUR                  SS S2    H  nUR7                  XÐS9nM     U$ US:X  a  U R                  UR                  S   5      $ US:X  a2  [8        R:                  " XR                  S   5      R=                  U 5      $ US:X  a—  [?        UR                  5      (       aw  UR                  S   R                  S:X  aZ  UR                  S   R                  S   nU R                  U5      R7                  S5      RA                  5       nUR%                  5       $ [B        $ US:X  a  U R                  UR                  S   5      $ US :X  a  [B        $ [E        X5      $ )!Nzinfer_node %s@%s in %s)ÚnameÚnumberÚstringÚatomÚstringsÚkeywordÚfstringÚlambdefÚ	expr_stmt)ÚpowerÚ	atom_exprr   rB   Fr’   ÚawaitTr:   )Útestlist_star_exprÚtestlist)Únot_testÚfactoréÿÿÿÿÚtestÚoperatorz...zunhandled operator z in Ú ÚEllipsisÚdotted_namer?   )Úname_contextÚ
eval_inputÚ	annassignÚ
yield_exprÚ	yield_argÚ__iter__Únamedexpr_testÚ	star_expr)#r   rs   rn   rE   rh   Ú
infer_atomr   r   Úfrom_contextÚinfer_expr_stmtrm   r^   Úpopr‡   ru   Ú_infer_comparisonÚinfer_trailerÚpy__await__Úpy__stop_iteration_returnsr   ÚSequenceLiteralValueÚinfer_factorrg   ÚAssertionErrorÚreprr   Úbuiltin_from_nameÚpy__getattribute__r   Úinfer_annotationÚexecute_annotationrr   Úexecute_with_valuesr   Úinfer_or_test)rL   ry   rE   ÚtypÚfirst_childrm   Ú	had_awaitÚ	value_setr`   ÚtrailerÚrightrŸ   ÚoriginÚ	next_nameÚ
generatorss                  rR   rf   rf   ´   sÏ  € ô 
‡I‚IÐ&¨×1BÑ1BÀGÔLØ×-Ñ-€OØ
�,‰,€CØ
ÐSÓSÜ˜'Ó+Ð+Ø	�	Ó	Üœ×3Ò3°GÓEÐFÓGÐGØ	�Ó	Ü˜wÓ0Ð0Ø	Ð&Ó	&Ø×&Ñ& qÑ)ˆØ×#Ñ# A BÐ'ˆØˆ	Ø×Ñ˜yÓ(¨[×->Ñ->À'Ó-IØˆIØ"Ÿ,™, q›/ˆKà×&Ñ& {Ó3ˆ	Ü% hÖ/‰LˆQØ˜$‹Ø×*Ñ*¨8¸±E©?Ó;�Ü-ØØØØó	�	ñ Ü% g¸'ÓBŠIñ 0ö Ø×(Ñ(Ó*×EÑEÓGÐGØÐØ	Ð3Ó	3äœ×6Ò6°ÐQXÓYÐZÓ[Ð[Ø	Ð&Ó	&Ø×&Ñ& w×'7Ñ'7¸Ñ';Ó<ˆ	Ø×(Ñ(¨¨"Ó-ˆHÜ$ YÓ9ŠIñ .àÐØ	�‹à×"Ñ" 7×#3Ñ#3°AÑ#6Ó7Ø×$Ñ$ W×%5Ñ%5°bÑ%9Ó:ñ;ð 	<à	�
Ó	à�=‰=˜EÓ!Ø—^‘^ˆFÝ Ä4ÈÏÉÖCVÓX^Ð!_Ó`Ð`Üœ×3Ò3°OÀZÓPÐQÓRÐRØ	�Ó	Ü˜w×(8Ñ(8¸Ñ(;Ó<ˆ	Ø ×)Ñ)¨!¨$¨Q¨$Ô/ˆIØ!×4Ñ4°YÐ4ÐUŠIñ 0àÐØ	�Ó	Ø×!Ñ! '×"2Ñ"2°1Ñ"5Ó6Ð6Ø	�Ó	Ü×*Ò*¨7×4DÑ4DÀQÑ4GÓHßÑ Ó(ð	)à	�Ó	Üˆw×Ñ× Ñ  W×%5Ñ%5°aÑ%8×%=Ñ%=ÀÓ%Là×&Ñ& qÑ)×2Ñ2°1Ñ5ˆGØ ×+Ñ+¨GÓ4ß#Ñ# JÓ/×0CÑ0CÓ0Eð à×8Ñ8Ó:Ð:ô ÐØ	Ð Ó	 Ø×!Ñ! '×"2Ñ"2°1Ñ"5Ó6Ð6Ø	�Ó	ÜÐä˜WÓ.Ð.rW   c                 ó†  • UR                   S S u  p4US:X  a  S nUS:X  a3  UR                   u  p4nUR                  [        X5      [        X5      5      $ [        R
                  " SX!5        US:X  a  UR                  U US9$ US:X  d
   SU-  5       e[        R                  " U R                  XU5      nUR                  U5      $ )	Nr?   Ú)Ú[zinfer_trailer: %s in %sÚ.)r£   Úname_or_strÚ(ztrailer_op is actually %s)rm   Úget_itemÚ_infer_subscript_listr   r   rs   r¸   r   ÚTreeArgumentsrE   Úexecute)rL   Úatom_valuesrÁ   Ú
trailer_opÚnodeÚ_rM   s          rR   r°   r°     sÜ   € Ø×'Ñ'¨¨Ð+Ñ€JØˆsƒ{Øˆà�SÓØ%×.Ñ.Ñˆ
˜!Ø×#Ñ#Ü! 'Ó0Ü˜wÓ0ó
ð 	
ô
 	�	Š	Ð+¨WÔBØ˜ÓØ×1Ñ1Ø$Ø ð 2ð ð ð
  Ó$ÐNÐ&AÀJÑ&NÓNÐ$Ü×*Ò*¨7×+BÑ+BÀGÐSZÓ[ˆDØ×&Ñ& tÓ,Ð,rW   c                 óÐ  ^• U R                   nTR                  S:X  a—  TR                  SSS5      =(       d    TnUR                  S:X  a+  [        U4S jUR	                  5        5       5      (       d  TnOUR                  S:X  a  TnUR
                  n[        T5      (       a  SnU R                  TUS9$ TR                  S:X  a[  TR                  S	;   a+  [        [        R                  " UTR                  5      /5      $ TR                  S
:X  a  [        $  ST-  5       e[        T[        R                  5      (       aE  UR                   R#                  TR                  5      n[        [        R$                  " X%5      /5      $ TR                  S:X  aI  ['        U TR(                  S   5      nTR(                  SS  H  n['        X5      n[+        XSU5      nM     U$ TR                  S:X  a  [        R,                  " U5      $ TR(                  nUS   S:X  aR  [/        U5      S:X  dC  US   R                  S:X  a  [/        US   R(                  5      S:”  d  U R1                  US   5      $  US   R(                  S   n	U	S:X  a   US   R(                  S   n	U	R                  S;   a!  [        [4        R6                  " X T5      /5      $  US   n
 U
R(                  nUS   S:X  a*  U
S:X  d  SU;   d  SU;   a  [4        R:                  " X T5      nO[4        R<                  " X T5      n[        U/5      $ ! [2         a     N¦f = f! [2        [8        4 a     NŠf = f! [8         a    / n NŠf = f)z±
Basically to process ``atom`` nodes. The parser sometimes doesn't
generate the node (because it has just one child). In that case an atom
might be a name or a literal as well.
r�   r•   r”   rY   c              3   óˆ   >#   • U  H7  oR                   TR                   s=:*  =(       a    UR                  :  Os  v •  M9     g 7fr\   )rn   ro   )r_   rO   r�   s     €rR   rb   Úinfer_atom.<locals>.<genexpr>)  s-   øé € Ð`ÒJ_ÀQ—{‘{ d§n¡n×@Ó@°q·y±y×@Ñ@ÒJ_ùs   ƒ?AN©Úpositionr’   )ÚFalseÚTrueÚNoneÚyieldzCannot infer the keyword %sr‘   r   rB   r4   r“   rË   r?   Útestlist_compÚ:é   )Úcomp_forÚsync_comp_forÚ{Ú}r:   )rE   rh   Úsearch_ancestorrp   Úget_test_nodesrn   Ú_is_annotation_namer¸   r^   r   r   r·   r   re   r   ÚLiteralÚcompiled_subprocessÚsafe_literal_evalÚcreate_simple_objectr«   rm   r¯   Úget_string_value_setrr   r‡   Ú
IndexErrorr   Úcomprehension_from_atomÚAttributeErrorÚDictLiteralValuer³   )rL   r�   ÚstateÚstmtrØ   r�   rÀ   rÂ   Úcrà   Ú
array_nodeÚarray_node_cÚ	new_values    `           rR   r«   r«     s-  ø€ ð ×#Ñ#€EØ‡y�y�FÓà×#Ñ# K°¸IÓF×NÈ$ˆØ�9‰9˜	Ó!ÜÔ`È$×J]ÑJ]ÔJ_Ó`×`Ñ`Ø�øØ�Y‰Y˜)Ó#ØˆDØ—>‘>ˆÜ˜t×$Ñ$ð ˆHØ×)Ñ)¨$¸Ð)ÐBÐBØ	�‰�iÓ	à�:‰:Ð2Ó2ÜœX×7Ò7¸¸t¿z¹zÓJÐKÓLÐLØ�Z‰Z˜7Ó"ô ÐØ:Ð3°dÑ:Ó:ˆuä	�Dœ$Ÿ,™,×	'Ñ	'Ø×*Ñ*×<Ñ<¸T¿Z¹ZÓHˆÜœ×6Ò6°uÓEÐFÓGÐGØ	�‰�iÓ	ä˜w¨¯©°aÑ(8Ó9ˆ	Ø—m‘m A BÓ'ˆFÜ˜wÓ/ˆEÜ)¨'¸cÀ5ÓIŠIñ (ð ÐØ	�‰�iÓ	Ü×,Ò,¨UÓ3Ð3à�M‰MˆàˆQ‰4�3‹;œs 1›v¨›{Ø˜1™Ÿ™ oÓ5Ü   1¡§¡Ó/°!Ó3Ø×%Ñ% a¨¡dÓ+Ð+ð	Ø˜‘t—}‘} QÑ'ˆHð ˜3‹ðØ  ™tŸ}™}¨QÑ/�Hð �}‰}Ð =Ó=Ü¤×!AÒ!AØ Dó"ð !ó ð ð >ð �q‘Tˆ
ð	Ø%×.Ñ.ˆLð ˆQ‰4�3‹;˜J¨#Ó-°¸Ó1DØ# |Ó3Ü ×1Ò1°%À$ÓG‰Iä ×5Ò5°eÀdÓKˆIÜ˜˜Ó$Ð$øô' "ó Ùðûô œNÐ+ó 	Ùð	ûô& ó 	ØŠLð	ús6   É+M  ÊL0 ËM Ì0
L=Ì<L=Í MÍMÍM%Í$M%c                 ó   • [         R                  " U R                  U5       nU(       aA  Ub)  [        R                  " XU5      nU(       a  UsS S S 5        $ [        XU5      sS S S 5        $  S S S 5        [        $ ! , (       d  f       [        $ = fr\   )r   Úexecution_allowedrE   r   Ú"find_type_from_comment_hint_assignÚ_infer_expr_stmtr   )rL   rñ   Ú	seek_nameÚallowedÚpep0484_valuess        rR   r­   r­   s  s€   € ä	×	$Ò	$ W×%<Ñ%<¸dÔ	CÀwÞØÑ$ä×AÒAÀ'ÐQZÓ[ð æ!Ø)÷ 
DÑ	Cô $ G°9Ó=÷ 
DÑ	CØ÷ 
Dô Ð÷ 
DÔ	Cô Ðús   ¢*A:ÁA:Á:
Bc                 óÆ  ^ ^^^• S n[         R                  " SX5        UR                  5       nT R                  U5      mU(       a  [	        T U5      n[        UT5      m[        UR                  5       S5      nU" U5      u  nmUS;  =(       a    UR                  S:H  nU(       d  U(       GaŠ  UR                  SS9S   R                  n	T R                  X‘R                  S	9n
U(       a  U UU4S
 jm[        U4S jU
 5       5      mGO/[        R                  " U5      nUR                  SS Ul
        UR                  S5      nUbä  UR                  S:X  aÔ  T(       aÍ  [         R"                  " U5      (       a²  UR%                  5       n['        T U5      n[)        UR+                  5       R-                  U5      5      nU He  nUR.                  S   R                  UR+                  5       0nT R1                  UU5         T R                  U5      n[3        T X«U5      n
SSS5        Mg     U
mO[3        T X«T5      m[         R                  " ST5        T$ ! , (       d  f       M¡  = f)a  
The starting point of the completion. A statement always owns a call
list, which are the calls, that a statement does. In case multiple
names are defined in the statement, `seek_name` returns the result for
this name.

expr_stmt: testlist_star_expr (annassign | augassign (yield_expr|testlist) |
                 ('=' (yield_expr|testlist_star_expr))*)
annassign: ':' test ['=' test]
augassign: ('+=' | '-=' | '*=' | '@=' | '/=' | '%=' | '&=' | '|=' | '^=' |
            '<<=' | '>>=' | '**=' | '//=')

:param stmt: A `tree.ExprStmt`.
c                 ó  • U R                   S   nUR                  S;  a  gUR                   S   nUR                  S:w  d  [        UR                   5      S:w  a  gUR                   S   nUR                   S   S:H  UR                   S   4$ )	Nr   )r—   r–   )FNr�   r?   r�   rÈ   rB   )rm   rh   rr   )rñ   r—   r�   rÁ   s       rR   Úcheck_setitemÚ'_infer_expr_stmt.<locals>.check_setitem‘  s‡   € Ø—M‘M !Ñ$ˆ	Ø�>‰>Ð!7Ó7ØØ×!Ñ! !Ñ$ˆØ�9‰9˜Ó¤# i×&8Ñ&8Ó"9¸QÓ">ØØ×$Ñ$ RÑ(ˆØ×Ñ Ñ" cÑ)¨7×+;Ñ+;¸AÑ+>Ð>Ð>rW   zinfer_expr_stmt %s (%s)N)Ú=NrŸ   T)Úinclude_setitemr   r×   c                 ó”   >• [        TT5      nU R                  S:X  a  [        U TU5      $ U R                  S:X  a  [        U TU5      $ U $ )NÚdictrt   )ÚContextualizedSubscriptListNodeÚ
array_typer   r   )Úvrò   rL   ÚsubscriptlistrÀ   s     €€€rR   Úto_modÚ _infer_expr_stmt.<locals>.to_mod­  sJ   ø€ Ü3°G¸]ÓK�Ø—<‘< 6Ó)Ü+¨A¨y¸!Ó<Ð<Ø—\‘\ VÓ+Ü+¨A¨y¸!Ó<Ð<Ø�rW   c              3   ó4   >#   • U  H  nT" U5      v •  M     g 7fr\   rU   )r_   r  r	  s     €rR   rb   Ú#_infer_expr_stmt.<locals>.<genexpr>µ  s   øé € Ð @²K¨q¡¨§ ²Kùs   ƒr�   rZ   rB   zinfer_expr_stmt result %s)r   rs   Úget_rhsr‡   r    Úcheck_tuple_assignmentsÚnextÚyield_operatorsrh   Úget_defined_namesr^   r¸   rn   r   rv   rä   r   Úfor_stmt_defines_one_nameÚget_testlistr   rt   rq   Úiteraterm   rw   r¯   )rL   rñ   rú   rÿ   ÚrhsrO   Úfirst_operatorÚ
is_setitemÚis_annassignr�   Úleft_valuesrŸ   rZ   rÒ   ÚcnÚorderedÚ
lazy_valueÚdctÚtr  r	  rÀ   s   `                  @@@rR   rù   rù   �  s  û€ ò ?ô 
‡I‚IÐ'¨Ô9Ø
�,‰,‹.€Cà×"Ñ" 3Ó'€IæÜ˜w¨	Ó2ˆÜ+¨A¨yÓ9ˆ	ä˜$×.Ñ.Ó0°$Ó7€NÙ -¨dÓ 3Ñ€J�Ø!¨Ñ4×Z¸×9LÑ9LÐPZÑ9Z€LÞ—zà×%Ñ%°dÐ%Ð;¸AÑ>×DÑDˆØ×0Ñ0°ÇÁÐ0ÐOˆæ÷ô !Ô @±KÓ @Ó@ŠIä—y’y Ó0ˆHØ%Ÿ^™^¨C¨RÐ0ˆHŒNØ×+Ñ+¨JÓ7ˆHØÑ#¨¯©¸Ó(CÎ	Ü$×>Ò>¸x×HÑHð  ×,Ñ,Ó.�Ü'¨°Ó6�Ü˜rŸx™x›z×1Ñ1°"Ó5Ó6�ã")�JØ#×,Ñ,¨QÑ/×5Ñ5°z×7GÑ7GÓ7IÐJ�CØ ×0Ñ0°¸3Õ?Ø#×.Ñ.¨sÓ3˜Ü&7¸ÀÐXYÓ&Z˜÷ @Ñ?ñ #*ð
 (‘	ä-¨g°{ÈiÓX�	Ü	‡I‚IÐ)¨9Ô5ØÐ÷ @Ö?ús   Ç=IÉ
I 	c           	      ó  • [        UR                  5      nU R                  [        U5      5      nU Hº  n[        U5      nUR                  S:X  a"  SR                  S UR                   5       5      nUS;   aX  [        S U 5       5      nUS1:X  a  US:X  a  U R                  U5      nMx  Mz  US1:X  a  US:w  a  U R                  U5      nMš  Mœ  Mž  [        XUU R                  U5      5      nM¼     [        R                  " S	U5        U$ )
NÚcomp_opr    c              3   ó8   #   • U  H  oR                   v •  M     g 7fr\   r]   )r_   rò   s     rR   rb   Ú infer_or_test.<locals>.<genexpr>Õ  s   é € ÐCÒ1B¨A§¦Ò1Bùs   ‚)ÚandÚorc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr\   )Ú
py__bool__)r_   Úlefts     rR   rb   r"  Ù  s   é € ÐAº5°4Ÿ_™_×.Ð.º5ùó   ‚Tr#  Fzinfer_or_test types %s)
Úiterrm   r‡   r  rh   ÚjoinÚsetr¯   r   rs   )rL   Úor_testÚiteratorÚtypesrŸ   rÂ   Ú
left_boolss          rR   r¼   r¼   Ï  s  € Ü�G×$Ñ$Ó%€HØ×Ñœt H›~Ó.€EÛˆÜ�X“ˆØ�=‰=˜IÓ%Ø—x‘xÑC°×1BÒ1BÓCÓCˆHð �}Ó$ÜÑA¹5ÓAÓAˆJØ˜d˜VÓ#Ø˜uÓ$Ø#×.Ñ.¨uÓ5’Eñ %à ˜wÓ&Ø˜uÓ$Ø#×.Ñ.¨uÓ5’Eñ %ñ 'ô
 & g°hØ&-×&8Ñ&8¸Ó&?óAŠEñ! ô$ 
‡I‚IÐ&¨Ô.Ø€LrW   c              #   ó¢  #   • U  HÅ  nUS:X  a&  [        U5      (       a  UR                  5       v •  M-  M/  US:X  aŒ  UR                  5       nUcO  [        UR                  R
                  R                  S5      R                  S5      5      R                  5       v •  M—  [        R                  " UR                  U(       + 5      v •  MÁ  Uv •  MÇ     g7f)z.
Calculates `+`, `-`, `~` and `not` prefixes.
r5   ÚnotNÚbool)r   Únegater&  rt   rE   rI   r¸   rº   r®   r   rê   )rÀ   rŸ   r^   Úbs       rR   r´   r´   è  sª   é € ó
 ˆØ�s‹?Ü˜×ÑØ—l‘l“nÔ$ñ  à˜ÓØ× Ñ Ó"ˆAØ‰yÜ˜5×0Ñ0×@Ñ@×SÑSÐTZÓ[ß.Ñ.¨tÓ4ó6ß69±c³eô<ô ×3Ò3°E×4IÑ4IÈqÌ5ÓQÔQàŒKò ùs   ‚CCc                 óÞ   • [         nU H`  n[        U5      (       a>  [        R                  " XR                  R
                  5      nX$R                  5       -  nMQ  U[        U/5      -  nMb     U$ r\   )r   r   r   r·   r�   Ústring_namer»   r   )rE   r†   Ú
new_resultr½   Úclss        rR   Ú_literals_to_typesr9  ü  sa   € ô €JÛˆÜ�c�?‰?ô ×,Ò,¨_¿h¹h×>RÑ>RÓSˆCØ×1Ñ1Ó3Ñ3ŠJàœ( C 5›/Ñ)ŠJñ ð ÐrW   c                 ó  ^ ^^^• T R                   m[        T[        5      (       a  TnO[        TR                  5      nU(       a  T(       d+  U=(       d    [        T=(       d    [        -  n[        TU5      $ US:X  aD  [        S [        R                  " UT5       5       5      (       a  [        R                  " UT45      $ [        U5      [        T5      -  S:”  a  [        TUT-  5      $ [        R                  " U UUU4S jU 5       5      $ )Nr<   c              3   óž   #   • U  HC  nUR                  5       =(       d'    UR                  5       =(       d    [        U[        5      v •  ME     g 7fr\   )Úis_classÚis_compiledre   r&   )r_   r^   s     rR   rb   Ú$_infer_comparison.<locals>.<genexpr>  s;   é € ð %â?ˆEð 	�‰Ó×M˜E×-Ñ-Ó/×M´:¸eÄWÓ3MÔMÚ?ùs   ‚AAé   c           	   3   óV   >#   • U  H  nT  H  n[        TTUTU5      v •  M     M      g 7fr\   )Ú_infer_comparison_part)r_   r'  rÂ   rL   rŸ   Úright_valuesrð   s      €€€€rR   rb   r>  "  s6   øé € ð &â'�DÜ)�Eô ' u¨g°t¸XÀu×MÐMá)ñ NÚ'ùs   ƒ&))rE   re   Ústrr^   r   r9  ÚallÚ	itertoolsÚchainr   Ú	from_setsrr   )rL   r  rŸ   rB  Úoperator_strr†   rð   s   ` ``  @rR   r¯   r¯     sã   û€ Ø×#Ñ#€EÜ�(œC× Ñ Ø‰ä˜8Ÿ>™>Ó*ˆÞžlà×*¤¨|×/H¼yÑIˆÜ! %¨Ó0Ð0Ø	˜Ó	¤ñ %ä—_’_ [°,Ô?ó%÷ "ñ "ô
 ×!Ò! ;°Ð"=Ó>Ð>ô
 ˆ{Óœc ,Ó/Ñ/°!Ó3Ü% e¨[¸<Ñ-GÓHÐHä×%Ò%÷ &á'ó&ó ð rW   c                 óÈ  • U R                  SSS5      nUc  gUR                  S;   aD  UR                  nUb3  UR                  U R                  s=:*  =(       a    UR                  :  $ s  $  gUR                  S:X  ag  UR
                  n[        U5      S:”  aL  US   R                  S:X  a9  US   R                  U R                  s=:*  =(       a    US   R                  :  $ s  $ g)NÚparamÚfuncdefr•   F)rJ  rK  rB   r¥   )rä   rh   r   rn   ro   rm   rr   )r�   ÚancestorÚannrò   s       rR   ræ   ræ   )  sÎ   € Ø×#Ñ# G¨Y¸ÓD€HØÑØà‡}�}Ð,Ó,Ø×!Ñ!ˆØ‰?Ø—=‘= D§N¡N×@Ó@°S·[±[Ñ@Ð@Ñ@Ð@ð ð ð	 
�‰˜+Ó	%Ø×ÑˆÜˆq‹6�A‹:˜!˜A™$Ÿ)™) {Ó2Ø�Q‘4—>‘> T§^¡^×BÓB°a¸±d·l±lÑBÐBÑBÐBØrW   c                 ó    • U R                   S:H  $ )Nrt   ©r  r]   s    rR   Ú_is_listrP  9  s   € Ø×Ñ˜vÑ%Ð%rW   c                 ó    • U R                   S:H  $ )NÚtuplerO  r]   s    rR   Ú	_is_tuplerS  =  s   € Ø×Ñ˜wÑ&Ð&rW   c                 óB   • [         R                  " U [        U5      5      $ r\   )r   r·   rC  )rE   Úbool_s     rR   Ú_bool_to_valuerV  A  s   € Ü×%Ò% o´s¸5³zÓBÐBrW   c                 óN  • [        U [        R                  5      (       d  g / nU R                  5        H]  n[        U[        5      (       d    g UR
                  nUR                  S:w  a    g  UR                  [        UR                  5      5        M_     U$ ! [         a       g f = f)NrŽ   )re   r   r³   Ú
py__iter__r   Údatarh   ÚappendÚintr^   Ú
ValueError)r^   Únumbersr  rÒ   s       rR   Ú_get_tuple_intsr^  E  sŒ   € Ü�eœX×:Ñ:×;Ñ;ØØ€GØ×&Ñ&Ö(ˆ
Ü˜*¤m×4Ñ4ÙØ�‰ˆØ�9‰9˜Ó Ùð	Ø�N‰Nœ3˜tŸz™z›?Ö+ñ )ð €Nøô ó 	Úð	ús   Á,$BÂ
B$Â#B$c                 ó
  • [        U5      n[        U5      n[        U[        5      (       a  UnO[        UR                  5      nUS:X  ax  [        U[        R
                  5      (       d  [        U5      (       a  [        U/5      $ [        U[        R
                  5      (       d  [        U5      (       a  [        U/5      $ GO1US:X  a£  U(       a  U(       d   [        U5      (       a!  [        U5      (       a  UR                  XG5      $ [        U5      (       a  [        U5      (       d   [        U5      (       a2  [        U5      (       a"  [        [        R                  " XU45      /5      $ GOˆUS:X  a!  U(       a  U(       a  UR                  XG5      $ GOaUS:X  a  [        U/5      $ U[        ;   Ga  UR                  5       (       a0  UR                  5       (       a  UR                  XG5      nU(       a  U$ O®US;   a/  [        U   n	U	" X$5      n
US;   U
:X  a  [        [        X
5      /5      $ [        U[        5      (       ad  [!        U5      nUbV  ["        R$                  R                  U   " U R&                  R(                  [+        U5      5      n[        [        X5      /5      $ [        [        U S5      [        U S5      /5      $ US	;   a*  U R,                  R/                  S
5      R1                  U5      $ S nUS;   a>  XV:w  a9  U" U5      (       d,  U" U5      (       d  Sn[2        R4                  " USUXâU4-  5        UR7                  5       (       d  UR7                  5       (       a  [8        $ [:        U   nUR/                  U5      nU(       a  UR=                  U5      nU(       a  U$ U(       d4  [>        U   nUR/                  U5      nUR=                  U5      nU(       a  U$ [        X$/5      n[@        RB                  " SX85        U$ )Nr6   r4   r5   r9   )Úisz!=ú==zis not)r`  ra  TF)Úinznot inr2  c                 ób   • [        U [        5      =(       a    U R                  R                  S;   $ )z4Checks if a Jedi object is either a float or an int.)r[  Úfloat)re   r   r�   r6  )Úobjs    rR   ÚcheckÚ%_infer_comparison_part.<locals>.check’  s)   € ä˜#œ|Ó,÷ 5Ø�H‰H× Ñ Ð$4Ñ4ð	5rW   )r4   r5   z7TypeError: unsupported operand type(s) for +: %s and %sztype-error-operationz Used operator %s resulting in %s)"r   re   rC  r^   r   ÚSequencer   r   Úexecute_operationrP  rS  ÚMergedArrayr   r=  rV  r   r^  r   ÚaccessÚenvironmentÚversion_inforR  rI   r¸   rº   r   Úaddr<  r   Úoperator_to_magic_methodr»   Ú reverse_operator_to_magic_methodr   rs   )rE   rL   r'  rŸ   rÂ   Úl_is_numÚr_is_numÚstr_operatorr†   Ú	operationrU  rm  Úbool_resultrf  ÚmessageÚmethod_nameÚmagic_methodsÚreverse_method_names                     rR   rA  rA  V  sm  € Ü˜‹€HÜ˜Ó€HÜ�(œC× Ñ Ø‰ä˜8Ÿ>™>Ó*ˆà�sÓä�dœH×-Ñ-×.Ñ.´)¸D·/±/Ü˜T˜FÓ#Ð#Ü˜œx×0Ñ0×1Ñ1´Y¸u×5EÑ5EÜ˜U˜GÓ$Ð$ñ 6Fà	˜Ó	Þž¤I¨d§O¡O¼	À%×8HÑ8HØ×)Ñ)¨%Ó>Ð>Ü�d�^‰^¤¨§¡´9¸T·?±?ÄyÐQV×GWÑGWÜœX×1Ò1°/È%À=ÓQÐRÓSÐSùØ	˜Ó	ÞžØ×)Ñ)¨%Ó>Ð>ùØ	˜Ó	ô ˜˜ÓÐØ	Ô-Ô	-Ø×Ñ×Ñ %×"3Ñ"3×"5Ñ"5à×+Ñ+¨EÓ@ˆFÞØ�ð ð Ð;Ó;Ü0°Ñ>�	Ù! $Ó.�ð ! LÑ0°UÓ:Ü#¤^°OÓ%KÐ$LÓMÐMä˜$¤×,Ñ,Ü.¨uÓ5�ØÑ+Ü"*§/¡/×"FÑ"FÀxÒ"PØ'×3Ñ3×@Ñ@Ü˜lÓ+ó#�Kô $¤^°OÓ%QÐ$RÓSÐSäÜ˜?¨DÓ1Ü˜?¨EÓ2ð
ó ð 	ð 
Ð)Ó	)Ø×.Ñ.×AÑAÀ&ÓI×\Ñ\Øó
ð 	
ò5ð �zÓ! hÓ&:Ù˜4—[‘[¡E¨%§L¡LØKˆÜ�Š�WÐ4°hØ e˜}Ñ,ô	.ð ‡}�}‡�˜%Ÿ.™.×*Ñ*ÜÐä*¨<Ñ8€KØ×+Ñ+¨KÓ8€MÞØ×2Ñ2°5Ó9ˆÞØˆMæÜ>¸|ÑLÐØ×0Ñ0Ð1DÓEˆà×2Ñ2°4Ó8ˆÞØˆMä�t�mÓ$€FÜ	‡I‚IÐ0°(ÔCØ€MrW   c                 ó®
  • [         nUR                  5       R                  nUGbü  UR                  5       R	                  UR
                  / 5      nSnU GHÀ  nUR                  nUR                  S:X  d  M"  UR                  S   R                  S:X  d  MA  [        R                  " U5      UR                  :H  n	UR                  S   n
U
R                  S   nUR                  5       nU	(       d  M›  UR                  S5      (       a  M³  UR                  5       S:X  a  MÉ  UR                  S:X  aD  U
R                  S   R
                  UR
                  :X  a  UR                  (       a  UR                  n[        R                   " XR                  S   R                  S   5      nSn[#        U5      S:X  aM  [%        ['        U5      5      n[)        U[*        5      =(       a    UR,                  R.                  [0        ;   (       + nUnX=R3                  U5      -  nGMÃ     U(       a  U$ / nUR5                  SSS	9nUcÆ  UR                  nUR                  S
:X  a}  UR7                  U5      nUR9                  5       (       a  [         $ [%        UR;                  5       5      nUR	                  UR
                  5      n[<        R>                  " S U 5       5      $ UR                  S;  a  UR7                  U5      n[A        UU5      $ UR                  nUS:X  a!  [        RB                  " UUU5      nU(       a  U$ US:X  a!  [        RD                  " UUU5      nU(       a  U$ US;   a   URF                  U   UR
                     nU$ US:X  a  [U        UUU5      nU$ US:X  a›  URW                  URY                  U5      5      nUR                  R                  S:X  a?  UR[                  S5      nUR]                  5       nUR_                  5       Ra                  5       $ UR[                  S5      nUR3                  U5      $ US;   a  [b        Rd                  " X5      nU$ US;   a  [g        UU5      nU$ US:X  a?  URW                  URi                  5       Ri                  5       5      nUR]                  5       nU$ US:X  a  [         nU$ US:X  a  [         nU$ US:X  a  [W        UU5      nU$ [k        SU-  5      e! [H         ad    [K        UUR                  S   5      n[M        URO                  5       UUR                  R                  S:H  S9n[Q        X5      n[S        UU5      n U$ f = f)NFr•   rB   r¥   z
.TypeAliasÚ	TypeAliasr�   T)Úimport_name_alwaysr  Úglobal_stmtc              3   ó@   #   • U  H  oR                  5       v •  M     g 7fr\   )rq   )r_   r�   s     rR   rb   Ú&tree_name_to_values.<locals>.<genexpr>ë  s   é € Ð%Eºu°t§j¡j§l lºuùr(  )Úimport_fromÚimport_namerZ   Ú	with_stmt)rZ   rà   rá   rß   Ú
async_stmt)Úcontextualized_nodeÚis_asyncÚ
__aenter__Ú	__enter__)rK  ÚclassdefÚtry_stmtrJ  Údel_stmtr©   zShould not happen. type: %s)6r   Úget_root_contextrD   Úget_used_namesrk   r^   rg   rh   rm   r   Úget_parent_scopeÚget_codeÚendswithÚstriprG   r   r¹   rr   r  r)  re   r$   r�   r6  r%   rº   Úget_definitionÚcreate_contextÚ	is_moduleÚget_filtersr   rG  r«   Úfind_type_from_comment_hint_forÚ find_type_from_comment_hint_withrj   rK   r   r
   rq   r    r  r­   r‡   Úget_test_node_from_namer¸   r»   r±   r²   r   Úinfer_importÚ_apply_decoratorsÚget_previous_siblingr\  )rE   rL   Ú	tree_namerÀ   Úmodule_nodeÚnamesÚfound_annotationr�   r•   Úcorrect_scopeÚ
ann_assignÚfirstÚcodeÚfoundÚset_found_annotationr.  rÒ   rò   Úfilterr½   r  Ú	for_typesrO   Úvalue_managersÚenter_methodsÚcoroÚ
exceptionss                              rR   Útree_name_to_valuesr«  µ  sø  € ä€IØ×*Ñ*Ó,×6Ñ6€KàÒØ×*Ñ*Ó,×0Ñ0°·±À"ÓEˆØ ÐÜˆDØŸ™ˆIà�~‰~ Õ,°×1CÑ1CÀAÑ1F×1KÑ1KÈ{Õ1ZÜ ,× =Ò =¸dÓ CÀw×GXÑGXÑ X�Ø&×/Ñ/°Ñ2�
Ø"×+Ñ+¨AÑ.�Ø—~‘~Ó'�ß �=¨$¯-©-¸×*EÓ*EØ-1¯Z©Z«\¸[Õ-HàŸ™ vÓ-Ø'×0Ñ0°Ñ3×9Ñ9¸Y¿_¹_ÓLØ#×2×2à")×"8Ñ"8˜Ü&×7Ò7Ø×!3Ñ!3°AÑ!6×!?Ñ!?ÀÑ!Bó�Eð ,0Ð(Ü˜5“z Q“Ü $¤T¨%£[Ó 1˜ä& uÔ.>Ó?÷ RØ %§
¡
× 6Ñ 6Ô:QÑ Qô0Ð,ð (<Ð$Ø×!9Ñ!9¸'Ó!BÑB“Iñ7 ö8 ØÐà€EØ×#Ñ#°tÈTÐ#ÐR€DØ�|Ø×ÑˆØ�9‰9˜Ó%Ø×&Ñ& yÓ1ˆAØ�{‰{�}‰}ô !Ð ô ˜!Ÿ-™-›/Ó*ˆFØ—J‘J˜yŸ™Ó/ˆEÜ×%Ò%Ñ%E¹uÓ%EÓEÐEØ�Y‰YÐ<Ó<Ø×&Ñ& yÓ1ˆAÜ˜a Ó+Ð+à
�)‰)€CØ
ˆjÓÜ×:Ò:¸7ÀDÈ)ÓTˆÞØˆLØ
ˆkÓÜ×;Ò;¸GÀTÈ9ÓUˆÞØˆLà
Ð7Ó7ð
	:Ø×,Ñ,¨TÑ2°9·?±?ÑCˆEðR €Lð? 
�Ó	Ü ¨¨yÓ9ˆð< €Lð; 
�Ó	Ø ×+Ñ+¨D×,HÑ,HÈÓ,SÓTˆØ�;‰;×Ñ˜|Ó+ð +×=Ñ=¸lÓKˆMØ ×4Ñ4Ó6ˆDØ×#Ñ#Ó%×@Ñ@ÓBÐBØ&×9Ñ9¸+ÓFˆØ×/Ñ/°Ó8Ð8Ø	Ð.Ó	.Ü×$Ò$ WÓ8ˆð" €Lð! 
Ð'Ó	'Ü! '¨4Ó0ˆð €Lð 
�
Ó	ð ×'Ñ'¨	×(FÑ(FÓ(H×(]Ñ(]Ó(_Ó`ˆ
Ø×.Ñ.Ó0ˆð €Lð 
�‹Üˆð €Lð 
�
Ó	Üˆð
 €Lð	 
Ð Ó	 Ü˜7 DÓ)ˆð €Lô Ð6¸Ñ<Ó=Ð=øôO ó 	:Ü# G¨T¯]©]¸1Ñ-=Ó>ˆBÜ&Ø—‘“
Ø$&ØŸ™×)Ñ)¨\Ñ9ñˆIô
 # 7Ó6ˆAÜ+¨A¨yÓ9‰Eð@ €LðQ	:ús   ÍS& Ó&A*UÕUc           	      ó  • UR                   S:X  a  [        U R                  U US9nO[        R                  " X5      n[        U/5      =p4[        U 5      (       a  U$ [        UR                  5       5       GHO  n[        R                  " SXTSS9  [        R                  " 5          U R                  UR                  S   5      nUR                  SS nU(       a)  [        R                  " S	U5      nXXl        [#        XU5      n[%        U5      (       d9  UR'                  S
S9n	U	S:w  a  [        R(                  " SXQ5        UsSSS5        s  $ UR+                  [,        R.                  " U/5      5      n[%        U5      (       d$  [        R(                  " SU5        UsSSS5        s  $  SSS5        [        R                  " SUSS9  GMR     XC:w  a%  [        U V
s/ s H  n
[1        X¢5      PM     sn
5      $ U$ ! , (       d  f       NU= fs  sn
f )zz
Returns the function, that should to be executed in the end.
This is also the places where the decorators are processed.
rˆ  )rG   rD   zdecorator: %s %sÚMAGENTA)ÚcolorrB   r?   r�   rÁ   F)Úinclude_prefixz	@runtime
zdecorator not found: %s on %sNz)not possible to resolve wrappers found %szdecorator end %s)rh   r   rE   r   r¬   r   r   ÚreversedÚget_decoratorsr   rs   Úincrease_indent_cmr‡   rm   r   Ú
PythonNoderg   r°   rr   rŽ  rJ   rÏ   r   ÚValuesArgumentsr"   )rL   rÒ   Údecoratee_valueÚinitialÚvaluesÚdecÚ
dec_valuesÚtrailer_nodesrÁ   r¢  rò   s              rR   r™  r™  *  s²  € ð ‡y�y�JÓÜ$Ø×#Ñ#Ø"Øñ
‰ô (×4Ò4°WÓCˆÜ Ð 1Ó2Ð2€Gä˜w×'Ñ'Øˆä˜×+Ñ+Ó-×.ˆÜ�	Š	Ð$ c¸ÒCÜ×%Ò%Õ'Ø ×+Ñ+¨C¯L©L¸©OÓ<ˆJØŸL™L¨¨2Ð.ˆMÞäŸ/š/¨)°]ÓC�Ø!$”Ü*¨7ÀÓH�
ä�z—?‘?Ø—|‘|°5�|Ð9�ð ˜<Ó'Ü—M’MÐ"AÀ3ÔMØ÷! (Ó'ð$  ×'Ñ'¬	×(AÒ(AÀ6À(Ó(KÓLˆFÜ�v—;‘;Ü—’ÐIÈ4ÔPØ÷+ (Ó'ð& ÷' (ô. 	�	Š	Ð$ f°IÕ>ñ3 /ð4 ÓÜÁÓGÂ¸1œ 1Ö6ÁÑGÓHÐHØ€M÷5 (Õ'üò2 Hs   Â$BG5ÅAG5ÇHÇ5
H	c                 ó–  • SnU R                  5        Hƒ  u  p4[        U R                  U5      nUR                  U5      n[	        U[
        5      (       a  [        s  $ SnSnXs::  a!   [        U5      nXrR                  -  nXs::  a  M!  UR                  5       nM…     U$ ! [         a"    Ub  UR                  5       s s  $ [        s s  $ f = f)z 
Checks if tuples are assigned.
Nr   )Úassignment_indexesr   rG   r  re   Úslicer   r  ÚmaxÚStopIterationrq   )r�   rÀ   r  ÚindexrÒ   r  Úiteratedr`   s           rR   r  r  \  sÍ   € ð €JØ×.Ñ.Ö0‰ˆÜ × 3Ñ 3°TÓ:ˆØ×$Ñ$ RÓ(ˆÜ�eœU×#Ñ#äÒØˆØˆ
Ø‹jð$Ü! (›^�
ð —^‘^Ñ#�ð �jð  ×$Ñ$Ó&Š	ñ1 1ð2 Ðøô !ó 
!ð Ñ)Ø%×+Ñ+Ó-Ô-ô !Ô ð
!ús   Á&BÂCÂ=CÃCc                   ó   • \ rS rSrS rSrg)r  i}  c                 óB   • [        U R                  U R                  5      $ r\   )rÍ   rL   rÒ   )Úselfs    rR   rq   Ú%ContextualizedSubscriptListNode.infer~  s   € Ü$ T§\¡\°4·9±9Ó=Ð=rW   rU   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rq   Ú__static_attributes__rU   rW   rR   r  r  }  s   † õ>rW   r  c                 óÄ  • US:X  a#  [        [        R                  " U SSS5      /5      $ UR                  S:X  aÜ  UR                  S   S:X  dÉ  / nUR                   H�  nUS:X  a  U(       d  UR                  S5        M#  M%  UR                  S:X  a;  [        UR                  5      S:X  a   UR                  UR                  S   5        Mn  Mp  UR                  U5        Mƒ     US/S	[        U5      -
  -  -  n[        [        R                  " U /UQ76 /5      $ UR                  S
:X  a+  [        [        R                  " U R                  X5      /5      $ U R                  U5      $ )z$
Handles slices in subscript nodes.
rÞ   NÚ	subscriptr   rÉ   Úsliceopr?   rB   rß   r  )
r   r   ÚSlicerh   rm   rZ  rr   r³   rE   r‡   )rL   rÀ  r†   Úels       rR   rÍ   rÍ   ‚  s0  € ð �ƒ|äœŸš¨°°t¸TÓBÐCÓDÐDà	�‰�{Ó	"¨5¯>©>¸!Ñ+<ÀÓ+Cð ˆØ—.”.ˆBØ�S‹yÞØ—M‘M $Ö'ñ à—‘˜IÓ%Ü�r—{‘{Ó# qÓ(Ø—M‘M "§+¡+¨a¡.Ö1ñ )ð —‘˜bÖ!ñ !ð 	�4�&˜A¤ F£™OÑ,Ñ,ˆäœŸš¨Ð9°&Ò9Ð:Ó;Ð;Ø	�‰�Ó	&Üœ×6Ò6°w×7NÑ7NÐPWÓ_Ð`ÓaÐað ×Ñ˜eÓ$Ð$rW   r\   )VÚ__doc__rv   rE  Úparso.pythonr   Újedir   r   Újedi.inference.base_valuer   r   r   r	   r
   Újedi.inference.lazy_valuer   Újedi.inferencer   r   r   r   r   Újedi.inference.valuer   r   r   Ú#jedi.inference.value.dynamic_arraysr   r   r   Újedi.inference.helpersr   r   r   r   r   Újedi.inference.compiled.accessr   Újedi.inference.cacher   Ú!jedi.inference.gradual.stub_valuer   Újedi.inference.gradualr   Újedi.inference.namesr    Újedi.inference.contextr!   Újedi.inference.value.decoratorr"   Újedi.pluginsr#   Újedi.inference.gradual.typingr$   r%   Újedi.inference.gradual.type_varr&   ro  Úitemsrp  rV   r‡   rx   r‰   Úincrease_indentrf   r°   r«   r­   rù   r¼   r´   r9  r¯   ræ   rP  rS  rV  r^  rA  Údecorater«  r™  r  r  rÍ   )Úkr  s   00rR   Ú<module>rç     sú  ðñó Û å å Ý ÷*õ *å 3Ý #Ý $Ý #Ý "Ý $ß :Ý )ß RÝ -÷/õ /å ?Ý =Ý 9Ý -Ý 3Ý 1Ý 4Ý 'ß SÝ 3ð 
Ø	Ø	Ø	Ø	Ø
Ø	Ø
Ø
Ø
Ø	Ø	Ø	ñÐ ð" ":×!?Ñ!?Ô!Aô$Ú!A™˜€A€uˆq��ˆu�}ÒÑ!Aò$Ð  ò
òBE=òP
0ñ  iÑ0ñ)ó 1ð)ð ×ÑØñM/ó ó ðM/ò`-ò0R%ðj ó
ó ð
ð ×ÑóJó ðJòZð2 ñó ðò&òò<ò &ò'òCòò"\ð~ ×ÒÓñoó ðoñh Óñ.ó  ð.òbôB>Ð&8ô >ó
%ùó]$s   ÃF