Ë
    pPêj˜û  ã            	      ó¸  — d Z ddlmZ ddlmZmZ ddlmZ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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 m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/m0Z0m1Z1m2Z2m3Z3 ddl4m5Z5 ddl6m7Z7 ddl8m9Z9m:Z:m;Z;m<Z<m=Z=m>Z>m?Z? ddl@mAZAmBZBmCZCmDZDmEZEmFZFmGZGmHZHmIZImJZJmKZKmLZLmMZMmNZNmOZOmPZPmQZQmRZRmSZSmTZTmUZUmVZVmWZW  G d„ d«      ZXdddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 d;d„ZY	 d<	 	 	 	 	 	 	 	 	 d=d„ZZ	 d<	 	 	 	 	 	 	 	 	 d>d„Z[	 d<	 	 	 	 	 	 	 	 	 	 	 d?d„Z\	 	 	 	 	 	 	 	 	 	 d@d„Z]dAd„Z^dBd„Z_	 	 	 	 	 	 	 	 	 	 dCd„Z`dDd „ZadEd!„Zb	 	 	 	 	 	 	 	 	 	 dFd"„ZcdGd#„ZddHd$„ZedId%„ZfdJd&„Zgddd'œ	 	 	 	 	 	 	 	 	 	 	 	 	 dKd(„Zh	 	 	 	 	 	 	 	 	 	 	 	 dLd)„Zi	 	 	 	 	 	 	 	 	 	 	 	 	 	 dMd*„Zj	 dN	 	 	 	 	 	 	 	 	 	 	 dOd+„Zk	 	 	 	 	 	 	 	 	 	 	 	 	 	 dPd,„Zlddd-œ	 	 	 	 	 	 	 	 	 	 	 	 	 dQd.„Zm	 	 	 	 	 	 	 	 dRd/„Zn	 	 	 	 	 	 	 	 dSd0„Zo	 	 	 	 	 	 	 	 	 	 dTd1„Zp	 	 dU	 	 	 	 	 	 	 	 	 	 	 	 	 dVd2„Zq	 	 	 	 	 	 	 	 	 	 dWd3„Zr ed4eD¬5«      Zsd<dXd6„ZtdYd7„ZudZd8„Zvd[d9„Zwd\d:„Zxy)]z!Type checking of attribute accessé    )Úannotations)ÚCallableÚSequence)ÚTypeVarÚcast)Úmessage_registryÚstate)ÚTypeCheckerSharedApi)Úerase_typevars)Úexpand_self_typeÚexpand_type_by_instanceÚfreshen_all_functions_type_vars)Úlookup_stdlib_typeinfo)Úmap_instance_to_supertype)Úis_overlapping_types)ÚMessageBuilder)Úmodules_state)ÚARG_POSÚARG_STARÚ	ARG_STAR2ÚEXCLUDED_ENUM_ATTRIBUTESÚSYMBOL_FUNCBASE_TYPESÚContextÚ	DecoratorÚ
ExpressionÚFuncBaseÚFuncDefÚ	IndexExprÚMypyFileÚNameExprÚOverloadedFuncDefÚSymbolTableÚTempNodeÚ	TypeAliasÚTypeInfoÚTypeVarLikeExprÚVarÚis_final_node)ÚAttributeContext)Ú
is_subtype)Ú	bind_selfÚerase_to_boundÚfreeze_all_type_varsÚget_all_type_varsÚmake_simplified_unionÚsupported_self_typeÚtuple_fallback)ÚAnyTypeÚCallableTypeÚDeletedTypeÚFunctionLikeÚInstanceÚLiteralTypeÚNoneTypeÚ
OverloadedÚParamSpecTypeÚPartialTypeÚ
ProperTypeÚ	TupleTypeÚTypeÚTypedDictTypeÚ	TypeOfAnyÚTypeTypeÚTypeVarLikeTypeÚTypeVarTupleTypeÚTypeVarTypeÚUninhabitedTypeÚ	UnionTypeÚget_proper_typeÚinstance_cachec                  ó˜   — e Zd ZdZddddddddœ	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Zdd„Zdd„Zdd„Zdddd	œ	 	 	 	 	 	 	 dd
„Zy)ÚMemberContextz�Information and objects needed to type check attribute access.

    Look at the docstring of analyze_member_access for more information.
    NF)Ú	self_typeÚmodule_symbol_tableÚno_deferralÚis_selfÚrvalueÚsuppress_errorsÚpreserve_type_var_idsc               óð   — || _         || _        || _        || _        |xs || _        || _        || _        |j                  | _        || _        |	| _	        |
| _
        |�|sJ ‚|| _        || _        || _        y ©N)Ú	is_lvalueÚis_superÚis_operatorÚoriginal_typerK   ÚcontextÚchkÚmsgrL   rM   rN   rO   rP   rQ   )ÚselfrT   rU   rV   rW   rX   rY   rK   rL   rM   rN   rO   rP   rQ   s                 úU/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/mypy/checkmember.pyÚ__init__zMemberContext.__init__X   s…   € ð" #ˆŒØ ˆŒØ&ˆÔØ*ˆÔØ"Ò3 mˆŒØˆŒØˆŒØ—7‘7ˆŒØ#6ˆÔ Ø&ˆÔØˆŒØÐÙÐ�9ØˆŒØ.ˆÔð &;ˆÕ"ó    c                ó8   — | j                   j                  |«      S rS   )rY   Ú
named_type)r[   Únames     r\   r`   zMemberContext.named_type}   s   € Ø�x‰x×"Ñ" 4Ó(Ð(r^   c                ó<   — | j                   j                  ||«       y rS   )rY   Úhandle_cannot_determine_type)r[   ra   rX   s      r\   Únot_ready_callbackz MemberContext.not_ready_callback€   s   € Ø�‰×-Ñ-¨d°GÕ<r^   c                ój   — | j                   s'| j                  j                  || j                  «       y y rS   )rP   rZ   ÚfailrX   )r[   rZ   s     r\   rf   zMemberContext.failƒ   s&   € Ø×#Ò#Ø�H‰H�M‰M˜#˜tŸ|™|Õ,ð $r^   )rK   rT   rW   c               óZ  — t        | j                  | j                  | j                  | j                  | j
                  | j                  | j                  | j                  | j                  | j                  | j                  | j                  ¬«      }|�||_        |�||_        |�||_        |S )N)rT   rU   rV   rW   rX   rY   rK   rL   rM   rO   rP   rQ   )rJ   rT   rU   rV   rW   rX   rY   rK   rL   rM   rO   rP   rQ   )r[   rK   rT   rW   Úmxs        r\   Úcopy_modifiedzMemberContext.copy_modified‡   s�   € ô Ø—n‘nØ—]‘]Ø×(Ñ(Ø×,Ñ,Ø—L‘LØ—‘Ø—n‘nØ $× 8Ñ 8Ø×(Ñ(Ø—;‘;Ø ×0Ñ0Ø"&×"<Ñ"<ô
ˆð Ð Ø$ˆBŒLØÐ Ø$ˆBŒLØÐ$Ø,ˆBÔØˆ	r^   )rT   ÚboolrU   rj   rV   rj   rW   r>   rX   r   rY   r
   rK   úType | NonerL   úSymbolTable | NonerM   rj   rN   rj   rO   úExpression | NonerP   rj   rQ   rj   ÚreturnÚNone)ra   Ústrrn   r6   )ra   rp   rX   r   rn   ro   )rZ   rp   rn   ro   )rK   rk   rT   zbool | NonerW   rk   rn   rJ   )	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r]   r`   rd   rf   ri   © r^   r\   rJ   rJ   R   s÷   „ ñð "&Ø26Ø!ØØ$(Ø %Ø&+ñ#;ð ð#;ð ð	#;ð
 ð#;ð ð#;ð ð#;ð "ð#;ð ð#;ð 0ð#;ð ð#;ð ð#;ð "ð#;ð ð#;ð  $ð#;ð  
ó!#;óJ)ó=ó-ð "&Ø!%Ø%)ñð ðð ð	ð
 #ðð 
ôr^   rJ   NF)Úoverride_infoÚin_literal_contextrK   rL   rM   rN   rO   rP   c               óº   — t        |||||||
|||||¬«      }t        | |||«      }t        |«      }|	r(t        |t        «      r|j
                  �|j
                  S |S )aŒ  Return the type of attribute 'name' of 'typ'.

    The actual implementation is in '_analyze_member_access' and this docstring
    also applies to it.

    This is a general operation that supports various different variations:

      1. lvalue or non-lvalue access (setter or getter access)
      2. supertype access when using super() (is_super == True and
         'override_info' should refer to the supertype)

    'original_type' is the most precise inferred or declared type of the base object
    that we have available. When looking for an attribute of 'typ', we may perform
    recursive calls targeting the fallback type, and 'typ' may become some supertype
    of 'original_type'. 'original_type' is always preserved as the 'typ' type used in
    the initial, non-recursive call. The 'self_type' is a component of 'original_type'
    to which generic self should be bound (a narrower type that has a fallback to instance).
    Currently, this is used only for union types.

    'module_symbol_table' is passed to this function if 'typ' is actually a module,
    and we want to keep track of the available attributes of the module (since they
    are not available via the type object directly)

    'rvalue' can be provided optionally to infer better setter type when is_lvalue is True,
    most notably this helps for descriptors with overloaded __set__() method.

    'suppress_errors' will skip any logic that is only needed to generate error messages.
    Note that this more of a performance optimization, one should not rely on this to not
    show any messages, as some may be show e.g. by callbacks called here,
    use msg.filter_errors(), if needed.
    )rT   rU   rV   rW   rX   rY   rK   rL   rM   rN   rO   rP   )rJ   Ú_analyze_member_accessrG   Ú
isinstancer6   Úlast_known_value)ra   ÚtyprX   rT   rU   rV   rW   rY   rv   rw   rK   rL   rM   rN   rO   rP   rh   ÚresultÚpossible_literals                      r\   Úanalyze_member_accessr   ¥   s{   € ôd 
ØØØØ#ØØØØ/ØØØØ'ô
€Bô $ D¨#¨r°=ÓA€FÜ& vÓ.ÐáÜÐ'¬Ô2Ø×-Ñ-Ð9à×0Ñ0Ð0àˆr^   c                ó¤  — t        |«      }t        |t        «      rt        | |||«      S t        |t        «      rt	        t
        j                  |¬«      S t        |t        «      rt        | ||«      S t        |t        «      r|j                  «       rt        | ||«      S t        |t        «      rt        | |||«      S t        |t        «      rt        | t!        |«      ||«      S t        |t"        t        f«      rt        | |j$                  ||«      S t        |t&        «      rt)        | |||«      S t        |t*        «      rt-        | ||«      S t        |t.        «      rUt        |t0        «      r-|j2                  r!t        | t5        |j2                  «      ||«      S t        | |j6                  ||«      S t        |t8        «      rK|j:                  s&|j<                  j?                  ||j@                  «       t	        t
        jB                  «      S t        |tD        «      rtE        «       }|jF                  |_#        |S tI        |jJ                  || |«      S )N)Ú
source_any)&rG   rz   r6   Úanalyze_instance_member_accessr2   r@   Úfrom_another_anyrF   Úanalyze_union_member_accessr5   Úis_type_objÚ#analyze_type_callable_member_accessrA   Úanalyze_type_type_member_accessr=   ry   r1   r7   Úfallbackr?   Úanalyze_typeddict_accessr8   Úanalyze_none_member_accessrB   rD   Úvaluesr/   Úupper_boundr4   rP   rZ   Údeleted_as_rvaluerX   Ú
from_errorrE   Ú	ambiguousÚreport_missing_attributerW   )ra   r|   rh   rv   Ú	attr_types        r\   ry   ry   ñ   sÜ  € ô ˜#Ó
€CÜ�#”xÔ Ü-¨d°C¸¸]ÓKÐKÜ	�CœÔ	!ä”y×1Ñ1¸cÔBÐBÜ	�CœÔ	#Ü*¨4°°bÓ9Ð9Ü	�CœÔ	&¨3¯?©?Ô+<Ü2°4¸¸bÓAÐAÜ	�CœÔ	"Ü.¨t°S¸"¸mÓLÐLÜ	�CœÔ	#ä% d¬N¸3Ó,?ÀÀ]ÓSÐSÜ	�Cœ+¤|Ð4Ô	5ä% d¨C¯L©L¸"¸mÓLÐLÜ	�CœÔ	'Ü'¨¨c°2°}ÓEÐEÜ	�CœÔ	"Ü)¨$°°RÓ8Ð8Ü	�CœÔ	)Ü�cœ;Ô'¨C¯JªJÜ)ØÔ+¨C¯J©JÓ7¸¸]óð ô & d¨C¯O©O¸RÀÓOÐOÜ	�CœÔ	%Ø×!Ò!Ø�F‰F×$Ñ$ S¨"¯*©*Ô5Ü”y×+Ñ+Ó,Ð,Ü	�CœÔ	)Ü#Ó%ˆ	Ø!Ÿm™mˆ	ÔØÐÜ# B×$4Ñ$4°c¸4ÀÓDÐDr^   c           	     óÀ  — |j                   j                  ry|j                   j                  «       5  |j                  j	                  «       5 }|j                   j                  ||«      }|€	 ddd«       ddd«       yt        | ||j                  |¬«      |«      }|j                  «        cddd«       cddd«       S # 1 sw Y   nxY wddd«       y# 1 sw Y   yxY w)z7Check if the given type has the attribute when awaited.FN©rK   )	rY   Úchecking_missing_awaitÚchecking_await_setrZ   Úfilter_errorsÚget_precise_awaitable_typery   ri   Úhas_new_errors)ra   r|   rh   rv   Úlocal_errorsÚaw_typeÚ_s          r\   Úmay_be_awaitable_attributerœ     sÅ   € ð 
‡v�v×$Ò$àØ	�‰×	"Ñ	"Ó	$ñ 1 b§f¡f×&:Ñ&:Ó&<ð 1ÀØ—&‘&×3Ñ3°C¸ÓFˆØˆ?Ø÷1÷ 1ð 1ô #Ø�'˜2×+Ñ+°gÐ+Ó>Àó
ˆð  ×.Ñ.Ó0Ð0÷1÷ 1÷ 1ó 1ú÷ 1÷ 1ñ 1ús/   ²CÁ B?Á-CÁ>.B?Â,	CÂ?C	ÃCÃCc                ó€  — |j                   rt        t        j                  «      S |j                  j                  | |||j                  |j                  «      }|j                  j                  «       s4t        ||||«      r&|j                  j                  |j                  |«       t        t        j                  «      S rS   )rP   r2   r@   rŽ   rZ   Úhas_no_attrrX   rL   Úprefer_simple_messagesrœ   Úpossible_missing_await)rW   r|   ra   rh   rv   Ú
error_codes         r\   r�   r�   ,  s‹   € ð 
×ÒÜ”y×+Ñ+Ó,Ð,Ø—‘×#Ñ# M°3¸¸b¿j¹jÈ"×J`ÑJ`Óa€JØ�6‰6×(Ñ(Ô*Ü% d¨C°°]ÔCØ�F‰F×)Ñ)¨"¯*©*°jÔAÜ”9×'Ñ'Ó(Ð(r^   c                óÀ  — |j                   }|r|}|j                  | «      }| dk(  r^|j                  sR|j                  sF|r|j                  s8|j	                  t
        j                  «       t        t        j                  «      S t        j                  rƒ|j                  t        j                  d   k(  rc| t        j                  d   k(  rM|j                  sA|j                  j                   dj                   t        j                  Ž |j"                  «       |�r·t%        |t&        «      �s¦|j                  r|j                  st)        ||«       |j*                  r�t%        |t,        «      sJ ‚|j.                  d   }t%        |t&        «      sJ ‚|j0                  rF|j2                  j4                  r0|j6                  j9                  |j:                  |j"                  «       t=        | |j2                  ||«      S |j0                  r1|j                  s%|j                  j?                  |j"                  «       t%        |t,        «      s|j6                  jA                  |«      }n‹|j                   €W|jB                  s2|j.                  r&|jE                  |j                  |j"                  «       t        t        jF                  «      S t%        |j                   tH        «      sJ ‚|j                   }|jJ                  stM        |«      }|jN                  s“t%        |tP        t,        f«      r#|jR                  rtU        ||jV                  «      }nZtY        ||jV                  |jZ                  |j"                  | |j                  «      }t]        ||jV                  |jZ                  ¬«      }t_        ||j`                  «      }tc        ||«      }te        |«       |S tg        | |||«      S )Nr]   r   é   zOccurrence of '{}.{}'©Úis_classmethod)4ÚtypeÚ
