Ë
    ¬;j’  ã                   óB  — d Z ddlZddl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mZmZ ddlmZ ddlmZ dd	lmZ dd
lmZ ddlmZ ddlmZ ddlmZmZ ddlmZ ddlmZ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+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6 ddl7m8Z8 ddddd d!d"d#d$d%d&d'd(d)œZ9e9ju                  «       D � �ci c]  \  } }| d*|d+d z   “Œ c}} Z;d,„ Z<d-„ Z=d.„ Z> e'e
¬/«      d0„ «       Z?ej€                  e<d1„ «       «       ZAd2„ ZBd3„ ZCe<dFd4„«       ZDej€                  dFd5„«       ZEd6„ ZFed7„ «       ZGd8„ ZHd9„ ZId:„ ZJd;„ ZKd<„ ZLd=„ ZMd>„ ZNd?„ ZO e3j                   «       d@„ «       ZQ e'«       dA„ «       ZRdB„ ZS G dC„ dDe«      ZTdE„ ZUyc c}} w )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                 ó   ‡ — ˆ fd„}|S )a{  
    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                 ót  •— | j                   }| j                  }	 |j                  |xx   dz  cc<   d}| j                  €!| j	                  «       |j
                  u r|dz  }|j                  |   |kD  rt        j                  d|«       t        S 	  ‰| g|¢­i |¤ŽS # t        $ r d|j                  |<   Y Œ&w xY w)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         €úk/workspace/moltex-experiments/.pixi/envs/default/lib/python3.12/site-packages/jedi/inference/syntax_tree.pyÚwrapperz$_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   ›A3B ÂB7Â6B7© )rQ   rS   s   ` rR   Ú_limit_value_infersrU   9   s   ø€ ô.ð* €Nó    c                 óâ  ‡— t        | t        «      rt        | |«      S i g}|}|�6|j                  }|j                  dv rnt        j                  |«      rd }n|�Œ6| j                  j                  |«      }|�€Í|�rÊ|j                  dk(  �rº| j                  j                  �r£|j                  d   }|j                  |j                  kD  �r't        |«      }t        |«      }|D �cg c]  }|j                  ‘Œ c}Št!        ˆfd„|D «       «      rã|D ]Þ  }	| j                  j#                  | |	«      }
