§
    eŠtj³G  ã                  óv  — U d Z ddlm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 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 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 ddlmZ ddlmZ ddlmZ erddlmZ ddlmZ e	e ef         Z!ej"        Z#de$d<    G d„ d e¦  «        Z% G d!„ d"e%¦  «        Z& G d#„ d$e&¦  «        Z' G d%„ d&e%¦  «        Z(i Z)d'e$d(<    ed)d ¬*¦  «        Z*dKd/„Z+	 dLd0d0dd1œdMd:„Z,e	 dLdNd>„¦   «         Z-e	 dLdOd?„¦   «         Z-	 dLdPdA„Z-dQdB„Z.dRdG„Z/dSdJ„Z0dS )Ta*  The :class:`.Annotated` class and related routines; creates hash-equivalent
copies of SQL constructs which contain context-specific markers and
associations.

Note that the :class:`.Annotated` concept as implemented in this module is not
related in any way to the pep-593 concept of "Annotated".


é    )ÚannotationsN)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚMapping)ÚOptional)Úoverload)ÚSequence)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVaré   )Ú	operators)ÚHasCacheKey)Úanon_map)ÚExternallyTraversible)ÚInternalTraversalé   )Úutil)ÚLiteral)ÚSelf)Ú_EntityNamespace)Ú_TraverseInternalsTypeúutil.immutabledict[str, Any]ÚEMPTY_ANNOTATIONSc                  ó²   — e Zd ZU dZeZded<   ded<   ded<   dd„Ze	 	 ddd„¦   «         Z	e	 	 ddd„¦   «         Z		 	 dd d„Z	e
j        d!d„¦   «         Zd"d„ZdS )#ÚSupportsAnnotations© r   Ú_annotationsz*util.generic_fn_descriptor[FrozenSet[Any]]Ú	proxy_setÚboolÚ_is_immutableÚvaluesÚ_AnnotationDictÚreturnr   c                ó   — t          ¦   «         ‚©N©ÚNotImplementedError©Úselfr&   s     úW/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/sqlalchemy/sql/annotation.pyÚ	_annotatezSupportsAnnotations._annotate>   s   € Ý!Ñ#Ô#Ð#ó    .úLiteral[None]Úclonec                ó   — d S r*   r!   ©r.   r&   r3   s      r/   Ú_deannotatezSupportsAnnotations._deannotateA   ó	   € ð
 ˆsr1   úSequence[str]c                ó   — d S r*   r!   r5   s      r/   r6   zSupportsAnnotations._deannotateH   ó	   € ð
 "˜cr1   NFúOptional[Sequence[str]]c                ó   — t          ¦   «         ‚r*   r+   r5   s      r/   r6   zSupportsAnnotations._deannotateO   s   € õ
 "Ñ#Ô#Ð#r1   úTuple[Any, ...]c                óH   — t          ¦   «         }|                      |¦  «        S r*   )r   Ú_gen_annotations_cache_key)r.   Ú	anon_map_s     r/   Ú_annotations_cache_keyz*SupportsAnnotations._annotations_cache_keyV   s   € å‘J”Jˆ	à×.Ò.¨yÑ9Ô9Ð9r1   r   c                ó|   ‡ ‡— dt          ˆfd„ˆ fd„t          ‰ j        ¦  «        D ¦   «         D ¦   «         ¦  «        fS )Nr"   c              3  ó|   •K  — | ]6\  }}|t          |t          ¦  «        r|                     ‰g ¦  «        n|fV — Œ7d S r*   )Ú