get_methodrU   Úis_finalrf   r   ÚCANNOT_ACCESS_INITr2   r@   rŽ   r	   Úfind_occurrencesra   rP   rZ   ÚnoteÚformatrX   rz   r   Úvalidate_super_callÚis_propertyr!   ÚitemsrT   ÚvarÚis_settable_propertyrY   Úwarn_deprecatedÚsetterÚanalyze_varÚcant_assign_to_methodÚfunction_typerM   rd   Úspecial_formr9   rQ   r   Ú	is_staticr   Úis_trivial_selfÚbind_self_fastrK   Úcheck_self_argÚis_classr+   r   Úinfor   r-   Úanalyze_member_var_access)	ra   r|   rh   rv   r½   ÚmethodÚgetterÚ	signatureÚmember_types	            r\   r‚   r‚   @  s×  € ð �8‰8€DÙØˆà�_‰_˜TÓ"€FàˆzÒ "§+¢+°d·m²mÙ˜VŸ_š_ð �G‰GÔ$×7Ñ7Ô8Üœ9×/Ñ/Ó0Ð0ô
 	×ÒØ�I‰Iœ×/Ñ/°Ñ2Ò2Ø”E×*Ñ*¨1Ñ-Ò-Ø×"Ò"à
�‰�‰Ð2Ð+×2Ñ2´E×4JÑ4JÐKÈRÏZÉZÔXò ”j ¬Õ3Ø�;Š;˜r×1Ò1Ü ¨Ô+à×ÒÜ˜fÔ&7Ô8Ð8Ð8Ø—\‘\ !‘_ˆFÜ˜f¤iÔ0Ð0Ð0Ø�|Š| §
¡
× ?Ò ?Ø—‘×&Ñ& v§}¡}°b·j±jÔAÜ˜t V§Z¡Z°°bÓ9Ð9à�<Š< × 2Ò 2Ø�F‰F×(Ñ(¨¯©Ô4Ü˜&Ô"3Ô4ØŸ™×,Ñ,¨VÓ4‰Ià�{‰{Ð"ð —~’~¨&¯,ª,Ø×)Ñ)¨&¯+©+°r·z±zÔBÜœy×5Ñ5Ó6Ð6Ü˜fŸk™k¬:Ô6Ð6Ð6ØŸ™ˆIØ×'Ò'Ü7¸	ÓBˆIØ×ÒÜ˜&¤7Ô,=Ð">Ô?ÀF×DZÒDZÜ*¨9°b·l±lÓC‘	ä*Ø˜rŸ|™|¨V¯_©_¸b¿j¹jÈ$ÐPR×PVÑPVó�	ô & i°·±ÈfÏoÉoÔ^�	Ü'¨¨V¯[©[Ó9ˆÜ-¨i¸Ó=ˆÜ˜[Ô)ØÐô )¨¨s°D¸"Ó=Ð=r^   c                óT  — d}t        | t        «      r| j                  rd}n¿t        | t        «      r¯| j                  rIt        | j                  t        «      r| j                  n| j                  j
                  }|j                  }nZ| j                  sN| j                  rBt        | j                  d   t        «      sJ ‚| j                  d   j
                  j                  }|rF|j                  j                  | j                  | j                  j                  |j                  «       y y )NFTr   )rz   r   Úis_trivial_bodyr!   ÚimplÚfuncr®   r¯   r   rZ   Úunsafe_superra   r½   rX   )Únoderh   rÇ   rÅ   s       r\   r­   r­   ‡  sÉ   € Ø€LÜ�$œÔ  T×%9Ò%9Ø‰Ü	�DÔ+Ô	,Ø�9Š9Ü *¨4¯9©9´gÔ >�4—9’9ÀDÇIÁIÇNÁNˆDØ×/Ñ/‰LØ×!Ò! d§j¢jÜ˜dŸj™j¨™m¬YÔ7Ð7Ð7ØŸ:™: a™=×-Ñ-×=Ñ=ˆLÙØ