t%        |
«      dkD  rœt%        |«      t%        |
«      z  dkD  rt'        j(                  d|«       i g} nt+        |«      }g }|
D ]T  }t+        |«      }t-        |«      D ]4  \  }}|j/                  «       ||<   t1        |g«      ||   |	j                  <   Œ6 ||z  }ŒV ŒÉ|D ]  }|
||	j                  <   Œ Œà t%        |«      dkD  r9t2        }|D ],  }| j5                  ||«      5  |t        | |«      z  }d d d «       Œ. |S t7        | |«      S |rt        | |«      S t7        | |«      S c c}w # 1 sw Y   ŒexY w)N)Úif_stmtÚfor_stmtrX   rB   c              3   ó:   •K  — | ]  }|j                   ‰v –— Œ y ­w©N©Úvalue)Ú.0ÚiÚstr_element_namess     €rR   Ú	<genexpr>zinfer_node.<locals>.<genexpr>x   s   øè ø€ ÐB¹°A�1—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_dictsrX   Úpredefined_if_name_dictÚif_stmt_testÚif_namesÚelement_namesÚeÚif_nameÚdefinitionsÚoriginal_name_dictsÚ
definitionÚnew_name_dictsr_   Ú	name_dictÚresultr`   s                    @rR   Ú
infer_noder…   Z   sy  ø€ Ü�'œ>Ô*Ü˜7 GÓ,Ð,à�€JØ€GØ
Ð
Ø—.‘.ˆØ�<‰<Ð2Ñ2ØÜ× Ñ  Ô)ØˆGØð Ñ
ð &×6Ñ6×:Ñ:¸7ÓCÐð Ñ&ª7Ø—‘ 	Ó)¨g×.EÑ.E×.QÓ.QØ×'Ñ'¨Ñ*ˆð
 ×Ñ˜|×3Ñ3Ó3ô )¨Ó6ˆHÜ-¨gÓ6ˆMÙ2?Ó @±-¨Q §£°-Ñ @ÐÜÓ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¡  9Ø4=·N±NÓ4D ¨qÑ 1ÜCKÈZÈLÓCY ¨qÑ 1°'·-±-Ò @ð 1Jð '¨.Ñ8™Jñ +6ó *4˜IØ7B˜I g§m¡mÒ4ñ *4ð1  (ô4 ˆz‹?˜QÒÜˆFÛ'�	Ø×,Ñ,¨W°iÕ@Øœk¨'°7Ó;Ñ;�F÷ AÐ@ð (ð ˆMä*¨7°GÓ<Ð<á"Ü˜w¨Ó0Ð0ä*¨7°GÓ<Ð<ùòQ !A÷> AÐ@ús   Ã&I ÈI%É%I.	c                 ó’   — |}|�8|j                   }| j                  j                  |«      }|�t        | |«      S |�Œ8t	        | |«      S )zA
    TODO This function is temporary: Merge with infer_node.
    )re   rh   ri   rd   Ú_infer_node_cached)rL   rw   re   ry   s       rR   rv   rv   ¢   sY   € ð €FØ
Ð
Ø—‘ˆØ")×":Ñ":×">Ñ">¸vÓ"FÐØ"Ð.Ü˜w¨Ó0Ð0ð	 Ñ
ô
 ˜g wÓ/Ð/rV   )Údefaultc                 ó   — t        | |«      S r[   )rd   )rL   rw   s     rR   r‡   r‡   ¯   s   € ä�w Ó(Ð(rV   c                 ó²  — t        j                  d||j                  | «       | j                  }|j                  }|dv rt        | |«      S |dk(  r t        t        j                  | |«      g«      S |dk(  rt        | |«      S |dv rÐ|j                  d   }|j                  dd  }d}|j                  d	k(  r"|j                  d
k(  rd}|j                  d«      }| j                  |«      }t        |«      D ]>  \  }}	|	dk(  r'| j                  ||dz      «      }
t        | ||	|
«      } nt!        | ||	«      }Œ@ |r|j#                  «       j%                  «       S |S |dv r!t        t'        j(                  || |«      g«      S |dv r@| j                  |j                  d   «      }|j                  d d D ]  }t+        ||«      }Œ |S |dk(  r=| j                  |j                  d   «      | j                  |j                  d   «      z  S |dk(  r`|j                  dk7  r1|j,                  }t/        dt1        |j                  «      ›d|›d�«      ‚t        t3        j4                  |d«      g«      S |dk(  rEt        | |j                  d   «      }|j                  dd d…   D ]  }|j7                  || ¬«      }Œ |S |dk(  r| j                  |j                  d   «      S |dk(  r2t9        j:                  | |j                  d   «      j=                  | «      S |dk(  r‘t?        |j                  «      rv|j                  d   j                  dk(  rZ|j                  d   j                  d   }| j                  |«      j7                  d«      jA                  «       }|j%                  «       S tB        S |dk(  r| j                  |j                  d   «      S |d k(  rtB        S tE        | |«      S )!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   rq   rl   rE   rf   Ú
infer_atomr   r   Úfrom_contextÚinfer_expr_stmtrk   r]   Úpopr…   rs   Ú_infer_comparisonÚinfer_trailerÚpy__await__Úpy__stop_iteration_returnsr   ÚSequenceLiteralValueÚinfer_factorre   ÚAssertionErrorÚreprr   Úbuiltin_from_nameÚpy__getattribute__r   Úinfer_annotationÚexecute_annotationrp   Úexecute_with_valuesr   Úinfer_or_test)rL   rw   rE   ÚtypÚfirst_childrk   Ú	had_awaitÚ	value_setr_   ÚtrailerÚrightr�   ÚoriginÚ	next_nameÚ
generatorss                  rR   rd   rd   ´   sæ  € ô 
‡I�IÐ&¨°×1BÑ1BÀGÔLØ×-Ñ-€OØ
�,‰,€CØ
ÐSÑSÜ˜' 7Ó+Ð+Ø	�	Ò	Üœ×3Ñ3°G¸WÓEÐFÓGÐGØ	�Ò	Ü˜w¨Ó0Ð0Ø	Ð&Ñ	&Ø×&Ñ& qÑ)ˆØ×#Ñ# A BÐ'ˆØˆ	Ø×Ñ˜yÒ(¨[×->Ñ->À'Ò-IØˆIØ"Ÿ,™, q›/ˆKà×&Ñ& {Ó3ˆ	Ü% hÖ/‰LˆQ�Ø˜$ŠØ×*Ñ*¨8°A¸±E©?Ó;�Ü-ØØØØó	�	ñ Ü% g¨y¸'Ó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ÈWÐ4ÓU‰Ið 0àÐØ	�Ò	Ø×!Ñ! '×"2Ñ"2°1Ñ"5Ó6Ð6Ø	�Ò	Ü×*Ñ*¨7°G×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 gÓ.Ð.rV   c                 óŒ  — |j                   d d \  }}|dk(  rd }|dk(  r6|j                   \  }}}|j                  t        | |«      t        | |«      «      S t	        j
                  d||«       |dk(  r|j                  | |¬«      S |dk(  s
J d|z  «       ‚t        j                  | j                  | ||«      }|j                  |«      S )	Nr?   Ú)Ú[zinfer_trailer: %s in %sÚ.)r¡   Úname_or_strÚ(ztrailer_op is actually %s)rk   Úget_itemÚ_infer_subscript_listr   r   rq   r¶   r   ÚTreeArgumentsrE   Úexecute)rL   Úatom_valuesr¿   Ú
trailer_opÚnodeÚ_rM   s          rR   r®   r®     sè   € Ø×'Ñ'¨¨Ð+Ñ€J�Øˆs‚{Øˆà�SÒØ%×.Ñ.Ñˆ
�D˜!Ø×#Ñ#Ü! '¨4Ó0Ü˜w¨Ó0ó
ð 	
ô
 	�	‰	Ð+¨W°kÔBØ˜ÒØ×1Ñ1Ø$Ø ð 2ó ð ð
  Ò$ÐNÐ&AÀJÑ&NÓNÐ$Ü×*Ñ*¨7×+BÑ+BÀGÈTÐSZÓ[ˆDØ×&Ñ& tÓ,Ð,rV   c                 ót  ‡— | j                   }‰j                  dk(  rˆ‰j                  ddd«      xs ‰}|j                  dk(  r%t        ˆfd„|j	                  «       D «       «      s‰}n|j                  dk(  r‰}|j
                  }t        ‰«      rd}| j                  ‰|¬«      S ‰j                  dk(  rW‰j                  d	v r*t        t        j                  |‰j                  «      g«      S ‰j                  d
k(  rt        S J d‰z  «       ‚t        ‰t        j                  «      rE|j                   j#                  ‰j                  «      }t        t        j$                  ||«      g«      S ‰j                  dk(  rIt'        | ‰j(                  d   «      }‰j(                  dd D ]  }t'        | |«      }t+        | |d|«      }Œ |S ‰j                  dk(  rt        j,                  |«      S ‰j(                  }|d   dk(  rOt/        |«      dk(  sA|d   j                  dk(  rt/        |d   j(                  «      dkD  s| j1                  |d   «      S 	 |d   j(                  d   }	|	dk(  r	 |d   j(                  d   }	|	j                  dv r!t        t5        j6                  || ‰«      g«      S |d   }
	 |
j(                  }|d   dk(  r%|
dk(  sd|v sd|v rt5        j:                  || ‰«      }nt5        j<                  || ‰«      }t        |g«      S # t2        $ r Y Œœw xY w# t2        t8        f$ r Y Œ‚w xY w# t8        $ r g }Y Œ�w xY w)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’   rX   c              3   óz   •K  — | ]2  }|j                   ‰j                   cxk  xr |j                  k  nc –— Œ4 y ­wr[   )rl   rm   )r^   rO   rŽ   s     €rR   ra   zinfer_atom.<locals>.<genexpr>)  s-   øè ø€ Ð`ÑJ_ÀQ�q—{‘{ d§n¡nÖ@°q·y±y×@Ð@ÑJ_ùs   ƒ8;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   rf   Úsearch_ancestorrn   Úget_test_nodesrl   Ú_is_annotation_namer¶   r]   r   r   rµ   r   rc   r   ÚLiteralÚcompiled_subprocessÚsafe_literal_evalÚcreate_simple_objectr©   rk   r­   Úget_string_value_setrp   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¸fÓEÐFÓGÐGØ	�‰�iÒ	ä˜w¨¯©°aÑ(8Ó9ˆ	Ø—m‘m A BÓ'ˆFÜ˜w¨Ó/ˆEÜ)¨'°9¸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Ø˜7 Dó"ð !ó ð ð
 �q‘Tˆ
ð	Ø%×.Ñ.ˆLð ˆQ‰4�3Š;˜J¨#Ò-°¸Ñ1DØ# |Ñ3Ü ×1Ñ1°%¸À$ÓG‰Iä ×5Ñ5°e¸WÀdÓKˆIÜ˜˜Ó$Ð$øô' "ò Ùðûô œNÐ+ò 	Ùð	ûô& ò 	ØŠLð	ús6   É
L É"L Ê)L) Ì	LÌLÌL&Ì%L&Ì)L7Ì6L7c                 ó   — t        j                  | j                  |«      5 }|r<|�$t        j                  | ||«      }|r|cd d d «       S t        | ||«      cd d d «       S 	 d d d «       t        S # 1 sw Y   t        S xY w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À'È4ÐQZÓ[ð á!Ø)÷ 
DÑ	Cô $ G¨T°9Ó=÷ 
DÑ	CØ÷ 
Dô Ð÷ 
Dô Ðús   ¡A/Á
A/Á/A=c                 ór  ‡ ‡‡‡— d„ }t        j                  d||«       |j                  «       }‰ j                  |«      Š|rt	        ‰ |«      }t        |‰«      Št        |j                  «       d«      } ||«      \  }Š|dvxr |j                  dk(  }|s|�r||j                  d¬«      d   j                  }	‰ j                  |	|j                  ¬	«      }
|rˆ ˆˆfd
„Št        ˆfd„|
D «       «      Š�n!t        j                  |«      }|j                  dd |_
        |j                  d«      }|�×|j                  dk(  rÈ‰rÆt!        j"                  |«      r±|j%                  «       }t'        ‰ |«      }t)        |j+                  «       j-                  |«      «      }|D ]e  }|j.                  d   j                  |j+                  «       i}‰ j1                  ||«      5  ‰ j                  |«      }t3        ‰ |
||«      }
ddd«       Œg |
Šnt3        ‰ |
|‰«      Št        j                  d‰«       ‰S # 1 sw Y   ŒšxY w)aD  
    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                 ó  — | j                   d   }|j                  dvry|j                   d   }|j                  dk7  st        |j                   «      dk7  ry|j                   d   }|j                   d   dk(  |j                   d   fS )	Nr   )r•   r”   )FNr‹   r?   r›   rÆ   rB   )rk   rf   rp   )rî   r•   r‹   r¿   s       rR   Úcheck_setitemz'_infer_expr_stmt.<locals>.check_setitem‘  s‡   € Ø—M‘M !Ñ$ˆ	Ø�>‰>Ð!7Ñ7ØØ×!Ñ! !Ñ$ˆØ�9‰9˜Ò¤# i×&8Ñ&8Ó"9¸QÒ">ØØ×$Ñ$ RÑ(ˆØ×Ñ Ñ" cÑ)¨7×+;Ñ+;¸AÑ+>Ð>Ð>rV   zinfer_expr_stmt %s (%s)N)Ú=Nr�   T)Úinclude_setitemr   rÔ   c                 ó�   •— t        ‰‰«      }| j                  dk(  rt        | ‰|«      S | j                  dk(  rt        | ‰|«      S | S )NÚdictrr   )ÚContextualizedSubscriptListNodeÚ