isinstancer   Ú_gen_cache_key)Ú.0ÚkeyÚvaluer   s      €r/   ú	<genexpr>zASupportsAnnotations._gen_annotations_cache_key.<locals>.<genexpr>a   sn   øè è € ð ð ñ �C˜ð õ & e­[Ñ9Ô9ð#˜×,Ò,¨X°rÑ:Ô:Ð:à"ððð ð ð ð ð r1   c                ó.   •— g | ]}|‰j         |         f‘ŒS r!   )r"   )rF   rG   r.   s     €r/   ú
<listcomp>zBSupportsAnnotations._gen_annotations_cache_key.<locals>.<listcomp>j   s6   ø€ ð #ð #ð #àð ˜$Ô+¨CÔ0Ð1ð#ð #ð #r1   )ÚtupleÚsortedr"   )r.   r   s   ``r/   r?   z.SupportsAnnotations._gen_annotations_cache_key\   st   øø€ ð Ýð ð ð ð ð#ð #ð #ð #å% dÔ&7Ñ8Ô8ð#ñ #ô #ðñ ô ñ ô ð
ð 	
r1   ©r&   r'   r(   r   ©..©r&   r2   r3   r$   r(   r   ©r&   r8   r3   r$   r(   r    ©NF©r&   r;   r3   r$   r(   r    )r(   r=   )r   r   r(   r=   )Ú__name__Ú
__module__Ú__qualname__Ú	__slots__r   r"   Ú__annotations__r0   r   r6   r   Úmemoized_propertyrA   r?   r!   r1   r/   r    r    5   s  € € € € € € Ø€Ià1B€LÐBÐBÐBÑBà9Ð9Ð9Ñ9àÐÐÑð$ð $ð $ð $ð ð !$Øðð ð ð ñ „Xðð ð !$Øð"ð "ð "ð "ñ „Xð"ð +/Øð$ð $ð $ð $ð $ð 
Ôð:ð :ð :ñ Ôð:ð

ð 
ð 
ð 
ð 
ð 
r1   r    c                  óž   — e Zd ZU dZded<   erej        dd„¦   «         Zdd
„Z	dd„Z
e	 	 ddd„¦   «         Ze	 	 ddd„¦   «         Z	 	 ddd„ZdS )ÚSupportsWrappingAnnotationsr!   z*Callable[..., SupportsWrappingAnnotations]Ú_constructorr(   r   c                ó   — d S r*   r!   ©r.   s    r/   Úentity_namespacez,SupportsWrappingAnnotations.entity_namespacey   s   € Ø8;¸r1   r&   r'   r   c                ó8   — t                                | |¦  «        S )úgreturn a copy of this ClauseElement with annotations
        updated by the given dictionary.

        ©Ú	AnnotatedÚ_as_annotated_instancer-   s     r/   r0   z%SupportsWrappingAnnotations._annotate|   ó   € õ
 ×/Ò/°°fÑ=Ô=Ð=r1   c                ó8   — t                                | |¦  «        S )úhreturn a copy of this ClauseElement with annotations
        replaced by the given dictionary.

        rb   r-   s     r/   Ú_with_annotationsz-SupportsWrappingAnnotations._with_annotationsƒ   re   r1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   z'SupportsWrappingAnnotations._deannotateŠ   r7   r1   r8   r    c                ó   — d S r*   r!   r5   s      r/   r6   z'SupportsWrappingAnnotations._deannotate‘   r:   r1   NFr;   c                ó6   — |r|                       ¦   «         }|S | S )ú¼return a copy of this :class:`_expression.ClauseElement`
        with annotations
        removed.

        :param values: optional tuple of individual values
         to remove.

        )Ú_clone)r.   r&   r3   Úss       r/   r6   z'SupportsWrappingAnnotations._deannotate˜   s#   € ð ð 	Ø—’‘”ˆAØˆHàˆKr1   ©r(   r   rN   rO   rP   rQ   rR   rS   )rT   rU   rV   rW   rX   r   r   Úro_non_memoized_propertyr_   r0   rh   r   r6   r!   r1   r/   r[   r[   r   sì   € € € € € € Ø€Ià<Ð<Ð<Ñ<àð <à	Ô	&Ø;Ð;Ð;ñ 
'Ô	&Ø;ð>ð >ð >ð >ð>ð >ð >ð >ð ð !$Øðð ð ð ñ „Xðð ð !$Øð"ð "ð "ð "ñ „Xð"ð +/Øðð ð ð ð ð ð r1   r[   c                  óš   — e Zd ZU ej        sdZdej        fgZde	d<   dd	„Z
dd
„Ze	 	 ddd„¦   «         Ze	 	 ddd„¦   «         Z	 	 ddd„ZdS )ÚSupportsCloneAnnotationsr!   r"   r   Ú%_clone_annotations_traverse_internalsr&   r'   r(   r   c                óØ   — |                       ¦   «         }|j                             |¦  «        |_        |j                             dd¦  «         |j                             dd¦  «         |S )ra   rA   NÚ_generate_cache_key)rm   r"   ÚunionÚ__dict__Úpop©r.   r&   Únews      r/   r0   z"SupportsCloneAnnotations._annotate»   sa   € ð
 �kŠk‰mŒmˆØÔ+×1Ò1°&Ñ9Ô9ˆÔØŒ×ÒÐ1°4Ñ8Ô8Ð8ØŒ×ÒÐ.°Ñ5Ô5Ð5Øˆ