�‰×Ñ˜DŸI™I t§y¡y§~¡~°r·z±zÕBð r^   c                ó$  — |j                   d   j                  d¬«      }t        |t        «      rX|j                  s5t        || ||j                   d   j                  |j                  ¬«      }|r|S t        | |j                  |«      S J d|›�«       ‚)Nr   T)Úforce_fallback)Úoriginal_varsÚmcs_fallbackzUnexpected type )	r¯   Úget_instance_typerz   r6   rV   Úanalyze_class_attribute_accessÚ	variablesrˆ   ry   )ra   r|   rh   Úinstance_typer}   s        r\   r†   r†   –  s�   € ð —I‘I˜a‘L×2Ñ2À$Ð2ÓG€MÜ�-¤Ô*Ø�~Š~ô 4ØØØØ!Ÿi™i¨™l×4Ñ4Ø Ÿ\™\ôˆFñ Ø�ä% d¨C¯L©L¸"Ó=Ð=à:Ð(¨Ð(9Ð:Ó:ˆur^   c                óR  — d }|j                  d«      }t        |j                  t        «      r|j                  }�n$t        |j                  t        «      r2|j
                  j                  «       5  t        | |||«      cd d d «       S t        |j                  t        «      rÛt        |j                  j                  «      }t        |t        «      r|}�n‹t        |t        «      r8t        | t        j                  ||j                  |j                  ¬«      ||«      S t        |t         «      rt#        |«      }�n&t        |t        «      �r|j
                  j                  «       5  t        | |||«      cd d d «       S t        |j                  t         «      rt#        |j                  «      }n³t        |j                  t$        «      r1|j                  j'                  «       r|j                  j(                  }nht        |j                  t        «      rNt        |j                  j                  t        «      r*|j                  j                  j*                  j,                  }d}|�|j*                  j,                  xs |}|rQ|j.                  sEt1        || |||¬«      }|r3t        t        |«      t        «      r|j*                  j2                  s|S d}|j
                  j                  |¬«      5  t        | |||«      cd d d «       S # 1 sw Y   Œ®xY w# 1 sw Y   ŒºxY w# 1 sw Y   y xY w)Núbuiltins.type)ÚlineÚcolumnF)rÌ   rv   T)r–   )r`   rz   Úitemr6   r2   rZ   r–   ry   rD   rG   rŒ   rF   rA   Úmake_normalizedrÓ   rÔ   r=   r1   r5   r…   rˆ   r¦   Úmetaclass_typerV   rÎ   Úfallback_to_any)	ra   r|   rh   rv   rÕ   rˆ   rŒ   Úignore_messagesr}   s	            r\   r‡   r‡   ¹  sn  € ð €DØ�}‰}˜_Ó-€HÜ�#—(‘(œHÔ%Ø�x‰xŠÜ	�C—H‘HœgÔ	&Ø�V‰V×!Ñ!Ó#ñ 	MÜ)¨$°¸"¸mÓL÷	Mñ 	Mä	�C—H‘HœkÔ	*Ü% c§h¡h×&:Ñ&:Ó;ˆÜ�k¤8Ô,ØŠDÜ˜¤YÔ/Ü)ØÜ×(Ñ(¨¸3¿8¹8ÈCÏJÉJÔWØØó	ð ô ˜¤YÔ/Ü! +Ó.ŠDÜ˜¤WÕ-Ø—‘×%Ñ%Ó'ñ QÜ-¨d°H¸bÀ-ÓP÷Qñ Qä	�C—H‘HœiÔ	(Ü˜cŸh™hÓ'‰Ü	�C—H‘HœlÔ	+°·±×0DÑ0DÔ0FØ�x‰x× Ñ ‰Ü	�C—H‘HœhÔ	'ä�c—h‘h—m‘m¤XÔ.Ø—8‘8—=‘=×%Ñ%×4Ñ4ˆDØ€OàÐØ—9‘9×+Ñ+Ò7¨xˆá�B—N’Nä/Ø�$˜¨Àô
ˆñ Üœ¨vÓ6¼Ô@ÀTÇYÁY×E^ÒE^Ø�ð #'�à	�‰×	Ñ	¨OÐ	Ó	<ñ IÜ% d¨H°b¸-ÓH÷Iñ I÷W	Mð 	Mú÷ Qð Qú÷6Ið Iús$   Á0LÅ%LË-LÌLÌLÌL&c           	     ó  — |j                   j                  «       5  g }|j                  «       D ]0  }|j                  |¬«      }|j	                  t        | ||«      «       Œ2 	 d d d «       t        |«      S # 1 sw Y   t        «      S xY w)Nr“   )rZ   Údisable_type_namesÚrelevant_itemsri   Úappendry   r/   )ra   r|   rh   ÚresultsÚsubtypeÚitem_mxs         r\   r„   r„   ñ  s‡   € Ø	�‰×	"Ñ	"Ó	$ñ KØˆØ×)Ñ)Ó+ò 	KˆGà×&Ñ&°Ð&Ó9ˆGØ�N‰NÔ1°$¸ÀÓIÕJñ	K÷Kô ! Ó)Ð)÷Kô ! Ó)Ð)ús   ›AA5Á5Bc           	     óº   — | dk(  r;t        d|j                  d«      ¬«      }t        g g g ||j                  d«      ¬«      S t        | |j                  d«      |«      S )NÚ__bool__Fzbuiltins.bool©rˆ   úbuiltins.function)Ú	arg_typesÚ	arg_kindsÚ	arg_namesÚret_typerˆ   úbuiltins.object)r7   r`   r3   ry   )ra   r|   rh   Úliteral_falses       r\   rŠ   rŠ   û  s`   € ØˆzÒÜ# E°B·M±MÀ/Ó4RÔSˆÜØØØØ"Ø—]‘]Ð#6Ó7ô
ð 	
ô & d¨B¯M©MÐ:KÓ,LÈbÓQÐQr^   c           
     ó  — |j                  | «      }|r|j                  nd}|j                  j                  ||j                  «       |}d}t        |t        «      r_|j                  }|j                  j                  xr |j                   }|j                  r"|j                  st        |j                  |«       t        |t        «      rJ d«       ‚t        |t        «      r/|j                  j                   j#                  |j$                  «       t        |t&        t(        t        t*        f«      rO|j                  j,                  j/                  ||j                  |j0                  «      }t3        | |¬«      }||_        t        |t2        «      rh||    j6                  }	|j0                  r<|j                  j9                  «       s"t;        | ||j<                  |j                  «       t?        | ||||	|¬«      S |�sô| dv�rï|j@                  �sâ|jB                  �€Õ|j0                  �sdD �]  }
|jE                  |
«      }|sŒ|j4                  j$                  dk7  sŒ2tG        |||
|¬	«      }tI        ||j4                  «      }tK        tM        ||«      «      }t        |tN        «      r|jP                  }n|}|j4                  j$                  › d
| › �}|j                  jR                  jU                  |«      }|rF |tW        tK        |jX                  «      ||j0                  |j                  |j                  «      «      }|c S  n­|jE                  d«      }|rš|j4                  j$                  dk7  r�tG        ||d|j[                  d¬«      ¬	«      }tI        ||j4                  «      }tK        tM        ||«      «      }t        |tN        «      r't]        |j^                  «      dkD  r|j^                  d   S |j`                  jb                  rte        tf        jh                  «      S |jj                  rG| |jj                  jl                  v r/|jj                  jn                  s|jj                  jl                  |    S |j                  rK|j                  s?|j<                  jq                  | |j                  «       te        tf        jr                  «      S tu        |jX                  || |«      }|jB                  �ž| |jB                  v r�|jB                  |    jv                  sw|jB                  |    j                  }ty        | «      }|j{                  |j                  «       ||_        |j                  j,                  j}                  ||j0                  ¬«      S |S )zÌAnalyse attribute access that does not target a method.

    This is logically part of analyze_member_access and the arguments are similar.

    original_type is the type of E in the expression E.var
    NFzDid not expect a function)r¦   ©Úimplicitr¹   )Ú__getattr__Ú__setattr__Ú__getattribute__)rð   rî   ré   ©ÚdefnÚitypera   rh   ú.rï   )rT   r   éÿÿÿÿ)Úlvalue)?ÚgetrÈ   rY   r²   rX   rz   r   r°   rÆ   r¹   Ú
decoratorsrU   rP   r­   r   r   Úmodule_refsÚaddÚfullnamer%   r$   r&   Úexpr_checkerÚanalyze_static_referencerT   r'   r½   rí   Úget_final_contextÚcheck_final_memberrZ   r´   rV   rL   r§   Ú$analyze_decorator_or_funcbase_accessr   rG   r   r3   rè   ÚpluginÚget_attribute_hookr)   rW   ri   Úlenrå   r¦   rØ   r2   r@   r·   Úextra_attrsÚattrsÚmod_nameÚundefined_in_superclassrŽ   r�   Úmodule_publicr    Úset_lineÚanalyze_ref_expr)ra   ró   r½   rh   rÈ   ÚvÚvvr¹   r|   rí   Úmethod_namer¿   Úbound_methodÚgetattr_typer}   rû   ÚhookÚsetattr_methÚ
bound_typeÚsetattr_typeÚretÚes                         r\   r¾   r¾   	  sx  € ð �8‰8�D‹>€DÙˆ�	Š	˜t€Aà‡F�F×Ñ˜1˜bŸj™jÔ)à	
€BØ€OÜ�"”iÔ à�F‰FˆØŸ'™'×1Ñ1ÒG¸"¿-¹-Ð6GˆØ�;Š;˜r×1Ò1Ü §¡¨Ô,Ü�!”WÔØ1Ð1Ó1ˆuÜ�!”XÔð 	�‰×Ñ×Ñ˜qŸz™zÔ*ä�"”x¤¬H´oÐFÔGð �f‰f×!Ñ!×:Ñ:¸2¸r¿z¹zÈ2Ï<É<ÓXˆÜ�˜3ÔˆØˆŒä�!”SÔØ˜‘:×&Ñ&ˆð �<Š< §¡× 8Ñ 8Ô :Ü˜t T¨2¯6©6°2·:±:Ô>ä˜4  E¨2¸ÐRaÔbÐbâØÐJÒJØ—“Ø×"Ñ"Ñ*ð
 �|‹|ØBó "�ØŸ™¨Ó5�ò
 ˜fŸk™k×2Ñ2Ð6GÓGÜ#GØ#¨5°{Àrô$�Lô 4°E¸6¿;¹;ÓG�CÜ#2Ô3JÈ<ÐY\Ó3]Ó#^�LÜ! ,´Ô=Ø!-×!6Ñ!6™à!-˜ð #)§+¡+×"6Ñ"6Ð!7°q¸¸Ð?�HØŸ6™6Ÿ=™=×;Ñ;¸HÓE�DÙÙ!%Ü,Ü /°×0@Ñ0@Ó AØ &Ø "§¡Ø "§