array_typer   r   )Úvrï   rL   Úsubscriptlistr¾   s     €€€rR   Úto_modz _infer_expr_stmt.<locals>.to_mod­  sJ   ø€ Ü3°G¸]ÓK�Ø—<‘< 6Ò)Ü+¨A¨y¸!Ó<Ð<Ø—\‘\ VÒ+Ü+¨A¨y¸!Ó<Ð<Ø�rV   c              3   ó.   •K  — | ]  } ‰|«      –— Œ y ­wr[   rT   )r^   r  r  s     €rR   ra   z#_infer_expr_stmt.<locals>.<genexpr>µ  s   øè ø€ Ð @±K¨q¡¨§±Kùs   ƒr›   rY   rB   zinfer_expr_stmt result %s)r   rq   Úget_rhsr…   r    Úcheck_tuple_assignmentsÚnextÚyield_operatorsrf   Úget_defined_namesr]   r¶   rl   r   rt   rá   r   Úfor_stmt_defines_one_nameÚget_testlistr   rr   ro   Úiteraterk   ru   r­   )rL   rî   r÷   rü   ÚrhsrO   Úfirst_operatorÚ
is_setitemÚis_annassignr‹   Úleft_valuesr�   rY   rÐ   ÚcnÚorderedÚ
lazy_valueÚdctÚtr  r  r¾   s   `                  @@@rR   rö   rö   �  s  û€ ò ?ô 
‡I�IÐ'¨¨yÔ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ð  ×,Ñ,Ó.�Ü'¨°Ó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¸ÀÈhÐXYÓ&Z˜÷ @Ð?ð #*ð
 (‘	ä-¨g°{ÀHÈiÓX�	Ü	‡I�IÐ)¨9Ô5ØÐ÷ @Ð?ús   Ç H-È-H6	c           	      óö  — t        |j                  «      }| j                  t        |«      «      }|D ]®  }t        |«      }|j                  dk(  r"dj                  d„ |j                  D «       «      }|dv rOt        d„ |D «       «      }|dhk(  r|dk(  sŒa| j                  |«      }Œs|dhk(  sŒz|dk7  sŒ€| j                  |«      }Œ’t        | ||| j                  |«      «      }Œ° t        j                  d	|«       |S )
NÚcomp_oprž   c              3   ó4   K  — | ]  }|j                   –— Œ y ­wr[   r\   )r^   rï   s     rR   ra   z infer_or_test.<locals>.<genexpr>Õ  s   è ø€ ÐCÑ1B¨A §¥Ñ1Bùs   ‚)ÚandÚorc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr[   )Ú
py__bool__)r^   Úlefts     rR   ra   z infer_or_test.<locals>.<genexpr>Ù  s   è ø€ ÐA¹5°4˜TŸ_™_×.¹5ùó   ‚Tr  Fzinfer_or_test types %s)
Úiterrk   r…   r	  rf   ÚjoinÚsetr­   r   rq   )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¨u°hØ&-×&8Ñ&8¸Ó&?óA‰Eð! ô$ 
‡I�IÐ&¨Ô.Ø€LrV   c              #   ó|  K  — | D ]³  }|dk(  rt        |«      sŒ|j                  «       –— Œ'|dk(  r„|j                  «       }|€Nt        |j                  j
                  j                  d«      j                  d«      «      j                  «       –— ŒŒt        j                  |j                  | «      –— Œ°|–— Œµ y­w)z6
    Calculates `+`, `-`, `~` and `not` prefixes.
    r5   ÚnotNÚbool)r   Únegater  rr   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   ‚B<™B#B<c                 óÐ   — t         }|D ]Z  }t        |«      r>t        j                  | |j                  j
                  «      }||j                  «       z  }ŒL|t        |g«      z  }Œ\ |S r[   )r   r   r   rµ   r‹   Ústring_namer¹   r   )rE   r„   Ú
new_resultr»   Úclss        rR   Ú_literals_to_typesr2  ü  sc   € ô €JÛˆÜ�cŒ?ô ×,Ñ,¨_¸c¿h¹h×>RÑ>RÓSˆCØ˜#×1Ñ1Ó3Ñ3‰Jàœ( C 5›/Ñ)‰Jð ð ÐrV   c                 óÔ  ‡ ‡‡‡— ‰ j                   Št        ‰t        «      r‰}nt        ‰j                  «      }|r‰s!|xs t        ‰xs t        z  }t        ‰|«      S |dk(  r=t        d„ t        j                  |‰«      D «       «      rt        j                  |‰f«      S t        |«      t        ‰«      z  dkD  rt        ‰|‰z  «      S t        j                  ˆ ˆˆˆfd„|D «       «      S )Nr<   c              3   ó„   K  — | ]8  }|j                  «       xs" |j                  «       xs t        |t        «      –— Œ: y ­wr[   )Úis_classÚis_compiledrc   r&   )r^   r]   s     rR   ra   z$_infer_comparison.<locals>.<genexpr>  s<   è ø€ ð %á?ˆEð 	�‰ÓÒM˜E×-Ñ-Ó/ÒM´:¸eÄWÓ3MÓMÙ?ùs   ‚>A é   c           	   3   óJ   •K  — | ]  }‰D ]  }t        ‰‰|‰|«      –— Œ Œ y ­wr[   )Ú_infer_comparison_part)r^   r   rÀ   rL   r�   Úright_valuesrí   s      €€€€rR   ra   z$_infer_comparison.<locals>.<genexpr>"  s4   øè ø€ ð &á'�DÛ)�Eô ' u¨g°t¸XÀu×Mà)ð NÙ'ùs   ƒ #)rE   rc   Ústrr]   r   r2  ÚallÚ	itertoolsÚchainr   Ú	from_setsrp   )rL   r  r�   r:  Úoperator_strr„   rí   s   ` ``  @rR   r­   r­     sÛ   û€ Ø×#Ñ#€EÜ�(œCÔ Ø‰ä˜8Ÿ>™>Ó*ˆÙ™làÒ*¤¨|Ò/H¼yÑIˆÜ! %¨Ó0Ð0Ø	˜Ò	¤ñ %ä—_‘_ [°,Ô?ó%ô "ô
 ×!Ñ! ;°Ð"=Ó>Ð>ô
 ˆ{Óœc ,Ó/Ñ/°!Ò3Ü% e¨[¸<Ñ-GÓHÐHä×%Ñ%ö &á'ó&ó ð rV   c                 ó¤  — | j                  ddd«      }|€y|j                  dv r=|j                  }|�.|j                  | j                  cxk  xr |j                  k  S c S y|j                  dk(  r`|j
                  }t        |«      dkD  rF|d   j                  dk(  r4|d   j                  | j                  cxk  xr |d   j                  k  S c S y)NÚparamÚfuncdefr“   F)rB  rC  rB   r£   )rá   rf   r   rl   rm   rk   rp   )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°a¸±d·l±lÑBÐBÑBÐBØrV   c                 ó    — | j                   dk(  S )Nrr   ©r  r\   s    rR   Ú_is_listrH  9  s   € Ø×Ñ˜vÑ%Ð%rV   c                 ó    — | j                   dk(  S )NÚtuplerG  r\   s    rR   Ú	_is_tuplerK  =  s   € Ø×Ñ˜wÑ&Ð&rV   c                 ó@   — t        j                  | t        |«      «      S r[   )r   rµ   r;  )rE   Úbool_s     rR   Ú_bool_to_valuerN  A  s   € Ü×%Ñ% o´s¸5³zÓBÐBrV   c                 ó2  — t        | t        j                  «      sy g }| j                  «       D ]V  }t        |t        «      s y |j
                  }|j                  dk7  r y 	 |j                  t        |j                  «      «       ŒX |S # t        $ r Y  y w xY w)NrŒ   )rc   r   r±   Ú