r1   c                óÌ   — |                       ¦   «         }t          j        |¦  «        |_        |j                             dd¦  «         |j                             dd¦  «         |S )rg   rA   Nru   )rm   r   Úimmutabledictr"   rw   rx   ry   s      r/   rh   z*SupportsCloneAnnotations._with_annotationsÆ   s[   € ð
 �kŠk‰mŒmˆÝÔ-¨fÑ5Ô5ˆÔØŒ×ÒÐ1°4Ñ8Ô8Ð8ØŒ×ÒÐ.°Ñ5Ô5Ð5Øˆ
r1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   z$SupportsCloneAnnotations._deannotateÑ   r7   r1   r8   r    c                ó   — d S r*   r!   r5   s      r/   r6   z$SupportsCloneAnnotations._deannotateØ   r:   r1   NFr;   c                óª   — |s| j         rI|                      ¦   «         }t          j        ¦   «         |_         |j                             dd¦  «         |S | S )rl   rA   N)r"   rm   r   r|   rw   rx   )r.   r&   r3   rz   s       r/   r6   z$SupportsCloneAnnotations._deannotateß   sY   € ð ð 	�DÔ%ð 	ð —+’+‘-”-ˆCÝ#Ô1Ñ3Ô3ˆCÔØŒL×ÒÐ5°tÑ<Ô<Ð<ØˆJàˆKr1   rN   rO   rP   rQ   rR   rS   )rT   rU   rV   Útypingr   rW   r   Údp_annotations_keyrs   rX   r0   rh   r   r6   r!   r1   r/   rr   rr   ¬   sö   € € € € € € ð Ôð Øˆ	ð 
Ð*Ô=Ð>ðEÐ)ð ð ð ñ ð	ð 	ð 	ð 	ð	ð 	ð 	ð 	ð ð !$Øðð ð ð ñ „Xðð ð !$Øð"ð "ð "ð "ñ „Xð"ð +/Øðð ð ð ð ð ð r1   rr   c                  ó&  — e Zd ZU dZdZed/d„¦   «         Zd	ed
<   ded<   ded<   d0d„Zd1d„Z	d2d„Z
d2d„Ze	 	 d3d4d„¦   «         Ze	 	 d3d5d„¦   «         Z	 	 d6d7d"„Zej        sd8d%„Zed&„ ¦   «         Zd9d'„Zd:d)„Zd;d*„Zd<d,„Zej        d=d.„¦   «         ZdS )>rc   aJ  clones a SupportsAnnotations and applies an 'annotations' dictionary.

    Unlike regular clones, this clone also mimics __hash__() and
    __eq__() of the original element so that it takes its place
    in hashed collections.

    A reference to the original element is maintained, for the important
    reason of keeping its hash value current.  When GC'ed, the
    hash value may be reused, causing conflicts.

    .. note::  The rationale for Annotated producing a brand new class,
       rather than placing the functionality directly within ClauseElement,
       is **performance**.  The __hash__() method is absent on plain
       ClauseElement which leads to significantly reduced function call
       overhead, as the use of sets and dictionaries against ClauseElement
       objects is prevalent, but most are not "annotated".

    FÚelementr[   r&   r'   r(   c                óŒ   — 	 t           |j                 } n%# t          $ r t          |j        | ¦  «        } Y nw xY w | ||¦  «        S r*   )Úannotated_classesÚ	__class__ÚKeyErrorÚ_new_annotation_type)Úclsrƒ   r&   s      r/   rd   z Annotated._as_annotated_instance  sY   € ð	?Ý# GÔ$5Ô6ˆCˆCøÝð 	?ð 	?ð 	?Ý& wÔ'8¸#Ñ>Ô>ˆCˆCˆCð	?øøøàˆs�7˜FÑ#Ô#Ð#s   ‚ •7¶7r   r"   Ú_Annotated__elementÚintÚ_hashr‰   ú
Type[Self]Úargsr   r   c                ó6   — t                                | ¦  «        S r*   )ÚobjectÚ__new__)r‰   rŽ   s     r/   r‘   zAnnotated.__new__  s   € Ý�~Š~˜cÑ"Ô"Ð"r1   c                ó  — |j                              ¦   «         | _         | j                              dd ¦  «         | j                              dd ¦  «         || _        t	          j        |¦  «        | _        t          |¦  «        | _        d S ©NrA   ru   )	rw   Úcopyrx   rŠ   r   r|   r"   ÚhashrŒ   )r.   rƒ   r&   s      r/   Ú__init__zAnnotated.__init__  sw   € ð  Ô(×-Ò-Ñ/Ô/ˆŒØŒ×ÒÐ2°DÑ9Ô9Ð9ØŒ×ÒÐ/°Ñ6Ô6Ð6Ø ˆŒÝ Ô.¨vÑ6Ô6ˆÔÝ˜'‘]”]ˆŒ
ˆ
ˆ
r1   c                ód   — | j                              |¦  «        }|                      |¦  «        }|S r*   )r"   rv   rh   )r.   r&   Ú_valuesrz   s       r/   r0   zAnnotated._annotate(  s0   € ØÔ#×)Ò)¨&Ñ1Ô1ˆØ×$Ò$ WÑ-Ô-ˆØˆ
r1   c                ó  — | j                              | j         ¦  «        }| j                             ¦   «         |_        |j                             dd ¦  «         |j                             dd ¦  «         t          j        |¦  «        |_        |S r“   )r†   r‘   rw   r”   rx   r   r|   r"   r5   s      r/   rh   zAnnotated._with_annotations-  sx   € Ø”×&Ò& t¤~Ñ6Ô6ˆØœ×+Ò+Ñ-Ô-ˆŒØŒ×ÒÐ3°TÑ:Ô:Ð:ØŒ×ÒÐ0°$Ñ7Ô7Ð7Ý!Ô/°Ñ7Ô7ˆÔØˆr1   .r2   r3   r$   c                ó   — d S r*   r!   r5   s      r/   r6   zAnnotated._deannotate5  r7   r1   r8   c                ó   — d S r*   r!   r5   s      r/   r6   zAnnotated._deannotate<  s	   € ð
 �Cr1   NTr;   r    c                óª   ‡— ‰€| j         S |                      t          j        ˆfd„| j                             ¦   «         D ¦   «         ¦  «        ¦  «        S )Nc                ó$   •— i | ]\  }}|‰v¯	||“ŒS r!   r!   )rF   rG   rH   r&   s      €r/   ú