¡
Ø "§¡óó"˜ð "’Mñ="ð@  Ÿ?™?¨=Ó9ˆLÙ × 1Ñ 1× :Ñ :Ð>OÒ OÜAØ%ØØ&Ø×'Ñ'°%Ð'Ó8ô	�
ô 0°°|×7HÑ7HÓI�Ü.Ô/FÀzÐSVÓ/WÓX�Ü˜l¬LÔ9¼cÀ,×BXÑBXÓ>YÐ\]Ò>]Ø'×1Ñ1°"Ñ5Ð5à‡z�z×!Ò!Ü”y×-Ñ-Ó.Ð.ð ×Ò˜T U×%6Ñ%6×%<Ñ%<Ñ<à× Ñ ×)Ò)Ø×$Ñ$×*Ñ*¨4Ñ0Ð0à	‡{‚{˜2×-Ò-Ø
�‰×&Ñ& t¨R¯Z©ZÔ8Ü”y×+Ñ+Ó,Ð,ä& r×'7Ñ'7¸ÀÀbÓIˆð ×"Ñ"Ð.Ø˜×.Ñ.Ñ.Ø×*Ñ*¨4Ñ0×>Ò>à×&Ñ& tÑ,×1Ñ1ˆAÜ˜“ˆAØ�J‰J�r—z‘zÔ"ØˆAŒFØ—6‘6×&Ñ&×7Ñ7¸À"Ç,Á,Ð7ÓOÐOØˆ
r^   c                ó¶   — |j                   D ]J  }|j                  j                  | «      }|sŒ!t        |j                  «      sŒ7|j                  | d|¬«       ŒL y)z?Give an error if the name being assigned was declared as final.T)Úattr_assignÚctxN)ÚmroÚnamesr÷   r(   rÈ   Úcant_assign_to_final)ra   r½   rZ   r  ÚbaseÚsyms         r\   rÿ   rÿ   �  sL   € à—‘ò FˆØ�j‰j�n‰n˜TÓ"ˆÚ”= §¡Õ*Ø×$Ñ$ T°tÀÐ$ÕEñFr^   c           
     óF  — t        |j                  «      }| }t        | «      } t        | t        «      r-t	        | j
                  D �cg c]  }t        ||«      ‘Œ c}«      S t        | t        «      s|S |j                  s| j                  j                  d«      s|S |j                  r'| j                  j                  d«      rt        | |«      S |j                  r| j                  j                  d«      s|S | j                  j                  d«      }|€j|j                  t        j                  j!                  | j#                  |j$                  j&                  «      «      «       t)        t*        j,                  «      S t/        || d|j1                  | ¬«      ¬«      }t3        | |j4                  «      }t7        ||«      }t        |t8        «      r8|j;                  «       r(|j
                  d   j=                  «       }t?        «       }n)t        |t@        «      r|jB                  }t?        «       }n|}|jD                  jF                  jI                  | d«      }	|jD                  jF                  jK                  |	|tM        ||jN                  ¬«      tM        tA        jP                  |«      |jN                  ¬«      gtR        tR        g|jN                  | ¬«      }|jD                  jF                  jU                  |tM        ||jN                  ¬«      tM        tA        jP                  |«      |jN                  ¬«      gtR        tR        g|jN                  | |	¬«      \  }
}|jD                  jW                  ||jN                  «       t        |«      }t        |t(        «      r|S t        |tX        «      sj|j                  t        j                  j!                  | j#                  |j$                  j&                  «      «      «       t)        t*        j,                  «      S |jZ                  S c c}w )	a]  Type check descriptor access.

    Arguments:
        descriptor_type: The type of the descriptor attribute being accessed
            (the type of ``f`` in ``a.f`` when ``f`` is a descriptor).
        mx: The current member access context.
    Return:
        The return type of the appropriate ``__get__/__set__`` overload for the descriptor.
    Ú__get__Ú__set__r“   rñ   r   ©rX   ©Úobject_type©r#  Úcallable_name).rG   rK   rz   rF   r/   r¯   Úanalyze_descriptor_accessr6   rT   r¦   Úhas_readable_memberÚanalyze_descriptor_assignr§   rf   r   ÚDESCRIPTOR_GET_NOT_CALLABLEr¬   Ústr_with_optionsrZ   Úoptionsr2   r@   rŽ   r   ri   r   r½   r   r5   r…   rÍ   r8   rA   rÕ   rY   rü   Úmethod_fullnameÚtransform_callee_typer#   rX   rÖ   r   Ú
check_callr²   r3   rè   )Údescriptor_typerh   rÐ   Úorig_descriptor_typer|   Ú
dunder_getr  Údunder_get_typeÚ
owner_typer%  r›   Úinferred_dunder_get_types               r\   r&  r&  —  s[  € ô $ B§L¡LÓ1€MØ*ÐÜ% oÓ6€Oä�/¤9Ô-ä$Ø;J×;PÑ;PÖQ°CÔ& s¨BÕ/ÒQó
ð 	
ô ˜¬Ô2Ø#Ð#à�<Š< × 4Ñ 4× HÑ HÈÔ SØ#Ð#ð 
‡|‚|˜×,Ñ,×@Ñ@ÀÔKÜ(¨¸"Ó=Ð=à	‡|‚|˜O×0Ñ0×DÑDÀYÔOà#Ð#à ×%Ñ%×0Ñ0°Ó;€JØÐØ
�‰Ü×8Ñ8×?Ñ?Ø×0Ñ0°·±·±Ó@óô	
ô
 ”y×+Ñ+Ó,Ð,ä7ØØØØ×Ñ oÐÓ6ô	€Lô $ O°Z·_±_Ó
E€CÜ-¨l¸CÓ@€Oä�-¤Ô.°=×3LÑ3LÔ3NØ"×(Ñ(¨Ñ+×=Ñ=Ó?ˆ
Ü ›
‰Ü	�M¤8Ô	,Ø"×'Ñ'ˆ
Ü ›
‰à"ˆ
à—F‘F×'Ñ'×7Ñ7¸ÈÓS€MØ—f‘f×)Ñ)×?Ñ?ØØä�]¨B¯J©JÔ7Ü”X×-Ñ-¨jÓ9À2Ç:Á:ÔNð	
ô 
”'ÐØ
�
‰
Ø#ð @ó 
€Oð #%§&¡&×"5Ñ"5×"@Ñ"@Øä�]¨B¯J©JÔ7Ü”X×-Ñ-¨jÓ9À2Ç:Á:ÔNð	
ô 
”'ÐØ
�
‰
Ø#Ø#ð #Aó 
#Ñ€AÐð ‡F�F×Ñ˜: r§z¡zÔ2ä.Ð/GÓHÐÜÐ*¬GÔ4à'Ð'äÐ.´Ô=Ø
�‰Ü×8Ñ8×?Ñ?Ø×0Ñ0°·±·±Ó@óô	
ô
 ”y×+Ñ+Ó,Ð,à#×,Ñ,Ð,ùòs Rs   ÁPc           	     ó‚  — t        |j                  «      }| j                  j                  d«      }|€t|j	                  t
        j                  j                  | j                  |j                  j                  «      «      j                  «       t        t        j                  «      S t        || d|j!                  d| ¬«      ¬«      }t#        | |j$                  «      }t'        ||«      }|j(                  j*                  j-                  | d«      }|j.                  xs. t1        t        t        j2                  «      |j4                  ¬«      }|j(                  j*                  j7                  ||t1        ||j4                  ¬«      |gt8        t8        g|j4                  | ¬«      }|}	|j                  j;                  «       5  |j(                  j*                  j=                  |t1        ||j4                  ¬«      |	gt8        t8        g|j4                  | |¬«      \  }
}d d d «       t        «      }t?        |t@        «      r.t1        t        t        j2                  «      |j4                  ¬«      }	|j(                  j*                  j=                  |t1        ||j4                  ¬«      |	gt8        t8        g|j4                  | |¬«       |j(                  jC                  ||j4                  «       t?        |t@        «      rtE        |jF                  «      dk  rt        t        j                  «      S |jF                  d	   S # 1 sw Y   �ŒxY w)
Nr   F)rT   rK   rñ   r!  r"  r$  é   r£   )$rG   rK   r¦   r§   rf   r   ÚDESCRIPTOR_SET_NOT_CALLABLEr¬   r*  rZ   r+  Úvaluer2   r@   rŽ   r   ri   r   r½   r   rY   rü   r,  rO   r#   r·   rX   r-  r   r–   r.  rz   r3   r²   r  rå   )r/  rh   rÐ   Ú
dunder_setr  r|   Údunder_set_typer%  rO   Útype_contextr›   Úinferred_dunder_set_types               r\   r(  r(    s   € Ü# B§L¡LÓ1€MØ ×%Ñ%×0Ñ0°Ó;€JØÐØ
�‰Ü×8Ñ8×?Ñ?Ø×0Ñ0°·±·±Ó@óç‰eô	
ô
 ”y×+Ñ+Ó,Ð,ä7ØØØØ×Ñ e°ÐÓGô	€Lô $ O°Z·_±_Ó
E€CÜ-¨l¸CÓ@€Oà—F‘F×'Ñ'×7Ñ7¸ÈÓS€MØ�Y‰YÒWœ(¤7¬9×+AÑ+AÓ#BÈBÏJÉJÔW€FØ—f‘f×)Ñ)×?Ñ?ØØÜ	�-¨¯©Ô	4°fÐ=Ü	”'ÐØ
�
‰
Ø#ð @ó €Oð €LØ	�‰×	Ñ	Ó	ñ 
Ø&(§f¡f×&9Ñ&9×&DÑ&DØÜ�m¨R¯Z©ZÔ8¸,ÐGÜ”gÐØ�J‰JØ'Ø'ð 'Eó '
Ñ#ˆÐ#÷
ô  /Ð/GÓHÐÜÐ*¬LÔ9Ü¤¬	×(>Ñ(>Ó ?ÈÏÉÔTˆØ‡F�F×Ñ×"Ñ"ØÜ	�-¨¯©Ô	4°lÐCÜ	”'ÐØ
�
‰
Ø#Ø#ð #ô ð ‡F�F×Ñ˜: r§z¡zÔ2ô Ð/´Ô>ÜÐ$×.Ñ.Ó/°!Ò3ä”y×+Ñ+Ó,Ð,Ø#×-Ñ-¨aÑ0Ð0÷A
ñ 
ús   Æ=AL4Ì4L>c                óä   — | j                   | j                  j                  v xrM | j                  j                  | j                      j                  | u xr | j                   xr | j
                   S )z;Return if var is an instance variable according to PEP 526.)ra   r½   r  rÈ   Úis_classvarÚis_inferred)r°   s    r\   Úis_instance_varr@  I  sa   € ð 	�‰�C—H‘H—N‘NÐ"ò 	 Ø�H‰H�N‰N˜3Ÿ8™8Ñ$×)Ñ)¨SÐ0ò	 à—‘Ðò	 ð —‘Ððr^   rì   c          	     ód	  — |}t        ||j                  «      }|j                  r3|j                  r'|j                  }|€%|j
                  r|j                  }n|j                  }|�rŒt        |t        «      r2|j                  j                  ||j                  ||j                  «      S |j                  r‡|j                  s{|j                  r=|j                  s1|j                  j                  | |j                  |j                  «       |j                   r&|j                  j#                  | |j                  «       t%        |||||«      }d}	|j&                  r~t)        |«      r|j*                  rgt-        |«      }t        |t.        «      r|j1                  «       s|}	n9|j                  r+|j3                  ||d¬«      }
t-        t5        d||
«      «      }	n|}	t        |	t.        «      rY|	j1                  «       sI|j                  r=|j                  s1|j                  s%|j                  j7                  |j                  «       |	�r|j8                  sûg }t        |	t:        «      r|	j<                  n|	gD ]j  }t-        |«      }t        |t.        «      r-|j?                  «       r|j                  rtA        |||| ||«      }nt%        |||||«      }|jC                  |«       Œl t;        jD                  |«      }nW|j
                  s2|jF                  s&|jI                  |jJ                  |j                  «       tM        tN        jP                  «      }|j                  jR                  › d| › �}|j                  jT                  jW                  |«      }|j                  jX                  r—|j                  s‹| |j                  jZ                  v r$| dvr t]        | |¬«      }|j3                  |¬«      }nOt        t-        |«      x}t^        «      r4|j                  jR                  d	k(  r|j`                  r|j`                  d
   }|r/|s-|j                  jb                  rt)        |«      ste        ||«      }|rF |tg        t-        |jh                  «      ||j                  |j                  |j                  «      «      }|S )a   Analyze access to an attribute via a Var node.

    This is conceptually part of analyze_member_access and the arguments are similar.
    itype is the instance type in which attribute should be looked up
    original_type is the type of E in the expression E.var
    if implicit is True, the original Var was created as an assignment to self
    if is_trivial_self is True, we can use fast path for bind_self().
    NF)rW   rK   rT   Ú__call__rô   >   ra   r8  rã   ©r{   úenum.nonmemberr   )5r   r½   r±   rT   Úsetter_typeÚis_readyr¦   rz   r;   rY   Úhandle_partial_var_typerX   rP   r®   rZ   Úread_only_propertyr>  Úcant_assign_to_classvarÚexpand_without_bindingÚis_initialized_in_classr@  rV   rG   r5   r…   ri   ry   rµ   Úis_staticmethodrF   r¯   ÚboundÚexpand_and_bind_callablerÝ   Ú