py__iter__r   Údatarf   ÚappendÚintr]   Ú
ValueError)r]   Únumbersr  rÐ   s       rR   Ú_get_tuple_intsrV  E  s†   € Ü�eœX×:Ñ:Ô;ØØ€GØ×&Ñ&Ö(ˆ
Ü˜*¤mÔ4ÙØ�‰ˆØ�9‰9˜Ò Ùð	Ø�N‰Nœ3˜tŸz™z›?Õ+ð )ð €Nøô ò 	Úð	ús   Á!$B	Â		BÂBc                 óä  — t        |«      }t        |«      }t        |t        «      r|}nt        |j                  «      }|dk(  rct        |t        j
                  «      st        |«      rt        |g«      S t        |t        j
                  «      st        |«      �rît        |g«      S |dk(  r||r|st        |«      rt        |«      r|j                  ||«      S t        |«      rt        |«      st        |«      �r�t        |«      �rƒt        t	        j                  | ||f«      g«      S |dk(  r|�rY|�rV|j                  ||«      S |dk(  rt        |g«      S |t        v rý|j                  «       r&|j                  «       r|j                  ||«      }|r¨|S |dv r/t        |   }	 |	||«      }
|dv |
k(  rt        t        | |
«      g«      S t        |t        «      rct!        |«      }|�Vt#        j$                  j                  |   | j&                  j(                  t+        |«      «      }t        t        | |«      g«      S t        t        | d«      t        | d«      g«      S |d	v r*| j,                  j/                  d
«      j1                  |«      S d„ }|dv r4||k7  r/ ||«      s' ||«      sd}t3        j4                  |d||||fz  «       |j7                  «       s|j7                  «       rt8        S t:        |   }|j/                  |«      }|r|j=                  |«      }|r|S |s/t>        |   }|j/                  |«      }|j=                  |«      }|r|S t        ||g«      }tA        jB                  d||«       |S )Nr6   r4   r5   r9   )Úisz!=ú==zis not)rX  rY  TF)Úinznot inr+  c                 óV   — t        | t        «      xr | j                  j                  dv S )z4Checks if a Jedi object is either a float or an int.)rS  Úfloat)rc   r   r‹   r/  )Úobjs    rR   Úcheckz%_infer_comparison_part.<locals>.check’  s)   € ä˜#œ|Ó,ò 5Ø�H‰H× Ñ Ð$4Ð4ð	5rV   )r4   r5   z7TypeError: unsupported operand type(s) for +: %s and %sztype-error-operationz Used operator %s resulting in %s)"r   rc   r;  r]   r   ÚSequencer   r   Úexecute_operationrH  rK  ÚMergedArrayr   r6  rN  r   rV  r   ÚaccessÚenvironmentÚversion_inforJ  rI   r¶   r¸   r   Úaddr5  r   Úoperator_to_magic_methodr¹   Ú reverse_operator_to_magic_methodr   rq   )rE   rL   r   r�   rÀ   Úl_is_numÚr_is_numÚstr_operatorr„   Ú	operationrM  rd  Úbool_resultr^  ÚmessageÚmethod_nameÚmagic_methodsÚreverse_method_names                     rR   r9  r9  V  sF  € Ü˜‹€HÜ˜Ó€HÜ�(œCÔ Ø‰ä˜8Ÿ>™>Ó*ˆà�sÒä�dœH×-Ñ-Ô.´)¸D´/Ü˜T˜FÓ#Ð#Ü˜œx×0Ñ0Ô1´Y¸uÕ5EÜ˜U˜GÓ$Ð$Ø	˜Ò	Ù™¤I¨d¤O¼	À%Ô8HØ×)Ñ)¨%°Ó>Ð>Ü�dŒ^¤¨¤´9¸Tµ?ÄyÐQVÕGWÜœX×1Ñ1°/ÀDÈ%À=ÓQÐRÓSÐSØ	˜Ò	ÚšØ×)Ñ)¨%°Ó>Ð>Ø	˜Ò	ô ˜˜ÓÐØ	Ô-Ñ	-Ø×ÑÔ %×"3Ñ"3Ô"5à×+Ñ+¨E°<Ó@ˆFÙØ�àÐ;Ñ;Ü0°Ñ>�	Ù! $¨Ó.�ð ! LÐ0°UÒ:Ü#¤^°OÀUÓ%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Ø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˜U�mÓ$€FÜ	‡I�IÐ0°(¸FÔCØ€MrV   c                 ó
  — t         }|j                  «       j                  }|��Ñ|j                  «       j	                  |j
                  g «      }d}|D �]›  }|j                  }|j                  dk(  sŒ |j                  d   j                  dk(  sŒ=t        j                  |«      |j                  k(  }	|j                  d   }
|
j                  d   }|j                  «       }|	sŒ�|j                  d«      rŒ¢|j                  «       dk(  rŒ¶|j                  dk(  r>|
j                  d   j
                  |j
                  k(  r|j                  r|j                  }t        j                   ||j                  d   j                  d   «      }d}t#        |«      dk(  rCt%        t'        |«      «      }t)        |t*        «      xr |j,                  j.                  t0        v  }|}||j3                  |«      z  }�Œž |r|S g }|j5                  dd¬	«      }|€½|j                  }|j                  d