<dictcomp>z)Annotated._deannotate.<locals>.<dictcomp>M  s4   ø€ ð ð ð á&˜C Ø fÐ,Ð,ð ˜Uà,Ð,Ð,r1   )rŠ   rh   r   r|   r"   Úitemsr5   s    ` r/   r6   zAnnotated._deannotateC  so   ø€ ð
 ˆ>Ø”>Ð!à×)Ò)ÝÔ"ðð ð ð à*.Ô*;×*AÒ*AÑ*CÔ*Cðñ ô ñô ñô ð r1   ÚvisitorÚkwc                ó4   —  | j         j        j        | |fi |¤ŽS r*   )rŠ   r†   Ú_compiler_dispatch)r.   r    r¡   s      r/   r£   zAnnotated._compiler_dispatchW  s0   € Ø>�4”>Ô+Ô>Ø�gðð Ø!#ðð ð r1   c                ó   — | j         j        S r*   )rŠ   r\   r^   s    r/   r\   zAnnotated._constructor\  s   € à”>Ô.Ð.r1   c                ó°   —  | j         j        di |¤Ž}|| j         u r| S |j                             | j        ¦  «         |                      || j        ¦  «        S )Nr!   )rŠ   rm   rw   Úupdater†   r"   )r.   r¡   r3   s      r/   rm   zAnnotated._clone`  s_   € Ø%�”Ô%Ð+Ð+¨Ð+Ð+ˆØ�D”NÐ"Ð"àˆKð ŒN×!Ò! $¤-Ñ0Ô0Ð0Ø—>’> %¨Ô):Ñ;Ô;Ð;r1   ú'Tuple[Type[Annotated], Tuple[Any, ...]]c                ó,   — | j         | j        | j        ffS r*   )r†   rŠ   r"   r^   s    r/   Ú
__reduce__zAnnotated.__reduce__k  s   € ØŒ~ ¤°Ô0AÐBÐBÐBr1   c                ó   — | j         S r*   )rŒ   r^   s    r/   Ú__hash__zAnnotated.__hash__n  s
   € ØŒzÐr1   Úotherc                ó�   — | j         r | j        j                             | |¦  «        S t	          |¦  «        t	          | ¦  «        k    S r*   )Ú_is_column_operatorsrŠ   r†   Ú__eq__r•   )r.   r¬   s     r/   r¯   zAnnotated.__eq__q  s?   € ØÔ$ð 	-Ø”>Ô+×2Ò2°4¸Ñ?Ô?Ð?å˜‘;”;¥$ t¡*¤*Ò,Ð,r1   r   c                óv   — d| j         v r%t          t          | j         d         ¦  «        j        S | j        j        S )Nr_   )r"   r   r[   r_   rŠ   r^   s    r/   r_   zAnnotated.entity_namespacew  sC   € à Ô!2Ð2Ð2ÝÝ+ØÔ!Ð"4Ô5ñô ô ðð
 ”>Ô2Ð2r1   )rƒ   r[   r&   r'   r(   rc   )r‰   r�   rŽ   r   r(   r   )rƒ   r[   r&   r'   rN   rO   rP   )r&   r8   r3   r$   r(   rc   )NTrS   )r    r   r¡   r   r(   r   )r¡   r   r(   r   )r(   r§   )r(   r‹   )r¬   r   r(   r$   ro   )rT   rU   rV   Ú__doc__r®   Úclassmethodrd   rX   r‘   r–   r0   rh   r   r6   r€   r   r£   Úpropertyr\   rm   r©   r«   r¯   r   rp   r_   r!   r1   r/   rc   rc   ÷   sè  € € € € € € ðð ð& !Ðàð$ð $ð $ñ „[ð$ð /Ð.Ð.Ñ.Ø*Ð*Ð*Ñ*Ø€J€J�Jð#ð #ð #ð #ð#ð #ð #ð #ðð ð ð ð
ð ð ð ð ð !$Øðð ð ð ñ „Xðð ð !$Øðð ð ð ñ „Xðð +/Øðð ð ð ð ð$ Ôð 	/ð	ð 	ð 	ð 	ð
 
ð	/ð 	/ñ 
Œð	/ð	<ð 	<ð 	<ð 	<ðCð Cð Cð Cðð ð ð ð-ð -ð -ð -ð 
Ô"ð3ð 3ð 3ñ #Ô"ð3ð 3ð 3r1   rc   z8Dict[Type[SupportsWrappingAnnotations], Type[Annotated]]r…   Ú_SA)ÚboundÚto_annotater   r'   r(   c                óL   — 	 | j         } ||¦  «        S # t          $ r | cY S w xY wr*   )r0   ÚAttributeError)r¶   r   r0   s      r/   Ú_safe_annotater¹   Ž  sL   € ð&ØÔ)ˆ	ð ˆy˜Ñ%Ô%Ð%øõ ð ð ð ð ÐÐÐð	øøøs   ‚ ”#¢#F)Údetect_subquery_colsÚind_cols_on_fromclauseÚannotate_callablerƒ   Úexcludeú'Optional[Sequence[SupportsAnnotations]]rº   r$   r»   r¼   úOOptional[Callable[[SupportsAnnotations, _AnnotationDict], SupportsAnnotations]]c               ót   ‡‡‡‡‡‡‡— i Šdˆˆˆˆˆˆˆfd„Š| �t          t           ‰| ¦  «        ¦  «        } dŠ| S )	z¹Deep copy the given ClauseElement, annotating each element
    with the given annotations dictionary.

    Elements within the exclude collection will be cloned but not annotated.

    Úelemr    r¡   r   r(   c                óŠ  •— ‰	|d<   t          | ¦  «        }|‰v r‰|         S ‰
r:t          | d¦  «        r*| j                             ‰
¦  «        r | j        dd‰i|¤Ž}nH‰| j        k    r;‰	r| j        r | j        dd‰i|¤Ž}n| }‰r ‰|‰¦  «        }nt          |‰¦  «        }n| }|                     ‰‰d¬¦  «         |‰|<   |S )Nrº   r#   r3   T)r3   r»   Ú_annotations_traversalr!   )	ÚidÚhasattrr#   Úintersectionrm   r"   r%   r¹   Ú_copy_internals)rÁ   r¡   Úid_Únewelemr¶   r¼   r   r3   Ú
cloned_idsrº   r½   r»   s        €€€€€€€r/   r3   z_deep_annotate.<locals>.clone±  s2  ø€ ð &:ˆÐ!Ñ"Ý�‰hŒhˆà�*ÐÐØ˜c”?Ð"ð ð	å˜˜kÑ*Ô*ð	ð ”×+Ò+¨GÑ4Ô4ð	ð
 "�d”kÐ4Ð4¨Ð4°Ð4Ð4ˆGˆGØ˜DÔ-Ò-Ð-Ø#ð #¨Ô(:ð #Ø)˜dœkÐ<Ð<°Ð<¸Ð<Ð<��à"�Ø ð CØ+Ð+¨K¸ÑEÔE��å(¨°kÑBÔB��àˆGà×ÒØØ#9Ø#'ð 	 ñ 	
ô 	
ð 	
ð "ˆ
�3‰Øˆr1   N©rÁ   r    r¡   r   r(   r    ©r   r´   )rƒ   r   r½   rº   r»   r¼   r3   rÊ   s    `````@@r/   Ú_deep_annotaterÍ   š  sv   øøøøøøø€ ð* 24€Jð)ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ð )ðV ÐÝ•s˜E˜E '™NœNÑ+Ô+ˆØ€EØ€Nr1   r2   r&   r;   c                ó   — d S r*   r!   ©rƒ   r&   s     r/   Ú_deep_deannotaterÐ   â  s	   € ð �Cr1   c                ó   — d S r*   r!   rÏ   s     r/   rÐ   rÐ   è  s	   € ð ˆ#r1   úOptional[_SA]c                ód   ‡‡‡— i Šdˆˆˆfd„Š| �t          t           ‰| ¦  «        ¦  «        } dŠ| S )	z2Deep copy the given element, removing annotations.rÁ   r    r¡   r   r(   c                ó®   •— ‰rt          | ¦  «        }n| }|‰vr5|                      ‰d¬¦  «        }|                     ‰d¬¦  «         |‰|<   |S ‰|         S )NT)r&   r3   )r3   rÃ   )rÄ   r6   rÇ   )rÁ   r¡   rG   rÉ   r3   Úclonedr&   s       €€€r/   r3   z_deep_deannotate.<locals>.cloneõ  sq   ø€ àð 	Ý�T‘(”(ˆCˆCàˆCà�fÐÐØ×&Ò&¨f¸DÐ&ÑAÔAˆGØ×#Ò#¨%ÈÐ#ÑMÔMÐMØ!ˆF�3‰KØˆNà˜#”;Ðr1   NrË   rÌ   )rƒ   r&   r3   rÕ   s    `@@r/   rÐ   rÐ   î  s]   øøø€ ð
 .0€Fðð ð ð ð ð ð ð ð ÐÝ•s˜E˜E '™NœNÑ+Ô+ˆØ€EØ€Nr1   c                ó\   — |                       |¦  «        } |                      d¬¦  «         | S )a  Annotate the given ClauseElement and copy its internals so that
    internal objects refer to the new annotated object.

    Basically used to apply a "don't traverse" annotation to a
    selectable, without digging throughout the whole
    structure wasting time.
    T)rÃ   )r0   rÇ   )rƒ   r   s     r/   Ú_shallow_annotater×   
  s3   € ð ×Ò Ñ,Ô,€GØ×Ò°4ÐÑ8Ô8Ð8Ø€Nr1   r‰   ú!Type[SupportsWrappingAnnotations]Úbase_clsúType[Annotated]c                ó  — t          | t          ¦  «        r| S | t          v rt          |          S | j        D ]}|t          v rt          |         } nŒt	          t
          t                   t          d| j        z  || fi ¦  «        ¦  «        xt          | <   }|t          ¦   «         d| j        z  <   d| j	        v r*t          | j        ¦  «        dt          j        fgz   |_        nD| j	                             dd¦  «        r)t          | j        ¦  «        dt          j        fgz   |_        | j	                             dd¦  «        rd|_        nd| j	        v r| j	        d         |_        t          | t           j        ¦  «        |_        |S )z[Generates a new class that subclasses Annotated and proxies a given
    element type.

    zAnnotated%sÚ_traverse_internalsr"   Úinherit_cacheFT)Ú
issubclassrc   r…   Ú__mro__r   r   ÚtyperT   Úglobalsrw   ÚlistrÜ   r   r�   ÚgetrÝ   r   ÚColumnOperatorsr®   )r‰   rÙ   Úsuper_Úanno_clss       r/   rˆ   rˆ     s˜  € õ �#•yÑ!Ô!ð &Øˆ
Ø	Õ!Ð	!Ð	!Ý  Ô%Ð%à”+ð ð ˆð Õ&Ð&Ð&Ý(¨Ô0ˆHØˆEð 'õ )-Ý�YŒÝˆ]˜Sœ\Ñ)¨H°c¨?¸BÑ?Ô?ñ)ô )ð Õ�cÑ˜Xð /7…G�I„Iˆm˜cœlÑ*Ñ+à ¤Ð,Ð,Ý'+¨CÔ,CÑ'DÔ'DØÕ.ÔAÐBðH
ñ (
ˆÔ$Ð$ð 
Œ×	Ò	˜/¨5Ñ	1Ô	1ð 
Ý'+¨CÔ,CÑ'DÔ'DØÕ.ÔAÐBðH
ñ (
ˆÔ$ð „|×Ò˜¨Ñ/Ô/ð ?Ø!%ˆÔÐØ	˜CœLÐ	(Ð	(Ø!$¤¨oÔ!>ˆÔå$.¨sµIÔ4MÑ$NÔ$N€HÔ!à€Or1   Útarget_hierarchyÚNonec                óT   — t          j        | ¦  «        D ]}t          ||¦  «         Œd S r*   )r   Úwalk_subclassesrˆ   )rç   rÙ   r‰   s      r/   Ú_prepare_annotationsrë   F  s<   € õ Ô#Ð$4Ñ5Ô5ð ,ð ,ˆÝ˜S (Ñ+Ô+Ð+Ð+ð,ð ,r1   )r¶   r´   r   r'   r(   r´   r*   )rƒ   r´   r   r'   r½   r¾   rº   r$   r»   r$   r¼   r¿   r(   r´   )rƒ   r2   r&   r;   r(   r2   )rƒ   r´   r&   r;   r(   r´   )rƒ   rÒ   r&   r;   r(   rÒ   )rƒ   r´   r   r'   r(   r´   )r‰   rØ   rÙ   rÚ   r(   rÚ   )rç   rØ   rÙ   rÚ   r(   rè   )1r±   Ú
__future__r   r€   r   r   r   r   r   r	   r
   r   r   r   r   r   r   Ú r   Ú	cache_keyr   Úvisitorsr   r   r   r   Úutil.typingr   r   Úbaser   r   Ústrr'   Ú
EMPTY_DICTr   rX   r    r[   rr   rc   r…   r´   r¹   rÍ   rÐ   r×   rˆ   rë   r!   r1   r/   ú<module>rô      sõ  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð à Ð Ð Ð Ð Ð Ø "Ð "Ð "Ð "Ð "Ð "Ø Ð Ð Ð Ð Ð Ø +Ð +Ð +Ð +Ð +Ð +Ø 'Ð 'Ð 'Ð 'Ð 'Ð 'Ø Ð Ð Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð àð 1Ø&Ð&Ð&Ð&Ð&Ð&Ø0Ð0Ð0Ð0Ð0Ð0à˜#˜s˜(Ô#€à26´/Ð Ð AÐ AÐ AÑ Að:
ð :
ð :
ð :
ð :
Ð/ñ :
ô :
ð :
ðz7ð 7ð 7ð 7ð 7Ð"5ñ 7ô 7ð 7ðtHð Hð Hð Hð HÐ:ñ Hô Hð HðVH3ð H3ð H3ð H3ð H3Ð#ñ H3ô H3ð H3ðb ð ð ð ð ñ ð €gˆeÐ0Ð1Ñ1Ô1€ð	&ð 	&ð 	&ð 	&ð 8<ðEð
 "'Ø#(ð 	ðEð Eð Eð Eð Eð EðP 
à>Bðð ð ð ñ 
„ðð
 
à48ðð ð ð ñ 
„ðð ?Cðð ð ð ð ð8
ð 
ð 
ð 
ð,ð ,ð ,ð ,ð^,ð ,ð ,ð ,ð ,ð ,r1   