make_unionrM   rd   ra   r2   r@   r·   rû   r  r  Úis_enumÚenum_membersr7   r6   ÚargsÚis_protocolr&  r)   rW   )ra   r°   ró   rh   rí   r¹   Úoriginal_ityper|   r}   Ú	call_typeÚdeco_mxÚbound_itemsÚctÚp_ctrÕ   rû   r  Úenum_literalÚp_results                      r\   r´   r´   U  s™  € ð$ €NÜ% e¨S¯X©XÓ6€EØ
×Ò B§L¢LØŸ?™?ˆØˆ;˜3Ÿ<š<à—(‘(‰Cà�h‰hˆÚ
Ü�cœ;Ô'Ø—6‘6×1Ñ1°#°r·|±|ÀSÈ"Ï*É*ÓUÐUØ�<Š< × 2Ò 2Ø�Š s×'?Ò'?Ø—‘×)Ñ)¨$°·
±
¸B¿J¹JÔGØ�ŠØ—‘×.Ñ.¨t°R·Z±ZÔ@ä'¨¨S°%¸ÈÓLˆð (,ˆ	Ø×&Ò&´ÀÔ0DÈÏÊÜ! #Ó&ˆCÜ˜#œ|Ô,°S·_±_Ô5FØ‘	Ø—’Ø×*Ñ*¸ÈÐW\Ð*Ó]�Ü+Ô,BÀ:ÈsÐT[Ó,\Ó]‘	à�	ô �i¤Ô.°y×7LÑ7LÔ7NØ�|Š| C§O¢O¸B×<NÒ<NØ—‘×,Ñ,¨R¯Z©ZÔ8ò ˜S×0Ò0ØˆKÜ)3°I¼yÔ)I�i—o’oÐPYÈ{ò )�Ü& rÓ*�Ü˜d¤LÔ1¸4¿:¹:¼<È3Ï?Ê?Ü3°D¸#¸uÀdÈBÐP_Ó`‘Dä1°"°c¸5À.ÐRTÓU�DØ×"Ñ" 4Õ(ð)ô ×)Ñ)¨+Ó6‰Fà�|Š| B§N¢NØ×!Ñ! #§(¡(¨B¯J©JÔ7äœ×/Ñ/Ó0ˆØ—(‘(×#Ñ#Ð$ A d VÐ,€HØ�6‰6�=‰=×+Ñ+¨HÓ5€Dà
‡x�x×Ò §¢Ø�3—8‘8×(Ñ(Ñ(¨TÐ9JÑ-JÜ& t°eÔ<ˆLØ×(Ñ(¸,Ð(ÓG‰Fä¤?°6Ó#:Ð:�x¼HÔEØ—‘×&Ñ&Ð*:Ò:Ø—’ð —]‘] 1Ñ%ˆFÙ‘x 3§8¡8×#7Ò#7¼OÈCÔ<PÜ*¨6°2Ó6ˆÙÙÜÜ × 0Ñ 0Ó1°6¸2¿<¹<ÈÏÉÐUW×U[ÑU[óó
ˆð
 €Mr^   c                ó~   — |j                   st        | «      } t        | |||«      } t        | |«      }t	        |«       |S rS   )rQ   r   Úexpand_self_type_if_neededr   r-   )r|   r°   ró   rT  rh   Úexpandeds         r\   rJ  rJ  ¶  s@   € ð ×#Ò#Ü-¨cÓ2ˆÜ
$ S¨"¨c°>Ó
B€CÜ& s¨EÓ2€HÜ˜Ô"Ø€Or^   c                ó€  — |j                   st        | «      } t        t        || |j                  «      «      }t        |t        «      sJ ‚|rt        ||j                  «      }nYt        ||j                  |j                  |j                  ||j                  «      }t        ||j                  |j                  «      }t        ||«      }t        |«       |j                  s|S t        |t         «      r4|j"                  st%        t&        j(                  «      S |j"                  d   }t        |t*        «      sJ |«       ‚|j,                  rì|j.                  rà|j0                  �Ô|j2                  r”|j4                  xs. t7        t%        t&        j8                  «      |j                  ¬«      }|j:                  j<                  j?                  ||gt@        g|j                  «      \  }	}
t        |
«      }t        |t*        «      sJ ‚|jB                  st%        t&        j(                  «      S |jB                  d   S |jD                  S )Nr   r!  )#rQ   r   rG   r   rK   rz   r5   rº   r»   r¥   rX   rZ   r+   r   r-   r®   r9   r¯   r2   r@   rŽ   r3   r±   rT   rE  rÏ   rO   r#   r·   rY   rü   r.  r   rå   rè   )Úfunctyper°   ró   ra   rh   r¹   r|   r^  Útype_ctxr›   Úinferred_expandeds              r\   rN  rN  Á  sÊ  € ð ×#Ò#Ü2°8Ó<ˆÜ
Ô*¨3°¸"¿,¹,ÓGÓ
H€CÜ�cœ<Ô(Ð(Ð(ÙÜ˜S "§,¡,Ó/‰ä˜S "§,¡,°×0BÑ0BÀBÇJÁJÐPTÐVX×V\ÑV\Ó]ˆÜ˜˜RŸ\™\¨3×+=Ñ+=Ó>ˆÜ& s¨EÓ2€HÜ˜Ô"Ø�?Š?ØˆÜ�(œJÔ'ð �~Š~äœ9×/Ñ/Ó0Ð0Ø—>‘> !Ñ$ˆÜ�h¤Ô-Ð7¨xÓ7Ð-Ø
×Ò B§L¢L°S·_±_Ð5PØ×ÒØ—y‘yÒa¤H¬W´Y×5KÑ5KÓ-LÐVX×V`ÑV`Ô$aˆHØ#%§6¡6×#6Ñ#6×#AÑ#AØ˜8˜*¤w i°·±ó$Ñ ˆAÐ ô 'Ð'8Ó9ˆHÜ˜h¬Ô5Ð5Ð5Ø×!Ò!ô œ9×/Ñ/Ó0Ð0Ø×!Ñ! !Ñ$Ð$à× Ñ Ð r^   c                óÖ  — t        |j                  «      }|j                  sl|j                  s`|j                  }|rEt	        |t
        «      r|j                  }n(t	        |t        «      rt        |j                  «      }n|}t        || |«      S t        t        |j                  «      dd¬«      r7|j                  }|rt	        |t
        «      r|j                  }t        || |«      S |j                  rw|j                  |j                  k7  r^|j                  j                  �H||j                  j                  j!                  «       k(  r!t        || |j                  j                  «      S | S )z×Expand special Self type in a backwards compatible manner.

    This should ensure that mixing old-style and new-style self-types work
    seamlessly. Also, re-bind new style self-types in subclasses if needed.
    F)Úallow_instancesÚallow_callable)rG   rK   rN   rU   rz   rA   rÕ   r3   r   rè   r   r0   r¦   r½   rY   ÚscopeÚactive_self_type)Útrh   r°   ró   r¼   ÚoriginalÚrepls          r\   r]  r]  ð  s  € ô ˜rŸ|™|Ó,€HØ�JŠJ˜"Ÿ+š+Ø�|‰|ˆÙÜ˜(¤HÔ-Ø—}‘}‘Ü˜H¤lÔ3ä% h×&7Ñ&7Ó8‘à�Ü  Q¨Ó-Ð-Ü	ä˜Ÿ™Ó%ØØõ	
ð �|‰|ˆÙœ
 8¬XÔ6Ø—=‘=ˆDÜ  Q¨Ó-Ð-à
�
Š
Ø�J‰J˜#Ÿ(™(Ò"ð �J‰J× Ñ Ð,à�R—V‘V—\‘\×2Ñ2Ó4Ò4ä  Q¨¯
©
×(<Ñ(<Ó=Ð=àˆr^   c                óà  — | j                   }|s| S g }|rt        j                  |«      }t        |«      }|D ]º  }	|	j                  r|	j
                  d   t        t        fvr|j                  ||	|«       | c S t        |	j                  d   «      }