k(  rw|j7                  |«      }|j9                  «       rt         S t%        |j;                  «       «      }|j	                  |j
                  «      }t=        j>                  d„ |D «       «      S |j                  dvr|j7                  |«      }tA        ||«      S |j                  }|dk(  rt        jB                  |||«      }|r|S |dk(  rt        jD                  |||«      }|r|S |dv r	 |jF                  |   |j
                     }|S |dk(  rtU        |||«      }|S |dk(  rš|jW                  |jY                  |«      «      }|j                  j                  dk(  r?|j[                  d«      }|j]                  «       }|j_                  «       ja                  «       S |j[                  d«      }|j3                  |«      S |dv rtc        jd                  ||«      }|S |dv rtg        ||«      }|S |dk(  r?|jW                  |ji                  «       ji                  «       «      }|j]                  «       }|S |dk(  rt         }|S |dk(  rt         }|S |dk(  rtW        ||«      }|S tk        d|z  «      ‚# tH        $ rh tK        ||j                  d   «      }tM        |jO                  «       ||j                  j                  dk(  ¬«      }tQ        ||«      }tS        ||«      }Y |S w xY w)NFr“   rB   r£   z
.TypeAliasÚ	TypeAliasr‹   T)Úimport_name_alwaysrþ   Úglobal_stmtc              3   ó<   K  — | ]  }|j                  «       –— Œ y ­wr[   )ro   )r^   r‹   s     rR   ra   z&tree_name_to_values.<locals>.<genexpr>ë  s   è ø€ Ð%E¹u°t d§j¡j§l¹uùr!  )Úimport_fromÚimport_namerY   Ú	with_stmt)rY   rÝ   rÞ   rÜ   Ú
async_stmt)Úcontextualized_nodeÚis_asyncÚ
__aenter__Ú	__enter__)rC  ÚclassdefÚtry_stmtrB  Údel_stmtr§   zShould not happen. type: %s)6r   Úget_root_contextrD   Úget_used_namesri   r]   re   rf   rk   r   Úget_parent_scopeÚget_codeÚendswithÚstriprG   r   r·   rp   r	  r"  rc   r$   r‹   r/  r%   r¸   Úget_definitionÚcreate_contextÚ	is_moduleÚget_filtersr   r?  r©   Úfind_type_from_comment_hint_forÚ find_type_from_comment_hint_withrh   rK   r   r
   ro   r    r  r«   r…   Úget_test_node_from_namer¶   r¹   r¯   r°   r   Úinfer_importÚ_apply_decoratorsÚget_previous_siblingrT  )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Ø-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¨iÓ8ˆð" €Lð! 