t        |
t        «      rAt        |t        «      r1|
j                  |j                  u r|
j                  rt        ||
«      sŒª|j                  |	«       Œ¼ |r|}g }|D ]·  }	t        |	j                  d   «      }
|dk(  xr t        |
t        «      }|s:t!        |t#        t%        |
«      «      t'        d„ t)        |
«      D «       «      d¬«      r|j                  |	«       Œ€t        |
t*        «      r|j                  |	«       Œ¢t        |
t,        «      sŒ³t.        ‚ |s|j1                  |||d   ||«       | S t3        |«      dk(  r|d   S t5        |«      S )a�  Check that an instance has a valid type for a method with annotated 'self'.

    For example if the method is defined as:
        class A:
            def f(self: S) -> T: ...
    then for 'x.f' we check that type(x) <: S. If the method is overloaded, we select
    only overloads items that satisfy this requirement. If there are no matching
    overloads, an error is generated.
    r   rB  c              3  ó>   K  — | ]  }t        |t        «       –— Œ y ­wrS   )rz   rD   )Ú.0Útvs     r\   ú	<genexpr>z!check_self_arg.<locals>.<genexpr>U  s   è ø€ ò !Ø46”J˜r¤;Ó/Ô/ñ!ùs   ‚T)Úalways_covariantÚignore_pos_arg_namesr£   )r¯   rA   rÖ   rG   rå   ræ   r   r   Úno_formal_selfrz   r6   r¦   rR  r   rÝ   r3   r*   r   r,   Úanyr.   r:   rC   ÚNotImplementedErrorÚincompatible_self_argumentr  r9   )r`  Údispatched_arg_typer¥   rX   ra   rZ   r¯   Ú	new_itemsÚp_dispatched_arg_typerÕ   ÚselfargÚself_callables               r\   r»   r»     så  € ð" �N‰N€EÙØˆØ€IÙÜ&×6Ñ6Ð7JÓKÐÜ+Ð,?Ó@Ðàò ˆØ�~Š~ §¡°Ñ!2¼7ÄHÐ:MÑ!Mà×Ñ˜t T¨7Ô3ð ŠOÜ! $§.¡.°Ñ"3Ó4ˆÜ�gœxÔ(¬ZÐ8MÌxÔ-XØ�|‰|Ð4×9Ñ9Ñ9¸g¿lºlÜ+Ð,AÀ7ÔKð Ø×Ñ˜Õðñ" ØˆØˆ	àò &ˆÜ! $§.¡.°Ñ"3Ó4ˆà 
Ñ*ÒP¬z¸'Ä<Ó/PˆÙœJØô œ>¨'Ó2Ó3ô !ñ !Ü:KÈGÓ:Tô!ó ð "&õ
ð ×Ñ˜TÕ"Ü˜¤Ô/à×Ñ˜TÕ"Ü˜Ô!1Õ2Ü%Ð%ð+&ñ, à×&Ñ&ØÐ% u¨Q¡x°Àô	
ð ˆÜ
ˆ9ƒ~˜ÒØ˜‰|ÐÜ�iÓ Ð r^   )rv   rË   c          
     óÈ  — | j                   }|r|}|j                  › d|› �}|j                  j                  j	                  |«      }|j                  |«      }	|	s�| j                  rG|| j                  j                  v r/| j                  j                  s| j                  j                  |   S |j                  s|j                  r$t        ||t        t        j                  «      «      S yt        |	j                   t"        «      r4|	j                   j$                  s|s|j                   j                  |«      ry|j                  j'                  |	j                   |j(                  «       t        |	j                   t*        «      }
|
xs t        |	j                   t,        «      }|j.                  rl|j0                  s`|r%|j2                  j5                  |j(                  «       t        |	j                   t6        «      r|j9                  t:        j<                  «       |j>                  r<||j>                  v r.|j9                  t:        j@                  jC                  |«      «       |	jD                  rÍt        |	j                   t"        «      r³|	j                   jF                  rC|j9                  t:        jH                  jC                  |	j                   jJ                  «      «       nZ|j.                  sNtM        ||«      sB|j9                  t:        jN                  jC                  |	j                   jJ                  «      «       |j.                  r<|j                  jQ                  «       s"tS        |||j2                  |j(                  «       |jT                  r,|j.                  s |
s|stW        | ||«      }|rt        |||«      S |	j                   }|�ràt        |tX        «      r[|	j                   }t        |t"        «      sJ ‚t        |||j                  j[                  ||j.                  ||j(                  «      «      S t        |	j                   t*        «      r!|	j                   j\                  j^                  }n9t        |	j                   t"        t`        f«      r|	j                   j^                  }nd}|sd}ntc        | |«      }t        |	j                   t"        «      �ræ|€J ‚te        |jf                  «      }|	j                   j$                   }ti        |	j                   j^                  jj                  jl                  «      }|rO|	j                   j^                  jf                  r/|jo                  |	j                   j^                  jf                  «       t        |tp        «       xs |	jD                  }|r_|ti        ts        |«      «      z  rH|	j                   j$                  rt:        jt                  }nt:        jv                  }|j9                  |«       ty        |||	j                   | d¬«      }t{        ||«      }|rŠti        | j                   jj                  jl                  «      }|r;| j                   jf                  r%|jo                  | j                   jf                  «       t}        ||D �ch c]  }|j~                  ’Œ c}«      }|
xr. t�        t*        |	j                   «      j‚                  j„                  xsf t        |	j                   t`        «      xr |	j                   j„                  xs2 t        |	j                   t"        «      xr |	j                   j†                  }te        |«      }d}t        |	j                   t*        «      r:|	j                   j‚                  jˆ                  xr |	j                   jŠ                   }n6t        |	j                   tŒ        tŽ        f«      r|	j                   jˆ                  }t        |t�        «      rB|r@|s>|j“                  «       s.t•        ||jf                  d|j(                  ||j2                  «      }t—        ||||||¬«      }|
r2ty        ||t�        t*        |	j                   «      j\                  | |¬«      }|}|j.                  st™        ||«      }t        |||«      S t        |	j                   t"        «      r5|j›                  ||j(                  «       t        t        j                  «      S t        |	j                   t6        tœ        tž        t         f«      rE|j                  j¢                  j¥                  |	j                   |j(                  |j.                  «      S |
rˆt        |	j                   t*        «      sJ ‚|	j                   j                   r!t        |||	j                   j                   «      S |j›                  ||j(                  «       t        t        j¦                  «      S t        |	j                   t`        «      sJ ‚|j                  j©                  |	j                   «      }|	j                   j„                  rt«        |«      }t        |||«      S c c}w )a   Analyze access to an attribute on a class object.

    itype is the return type of the class object callable, original_type is the type
    of E in the expression E.var, original_vars are type variables of the class callable
    (for generic classes).
    rô   NT)r¼   F)rË   r¹   )Vr¦   rû   rY   r  Úget_class_attribute_hookr÷   r  r  r  rØ   Úmeta_fallback_to_anyÚapply_class_attr_hookr2   r@   r·   rz   rÈ   r'   r>  r²   rX   r   r   rT   rP   rZ   rµ   r%   rf   r   ÚCANNOT_ASSIGN_TO_TYPEÚslotsÚCLASS_VAR_CONFLICTS_SLOTSr¬   rí   r¨   Ú!CANNOT_ACCESS_FINAL_INSTANCE_ATTRra   Údefined_in_superclassÚ CANNOT_ACCESS_INSTANCE_ONLY_ATTRrþ   rÿ   rP  Ú#analyze_enum_class_attribute_accessr;   rG  r°   r½   r   r   rG   rK   Úsetrò   Ú	type_varsrú   rA   r.   ÚGENERIC_CLASS_VAR_ACCESSÚ!GENERIC_INSTANCE_VAR_CLASS_ACCESSr]  r   r   Úidr   rÆ   r¼   r¥   r¹   rø   r   r!   r5   rM  r»   Úadd_class_tvarsr&  rd   r$   r   r&   rü   rý   rŽ   r¶   rº   )ró   ra   rh   rÌ   rv   rË   r½   rû   r  rÈ   Úis_decoratedÚ	is_methodÚenum_class_attribute_typerh  ÚsymnodeÚ
super_infoÚisuperr#  Úprohibit_selfÚdef_varsÚprohibit_genericÚmessageÚ
erase_varsrn  r¥   r¹   r}   r|   s                               r\   rÎ   rÎ   k  sm  € ð �:‰:€DÙØˆà—-‘-�  $ Ð(€HØ�6‰6�=‰=×1Ñ1°(Ó;€Dà�8‰8�D‹>€DÙØ×Ò ¨×):Ñ):×)@Ñ)@Ñ!@à×$Ñ$×-Ò-Ø×(Ñ(×.Ñ.¨tÑ4Ð4Ø×Ò 4×#<Ò#<Ü(¨¨T´7¼9×;QÑ;QÓ3RÓSÐSØô 	�4—9‘9œcÔ"Ø—	‘	×%Ò%ÙØ×Ñ×!Ñ! $Ô'ð à‡F�F×Ñ˜4Ÿ9™9 b§j¡jÔ1ä˜dŸi™i¬Ó3€LØÒ?¤
¨4¯9©9´hÓ ?€IØ	‡|‚|˜B×.Ò.ÙØ�F‰F×(Ñ(¨¯©Ô4Ü�d—i‘i¤Ô*Ø�G‰GÔ$×:Ñ:Ô;ð ‡z‚z�d˜dŸj™jÑ(Ø
�‰Ô ×:Ñ:×AÑAÀ$ÓGÔHà‡}‚}œ D§I¡I¬sÔ3Ø�9‰9×Òð �G‰GÔ$×FÑF×MÑMÈdÏiÉiÏnÉnÓ]Õ^Ø—’Ô&;¸DÀ$Ô&GØ�G‰GÔ$×EÑE×LÑLÈTÏYÉYÏ^É^Ó\Ô]ð 
‡|‚|˜BŸF™F×4Ñ4Ô6Ü˜4  r§v¡v¨r¯z©zÔ:à‡|‚|˜RŸ\š\©\¹YÜ$GÈÈtÐUWÓ$XÐ!Ù$Ü(¨¨TÐ3LÓMÐMà�	‰	€AÚÜ�aœÔ%Ø—i‘iˆGÜ˜g¤sÔ+Ð+Ð+Ü(Ø�D˜"Ÿ&™&×8Ñ8¸¸B¿L¹LÈ'ÐSU×S]ÑS]Ó^óð ô
 �d—i‘i¤Ô+Ø*.¯)©)¯-©-×*<Ñ*<‰JÜ˜Ÿ	™	¤CÔ)>Ð#?Ô@ØŸ™Ÿ™‰JàˆJñ Ø‰Fä.¨u°jÓAˆFä�d—i‘i¤Õ%ØÐ%Ð%Ð%Ü)¨"¯,©,Ó7ˆKð !%§	¡	× 5Ñ 5Ð5ˆMÜ˜4Ÿ9™9Ÿ>™>×.Ñ.×8Ñ8Ó9ˆHÙ §¡§¡×!9Ò!9Ø—‘˜TŸY™YŸ^™^×5Ñ5Ô6ä#-¨k¼8Ó#DÐDÒUÈÏÉÐÙ H¬sÔ3DÀQÓ3GÓ/HÒ$HØ—9‘9×(Ò(Ü.×GÑG‘Gä.×PÑP�GØ—‘˜Ô Ü*¨1¨b°$·)±)¸UÈTÔRˆAÜ'¨¨6Ó2ˆAñ
  Ü  §¡§¡×!:Ñ!:Ó;�
Ù  U§Z¡Z×%9Ò%9Ø—N‘N 5§:¡:×#7Ñ#7Ô8Ü" 1°zÖ&B° r§u£uÒ&BÓC�ð ÒFœd¤9¨d¯i©iÓ8×=Ñ=×FÑFò )Ü˜4Ÿ9™9Ô&;Ó<ÒSÀÇÁ×ASÑASò)ä˜$Ÿ)™)¤SÓ)ò )Ø—	‘	×(Ñ(ð	 	ô ˜AÓˆØˆÜ�d—i‘i¤Ô+à"Ÿi™iŸn™n×<Ñ<ÒYÀTÇYÁY×EYÑEYÐAY‰OÜ˜Ÿ	™	¤GÔ->Ð#?Ô@Ø"Ÿi™i×7Ñ7ˆOä�qœ,Ô'ÙÙ#Ø—G‘G”Iä˜q "§,¡,°°r·z±zÀ4ÈÏÉÓPˆAÜØØØØØ'Ø+ô
ˆñ Ü*Ø�2”tœI t§y¡yÓ1×5Ñ5°uÀ~ôˆAð ˆà�|Š|Ü.¨v°rÓ:ˆFä$ R¨¨vÓ6Ð6Ü	�D—I‘IœsÔ	#Ø
×Ñ˜d B§J¡JÔ/Ü”y×-Ñ-Ó.Ð.ä�$—)‘)œh¬	´8¼_ÐMÔNà�v‰v×"Ñ"×;Ñ;¸D¿I¹IÀrÇzÁzÐSU×S_ÑS_Ó`Ð`áÜ˜$Ÿ)™)¤YÔ/Ð/Ð/Ø�9‰9�>Š>Ü(¨¨T°4·9±9·>±>ÓBÐBà×!Ñ! $¨¯
©
Ô3Üœ9×/Ñ/Ó0Ð0ä˜$Ÿ)™)Ô%:Ô;Ð;Ð;Ø�f‰f×"Ñ" 4§9¡9Ó-ˆð �9‰9×ÒÜ  Ó%ˆCÜ$ R¨¨sÓ3Ð3ùòA 'Cs   Úi
c           	     ó–   — |rF |t        t        | j                  «      || j                  | j                  | j
                  «      «      }|S rS   )r)   rG   rW   rT   rX   rY   )rh   r  r}   s      r\   r~  r~  8  sE   € ñ ÙÜÜ × 0Ñ 0Ó1°6¸2¿<¹<ÈÏÉÐUW×U[ÑU[óó
ˆð
 €Mr^   c                ó¶  — |t         v rt        |j                  | ||«      S | j                  j	                  |«      }|re|j                  rYt        |j                  «      }t        |t        «      r4|j                  j                  dk(  r|j                  r|j                  d   S || j                  j                  vry t        || ¬«      }| j                  |¬«      S )NrD  r   rã   rC  )r   r�   rW   r¦   r÷   rG   rz   r6   rû   rR  rQ  r7   ri   )ró   ra   rh   rÈ   ÚproperrZ  s         r\   r…  r…  D  s¶   € ð Ô'Ñ'Ü'¨×(8Ñ(8¸%ÀÀrÓJÐJà�:‰:�>‰>˜$Ó€DÙ�—	’	Ü  §¡Ó+ˆô �vœxÔ(Ø—‘×$Ñ$Ð(8Ò8Ø—’à—;‘;˜q‘>Ð!à�5—:‘:×*Ñ*Ñ*Øä˜t¨eÔ4€LØ×Ñ°ÐÓ=Ð=r^   c           	     ó  — | dk(  �rt        |j                  t        «      r„|j                  j                  j                  ||j                  j                  d¬«      \  }}|j                  |z  }|rM|j                  sA|j                  j                  ||j                  ¬«       nt        t        j                  «      }t        |j                  j                  d«      |gt         t         gd d gt#        «       |j                  j                  d«      | ¬«      S | dk(  rRt        |j                  j                  d«      gt         gd gt#        «       |j                  j                  d«      | ¬«      S t%        | |j&                  ||«      S )	NÚ__setitem__T)Úsetitemr!  zbuiltins.strrä   )rå   ræ   rç   rè   rˆ   ra   Ú__delitem__)rz   rX   r   rY   rü   Úvisit_typeddict_index_exprÚindexÚreadonly_keysrP   rZ   Úreadonly_keys_mutatedr2   r@   Úimplementation_artifactr3   r`   r   r8   ry   rˆ   )ra   r|   rh   rv   Ú	item_typeÚ	key_namesÚassigned_readonly_keyss          r\   r‰   r‰   ]  sT  € ð ˆ}ÓÜ�b—j‘j¤)Ô,ð $&§6¡6×#6Ñ#6×#QÑ#QØ�R—Z‘Z×%Ñ%¨tð $Ró $Ñ ˆI�yð &)×%6Ñ%6¸Ñ%BÐ"Ù%¨b×.@Ò.@Ø—‘×,Ñ,Ð-CÈRÏZÉZÐ,ÕXô  ¤	× AÑ AÓBˆIÜØ—v‘v×(Ñ(¨Ó8¸)ÐDÜ¤Ð(Ø˜T�lÜ“ZØ—V‘V×&Ñ&Ð':Ó;Øô