Ð'Ñ	'Ü! '¨4Ó0ˆð €Lð 
�
Ò	ð ×'Ñ'¨	×(FÑ(FÓ(H×(]Ñ(]Ó(_Ó`ˆ
Ø×.Ñ.Ó0ˆð €Lð 
�ŠÜˆð €Lð 
�
Ò	Üˆð
 €Lð	 
Ð Ò	 Ü˜7 DÓ)ˆð €Lô Ð6¸Ñ<Ó=Ð=øôO ò 	:Ü# G¨T¯]©]¸1Ñ-=Ó>ˆBÜ&Ø—‘“
Ø$&ØŸ™×)Ñ)¨\Ñ9ôˆIô
 # 7¨IÓ6ˆAÜ+¨A¨yÓ9‰Eð@ €LðQ	:ús   ÌR ÒA-T	ÔT	c           	      óì  — |j                   dk(  rt        | j                  | |¬«      }nt        j                  | |«      }t        |g«      x}}t        | «      r|S t        |j                  «       «      D �]D  }t        j                  d||d¬«       t        j                  «       5  | j                  |j                  d   «      }|j                  dd }|r*t        j                  d	|«      }||_        t#        | ||«      }t%        |«      s;|j'                  d
¬«      }	|	dk7  rt        j(                  d||«       |cddd«       c S |j+                  t-        j.                  |g«      «      }t%        |«      s#t        j(                  d|«       |cddd«       c S 	 ddd«       t        j                  d|d¬«       �ŒG ||k7  r#t        |D �
cg c]  }
t1        |
|«      ‘Œ c}
«      S |S # 1 sw Y   ŒNxY wc c}
w )z†
    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)rf   r   rE   r   rª   r   r   ÚreversedÚget_decoratorsr   rq   Úincrease_indent_cmr…   rk   r   Ú
PythonNodere   r®   rp   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¸dÓCˆÜ Ð 1Ó2Ð2€Gˆfä˜wÔ'Øˆä˜×+Ñ+Ó-×.ˆÜ�	‰	Ð$ c¨6¸ÕCÜ×%Ñ%Õ'Ø ×+Ñ+¨C¯L©L¸©OÓ<ˆJØŸL™L¨¨2Ð.ˆMÙäŸ/™/¨)°]ÓC�Ø!$�”Ü*¨7°JÀÓ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 oÕ6ÀÑGÓHÐHØ€M÷5 (Ð'üò2 Hs   Â$BG%ÅAG%Ç	G1Ç%G.	c                 ó†  — d}| j                  «       D ]~  \  }}t        | j                  |«      }|j                  |«      }t	        |t
        «      rt        c S d}d}||k  r!	 t        |«      }||j                  z  }||k  rŒ!|j                  «       }Œ€ |S # t        $ r! |�|j                  «       cY c S t        cY c S w xY w)z(
    Checks if tuples are assigned.
    Nr   )Úassignment_indexesr   rG   r  rc   Úslicer   r	  ÚmaxÚStopIterationro   )r‹   r¾   r  ÚindexrÐ   r  Úiteratedr_   s           rR   r  r  \  sÒ   € ð €JØ×.Ñ.Ö0‰ˆˆtÜ × 3Ñ 3°TÓ:ˆØ×$Ñ$ RÓ(ˆÜ�eœUÔ#äÒØˆØˆ
Ø�5Šjð$Ü! (›^�
ð �Z—^‘^Ñ#�ð �5‹jð  ×$Ñ$Ó&‰	ð1 1ð2 Ðøô !ò 
!ð Ð)Ø%×+Ñ+Ó-Ô-ô !Ô ð
!ús   Á"BÂC Â5C Â?C c                   ó   — e Zd Zd„ Zy)r  c                 óB   — t        | j                  | j                  «      S r[   )rË   rL   rÐ   )Úselfs    rR   ro   z%ContextualizedSubscriptListNode.infer~  s   € Ü$ T§\¡\°4·9±9Ó=Ð=rV   N)Ú__name__Ú
__module__Ú__qualname__ro   rT   rV   rR   r  r  }  s   „ ó>rV   r  c                 óœ  — |dk(  r"t        t        j                  | ddd«      g«      S |j                  dk(  rÌ|j                  d   dk(  sºg }|j                  D ]t  }|dk(  r|rŒ|j                  d«       Œ|j                  dk(  r8t        |j                  «      dk(  sŒE|j                  |j                  d   «       Œd|j                  |«       Œv |dgd	t        |«      z
  z  z  }t        t        j                  | g|¢­Ž g«      S |j                  d
k(  r+t        t        j                  | j                  | |«      g«      S | j                  |«      S )z,
    Handles slices in subscript nodes.
    rÛ   NÚ	subscriptr   rÇ   Úsliceopr?   rB   rÜ   r  )
r   r   ÚSlicerf   rk   rR  rp   r±   rE   r…   )rL   r¶  r„   Úels       rR   rË   rË   ‚  s'  € ð �‚|äœŸ™¨°°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ÐY^Ó_Ð`ÓaÐað ×Ñ˜eÓ$Ð$rV   r[   )VÚ__doc__rt   r=  Ú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&   rf  Úitemsrg  rU   r…   rv   r‡   Úincrease_indentrd   r®   r©   r«   rö   rº   r²   r2  r­   rã   rH  rK  rN  rV  r9  Údecorater¡  r�  r  r  rË   )Úkr  s   00rR   Ú<module>rÚ     sþ  ðñó Û å å Ý ÷*õ *å 3Ý #Ý $Ý #Ý "Ý $ß :Ý )ß RÝ -÷/õ /å ?Ý =Ý 9Ý -Ý 3Ý 1Ý 4Ý 'ß SÝ 3ð 
Ø	Ø	Ø	Ø	Ø
Ø	Ø
Ø
Ø
Ø	Ø	Ø	ñÐ ð" ":×!?Ñ!?Ô!Aô$Ù!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