ð 	
ð 
�Ò	ÜØ—v‘v×(Ñ(¨Ó8Ð9Ü�iØ�fÜ“ZØ—V‘V×&Ñ&Ð':Ó;Øô
ð 	
ô " $¨¯©°b¸-ÓHÐHr^   c                ó6  — t        | t        «      r¦|�|ng }|j                  st        | «      } |r=| j                  s1|rt        | |j                  «      } nt        | |j                  d¬«      } |�t        | |«      } t        | «       | j                  t        |«      t        | j                  «      z   ¬«      S t        | t        «      r?t        | j                  D �cg c]   }t        t        t!        |||||¬«      «      ‘Œ" c}«      S |�t        | |«      } | S c c}w )a  Instantiate type variables during analyze_class_attribute_access,
    e.g T and Q in the following:

    class A(Generic[T]):
        @classmethod
        def foo(cls: Type[Q]) -> Tuple[T, Q]: ...

    class B(A[str]): pass
    B.foo()

    Args:
        t: Declared type of the method (or property)
        isuper: Current instance mapped to the superclass where method was defined, this
            is usually done by map_instance_to_supertype()
        is_classmethod: True if this method is decorated with @classmethod
        original_vars: Type variables of the class callable on which the method was accessed
        is_trivial_self: if True, we can use fast path for bind_self().
    Returns:
        Expanded method type with added type variables (when needed).
    Tr¤   )rÏ   )rË   )rz   r3   rQ   r   Úis_boundrº   rK   r+   r   r-   ri   ÚlistrÏ   r9   r¯   r   r‹  )rh  r‘  r¥   rh   rË   r¹   ÚtvarsrÕ   s           r\   r‹  r‹  „  s  € ôT �!”\Ô"Ø!.Ð!:‘ÀˆØ×'Ò'Ü/°Ó2ˆAÙ !§*¢*ÙÜ" 1 b§l¡lÓ3‘ä˜a §¡¸dÔC�ØÐÜ'¨¨6Ó2ˆAÜ˜QÔØ�‰¬¨e«´t¸A¿K¹KÓ7HÑ)HˆÓIÐIÜ	�A”zÔ	"Üð ŸG™Göð
 ô	 Ü Ü# D¨&°.À"ÐTaÔbõòó
ð 	
ð ÐÜ# A vÓ.ˆØ€Hùòs   Ã%Dc                ó¬  — t        | t        «      rt        || j                  ||«      S |j                  j                  | «      }t        | t        t        f«      r"| j                  rt        ||j                  «      S t        ||j                  | j                  |j                  ||j                  «      }t        ||j                  | j                  ¬«      S )z•Analyzes the type behind method access.

    The function itself can possibly be decorated.
    See: https://github.com/python/mypy/issues/10409
    )rW   r¥   )rz   r   r´   r°   rY   r¶   r   r!   r¹   rº   rK   r»   r¼   rX   rZ   r+   )rò   ró   ra   rh   r|   s        r\   r   r   Ê  s›   € ô �$œ	Ô"Ü˜4 §¡¨5°"Ó5Ð5Ø
�&‰&×
Ñ
˜tÓ
$€CÜ�$œÔ"3Ð4Ô5¸$×:NÒ:NÜ˜c 2§<¡<Ó0Ð0Ü
˜˜bŸl™l¨D¯M©M¸2¿:¹:ÀtÈRÏVÉVÓ
T€CÜ�S¨¯©ÀTÇ]Á]ÔSÐSr^   ÚF)rM  c                ó–  — t        | t        «      r<| j                  D �cg c]  }t        ||«      ‘Œ }}t	        t
        t        |«      «      S t        | t        «      sJ ‚| j                  s| S | j                  d   t        t        fv r| S | j                  | j                  dd | j                  dd | j                  dd d¬«      S c c}w )zôReturn a copy of `method`, with the type of its first parameter (usually
    self or cls) bound to original_type.

    This is a faster version of mypy.typeops.bind_self() that can be used for methods
    with trivial self/cls annotations.
    r   r£   NT)rå   ræ   rç   r§  )rz   r9   r¯   rº   r   r«  r3   rå   ræ   r   r   ri   rç   )r¿   rW   Úcr¯   s       r\   rº   rº   Þ  sÊ   € ô �&œ*Ô%Ø;A¿<¹<ÖH°a”  =Õ1ÐHˆÐHÜ”A”z %Ó(Ó)Ð)Ü�fœlÔ+Ð+Ð+Ø×ÒàˆØ×Ñ˜Ñœx¬Ð3Ñ3àˆØ×ÑØ×"Ñ" 1 2Ð&Ø×"Ñ" 1 2Ð&Ø×"Ñ" 1 2Ð&Øð	  ó ð ùò Is   ŸCc                ó¦  ‡— t        | «      } t        | t        «      r| j                  «       } t        | t        «      ryt        | t
        «      r"t        ˆfd„| j                  «       D «       «      S t        | t        «      r5| j                  «       r%| j                  j                  j                  ‰«      S t        | t        «      rj| j                  }t        |t        «      r|j                  «       }t        |t
        «      r"t        ˆfd„|j                  «       D «       «      S t!        |‰«      S t#        | «      j                  j                  ‰«      S )a  Does type have operator with the given name?

    Note: this follows the rules for operator access, in particular:
    * __getattr__ is not considered
    * for class objects we only look in metaclass
    * instance level attributes (i.e. extra_attrs) are not considered
    Tc              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrS   )Úhas_operator©rm  ÚxÚ	op_methods     €r\   ro  zhas_operator.<locals>.<genexpr>
  s   øè ø€ ÒL°!”<  9×-ÑLùó   ƒc              3  ó6   •K  — | ]  }t        |‰«      –— Œ y ­wrS   )Úmeta_has_operatorr±  s     €r\   ro  zhas_operator.<locals>.<genexpr>  s   øè ø€ ÒV¸1Ô(¨¨I×6ÑVùr´  )rG   rz   rB   Úvalues_or_boundr2   rF   ÚallrÜ   r5   r…   rˆ   r¦   r'  rA   rÕ   rD   r¶  Úinstance_fallback)r|   r³  rÕ   s    ` r\   r°  r°  ÷  s   ø€ ô ˜#Ó
€Cä�#”Ô'Ø×!Ñ!Ó#ˆÜ�#”wÔØÜ�#”yÔ!ÜÓL°s×7IÑ7IÓ7KÔLÓLÐLÜ�#”|Ô$¨¯©Ô):Ø�|‰|× Ñ ×4Ñ4°YÓ?Ð?Ü�#”xÔ ð �x‰xˆÜ�dœKÔ(Ø×'Ñ'Ó)ˆDÜ�dœIÔ&ÜÓVÀ×@SÑ@SÓ@UÔVÓVÐVÜ   yÓ1Ð1Ü˜SÓ!×&Ñ&×:Ñ:¸9ÓEÐEr^   c                ó>  — t        | t        «      r| S t        | t        «      rt        | «      S t        | t        t
        f«      r| j                  S t        j                  €/t        dt        j                  «      }t        |g «      t        _        t        j                  S )Nré   )rz   r6   r=   r1   r7   r?   rˆ   rH   r#  r   r   Úmodules)r|   Úobject_typeinfos     r\   r¹  r¹    sy   € Ü�#”xÔ Øˆ
Ü�#”yÔ!Ü˜cÓ"Ð"Ü�#œ¤]Ð3Ô4Ø�|‰|ÐÜ×!Ñ!Ð)Ü0Ð1BÄM×DYÑDYÓZˆÜ%-¨o¸rÓ%BŒÔ"Ü×%Ñ%Ð%r^   c                ó  — t        | «      } t        | t        «      ryt        | «      } | j                  j
                  }|€&t        dt        j                  «      }t        |g «      }|j                  j                  |«      S )NTrÒ   )rG   rz   r2   r¹  r¦   r×   r   r   r»  r6   r'  )rÕ   r³  ÚmetaÚ	type_types       r\   r¶  r¶  '  sj   € Ü˜4Ó €DÜ�$œÔ ØÜ˜TÓ"€DØ�9‰9×#Ñ#€DØ€|Ü*¨?¼M×<QÑ<QÓRˆ	Ü˜	 2Ó&ˆØ�9‰9×(Ñ(¨Ó3Ð3r^   c                óè   — | j                   dd D ]`  }|j                  j                  |«      x}€Œ!|j                  rŒ.t	        |j
                  t        «      sŒI|j
                  j                  sŒ` y y)zPCheck if a variable has an explicit value at class level in any of superclasses.r£   NTF)r  r  r÷   rí   rz   rÈ   r'   Úhas_explicit_value)r½   ra   r  rÈ   s       r\   rƒ  rƒ  3  s[   € à—‘˜˜�ò ˆØ—J‘J—N‘N 4Ó(Ð(ˆDÑ5Ø—=“=¤Z°·	±	¼3Õ%?ÀDÇIÁI×D`ÓD`Ùðð r^   )"ra   rp   r|   r>   rX   r   rT   rj   rU   rj   rV   rj   rW   r>   rY   r
   rv   úTypeInfo | Nonerw   rj   rK   rk   rL   rl   rM   rj   rN   rj   rO   rm   rP   rj   rn   r>   rS   )
ra   rp   r|   r>   rh   rJ   rv   rÂ  rn   r>   )
ra   rp   r|   r>   rh   rJ   rv   rÂ  rn   rj   )rW   r>   r|   r>   ra   rp   rh   rJ   rv   rÂ  rn   r>   )
ra   rp   r|   r6   rh   rJ   rv   rÂ  rn   r>   )rÈ   r   rh   rJ   rn   ro   )ra   rp   r|   r5   rh   rJ   rn   r>   )
ra   rp   r|   rA   rh   rJ   rv   rÂ  rn   r>   )ra   rp   r|   rF   rh   rJ   rn   r>   )ra   rp   r|   r8   rh   rJ   rn   r>   )
ra   rp   ró   r6   r½   r%   rh   rJ   rn   r>   )
ra   rp   r½   r%   rZ   r   r  r   rn   ro   )r/  r>   rh   rJ   rn   r>   )r/  r6   rh   rJ   rn   r>   )r°   r'   rn   rj   )ra   rp   r°   r'   ró   r6   rh   rJ   rí   rj   r¹   rj   rn   r>   )r|   r>   r°   r'   ró   r6   rT  r6   rh   rJ   rn   r>   )r`  r5   r°   r'   ró   r6   ra   rp   rh   rJ   r¹   rj   rn   r>   )F)rh  r>   rh   rJ   r°   r'   ró   r6   r¼   rj   rn   r>   )r`  r5   rv  r>   r¥   rj   rX   r   ra   rp   rZ   r   rn   r5   )ró   r6   ra   rp   rh   rJ   rÌ   r6   rv   rÂ  rË   ú Sequence[TypeVarLikeType] | Nonern   rk   )rh   rJ   r  z)Callable[[AttributeContext], Type] | Noner}   r>   rn   rk   )ró   r6   ra   rp   rh   rJ   rn   rk   )
ra   rp   r|   r?   rh   rJ   rv   rÂ  rn   r>   )NF)rh  r<   r‘  zInstance | Noner¥   rj   rh   rJ   rË   rÃ  r¹   rj   rn   r>   )
rò   zDecorator | FuncBaseró   r6   ra   rp   rh   rJ   rn   r>   )r¿   r«  rW   rk   rn   r«  )r|   r>   r³  rp   rn   rj   )r|   r<   rn   r6   )rÕ   r>   r³  rp   rn   rj   )r½   r%   ra   rp   rn   rj   )yrt   Ú
__future__r   Úcollections.abcr   r   Útypingr   r   Úmypyr   r	   Úmypy.checker_sharedr
   Úmypy.erasetyper   Úmypy.expandtyper   r   r   Úmypy.lookupr   Úmypy.maptyper   Ú	mypy.meetr   Úmypy.messagesr   Úmypy.modules_stater   Ú
mypy.nodesr   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   Úmypy.pluginr)   Úmypy.subtypesr*   Úmypy.typeopsr+   r,   r-   r.   r/   r0   r1   Ú
mypy.typesr2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   rC   rD   rE   rF   rG   rH   rJ   r   ry   rœ   r�   r‚   r­   r†   r‡   r„   rŠ   r¾   rÿ   r&  r(  r@  r´   rJ  rN  r]  r»   rÎ   r~  r…  r‰   r‹  r   r«  rº   r°  r¹  r¶  rƒ  ru   r^   r\   ú<module>rÕ     sÛ  ðÙ 'å "ç .ß  ç (Ý 4Ý )÷ñ õ
 /Ý 2Ý *Ý (Ý ,÷÷ ÷ ÷ ÷ õ õ. )Ý $÷÷ ñ ÷÷ ÷ ÷ ÷ ÷ ñ ÷6Pñ Pðz &*Ø$Ø!Ø.2ØØØ $Ø!ñ#IØ
ðIà	ðIð ðIð
 ðIð ðIð ðIð ðIð 
ðIð #ðIð ðIð ðIð ,ðIð ðIð ðIð  ð!Ið" ð#Ið$ 
ó%IðZ OSð'EØ
ð'EØð'EØ+ð'EØ<Kð'Eà	ó'EðV OSð1Ø
ð1Øð1Ø+ð1Ø<Kð1à	ó1ð, &*ð)Øð)à	ð)ð ð)ð 	ð	)ð
 #ð)ð 
ó)ð(D>Ø
ðD>ØðD>Ø"/ðD>Ø@OðD>à	óD>óNCó ;ðF5IØ
ð5IØð5IØ"/ð5IØ@Oð5Ià	ó5Ióp*óRðCØ
ðCØðCØ&.ðCØ4AðCà	óCóLFój-óZB1óJ	ð$ Ø!ñ^Ø
ð^à	ð^ð ð^ð 	ð	^ð ð^ð ð^ð 
ó^ðBØ	ðØðØ (ðØ:BðØHUðà	óð,!Øð,!à	ð,!ð ð,!ð ð	,!ð
 	ð,!ð ð,!ð 
ó,!ð` MRð)Øð)Øð)Ø%(ð)Ø19ð)ØEIð)à	ó)ðXL!ØðL!àðL!ð ðL!ð ð	L!ð
 ðL!ð 
ðL!ð óL!ðj &*Ø6:ñJ4ØðJ4à
ðJ4ð 	ðJ4ð
 ðJ4ð #ðJ4ð 4ðJ4ð óJ4ðZ	Øð	ØFð	ØPTð	àó	ð>Øð>Øð>Ø$1ð>àó>ð2$IØ
ð$IØ!ð$IØ'4ð$IØETð$Ià	ó$IðX 7;Ø!ðCØðCàðCð ðCð 	ð	Cð
 4ðCð ðCð 
óCðLTØ
ðTØ'/ðTØ7:ðTØ@MðTà	óTñ" ˆC�|Ô$€ôó2 FóF
&ó	4ôr^   