§
    i˜ºh ã                  óö	  — U d Z ddlmZ ddlZddlZddlmZ ddlZddlZddl	Z	ddl
Z
ddlZddl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 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$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"d ¦  «        Z, e"d!d"¬#¦  «        Z- e"d$ed%ef         ¬&¦  «        Z. e"d'd(¬&¦  «        Z/ e"d)d*¬&¦  «        Z0 e"d+d,¬&¦  «        Z1 e"d-d.¬&¦  «        Z2e'j3        r/dd/l4m5Z5 dd0l4m6Z6 d1„ Z7e8j9        d2         j:        Z;d3„ Z<�dd:„Z=�d d;„Z>ne'j?        r�d d<„Z>n�d d=„Z>�d!d@„Z@ G dA„ dB¦  «        ZA�d"dF„ZB�d#dH„ZC	 �d$�d%dL„ZD�d&dR„ZE�d'dV„ZF�d(d[„ZG�d)da„ZH e"dbdP¬&¦  «        ZI�d*de„ZJ�d+dk„ZK e"dl¦  «        ZL e"dm¦  «        ZM G dn„ do¦  «        ZNdp„ ZOedd%dqœ�d,dx„¦   «         ZPeddydqœ�d-dz„¦   «         ZPddydqœ�d-d{„ZP�d.d~„ZQ	 �d/�d0d‚„ZR	 �d1�d2d†„ZS�d1d‡„ZT	 	 	 	 �d3�d4d‘„ZUd’„ ZVd“„ ZW	 	 	 �d5�d6d™„ZX G dš„ d›¦  «        ZYdœ„ ZZd�„ Z[	 	 	 	 �d7dŸ„Z\d „ Z]�d8d¡„Z^ e"d¢d£¬&¦  «        Z_ G d¤„ d¥ee-         ¦  «        Z` G d¦„ d§e`e-         ¦  «        Za G d¨„ d©e`e-         ¦  «        Zbe!r	e`Zce`ZdeeZfeeZgnebxZcZfeaxZdZg�d9dª„Zh G d«„ d¬¦  «        Zie!reeZjneijk        Zj G d­„ d®¦  «        Zl�d:d¯„Zm�d;d²„Zn�d<dµ„Zo	 	 �d=�d>d½„Zp�d?d¾„Zq�d@dÀ„Zr�dAdÂ„Zs	 �d$�dBdÆ„Zt�dCdË„ZudÌ„ Zv G dÍ„ dÎee¦  «        Zw G dÏ„ dÐee,         ¦  «        Zx G dÑ„ dÒee,         ¦  «        Zy G dÓ„ dÔee,         ¦  «        Zz G dÕ„ dÖe{¦  «        Z| G d×„ dØe8¦  «        Z} G dÙ„ dÚe}¬Û¦  «        Z~e!r	ddÜlmZ eZ€ne~Z€ e"dÝej�        ¬&¦  «        Z‚	 �dD�dEdâ„Zƒda„�dFdä„Z…�dGdæ„Z†�dHdè„Z‡ G dé„ dêeˆ¦  «        Z‰�d$�dIdì„ZŠ�dJdî„Z‹i ZŒdïe�dð<   �dKdõ„ZŽ e
j�        dö¦  «        Z�	 	 �dL�dMdú„Z‘�dNdþ„Z’ e
j�        dÿ¦  «        Z“ e
j�        �d ¦  «        Z”e”e“f�dO�d„Z• e8d¦  «        Z–�d„ Z— e
j�        �d¦  «        Z˜ G �d„ �d	¦  «        Z™ G �d
„ �d¦  «        Zš�d„ Z›�d„ Zœ�dP�d„Z��dQ�d„Zž�dR�d„ZŸ e
j�        �d¦  «        Z �dS�d„Z¡�dT�d„Z¢�dD�d„Z£ G �d„ �dej�        ¦  «        Z¤e¤j¥        Z¥e#e,e*e¤j¥                 f         Z¦dS (U  z…Routines to help with the creation, loading and introspection of
modules, classes, hierarchies, attributes, functions, and methods.

é    )ÚannotationsN©Úupdate_wrapper)ÚCodeType)ÚAny)ÚCallable)Úcast)ÚDict)Ú	FrozenSet)ÚGeneric)ÚIterator)ÚList)ÚMapping)ÚNoReturn)ÚOptional)Úoverload)ÚSequence)ÚSet)ÚTuple)ÚType)ÚTYPE_CHECKING)ÚTypeVar)ÚUnioné   )Ú_collections)Úcompat)ÚHAS_CYEXTENSION)ÚLiteralé   )ÚexcÚ_TÚ_T_coT)Ú	covariantÚ_F.)ÚboundÚ_MPzmemoized_property[Any]Ú_MAz#HasMemoized.memoized_attribute[Any]Ú_HPzhybridproperty[Any]Ú_HMzhybridmethod[Any])Úcall_annotate_function)ÚFormatc                ó¢   — t          | dd ¦  «        }|�;t          ||| ¬¦  «        }t          |t          ¦  «        st	          | ›d�¦  «        ‚|S d S )NÚ__annotate__)Úownerz!.__annotate__ returned a non-dict)Úgetattrr*   Ú
isinstanceÚdictÚ
ValueError)ÚobjÚformatÚannotateÚanns       úc/var/www/html/services/rag-service/venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.pyÚ_get_and_call_annotater8   F   sa   € Ý˜3 °Ñ5Ô5ˆØÐÝ(¨°6ÀÐEÑEÔEˆCÝ˜c¥4Ñ(Ô(ð NÝ  CÐ!LÐ!LÐ!LÑMÔMÐMØˆJØˆtó    Ú__annotations__c                ó  — t          | t          ¦  «        r#	 t          | ¦  «        }n'# t          $ r i cY S w xY wt	          | dd ¦  «        }|€i S t          |t
          ¦  «        st          | ›d�¦  «        ‚t          |¦  «        S )Nr:   z+.__annotations__ is neither a dict nor None)r0   ÚtypeÚ_BASE_GET_ANNOTATIONSÚAttributeErrorr/   r1   r2   ©r3   r6   s     r7   Ú_get_dunder_annotationsr@   R   s¨   € Ý�c�4Ñ Ô ð 		ðÝ+¨CÑ0Ô0��øÝ!ð ð ð à�	�	�	ðøøøõ ˜#Ð0°$Ñ7Ô7ˆCØˆ{Ø�	å˜#�tÑ$Ô$ð 	ÝØÐEÐEÐEñô ð õ �C‰yŒyÐs   —' §6µ6r3   r   r4   r+   ÚreturnúMapping[str, Any]c               óB  — 	 t          | ¦  «        }|�t          |¦  «        S n# t          $ r Y nw xY wt          | |¦  «        }|€t          | ¦  «        }|€8t	          | t
          ¦  «        st          | ¦  «        ri S t          | ›d�¦  «        ‚|si S t          |¦  «        S )z:A sparse implementation of annotationlib.get_annotations()Nz does not have annotations)r@   r1   Ú	Exceptionr8   r0   r<   ÚcallableÚ	TypeError)r3   r4   r6   s      r7   Ú_vendored_get_annotationsrG   d   sÌ   € ð
	!Ý)¨#Ñ.Ô.ˆCð ˆÝ˜C‘y”yÐ ð øõ ð 	ð 	ð 	ØˆDð	øøøõ % S¨&Ñ1Ô1ˆØˆ;õ *¨#Ñ.Ô.ˆCàˆ;Ý˜#�tÑ$Ô$ð ­°©¬ð Ø�	Ý˜sÐ@Ð@Ð@ÑAÔAÐAàð 	ØˆIå�C‰yŒyÐs   ‚# £
0¯0c                ó8   — t          | t          j        ¬¦  «        S )N)r4   )rG   r+   Ú
FORWARDREF©r3   s    r7   Úget_annotationsrK   …   s   € õ )¨µVÔ5FÐGÑGÔGÐGr9   c                ó*   — t          j        | ¦  «        S ©N)ÚinspectrK   rJ   s    r7   rK   rK   �   s   € ÝÔ& sÑ+Ô+Ð+r9   c                óÂ   — t          | t          ¦  «        r| j                             dd ¦  «        }nt	          | dd ¦  «        }|€t
          j        S t          d|¦  «        S )Nr:   rB   )r0   r<   Ú__dict__Úgetr/   r   Ú
EMPTY_DICTr	   r?   s     r7   rK   rK   ”   sa   € õ �c�4Ñ Ô ð 	8Ø”,×"Ò"Ð#4°dÑ;Ô;ˆCˆCå˜#Ð0°$Ñ7Ô7ˆCàˆ;ÝÔ*Ð*åÐ+¨SÑ1Ô1Ð1r9   ÚxÚstrc                óÊ   — |                       d¦  «        } t          j        ¦   «         }|                     | ¦  «         t	          t
          |                     ¦   «         ¦  «        S )Nzutf-8)Úencoder   Úmd5_not_for_securityÚupdater	   rT   Ú	hexdigest)rS   Úms     r7   Úmd5_hexr[   ¥   sH   € Ø	�Š�ÑÔ€AÝÔ#Ñ%Ô%€AØ‡H‚HˆQ�K„K€KÝ•�Q—[’[‘]”]Ñ#Ô#Ð#r9   c                  ó2   — e Zd ZU dZdZded<   dd„Zdd„ZdS )Úsafe_reraisea  Reraise an exception after invoking some
    handler code.

    Stores the existing exception info before
    invoking so that it is maintained across a potential
    coroutine context switch.

    e.g.::

        try:
            sess.commit()
        except:
            with safe_reraise():
                sess.rollback()

    TODO: we should at some point evaluate current behaviors in this regard
    based on current greenlet, gevent/eventlet implementations in Python 3, and
    also see the degree to which our own asyncio (based on greenlet also) is
    impacted by this. .rollback() will cause IO / context switch to occur in
    all these scenarios; what happens to the exception context from an
    "except:" block if we don't explicitly store it? Original issue was #2703.

    )Ú	_exc_infozdUnion[None, Tuple[Type[BaseException], BaseException, types.TracebackType], Tuple[None, None, None]]r^   rA   ÚNonec                ó6   — t          j        ¦   «         | _        d S rM   )ÚsysÚexc_infor^   ©Úselfs    r7   Ú	__enter__zsafe_reraise.__enter__Ñ   s   € Ýœ™œˆŒˆˆr9   Útype_úOptional[Type[BaseException]]ÚvalueúOptional[BaseException]Ú	tracebackúOptional[types.TracebackType]r   c                ó®   — | j         €J ‚|€+| j         \  }}}|€J ‚d | _         |                     |¦  «        ‚d | _         |€J ‚|                     |¦  «        ‚rM   )r^   Úwith_traceback)rd   rf   rh   rj   Úexc_typeÚ	exc_valueÚexc_tbs          r7   Ú__exit__zsafe_reraise.__exit__Ô   ss   € ð Œ~Ð)Ð)Ð)àˆ=Ø*.¬.Ñ'ˆH�i ØÐ(Ð(Ð(Ø!ˆDŒNØ×*Ò*¨6Ñ2Ô2Ð2à!ˆDŒNØÐ$Ð$Ð$Ø×&Ò& yÑ1Ô1Ð1r9   N©rA   r_   )rf   rg   rh   ri   rj   rk   rA   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r:   re   rq   © r9   r7   r]   r]   ¬   sc   € € € € € € ðð ð0 €Iðð ð ñ ð(ð (ð (ð (ð2ð 2ð 2ð 2ð 2ð 2r9   r]   ÚclsúType[_T]úIterator[Type[_T]]c              #  óê   K  — t          ¦   «         }| g}|r]|                     ¦   «         } | |v rŒ|                     | ¦  «         |                     |                      ¦   «         ¦  «         | V — |°[d S d S rM   )ÚsetÚpopÚaddÚextendÚ__subclasses__)ry   ÚseenÚstacks      r7   Úwalk_subclassesr„   ç   s‹   è è € Ý‘U”U€DàˆE€EØ
ð Ø�iŠi‰kŒkˆØ�$ˆ;ˆ;Øà�HŠH�S‰MŒMˆMØ�Š�S×'Ò'Ñ)Ô)Ñ*Ô*Ð*Øˆ	ˆ	ˆ	ð ð ð ð ð ð r9   Úelementc                óz   — t          | t          ¦  «        r| S 	 t          | ¦  «        S # t          $ r d| z  cY S w xY w)Nzunprintable element %r)r0   rT   rD   )r…   s    r7   Ústring_or_unprintabler‡   õ   sV   € Ý�'�3ÑÔð 6Øˆð	6Ý�w‘<”<ÐøÝð 	6ð 	6ð 	6Ø+¨gÑ5Ð5Ð5Ð5ð	6øøøs   ™( ¨:¹:ú	Type[Any]Úuse_nameúOptional[str]c                óx   — |p| j         }d                     d„ t          j        d|¦  «        D ¦   «         ¦  «        S )Nú c              3  ó>   K  — | ]}|                      ¦   «         V — Œd S rM   )Úlower)Ú.0Úns     r7   ú	<genexpr>z(clsname_as_plain_name.<locals>.<genexpr>  s*   è è € ÐNÐN !�A—G’G‘I”IÐNÐNÐNÐNÐNÐNr9   z([A-Z][a-z]+|SQL))rs   ÚjoinÚreÚfindall)ry   r‰   Únames      r7   Úclsname_as_plain_namer–   ÿ   s>   € ð Ð#�s”|€DØ�8Š8ÐNÐN¥r¤zÐ2FÈÑ'MÔ'MÐNÑNÔNÑNÔNÐNr9   Úinstance_or_clsúUnion[Type[Any], object]Úagainst_methodúCallable[..., Any]Úboolc                óz   — t          | t          ¦  «        s| j        }n| }|j        }t	          ||¦  «        }||k    S )z1Return True if the two class methods don't match.)r0   r<   Ú	__class__rs   r/   )r—   r™   Úcurrent_clsÚmethod_nameÚcurrent_methods        r7   Úmethod_is_overriddenr¡     sG   € õ �o¥tÑ,Ô,ð &Ø%Ô/ˆˆà%ˆà Ô)€Kå'.¨{¸KÑ'HÔ'H€Nà˜^Ò+Ð+r9   ÚslcÚsliceúTuple[Any, ...]c                óÄ   — g }| j         | j        | j        fD ];}t          |d¦  «        r|                     ¦   «         }|                     |¦  «         Œ<t          |¦  «        S )zrdecode a slice object as sent to __getitem__.

    takes into account the 2.5 __index__() method, basically.

    Ú	__index__)ÚstartÚstopÚstepÚhasattrr¦   ÚappendÚtuple)r¢   ÚretrS   s      r7   Údecode_slicer®     sa   € ð €CØŒY˜œ #¤(Ð*ð ð ˆÝ�1�kÑ"Ô"ð 	Ø—’‘”ˆAØ�
Š
�1‰ŒˆˆÝ�‰:Œ:Ðr9   ÚusedúSequence[str]ÚbasesúIterator[str]c           
   '  ó  ‡K  — t          | ¦  «        }|D ]lŠt          j        ‰ft          ˆfd„t	          d¦  «        ¦  «        ¦  «        }|D ]!}||vr|                     |¦  «         |V —  nŒ"t          d‰z  ¦  «        ‚Œmd S )Nc                ó(   •— ‰t          | ¦  «        z   S rM   ©rT   )ÚiÚbases    €r7   ú<lambda>z!_unique_symbols.<locals>.<lambda>+  s   ø€ ˜$¥ Q¡¤™-€ r9   iè  z&exhausted namespace for symbol base %s)r}   Ú	itertoolsÚchainÚmapÚranger   Ú	NameError)r¯   r±   Úused_setÚpoolÚsymr·   s        @r7   Ú_unique_symbolsrÁ   &  sÀ   øè è € Ý�4‰yŒy€HØð Mð MˆÝŒØˆGÝÐ'Ð'Ð'Ð'­¨t©¬Ñ5Ô5ñ
ô 
ˆð ð 	Mð 	MˆCØ˜(Ð"Ð"Ø—’˜SÑ!Ô!Ð!Ø�	�	�	Ø�ð #õ
 ÐDÀtÑKÑLÔLÐLð ðMð Mr9   ÚfnúCallable[[int], Any]r�   ÚintúIterator[Any]c              #  óL   K  — |r|| dz   z  } | |¦  «        V — ||z  }|°dS dS )z6Call the given function given each nonzero bit from n.r   Nrx   )rÂ   r�   Úbs      r7   Úmap_bitsrÈ   6  sW   è è € ð ð Ø�!��a‘‰LˆØˆb�‰eŒeˆˆˆØ	ˆQ‰ˆð ð ð ð ð ð r9   Ú_FnÚtargetúCallable[[_Fn], _Fn]c                ó0   ‡ — dˆ fd„}t          |‰ ¦  «        S )z'A signature-matching decorator factory.rÂ   rÉ   rA   c                óP  •— t          j        | ¦  «        s#t          j        | ¦  «        st          d¦  «        ‚t	          | dd ¦  «        }|�0d | _        	 t          j        | ¦  «        }|| _        n # || _        w xY wt          j        | ¦  «        }dt          |j	        pd¦  «        z  }t                               |j        pd¦  «        }|                     i ||¬¦  «        }t          t          d|d         ¦  «        ¦  «        t          d|dd	…         ¦  «        z   | j        fz   }t#          |d
d¦  «        \  }}t          ||¬¦  «        }|                     t'          |d¬¦  «        ¦  «         | j        |d<   t          j        | ¦  «        rd|d<   d|d<   n
d|d<   d|d<   dt+          |d         ¦  «        v rd|z  }	nd|z  }	|‰|| d| j        i}
t          t.          j        t3          |	|
| j        ¦  «        ¦  «        }| j        |_        | j        |_        t9          || ¦  «        S )Nznot a decoratable functionr-   rM   rx   )r   ÚdefaultsÚkwonlydefaultszTuple[str, ...]r   r   é   rÊ   rÂ   )rÊ   rÂ   F©Úgroupedr•   zasync Úprefixzawait Útarget_prefixÚ Ú__zf%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_pos)s)
ze%(prefix)sdef %(name)s%(grouped_args)s:
    return %(target_prefix)s%(target)s(%(fn)s, %(apply_kw)s)
rs   )rN   Ú
isfunctionÚismethodrD   r/   r-   r   Úinspect_getfullargspecÚlenrÎ   r1   ÚfromkeysrÏ   Ú_replacer¬   r	   rs   rÁ   rX   Úformat_argspec_plusÚiscoroutinefunctionÚreprrt   ÚtypesÚFunctionTypeÚ_exec_code_in_envÚ__defaults__Ú__kwdefaults__r   )rÂ   ÚannofuncÚspecÚempty_defaultsÚempty_kwdefaultsÚnamesÚ	targ_nameÚfn_nameÚmetadataÚcodeÚenvÚ	decoratedrÊ   s               €r7   Údecoratezdecorator.<locals>.decorateG  st  ø€ ÝÔ! "Ñ%Ô%ð 	:­gÔ.>¸rÑ.BÔ.Bð 	:ÝÐ8Ñ9Ô9Ð9õ ˜2˜~¨tÑ4Ô4ˆØÐØ"ˆBŒOð+ÝÔ4°RÑ8Ô8�à"*�”�ø (�”Ð*Ð*Ð*Ð*åÔ0°Ñ4Ô4ˆDð !¥3 t¤}Ð':¸Ñ#;Ô#;Ñ;ˆÝŸ=š=¨Ô)<Ð)BÀÑCÔCÐØ�}Š}ØØ#Ø+ð ñ 
ô 
ˆõ •$Ð(¨$¨q¬'Ñ2Ô2Ñ3Ô3ÝÐ$ d¨1¨Q¨3¤iÑ0Ô0ñ1àŒ{ˆnñð 	õ
 -¨U°H¸dÑCÔCÑˆ	�7å-1¸ÀwÐ-OÑ-OÔ-OˆØ�ŠÕ+¨D¸%Ð@Ñ@Ô@ÑAÔAÐAØœ;ˆ�ÑåÔ& rÑ*Ô*ð 	+Ø!)ˆH�XÑØ(0ˆH�_Ñ%Ð%à!#ˆH�XÑØ(*ˆH�_Ñ%ð •4˜˜Qœ‘=”=Ð Ð ðð ñ	ð ˆDðð ñ	ð ð �vØ�RØ˜œð
ˆõ ÝÔÝ˜d C¨¬Ñ5Ô5ñ
ô 
ˆ	ð "$¤ˆ	ÔØ#%Ô#4ˆ	Ô Ý˜i¨Ñ,Ô,Ð,s   ÁA0 Á0	A9)rÂ   rÉ   rA   rÉ   r   )rÊ   rð   s   ` r7   Ú	decoratorrñ   D  s:   ø€ ðT-ð T-ð T-ð T-ð T-ð T-õl ˜( FÑ+Ô+Ð+r9   rí   úUnion[str, types.CodeType]rî   úDict[str, Any]rë   c                ó2   — t          | |¦  «         ||         S rM   )Úexec)rí   rî   rë   s      r7   râ   râ      s   € õ 	ˆˆs�O„O€OØˆwŒ<Ðr9   Ú_PFÚ_TEc                  ó8   — e Zd Z	 ddd„Zd„ Zdd„Zdd„Zdd„ZdS )ÚPluginLoaderNÚgrouprT   Úauto_fnúOptional[Callable[..., Any]]c                ó0   — || _         i | _        || _        d S rM   )rú   Úimplsrû   )rd   rú   rû   s      r7   Ú__init__zPluginLoader.__init__¬  s   € ð ˆŒ
Ø%'ˆŒ
ØˆŒˆˆr9   c                ó8   — | j                              ¦   «          d S rM   )rþ   Úclearrc   s    r7   r  zPluginLoader.clear³  s   € ØŒ
×ÒÑÔÐÐÐr9   r•   rA   r   c                óx  — || j         v r | j         |         ¦   «         S | j        r+|                      |¦  «        }|r|| j         |<    |¦   «         S t          j        | j        ¦  «        D ]2}|j        |k    r%|j        | j         |<   |                     ¦   «         c S Œ3t          j        d| j        ›d|›�¦  «        ‚)NzCan't load plugin: ú:)	rþ   rû   r   Úimportlib_metadata_getrú   r•   Úloadr    ÚNoSuchModuleError)rd   r•   ÚloaderÚimpls       r7   r  zPluginLoader.load¶  sØ   € Ø�4”:ÐÐØ#�4”:˜dÔ#Ñ%Ô%Ð%àŒ<ð 	 Ø—\’\ $Ñ'Ô'ˆFØð  Ø#)�”
˜4Ñ Ø�v‘x”x�åÔ1°$´*Ñ=Ô=ð 	#ð 	#ˆDØŒy˜DÒ Ð Ø#'¤9�”
˜4Ñ Ø—y’y‘{”{Ð"Ð"Ð"ð !õ Ô#Ð#Ø*.¬*¨*¨*°d°dÐ;ñ
ô 
ð 	
r9   Ú
modulepathÚobjnamer_   c                ó*   ‡‡— ˆˆfd„}|| j         |<   d S )Nc                 ó¢   •— t          ‰¦  «        } ‰                     d¦  «        dd …         D ]}t          | |¦  «        } Œt          | ‰¦  «        S )Nú.r   )Ú
__import__Úsplitr/   )ÚmodÚtokenr	  r
  s     €€r7   r  z#PluginLoader.register.<locals>.loadÊ  sW   ø€ Ý˜ZÑ(Ô(ˆCØ#×)Ò)¨#Ñ.Ô.¨q¨r¨rÔ2ð *ð *�Ý˜c 5Ñ)Ô)��Ý˜3 Ñ(Ô(Ð(r9   ©rþ   )rd   r•   r	  r
  r  s     `` r7   ÚregisterzPluginLoader.registerÉ  s6   øø€ ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð  ˆŒ
�4ÑÐÐr9   c                ó   — | j         |= d S rM   r  )rd   r•   s     r7   Ú
deregisterzPluginLoader.deregisterÒ  s   € ØŒJ�tÐÐÐr9   rM   )rú   rT   rû   rü   )r•   rT   rA   r   )r•   rT   r	  rT   r
  rT   rA   r_   )r•   rT   rA   r_   )rs   rt   ru   rÿ   r  r  r  r  rx   r9   r7   rù   rù   «  s{   € € € € € àBFðð ð ð ð ðð ð ð
ð 
ð 
ð 
ð& ð  ð  ð  ðð ð ð ð ð r9   rù   c                ó   — 	 t           j        }| j        }|j        }t	          |j        d |…         ¦  «        t          |j        |z  ¦  «        fS # t          $ r4 t          j
        | ¦  «        }|d         t          |d         ¦  «        fcY S w xY w)Nr   r   )rN   ÚCO_VARKEYWORDSÚ__code__Úco_argcountÚlistÚco_varnamesr›   Úco_flagsr>   r   rÙ   )rÂ   Úco_varkeywordsÚcoÚnargsræ   s        r7   Ú_inspect_func_argsr   Ö  sŸ   € ð
Ý Ô/ˆð Œ[ˆØ”ˆå�”   Ô'Ñ(Ô(Ý�”˜~Ñ-Ñ.Ô.ð
ð 	
øõ ð &ð &ð &õ
 Ô,¨RÑ0Ô0ˆØ�AŒw�˜T !œW™œÐ%Ð%Ð%Ð%ð&øøøs   ‚A Á;BÂB)Ú_setÚraiseerrr<   r!  úOptional[Set[str]]r"  úLiteral[True]úSet[str]c               ó   — d S rM   rx   ©ry   r!  r"  s      r7   Úget_cls_kwargsr(  ê  s	   € ð ˆsr9   Fc               ó   — d S rM   rx   r'  s      r7   r(  r(  ó  s	   € ð ˜r9   c               óÜ  — |du }|rt          ¦   «         }|€J ‚| j                             dd¦  «        }|o8t          |t          j        ¦  «        ot          |j        t          j        ¦  «        }|rCt          |¦  «        \  }}| 	                    |¦  «         |s|s|rt          d| › d�¦  «        ‚dS nd}|r|r| j        D ]}t          ||¬¦  «        € nŒ|                     d¦  «         |S )ae  Return the full set of inherited kwargs for the given `cls`.

    Probes a class's __init__ method, collecting all named arguments.  If the
    __init__ defines a \**kwargs catch-all, then the constructor is presumed
    to pass along unrecognized keywords to its base classes, and the
    collection process is repeated recursively on each of the bases.

    Uses a subset of inspect.getfullargspec() to cut down on method overhead,
    as this is used within the Core typing system to create copies of type
    objects which is a performance-sensitive operation.

    No anonymous tuple arguments please !

    Nrÿ   Fz
given cls z  doesn't have an __init__ method)r!  rd   )r}   rP   rQ   r0   rà   rá   r  r   r   rX   rF   Ú	__bases__r(  Údiscard)	ry   r!  r"  ÚtoplevelÚctrÚhas_initré   Úhas_kwÚcs	            r7   r(  r(  ù  s=  € ð" �tˆ|€HØð Ý‰uŒuˆØÐÐÐà
Œ,×
Ò
˜: uÑ
-Ô
-€Cð 	ð 	5Ý�s�EÔ.Ñ/Ô/ð	5å�s”|¥U¤^Ñ4Ô4ð ð ð Ý*¨3Ñ/Ô/‰ˆˆvØ�Š�EÑÔÐàð 	˜hð 	Øð ÝØF ÐFÐFÐFñô ð ð �tøàˆàð �vð Ø”ð 	ð 	ˆAÝ˜a dÐ+Ñ+Ô+Ð3Ø�ð 4ð 	‡L‚L�ÑÔÐØ€Kr9   Úfuncú	List[str]c                ó6   — t          j        | ¦  «        d         S )zƒReturn the set of legal kwargs for the given `func`.

    Uses getargspec so is safe to call for methods, functions,
    etc.

    r   )r   rÙ   )r2  s    r7   Úget_func_kwargsr5  .  s   € õ Ô(¨Ñ.Ô.¨qÔ1Ð1r9   Úno_selfÚ_is_initúcompat.FullArgSpecc           	     óò  — t          j        | ¦  «        rt          d| z  ¦  «        ‚t          j        | ¦  «        rq|r[|rYt	          j        | ¦  «        }t	          j        |j        dd…         |j        |j	        |j
        |j        |j        |j        ¦  «        S t	          j        | ¦  «        S t          j        | ¦  «        r‚|rg|s| j        r^t	          j        | j        ¦  «        }t	          j        |j        dd…         |j        |j	        |j
        |j        |j        |j        ¦  «        S t	          j        | j        ¦  «        S t          j        | ¦  «        rt%          | j        |d¬¦  «        S t)          | d¦  «        rt	          j        | j        ¦  «        S t)          | d¦  «        rAt          j        | j        ¦  «        rt%          | j        |¬¦  «        S t          d	| z  ¦  «        ‚t          d	| z  ¦  «        ‚)
zþReturn the argument signature for any callable.

    All pure-Python callables are accepted, including
    functions, methods, classes, objects with __call__;
    builtins and other edge cases like functools.partial() objects
    raise a TypeError.

    zCan't inspect builtin: %sr   NT)r6  r7  Ú__func__Ú__call__)r6  zCan't inspect callable: %s)rN   Ú	isbuiltinrF   r×   r   rÙ   ÚFullArgSpecÚargsÚvarargsÚvarkwrÎ   Ú
kwonlyargsrÏ   r   rØ   Ú__self__r:  ÚisclassÚget_callable_argspecrÿ   rª   r;  )rÂ   r6  r7  ræ   s       r7   rD  rD  9  s  € õ Ô˜ÑÔð *;ÝÐ3°bÑ8Ñ9Ô9Ð9Ý	Ô	˜BÑ	Ô	ð (;Øð 	5˜ð 	5ÝÔ0°Ñ4Ô4ˆDÝÔ%Ø”	˜!˜"˜"”Ø”Ø”
Ø”Ø”ØÔ#ØÔ ñô ð õ Ô0°Ñ4Ô4Ð4Ý	Ô	˜"Ñ	Ô	ð ;Øð 	>˜ð 	> B¤Kð 	>ÝÔ0°´Ñ=Ô=ˆDÝÔ%Ø”	˜!˜"˜"”Ø”Ø”
Ø”Ø”ØÔ#ØÔ ñô ð õ Ô0°´Ñ=Ô=Ð=Ý	Œ˜Ñ	Ô	ð ;Ý#ØŒK °4ð
ñ 
ô 
ð 	
õ 
��ZÑ	 Ô	 ð ;ÝÔ,¨R¬[Ñ9Ô9Ð9Ý	��ZÑ	 Ô	 ð ;ÝÔ˜BœKÑ(Ô(ð 	?Ý'¨¬¸WÐEÑEÔEÐEåÐ8¸2Ñ=Ñ>Ô>Ð>åÐ4°rÑ9Ñ:Ô:Ð:r9   ú-Union[Callable[..., Any], compat.FullArgSpec]rÒ   úDict[str, Optional[str]]c           
     óø  — t          | ¦  «        rt          j        | ¦  «        }n| }t          j        |Ž }t          j        |d         |d         |d         d|d         ¦  «        }|d         rG|d         d         }t          j        |d         dd…         |d         |d         d|d         ¦  «        }n|d         rd|d         z  }|}nd}|}d}|d         r6|t	          t          t          t                   |d         ¦  «        ¦  «        z  }|d         r|t	          |d         ¦  «        z  }|d         |d         z   }|r|d|z
  d…         }	nd}	t          j        ||d         |d         |	d	„ ¬
¦  «        }
|d         r/t          j        |dd…         |d         |d         |	d„ ¬
¦  «        }n|
}|rt          ||||
||¬¦  «        S t          |||dd…         |
dd…         |dd…         |dd…         ¬¦  «        S )a  Returns a dictionary of formatted, introspected function arguments.

    A enhanced variant of inspect.formatargspec to support code generation.

    fn
       An inspectable callable or tuple of inspect getargspec() results.
    grouped
      Defaults to True; include (parens, around, argument) lists

    Returns:

    args
      Full inspect.formatargspec for fn
    self_arg
      The name of the first positional argument, varargs[0], or None
      if the function defines no positional arguments.
    apply_pos
      args, re-written in calling rather than receiving syntax.  Arguments are
      passed positionally.
    apply_kw
      Like apply_pos, except keyword-ish args are passed as keywords.
    apply_pos_proxied
      Like apply_pos but omits the self/cls argument

    Example::

      >>> format_argspec_plus(lambda self, a, b, c=3, **d: 123)
      {'grouped_args': '(self, a, b, c=3, **d)',
       'self_arg': 'self',
       'apply_kw': '(self, a, b, c=c, **d)',
       'apply_pos': '(self, a, b, c, **d)'}

    r   r   r   Né   z%s[0]rÐ   rx   c                ó&   — dt          | ¦  «        z   S ©Nú=rµ   ©rS   s    r7   r¸   z%format_argspec_plus.<locals>.<lambda>Ä  s   € ˜c¥C¨¡F¤F™l€ r9   )Úformatvaluec                ó&   — dt          | ¦  «        z   S rJ  rµ   rL  s    r7   r¸   z%format_argspec_plus.<locals>.<lambda>Í  s   €  #­¨A©¬¡,€ r9   )Úgrouped_argsÚself_argÚ	apply_posÚapply_kwÚapply_pos_proxiedÚapply_kw_proxiedéÿÿÿÿ)	rE   r   rÙ   Úinspect_formatargspecrÚ   r	   r   r   r1   )rÂ   rÒ   ræ   r>  rQ  rP  rS  Únum_defaultsÚ	name_argsÚdefaulted_valsrR  rT  s               r7   rÝ   rÝ   q  sw  € õH ��|„|ð ÝÔ,¨RÑ0Ô0ˆˆàˆåÔ'¨Ð.€DåÔ,ØˆQŒ��a”˜$˜qœ' 4¨¨a¬ñô €Ið ˆA„wð &Ø˜”7˜1”:ˆå"Ô8Ø�ŒG�A�B�BŒK˜˜aœ $ q¤'¨4°°a´ñ
ô 
ÐÐð 
ˆaŒð &à˜T !œWÑ$ˆà%ÐÐàˆØ%Ðà€LØˆA„wð 7Ø��D¥¥s¤¨T°!¬WÑ5Ô5Ñ6Ô6Ñ6ˆØˆA„wð %Ø�˜D œG™œÑ$ˆà�Q”˜$˜qœ'Ñ!€Ið ð Ø" 1 |Ñ#3Ð#5Ð#5Ô6ˆˆàˆåÔ+ØØˆQŒØˆQŒØØ*Ð*ðñ ô €Hð ˆA„wð 	$Ý!Ô7Ø�a�b�bŒMØ�ŒGØ�ŒGØØ.Ð.ð
ñ 
ô 
ÐÐð $Ðàð 
ÝØØØØØ/Ø-ð
ñ 
ô 
ð 	
õ ØØØ  " ”oØ˜a ˜d”^Ø/°°"°Ô5Ø-¨a°¨dÔ3ð
ñ 
ô 
ð 	
r9   c                óÆ   — | t           j        u rd}|rdnd}|rdnd}n0	 t          | |¬¦  «        S # t          $ r d}|r|nd}|rdnd	}Y nw xY wt	          d|||||¬
¦  «        S )a$  format_argspec_plus with considerations for typical __init__ methods

    Wraps format_argspec_plus with error handling strategies for typical
    __init__ cases:

    .. sourcecode:: text

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    z(self)rd   z()rÕ   rÑ   z(self, *args, **kwargs)zself, *args, **kwargsz(*args, **kwargs)z*args, **kwargs)rP  rO  rQ  rR  rS  rT  )Úobjectrÿ   rÝ   rF   r1   )ÚmethodrÒ   rO  r>  Úproxieds        r7   Úformat_argspec_initr^  æ  sÀ   € ð •”Ð Ð ØˆØ"Ð.ˆxˆx¨ˆØ!Ð)�$�$ rˆˆð	LÝ& v°wÐ?Ñ?Ô?Ð?øÝð 	Lð 	Lð 	LØ4ˆLØ#*ÐG�<�<Ð0GˆDØ-4ÐKÐ)Ð)Ð:KˆGˆGˆGð	Løøøõ ØØ!ØØØ!Ø ðñ ô ð s   Ÿ0 °AÁ
Arx   Ú
target_clsÚtarget_cls_sphinx_nameÚproxy_cls_sphinx_nameÚclassmethodsÚmethodsÚ
attributesÚuse_intermediate_variableúCallable[[_T], _T]c                ó   — d„ }|S )aS  A class decorator indicating attributes should refer to a proxy
    class.

    This decorator is now a "marker" that does nothing at runtime.  Instead,
    it is consumed by the tools/generate_proxy_methods.py script to
    statically generate proxy methods and attributes that are fully
    recognized by typing tools such as mypy.

    c                ó   — | S rM   rx   )ry   s    r7   rð   z&create_proxy_methods.<locals>.decorate  s   € Øˆ
r9   rx   )r_  r`  ra  rb  rc  rd  re  rð   s           r7   Úcreate_proxy_methodsri    s   € ð&ð ð ð €Or9   c                óˆ   — 	 t          j        | ¦  «        S # t          $ r! | t          j        u r	dgdddfcY S dgdddfcY S w xY w)a  inspect.getargspec with considerations for typical __init__ methods

    Wraps inspect.getargspec with error handling for typical __init__ cases:

    .. sourcecode:: text

      object.__init__ -> (self)
      other unreflectable (usually C) -> (self, *args, **kwargs)

    rd   Nr>  Úkwargs)r   rÙ   rF   r[  rÿ   )r\  s    r7   Úgetargspec_initrl     sn   € ð6ÝÔ,¨VÑ4Ô4Ð4øÝð 6ð 6ð 6Ø•V”_Ð$Ð$Ø�H˜d D¨$Ð/Ð/Ð/Ð/à�H˜f h°Ð5Ð5Ð5Ð5ð	6øøøs   ‚ –A·AÁ Ac                óV   — t          | t          j        ¦  «        r| j        s| j        S | S )zSAdjust the incoming callable such that a 'self' argument is not
    required.

    )r0   rà   Ú
MethodTyperB  r:  )Úfunc_or_clss    r7   Úunbound_method_to_callablerp  4  s2   € õ �+�uÔ/Ñ0Ô0ð ¸Ô9Mð ØÔ#Ð#àÐr9   Úadditional_kwúSequence[Tuple[str, Any]]Ú
to_inspectú%Optional[Union[object, List[object]]]Ú
omit_kwargc           	     óh  ‡ ‡— |€‰ g}nt          j        |¦  «        }t          ¦   «         Šg }t          j        ¦   «         }d}t	          |¦  «        D �]%\  }}	 t          j        |j        ¦  «        }	|	j        rt          |	j        ¦  «        nd}
|dk    rW|	j
        r|	j
        }|
r$|                     |	j        d|
 …         ¦  «         nR|                     |	j        dd…         ¦  «         n/|                     ˆfd„|	j        d|
 …         D ¦   «         ¦  «         |
rI|	j        sJ ‚|                     d„ t          |	j        |
 d…         |	j        ¦  «        D ¦   «         ¦  «         �Œ# t          $ r Y �Œ#w xY wg }|                     ˆ fd„|D ¦   «         ¦  «         |�=t!          ‰ |¦  «        r-|                     d„ t#          ‰ |¦  «        D ¦   «         ¦  «         |                     ¦   «         D ]P\  }}||v rŒ
	 t#          ‰ |‰¦  «        }|‰ur ||k    r|                     |›d|›�¦  «         ŒA# t(          $ r Y ŒMw xY w|rN|D ]K\  }}	 t#          ‰ |‰¦  «        }|‰ur ||k    r|                     |›d|›�¦  «         Œ<# t(          $ r Y ŒHw xY w‰ j        j        ›d	d
                     |¦  «        ›d�S )z}Produce a __repr__() based on direct association of the __init__()
    specification vs. same-named attributes present.

    Nr   r   c                ó   •— g | ]}|‰f‘ŒS rx   rx   )r�   ÚargÚmissings     €r7   ú
<listcomp>z generic_repr.<locals>.<listcomp>d  s   ø€ ÐIÐIÐI¨�c˜7�^ÐIÐIÐIr9   c                ó   — g | ]	\  }}||f‘Œ
S rx   rx   )r�   rx  Údefaults      r7   rz  z generic_repr.<locals>.<listcomp>j  s0   € ð ð ð á(˜C ð ˜g˜ðð ð r9   c              3  óT   •K  — | ]"}t          t          ‰|d ¦  «        ¦  «        V — Œ#d S rM   )rß   r/   )r�   rx  r3   s     €r7   r‘   zgeneric_repr.<locals>.<genexpr>s  s7   øè è € ÐDÐD°C•$•w˜s C¨Ñ.Ô.Ñ/Ô/ÐDÐDÐDÐDÐDÐDr9   c                ó,   — g | ]}t          |¦  «        ‘ŒS rx   ©rß   )r�   Úvals     r7   rz  z generic_repr.<locals>.<listcomp>v  s   € Ð@Ð@Ð@ S•t˜C‘y”yÐ@Ð@Ð@r9   rK  ú(ú, ú))r   Úto_listr[  ÚOrderedDictÚ	enumerater   rÙ   rÿ   rÎ   rÚ   r?  r€   r>  rX   ÚziprF   rª   r/   Úitemsr«   rD   r�   rs   r’   )r3   rq  rs  ru  Úpos_argsÚkw_argsÚvargsr¶   Úinspræ   Údefault_lenÚoutputrx  Údefvalr€  ry  s   `              @r7   Úgeneric_reprr�  @  si  øø€ ð ÐØ�Uˆ
ˆ
å!Ô)¨*Ñ5Ô5ˆ
å‰hŒh€Gà€HÝ2>Ô2JÑ2LÔ2L€GØ€EÝ˜ZÑ(Ô(ð ñ ‰ˆˆ4ð	ÝÔ0°´Ñ?Ô?ˆDð 15´ÐD�#˜dœmÑ,Ô,Ð,À1ˆKØ�AŠvˆvØ”<ð )Ø œL�EØð 3Ø—O’O D¤I¨a°°¨nÔ$=Ñ>Ô>Ð>Ð>à—O’O D¤I¨a¨b¨b¤MÑ2Ô2Ð2Ð2à—’ØIÐIÐIÐI¨t¬y¸¸K¸<¸Ô/HÐIÑIÔIñô ð ð ð 	Ø”}Ð$Ð$Ð$Ø—’ðð å,/Ø œI { l m mÔ4°d´mñ-ô -ðñ ô ñô ð ùøõ% ð 	ð 	ð 	Ø‰Hð	øøøð4 €Fà
‡M‚MÐDÐDÐDÐD¸8ÐDÑDÔDÑDÔDÐDàÐ�W S¨%Ñ0Ô0ÐØ�ŠÐ@Ð@­G°C¸Ñ,?Ô,?Ð@Ñ@Ô@ÑAÔAÐAà—}’}‘”ð ð ‰ˆˆVØ�*ÐÐØð	Ý˜#˜s GÑ,Ô,ˆCØ˜'Ð!Ð! c¨V¢m mØ—’¨¨¨¨c¨cÐ2Ñ3Ô3Ð3øøÝð 	ð 	ð 	ØˆDð	øøøð ð Ø(ð 	ð 	‰KˆC�ðÝ˜c 3¨Ñ0Ô0�Ø˜gÐ%Ð%¨#°ª-¨-Ø—M’M¨S¨S¨S°#°#Ð"6Ñ7Ô7Ð7øøÝð ð ð Ø�ðøøøð ”}Ô-Ð-Ð-¨t¯yªy¸Ñ/@Ô/@Ð/@Ð/@ÐAÐAs6   ÁE'Å'
E5Å4E5Ç95H/È/
H<È;H<É	5I?É?
JÊJc                  ó0   — e Zd ZdZdZd„ Zd„ Zd	d„Zd„ ZdS )
Úportable_instancemethodz_Turn an instancemethod into a (parent, name) pair
    to produce a serializable callable.

    )rÊ   r•   rk  Ú__weakref__c                ó,   — | j         | j        | j        dœS )N©rÊ   r•   rk  r•  rc   s    r7   Ú__getstate__z$portable_instancemethod.__getstate__–  s    € à”kØ”IØ”kð
ð 
ð 	
r9   c                óp   — |d         | _         |d         | _        |                     dd¦  «        | _        d S )NrÊ   r•   rk  rx   )rÊ   r•   rQ   rk  )rd   Ústates     r7   Ú__setstate__z$portable_instancemethod.__setstate__�  s1   € Ø˜H”oˆŒØ˜&”MˆŒ	Ø—i’i ¨"Ñ-Ô-ˆŒˆˆr9   rx   c                óD   — |j         | _        |j        | _        || _        d S rM   )rB  rÊ   rs   r•   rk  )rd   Úmethrk  s      r7   rÿ   z portable_instancemethod.__init__¢  s   € Ø”mˆŒØ”MˆŒ	ØˆŒˆˆr9   c                óv   — |                      | j        ¦  «          t          | j        | j        ¦  «        |i |¤ŽS rM   )rX   rk  r/   rÊ   r•   )rd   rx  Úkws      r7   r;  z portable_instancemethod.__call__§  s9   € Ø
�	Š	�$”+ÑÔÐØ.�w�t”{ D¤IÑ.Ô.°Ð:°rÐ:Ð:Ð:r9   N)rx   )	rs   rt   ru   rv   rw   r–  r™  rÿ   r;  rx   r9   r7   r’  r’  Ž  sf   € € € € € ðð ð
 :€Ið
ð 
ð 
ð.ð .ð .ð
ð ð ð ð
;ð ;ð ;ð ;ð ;r9   r’  c                ó*  ‡— | hŠt          | j        ¦  «        }|rë|                     ¦   «         }ˆfd„|j        D ¦   «         }|D ],}|                     |¦  «         ‰                     |¦  «         Œ-|j        dk    st          |d¦  «        sŒtˆfd„t          |t          ¦  «        s| 
                    ¦   «         n| 
                    |¦  «        D ¦   «         D ],}|                     |¦  «         ‰                     |¦  «         Œ-|°ët          ‰¦  «        S )a'  Return an unordered sequence of all classes related to cls.

    Traverses diamond hierarchies.

    Fibs slightly: subclasses of builtin types are not returned.  Thus
    class_hierarchy(class A(object)) returns (A, object), not A plus every
    class systemwide that derives from object.

    c              3  ó$   •K  — | ]
}|‰v¯|V — Œd S rM   rx   ©r�   Ú_Úhiers     €r7   r‘   z"class_hierarchy.<locals>.<genexpr>»  s'   øè è € Ð9Ð9�q¨1°D¨=¨=�¨=¨=¨=¨=Ð9Ð9r9   Úbuiltinsr�   c                ó   •— g | ]}|‰v¯|‘Œ	S rx   rx   r   s     €r7   rz  z#class_hierarchy.<locals>.<listcomp>Ä  s.   ø€ ð 
ð 
ð 
àð
 ˜ˆ}ˆ}ð ð ˆ}ˆ}r9   )r  Ú__mro__r~   r+  r«   r   rt   rª   Ú
issubclassr<   r�   )ry   Úprocessr1  r±   rÇ   Úsr¢  s         @r7   Úclass_hierarchyr©  ¬  s?  ø€ ð ˆ5€DÝ�3”;ÑÔ€GØ
ð Ø�KŠK‰MŒMˆØ9Ð9Ð9Ð9˜AœKÐ9Ñ9Ô9ˆàð 	ð 	ˆAØ�NŠN˜1ÑÔÐØ�HŠH�Q‰KŒKˆKˆKàŒ<˜:Ò%Ð%­W°QÐ8HÑ-IÔ-IÐ%Øð
ð 
ð 
ð 
õ " !¥TÑ*Ô*ð)�× Ò Ñ"Ô"Ð"à×%Ò% aÑ(Ô(ð
ñ 
ô 
ð 
	ð 
	ˆAð �NŠN˜1ÑÔÐØ�HŠH�Q‰KŒKˆKˆKð+ ð õ, �‰:Œ:Ðr9   c              #  ó~   K  — t          | ¦  «        }|D ](}| j        D ]}||j        v r||j        |         fV —  nŒŒ)dS )zÍiterate all the keys and attributes associated
    with a class, without using getattr().

    Does not use getattr() so that class-sensitive
    descriptors (i.e. property.__get__()) are not called.

    N)Údirr¥  rP   )ry   ÚkeysÚkeyr1  s       r7   Úiterate_attributesr®  Ò  sl   è è € õ ˆs‰8Œ8€DØð ð ˆØ”ð 	ð 	ˆAØ�a”jÐ Ð Ø˜AœJ sœOÐ,Ð,Ð,Ð,Ø�ð !øðð r9   ú
self.proxyc                ó¶  ‡ ‡— |r|}n ‰€dŠˆ ˆfd„t          |¦  «        D ¦   «         }|D �]-}	 t          ||¦  «        }t          |d¦  «        sŒ%t          |d|¦  «        }t          t          j        |¦  «        }	n# t          $ r Y Œ]w xY w	 t          j        |	¦  «        }
t          j	        |
d         ¦  «        }t          j	        |
d         dd…         ¦  «        }n# t          $ r d}d	}Y nw xY wd
t          ¦   «         z  }|dur||ipi }t          ||¦  «         	 |	j        ||         _        n# t          $ r Y nw xY wt          ‰ |||         ¦  «         �Œ/dS )z9Automates delegation of __specials__ for a proxying type.N)rw   Ú__del__Ú__getattribute__Ú__metaclass__r–  r™  c                ó�   •— g | ]B}|                      d ¦  «        r+|                     d ¦  «        rt          ‰|¦  «        s|‰v¯@|‘ŒCS )rÖ   )Ú
startswithÚendswithrª   )r�   rZ   Úinto_clsÚskips     €€r7   rz  z0monkeypatch_proxied_specials.<locals>.<listcomp>ø  sl   ø€ ð 	
ð 	
ð 	
àà—’˜TÑ"Ô"ð		
ð
 —J’J˜tÑ$Ô$ð	
õ   ¨!Ñ,Ô,ð	
ð ˜T�M�Mð ð "�M�Mr9   r;  r:  r   r   z(self, *args, **kw)z(*args, **kw)z?def %(method)s%(fn_args)s: return %(name)s.%(method)s%(d_args)s)r«  r/   rª   r	   rà   rá   r>   r   rÙ   rV  rF   Úlocalsrõ   rã   Úsetattr)r·  Úfrom_clsr¸  Úonlyr•   Úfrom_instanceÚdundersr\  Úmaybe_fnrÂ   ræ   Úfn_argsÚd_argsÚpyrî   s   ` `            r7   Úmonkeypatch_proxied_specialsrÃ  â  sß  øø€ ð ð 
Øˆˆàˆ<ðˆDð	
ð 	
ð 	
ð 	
ð 	
å˜‘]”]ð	
ñ 	
ô 	
ˆð ð /ñ /ˆð	Ý˜x¨Ñ0Ô0ˆHÝ˜8 ZÑ0Ô0ð ØÝ˜x¨°XÑ>Ô>ˆHÝ•eÔ(¨(Ñ3Ô3ˆBˆBøåð 	ð 	ð 	ØˆHð	øøøð	%ÝÔ0°Ñ4Ô4ˆDÝÔ2°4¸´7Ñ;Ô;ˆGÝÔ1°$°q´'¸!¸"¸"´+Ñ>Ô>ˆFˆFøÝð 	%ð 	%ð 	%Ø+ˆGØ$ˆFˆFˆFð	%øøøð
3Ý5;±X´Xñ>ð 	ð  Ð%Ð?¨4°Ð*?ÐEÀ2ð 	õ 	ˆR�‰Œˆð	Ø')¤ˆC�ŒKÔ$Ð$øÝð 	ð 	ð 	ØˆDð	øøøå�˜& # f¤+Ñ.Ô.Ð.Ñ.ð?/ð /s<   ® A;Á+A;Á;
BÂBÂACÃC.Ã-C.ÄD0Ä0
D=Ä<D=c                óF   — t          | d| ¦  «        t          |d|¦  «        u S )z;Return True if the two methods are the same implementation.r:  )r/   )Úmeth1Úmeth2s     r7   Úmethods_equivalentrÇ  %  s0   € õ �5˜* eÑ,Ô,µØˆz˜5ñ1ô 1ð ð r9   c           	     óJ  — |s|st          d¦  «        ‚t          |t          ¦  «        rt          | |¦  «        r| S t          |pd„ t	          |¦  «        D ¦   «         ¦  «        }t          t	          | ¦  «        ¦  «        }t
          j        }t          |t          ¦  «        r|}n,|st          ¦   «         }t
          j        }nt          |¦  «        } ||                     |¦  «        |¦  «        r| S t          | t          ¦  «        s<|t
          j        u rdpd}t          | ›d|›dd 
                    |¦  «        ›�¦  «        ‚ G d„ d	¦  «        }|rd
|j        z   |_        t          ¦   «         }	t          | ¦  «        D ]r\  }
}|
|vrt          d|
z  ¦  «        ‚t          |¦  «        st          |
›d|›d�¦  «        ‚t          ||
t          |¦  «        ¦  «         |	                     |
¦  «         Œs ||	|¦  «        r|S t          dd 
                    ||	z
  ¦  «        z  ¦  «        ‚)aŽ  Ensure basic interface compliance for an instance or dict of callables.

    Checks that ``obj`` implements public methods of ``cls`` or has members
    listed in ``methods``. If ``required`` is not supplied, implementing at
    least one interface method is sufficient. Methods present on ``obj`` that
    are not in the interface are ignored.

    If ``obj`` is a dict and ``dict`` does not meet the interface
    requirements, the keys of the dictionary are inspected. Keys present in
    ``obj`` that are not in the interface will raise TypeErrors.

    Raises TypeError if ``obj`` does not meet the interface criteria.

    In all passing cases, an object with callable members is returned.  In the
    simple case, ``obj`` is returned as-is; if dict processing kicks in then
    an anonymous class is returned.

    obj
      A type, instance, or dictionary of callables.
    cls
      Optional, a type.  All public methods of cls are considered the
      interface.  An ``obj`` instance of cls will always pass, ignoring
      ``required``..
    methods
      Optional, a sequence of method names to consider as the interface.
    required
      Optional, a sequence of mandatory implementations. If omitted, an
      ``obj`` that provides at least one interface method is considered
      sufficient.  As a convenience, required may be a type, in which case
      all public methods of the type are required.

    z2a class or collection of method names are requiredc                ó<   — g | ]}|                      d ¦  «        °|‘ŒS )r¡  )rµ  )r�   rZ   s     r7   rz  z as_interface.<locals>.<listcomp>T  s)   € ÐMÐMÐM a¸1¿<º<ÈÑ;LÔ;LÐM ÐMÐMÐMr9   zany ofzall ofz does not implement z: r‚  c                  ó   — e Zd ZdZdS )ú(as_interface.<locals>.AnonymousInterfacezA callable-holding shell.N©rs   rt   ru   rv   rx   r9   r7   ÚAnonymousInterfacerË  k  s   € € € € € Ø'Ð'Ð'Ð'r9   rÍ  Ú	Anonymousz%r: unknown in this interfacerK  z is not callablez,dictionary does not contain required keys %s)rF   r0   r<   r}   r«  ÚoperatorÚgeÚgtÚintersectionr1   r’   rs   Údictlike_iteritemsrE   rº  Ústaticmethodr   )r3   ry   rc  ÚrequiredÚ	interfaceÚimplementedÚcompliesÚ	qualifierrÍ  Úfoundr\  r  s               r7   Úas_interfacerÛ  -  sx  € ðB ð N�wð NÝÐLÑMÔMÐMå�#•tÑÔð ¥¨C°Ñ!5Ô!5ð Øˆ
å�GÐMÐMÐM­3¨s©8¬8ÐMÑMÔMÑNÔN€IÝ•c˜#‘h”h‘-”-€KåŒ{€HÝ�(�DÑ!Ô!ð !ØˆˆØð !Ý‘5”5ˆÝ”;ˆˆå�x‘=”=ˆà€x�×(Ò(¨Ñ3Ô3°XÑ>Ô>ð Øˆ
õ �c�4Ñ Ô ð 
Ø¥¤Ð+Ð8°ÐD¸Hˆ	Ýàˆsˆs�I�I�I˜tŸyšy¨Ñ3Ô3Ð3ð5ñ
ô 
ð 	
ð
(ð (ð (ð (ð (ñ (ô (ð (ð ð AØ&1°C´LÑ&@ÐÔ#Ý‰EŒE€Eå*¨3Ñ/Ô/ð ð ‰ˆ�Ø˜Ð"Ð"ÝÐ;¸fÑDÑEÔEÐEÝ˜‰~Œ~ð 	FÝ°v°v°v¸t¸t¸tÐDÑEÔEÐEÝÐ" F­L¸Ñ,>Ô,>Ñ?Ô?Ð?Ø�	Š	�&ÑÔÐÐà€x��xÑ Ô ð "Ø!Ð!å
Ø6Ø
�)Š)�H˜uÑ$Ñ
%Ô
%ñ	&ñô ð r9   Ú_GFDzgeneric_fn_descriptor[Any]c                  ó¨   — e Zd ZU dZded<   ded<   ded<   dd d
„Zed!d„¦   «         Zed"d„¦   «         Zd#d„Zerd$d„Z	d%d„Z
d&d„Zed'd„¦   «         ZdS )(Úgeneric_fn_descriptorag  Descriptor which proxies a function when the attribute is not
    present in dict

    This superclass is organized in a particular way with "memoized" and
    "non-memoized" implementation classes that are hidden from type checkers,
    as Mypy seems to not be able to handle seeing multiple kinds of descriptor
    classes used for the same attribute.

    úCallable[..., _T_co]ÚfgetrŠ   rv   rT   rs   NÚdocc                óH   — || _         |p|j        | _        |j        | _        d S rM   ©rà  rv   rs   ©rd   rà  rá  s      r7   rÿ   zgeneric_fn_descriptor.__init__•  s$   € ØˆŒ	ØÐ*˜dœlˆŒØœˆŒˆˆr9   rd   rÜ  r3   r_   ry   r   rA   c                ó   — d S rM   rx   ©rd   r3   ry   s      r7   Ú__get__zgeneric_fn_descriptor.__get__š  s   € Ø:=¸#r9   r[  r"   c                ó   — d S rM   rx   ræ  s      r7   rç  zgeneric_fn_descriptor.__get__�  s   € Ø7:°sr9   úUnion[_GFD, _T_co]c                ó   — t          ¦   «         ‚rM   ©ÚNotImplementedErrorræ  s      r7   rç  zgeneric_fn_descriptor.__get__   ó   € Ý!Ñ#Ô#Ð#r9   Úinstancerh   c                ó   — d S rM   rx   ©rd   rî  rh   s      r7   Ú__set__zgeneric_fn_descriptor.__set__¥  ó   € € € r9   c                ó   — d S rM   rx   )rd   rî  s     r7   Ú
__delete__z generic_fn_descriptor.__delete__§  rò  r9   c                ó   — t          ¦   «         ‚rM   rë  ©rd   r3   s     r7   Ú_resetzgeneric_fn_descriptor._reset©  rí  r9   r•   c                ó   — t          ¦   «         ‚rM   rë  ©ry   r3   r•   s      r7   Úresetzgeneric_fn_descriptor.reset¬  s   € å!Ñ#Ô#Ð#r9   rM   )rà  rß  rá  rŠ   )rd   rÜ  r3   r_   ry   r   rA   rÜ  )r3   r[  ry   r   rA   r"   )rd   rÜ  r3   r   ry   r   rA   ré  ©rî  r   rh   r   rA   r_   ©rî  r   rA   r_   )r3   r   rA   r_   )r3   r   r•   rT   rA   r_   )rs   rt   ru   rv   r:   rÿ   r   rç  r   rñ  rô  r÷  Úclassmethodrú  rx   r9   r7   rÞ  rÞ  †  sô   € € € € € € ðð ð ÐÐÑØÐÐÑØ€M€M�Mð&ð &ð &ð &ð &ð
 Ø=Ð=Ð=ñ „XØ=àØ:Ð:Ð:ñ „XØ:ð$ð $ð $ð $ð ð 9àAÐAÐAÐAà8Ð8Ð8Ð8ð$ð $ð $ð $ð ð$ð $ð $ñ „[ð$ð $ð $r9   rÞ  c                  ó    — e Zd ZdZesd„ ZdS dS )Ú_non_memoized_propertyzÉa plain descriptor that proxies a function.

    primary rationale is to provide a plain attribute that's
    compatible with memoized_property which is also recognized as equivalent
    by mypy.

    c                ó4   — |€| S |                       |¦  «        S rM   ©rà  ræ  s      r7   rç  z_non_memoized_property.__get__¼  s   € Øˆ{Ø�Ø—9’9˜S‘>”>Ð!r9   N)rs   rt   ru   rv   r   rç  rx   r9   r7   rÿ  rÿ  ±  sA   € € € € € ðð ð ð "ð	"ð 	"ð 	"ð 	"ð 	"ð"ð "r9   rÿ  c                  ó8   — e Zd ZdZesd„ Zd„ Zed„ ¦   «         ZdS )Ú_memoized_propertyz2A read-only @property that is only evaluated once.c                óV   — |€| S |                       |¦  «        x|j        | j        <   }|S rM   )rà  rP   rs   ©rd   r3   ry   Úresults       r7   rç  z_memoized_property.__get__Ç  s.   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØˆMr9   c                óF   — t                                || j        ¦  «         d S rM   )r  rú  rs   rö  s     r7   r÷  z_memoized_property._resetÍ  s    € Ý× Ò   d¤mÑ4Ô4Ð4Ð4Ð4r9   c                ó<   — |j                              |d ¦  «         d S rM   )rP   r~   rù  s      r7   rú  z_memoized_property.resetÐ  s    € àŒ×Ò˜˜tÑ$Ô$Ð$Ð$Ð$r9   N)	rs   rt   ru   rv   r   rç  r÷  rý  rú  rx   r9   r7   r  r  Â  s[   € € € € € Ø<Ð<àð ð	ð 	ð 	ð5ð 5ð 5ð ð%ð %ñ „[ð%ð %ð %r9   r  c                ó.   ‡ — ˆ fd„}t          |‰ ¦  «        S )zàDecorate a method memoize its return value.

    Best applied to no-arg methods: memoization is not sensitive to
    argument values, and will always return the same value even when
    called with different arguments.

    c                óz   •‡—  ‰| g|¢R i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        || j        ‰j         <   ‰S )Nc                 ó   •— ‰S rM   rx   ©Úar�  r  s     €r7   Úmemoz6memoized_instancemethod.<locals>.oneshot.<locals>.memoý  s   ø€ ØˆMr9   )rs   rv   rP   ©rd   r>  r�  r  r  rÂ   s       @€r7   Úoneshotz(memoized_instancemethod.<locals>.oneshotú  sc   øø€ Ø��DÐ&˜4Ð&Ð&Ð& 2Ð&Ð&ˆð	ð 	ð 	ð 	ð 	ð œˆŒØ”zˆŒØ%)ˆŒ�b”kÑ"Øˆr9   r   )rÂ   r  s   ` r7   Úmemoized_instancemethodr  ñ  s.   ø€ ð	ð 	ð 	ð 	ð 	õ ˜' 2Ñ&Ô&Ð&r9   c                  ó’   — e Zd ZU dZesdZ e¦   «         Zded<   dd„Z	dd„Z
dd„Z G d„ dee         ¦  «        Zedd„¦   «         ZdS )ÚHasMemoizedzA mixin class that maintains the names of memoized elements in a
    collection for easy cache clearing, generative, etc.

    rx   zFrozenSet[str]Ú_memoized_keysrA   r_   c                óP   — | j         D ]}| j                             |d ¦  «         Œd S rM   )r  rP   r~   ©rd   Úelems     r7   Ú_reset_memoizationszHasMemoized._reset_memoizations  s9   € ØÔ'ð 	*ð 	*ˆDØŒM×Ò˜d DÑ)Ô)Ð)Ð)ð	*ð 	*r9   c                ó0   — | j         D ]}|| j        vsJ ‚Œd S rM   )r  rP   r  s     r7   Ú_assert_no_memoizationsz#HasMemoized._assert_no_memoizations  s4   € ØÔ'ð 	-ð 	-ˆDØ˜tœ}Ð,Ð,Ð,Ð,Ð,ð	-ð 	-r9   r­  rT   rh   r   c                ó<   — || j         |<   | xj        |hz  c_        d S rM   )rP   r  )rd   r­  rh   s      r7   Ú_set_memoized_attributez#HasMemoized._set_memoized_attribute  s*   € Ø"ˆŒ�cÑØÐÔ ˜uÑ$ÐÔÐÐr9   c                  ór   — e Zd ZU dZded<   ded<   ded<   ddd
„Zedd„¦   «         Zedd„¦   «         Zd„ ZdS )úHasMemoized.memoized_attributezTA read-only @property that is only evaluated once.

        :meta private:

        úCallable[..., _T]rà  rŠ   rv   rT   rs   Nrá  c                óH   — || _         |p|j        | _        |j        | _        d S rM   rã  rä  s      r7   rÿ   z'HasMemoized.memoized_attribute.__init__,  s$   € ØˆDŒIØÐ. $¤,ˆDŒLØ œMˆDŒMˆMˆMr9   rd   r'   r3   r_   ry   r   rA   c                ó   — d S rM   rx   ræ  s      r7   rç  z&HasMemoized.memoized_attribute.__get__1  s   € Ø<?¸Cr9   r!   c                ó   — d S rM   rx   ræ  s      r7   rç  z&HasMemoized.memoized_attribute.__get__4  s   € Ø58°Sr9   c                ó‚   — |€| S |                       |¦  «        x|j        | j        <   }|xj        | j        hz  c_        |S rM   )rà  rP   rs   r  r  s       r7   rç  z&HasMemoized.memoized_attribute.__get__7  sF   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØÐÔ 4¤= /Ñ1ÐÔØˆMr9   rM   )rà  r  rá  rŠ   )rd   r'   r3   r_   ry   r   rA   r'   )r3   r   ry   r   rA   r!   )rs   rt   ru   rv   r:   rÿ   r   rç  rx   r9   r7   Úmemoized_attributer  !  s™   € € € € € € ð	ð 	ð 	 ÐÐÑØÐÐÑØˆˆ‰ð	*ð 	*ð 	*ð 	*ð 	*ð
 
Ø?Ð?Ð?ñ 
ŒØ?à	Ø8Ð8Ð8ñ 
ŒØ8ð	ð 	ð 	ð 	ð 	r9   r$  rÂ   r$   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )zMDecorate a method memoize its return value.

        :meta private:

        rd   r   r>  r�  rA   c                ó¦   •‡—  ‰| g|¢R i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        || j        ‰j         <   | xj        ‰j         hz  c_        ‰S )Nc                 ó   •— ‰S rM   rx   r  s     €r7   r  zBHasMemoized.memoized_instancemethod.<locals>.oneshot.<locals>.memoI  s   ø€ Ø�r9   )rs   rv   rP   r  r  s       @€r7   r  z4HasMemoized.memoized_instancemethod.<locals>.oneshotF  s{   øø€ Ø�R˜Ð*˜tÐ*Ð*Ð* rÐ*Ð*ˆFðð ð ð ð ð œKˆDŒMØœ:ˆDŒLØ)-ˆDŒM˜"œ+Ñ&ØÐÔ B¤K =Ñ0ÐÔØˆMr9   )rd   r   r>  r   r�  r   rA   r   r   )ry   rÂ   r  s    ` r7   r  z#HasMemoized.memoized_instancemethod>  s3   ø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	õ ˜g rÑ*Ô*Ð*r9   Nrr   )r­  rT   rh   r   rA   r_   ©rÂ   r$   rA   r$   )rs   rt   ru   rv   r   rw   Ú	frozensetr  r:   r  r  r  Úmemoized_propertyr!   r$  rý  r  rx   r9   r7   r  r    sÔ   € € € € € € ðð ð
 ð ð ˆ	à%. Y¡[¤[€NÐ0Ð0Ð0Ñ0ð*ð *ð *ð *ð-ð -ð -ð -ð%ð %ð %ð %ðð ð ð ð Ð.¨rÔ2ñ ô ð ð: ð+ð +ð +ñ „[ð+ð +ð +r9   r  c                  ó$   — e Zd ZdZdZd„ Zd
d„Zd	S )ÚMemoizedSlotszÇApply memoized items to an object using a __getattr__ scheme.

    This allows the functionality of memoized_property and
    memoized_instancemethod to be available to a class using __slots__.

    rx   c                ó    — t          |¦  «        ‚rM   )r>   )rd   r­  s     r7   Ú_fallback_getattrzMemoizedSlots._fallback_getattre  s   € Ý˜SÑ!Ô!Ð!r9   r­  rT   rA   r   c                ó°  ‡ ‡‡— ‰                      d¦  «        s‰                      d¦  «        rt          ‰¦  «        ‚t          ‰ j        d‰› �¦  «        r. t	          ‰ d‰› �¦  «        ¦   «         }t          ‰ ‰|¦  «         |S t          ‰ j        d‰› �¦  «        r(t	          ‰ d‰› �¦  «        Šˆˆˆ fd„}‰j        |_        |S ‰                      ‰¦  «        S )NÚ_memoized_attr_Ú_memoized_method_c                 óv   •‡—  ‰| i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        t          ‰‰|¦  «         ‰S )Nc                 ó   •— ‰S rM   rx   r  s     €r7   r  z8MemoizedSlots.__getattr__.<locals>.oneshot.<locals>.memoz  s   ø€ Ø!�Mr9   )rs   rv   rº  )r>  r�  r  r  rÂ   r­  rd   s      @€€€r7   r  z*MemoizedSlots.__getattr__.<locals>.oneshotw  sY   øø€ Ø˜˜T˜ R˜˜�ð"ð "ð "ð "ð "ð !#¤�”Ø!œz�”Ý˜˜c 4Ñ(Ô(Ð(Ø�r9   )rµ  r>   rª   r�   r/   rº  rv   r.  )rd   r­  rh   r  rÂ   s   ``  @r7   Ú__getattr__zMemoizedSlots.__getattr__h  s  øøø€ Ø�>Š>Ð+Ñ,Ô,ð 	/°·²Øñ1
ô 1
ð 	/õ ! Ñ%Ô%Ð%õ �T”^Ð%<°sÐ%<Ð%<Ñ=Ô=ð 	/Ø:•G˜DÐ"9°CÐ"9Ð"9Ñ:Ô:Ñ<Ô<ˆEÝ�D˜#˜uÑ%Ô%Ð%ØˆLÝ�T”^Ð%>¸Ð%>Ð%>Ñ?Ô?ð 	/Ý˜Ð8°3Ð8Ð8Ñ9Ô9ˆBð	ð 	ð 	ð 	ð 	ð 	ð 	ð !œjˆGŒOØˆNà×)Ò)¨#Ñ.Ô.Ð.r9   N)r­  rT   rA   r   )rs   rt   ru   rv   rw   r.  r4  rx   r9   r7   r,  r,  [  sH   € € € € € ðð ð €Ið"ð "ð "ð/ð /ð /ð /ð /ð /r9   r,  c                óÒ   — t          | t          ¦  «        rD|                      ¦   «                              ¦   «         } | dv rdS | dv rdS t	          d| z  ¦  «        ‚t          | ¦  «        S )N)ÚtrueÚyesÚonÚyÚtÚ1T)ÚfalseÚnoÚoffr�   ÚfÚ0FzString is not true/false: %r)r0   rT   ÚstriprŽ   r2   r›   rJ   s    r7   ÚasboolrB  ‰  sp   € Ý�#•sÑÔð CØ�iŠi‰kŒk×ÒÑ!Ô!ˆØÐ6Ð6Ð6Ø�4ØÐ9Ð9Ð9Ø�5åÐ;¸cÑAÑBÔBÐBÝ�‰9Œ9Ðr9   Útextú!Callable[[str], Union[str, bool]]c                 ó   ‡ — dˆ fd„}|S )zqReturn a callable that will evaluate a string as
    boolean, or one of a set of "alternate" string values.

    r3   rT   rA   úUnion[str, bool]c                ó.   •— | ‰v r| S t          | ¦  «        S rM   )rB  )r3   rC  s    €r7   Úbool_or_valuez"bool_or_str.<locals>.bool_or_value›  s   ø€ Ø�$ˆ;ˆ;ØˆJå˜#‘;”;Ðr9   )r3   rT   rA   rF  rx   )rC  rH  s   ` r7   Úbool_or_strrI  •  s)   ø€ ðð ð ð ð ð ð Ðr9   rh   úOptional[int]c                ó(   — | €| S t          | ¦  «        S )zCoerce to integer.)rÄ   )rh   s    r7   ÚasintrL  ¤  s   € ð €}ØˆÝˆu‰:Œ:Ðr9   r�  r­  rf   Ú
flexi_boolÚdestúOptional[Dict[str, Any]]r_   c                óú   — |€| }|| v rnt          |t          ¦  «        rt          | |         |¦  «        sG| |         �=|t          u r|rt          | |         ¦  «        ||<   dS  || |         ¦  «        ||<   dS dS dS dS )zµIf 'key' is present in dict 'kw', coerce its value to type 'type\_' if
    necessary.  If 'flexi_bool' is True, the string '0' is considered false
    when coercing to boolean.
    N)r0   r<   r›   rB  )r�  r­  rf   rM  rN  s        r7   Úcoerce_kw_typerQ  ¬  sœ   € ð €|Øˆð 	ˆrˆ	ˆ	Ý˜E¥4Ñ(Ô(ð 	Ý0:¸2¸c¼7ÀEÑ0JÔ0Jð 	àˆsŒGÐà•Dˆ=ˆ=˜Zˆ=Ý˜r #œw™œˆD�‰IˆIˆIà˜˜b œg™œˆD�‰IˆIˆIð 	ˆ	àÐð 	ˆ	r9   c                ó`   ‡ — t          |¦  «        }|ft          ˆ fd„|D ¦   «         ¦  «        z   S )zbProduce a tuple structure that is cacheable using the __dict__ of
    obj to retrieve values

    c              3  óH   •K  — | ]}|‰j         v ¯|‰j         |         fV — Œd S rM   ©rP   ©r�   Úkr3   s     €r7   r‘   z"constructor_key.<locals>.<genexpr>Ì  sC   øè è € ð ð Ø!"¨q°C´LÐ/@Ð/@ˆˆCŒL˜ŒOÐÐ/@Ð/@Ð/@Ð/@ðð r9   )r(  r¬   )r3   ry   ré   s   `  r7   Úconstructor_keyrW  Æ  sS   ø€ õ
 ˜3ÑÔ€EØˆ6•Eð ð ð ð Ø&+ðñ ô ñ ô ñ ð r9   r>  c                óš   ‡ — t          |¦  «        }|                     ˆ fd„|                     |¦  «        D ¦   «         ¦  «          ||i |¤ŽS )z„Instantiate cls using the __dict__ of obj as constructor arguments.

    Uses inspect to match the named arguments of ``cls``.

    c              3  óH   •K  — | ]}|‰j         v ¯|‰j         |         fV — Œd S rM   rT  rU  s     €r7   r‘   z#constructor_copy.<locals>.<genexpr>Ù  sC   øè è € ð ð Ø!"¸aÀ3Ä<Ð>OÐ>OˆˆCŒL˜ŒOÐÐ>OÐ>OÐ>OÐ>Oðð r9   )r(  rX   Ú
difference)r3   ry   r>  r�  ré   s   `    r7   Úconstructor_copyr[  Ñ  ss   ø€ õ ˜3ÑÔ€EØ‡I‚Ið ð ð ð Ø&+×&6Ò&6°rÑ&:Ô&:ðñ ô ñ ô ð ð ˆ3�Ð˜ÐÐÐr9   úCallable[[], int]c                 ód   ‡‡— t          j        ¦   «         Št          j        d¦  «        Šˆˆfd„} | S )z%Return a threadsafe counter function.r   c                 óZ   •— ‰5  t          ‰ ¦  «        cd d d ¦  «         S # 1 swxY w Y   d S rM   )Únext)ÚcounterÚlocks   €€r7   Ú_nextzcounter.<locals>._nextæ  sv   ø€ Øð 	!ð 	!Ý˜‘=”=ð	!ð 	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   „  $§$)Ú	threadingÚLockr¹   Úcount)rb  r`  ra  s    @@r7   r`  r`  ß  sG   øø€ õ Œ>ÑÔ€DÝŒo˜aÑ Ô €Gð!ð !ð !ð !ð !ð !ð €Lr9   Úspecimenr|  úOptional[Type[Any]]c                óä  — t          | d¦  «        r/| j        �!t          | j        t          ¦  «        rt          S | j        S t	          | t
          ¦  «        rt          nt          } || t          ¦  «        rt          S  || t          ¦  «        rt          S  || t          ¦  «        rt          S t          | d¦  «        rt          S t          | d¦  «        rt          S t          | d¦  «        rt          S |S )zÄGiven an instance or class, guess if it is or is acting as one of
    the basic collection types: list, set and dict.  If the __emulates__
    property is present, return that preferentially.
    Ú__emulates__Nr«   r   r}   )rª   ri  r¦  r}   r0   r<   r  r1   )rf  r|  Úisas      r7   Úduck_type_collectionrk  í  só   € õ ˆx˜Ñ(Ô(ð )àÔ Ð,µØÔ!¥3ñ2
ô 2
Ð,õ ˆJàÔ(Ð(å" 8­TÑ2Ô2Ð
B�*ˆ*½
€CØ
€sˆ8•TÑÔð ÝˆØ	ˆˆX•sÑ	Ô	ð Ýˆ
Ø	ˆˆX•tÑ	Ô	ð Ýˆåˆx˜Ñ"Ô"ð ÝˆÝ	�˜5Ñ	!Ô	!ð Ýˆ
Ý	�˜5Ñ	!Ô	!ð Ýˆàˆr9   rx  Úargtypeú'Union[Tuple[Type[Any], ...], Type[Any]]r•   c           
     ó6  — t          | |¦  «        r| S t          |t          ¦  «        rHt          j        d|›dd                     d„ |D ¦   «         ¦  «        ›dt          | ¦  «        ›d�¦  «        ‚t          j        d|›d|›dt          | ¦  «        ›d�¦  «        ‚)	Nz
Argument 'z ' is expected to be one of type z or c              3  ó    K  — | ]	}d |z  V — Œ
dS )z'%s'Nrx   )r�   r  s     r7   r‘   z"assert_arg_type.<locals>.<genexpr>  s&   è è € Ð$AÐ$A°A V¨a¡ZÐ$AÐ$AÐ$AÐ$AÐ$AÐ$Ar9   z, got 'ú'z' is expected to be of type 'z', got ')r0   r¬   r    ÚArgumentErrorr’   r<   )rx  rl  r•   s      r7   Úassert_arg_typerr    s¹   € õ �#�wÑÔð Øˆ
å�g�uÑ%Ô%ð 		ÝÔ#Ð#à�4�4˜ŸšÐ$AÐ$A¸Ð$AÑ$AÔ$AÑAÔAÐAÐAÅ4ÈÁ9Ä9À9À9ðNñô ð õ
 Ô#Ð#à�4�4˜˜˜¥$ s¡)¤) ) )ð-ñô ð r9   c           	     ó®  ‡ ‡— t          ‰ d¦  «        r!t          ‰                      ¦   «         ¦  «        S t          ‰ dt          ‰ dd¦  «        ¦  «        Š‰€t	          d‰ z  ¦  «        ‚t          ‰ d¦  «        rˆ ˆfd„} |¦   «         S t          ‰ d¦  «        r-t          ˆfd	„‰                      ¦   «         D ¦   «         ¦  «        S t	          d‰ z  ¦  «        ‚)
z?Return a (key, value) iterator for almost any dict-like object.rˆ  Ú__getitem__rQ   NzObject '%r' is not dict-likeÚiterkeysc               3  ó`   •K  — ‰                      ¦   «         D ]} ‰€J ‚|  ‰| ¦  «        fV — Œd S rM   )ru  )r­  ÚdictlikeÚgetters    €€r7   Úiteratorz$dictlike_iteritems.<locals>.iterator.  sT   øè è € Ø×(Ò(Ñ*Ô*ð 'ð '�ØÐ)Ð)Ð)Ø˜6˜6 #™;œ;Ð&Ð&Ð&Ð&Ð&ð'ð 'r9   r¬  c              3  ó2   •K  — | ]}| ‰|¦  «        fV — Œd S rM   rx   )r�   r­  rx  s     €r7   r‘   z%dictlike_iteritems.<locals>.<genexpr>5  s0   øè è € ÐBÐB¨3�S˜&˜& ™+œ+Ð&ÐBÐBÐBÐBÐBÐBr9   )rª   r  rˆ  r/   rF   Úiterr¬  )rw  ry  rx  s   ` @r7   rÓ  rÓ  "  s÷   øø€ õ ˆx˜Ñ!Ô!ð &Ý�H—N’NÑ$Ô$Ñ%Ô%Ð%å�X˜}­g°hÀÀtÑ.LÔ.LÑMÔM€FØ€~ÝÐ6¸ÑAÑBÔBÐBåˆx˜Ñ$Ô$ð Cð	'ð 	'ð 	'ð 	'ð 	'ð 	'ð
 ˆx‰zŒzÐÝ	�˜6Ñ	"Ô	"ð CÝÐBÐBÐBÐB°(·-²-±/´/ÐBÑBÔBÑBÔBÐBåÐ6¸ÑAÑBÔBÐBr9   c                  ó:   ‡ — e Zd ZU dZded<   dˆ fd„Zddd„Zˆ xZS )ÚclasspropertyaA  A decorator that behaves like @property except that operates
    on classes rather than instances.

    The decorator is currently special when using the declarative
    module, but note that the
    :class:`~.sqlalchemy.ext.declarative.declared_attr`
    decorator should be used for this purpose with declarative.

    úCallable[[Any], Any]rà  rx  r   r�  c                óZ   •—  t          ¦   «         j        |g|¢R i |¤Ž |j        | _        d S rM   )Úsuperrÿ   rv   )rd   rà  rx  r�  r�   s       €r7   rÿ   zclassproperty.__init__G  s7   ø€ Ø�‰ŒÔ˜Ð* Ð*Ð*Ð* rÐ*Ð*Ð*Ø”|ˆŒˆˆr9   Nr3   ry   úOptional[type]rA   c                ó,   — |                       |¦  «        S rM   r  ræ  s      r7   rç  zclassproperty.__get__K  s   € Ø�yŠy˜‰~Œ~Ðr9   )rà  r~  rx  r   r�  r   rM   )r3   r   ry   r�  rA   r   )rs   rt   ru   rv   r:   rÿ   rç  Ú__classcell__©r�   s   @r7   r}  r}  :  sp   ø€ € € € € € ðð ð ÐÐÑð$ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð ð r9   r}  c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )Úhybridpropertyr2  r  c                ó"   — || _         || _        d S rM   )r2  Úclslevel©rd   r2  s     r7   rÿ   zhybridproperty.__init__P  s   € ØˆŒ	ØˆŒˆˆr9   rî  r   r.   rA   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S rM   ©rˆ  r2  ©rd   rî  r.   Úclsvals       r7   rç  zhybridproperty.__get__T  ó0   € ØÐØ—]’] 5Ñ)Ô)ˆFØˆMà—9’9˜XÑ&Ô&Ð&r9   rš   úhybridproperty[_T]c                ó   — || _         | S rM   ©rˆ  r‰  s     r7   Ú
classlevelzhybridproperty.classlevel[  ó   € ØˆŒØˆr9   N©r2  r  ©rî  r   r.   r   rA   r!   )r2  rš   rA   r�  )rs   rt   ru   rÿ   rç  r’  rx   r9   r7   r†  r†  O  sP   € € € € € ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð r9   r†  c                  ó6   — e Zd Zdd„Zdd	„Zdd„Zdd„Zdd„ZdS )Úrw_hybridpropertyr2  r  c                ó0   — || _         || _        d | _        d S rM   )r2  rˆ  Úsetfnr‰  s     r7   rÿ   zrw_hybridproperty.__init__a  s   € ØˆŒ	ØˆŒØ37ˆŒ
ˆ
ˆ
r9   rî  r   r.   rA   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S rM   r‹  rŒ  s       r7   rç  zrw_hybridproperty.__get__f  rŽ  r9   rh   r_   c                óD   — | j         €J ‚|                       ||¦  «         d S rM   ©r™  rð  s      r7   rñ  zrw_hybridproperty.__set__m  s*   € ØŒzÐ%Ð%Ð%Ø�
Š
�8˜UÑ#Ô#Ð#Ð#Ð#r9   rš   úrw_hybridproperty[_T]c                ó   — || _         | S rM   rœ  r‰  s     r7   Úsetterzrw_hybridproperty.setterq  s   € ØˆŒ
Øˆr9   c                ó   — || _         | S rM   r‘  r‰  s     r7   r’  zrw_hybridproperty.classlevelu  r“  r9   Nr”  r•  rû  )r2  rš   rA   r�  )rs   rt   ru   rÿ   rç  rñ  rŸ  r’  rx   r9   r7   r—  r—  `  sx   € € € € € ð8ð 8ð 8ð 8ð
'ð 'ð 'ð 'ð$ð $ð $ð $ðð ð ð ðð ð ð ð ð r9   r—  c                  ó*   — e Zd ZdZdd„Zdd	„Zdd„ZdS )Úhybridmethodz/Decorate a function as cls- or instance- level.r2  r  c                ó0   — |x| _         | _        || _        d S rM   )r2  r:  rˆ  r‰  s     r7   rÿ   zhybridmethod.__init__}  s   € Ø$(Ð(ˆŒ	�D”MØˆŒˆˆr9   rî  r   r.   rA   c                ó|   — |€ | j                              ||j        ¦  «        S | j                             ||¦  «        S rM   )rˆ  rç  r�   r2  )rd   rî  r.   s      r7   rç  zhybridmethod.__get__�  s:   € ØÐØ”=×(Ò(¨°´Ñ@Ô@Ð@à”9×$Ò$ X¨uÑ5Ô5Ð5r9   rš   úhybridmethod[_T]c                ó   — || _         | S rM   r‘  r‰  s     r7   r’  zhybridmethod.classlevel‡  r“  r9   Nr”  )rî  r   r.   r   rA   r  )r2  rš   rA   r¥  )rs   rt   ru   rv   rÿ   rç  r’  rx   r9   r7   r¢  r¢  z  sV   € € € € € Ø9Ð9ðð ð ð ð6ð 6ð 6ð 6ðð ð ð ð ð r9   r¢  c                  ój   — e Zd ZU dZded<   i Zded<    ej        ¦   «         Z	 	 ddd„Z	d„ Z
d„ Zd„ ZdS )ÚsymbolaI  A constant symbol.

    >>> symbol("foo") is symbol("foo")
    True
    >>> symbol("foo")
    <symbol 'foo>

    A slight refinement of the MAGICCOOKIE=object() pattern.  The primary
    advantage of symbol() is its repr().  They are also singletons.

    Repeated calls of symbol('name') will all return the same instance.

    rT   r•   zDict[str, symbol]ÚsymbolsNrá  rŠ   Ú	canonicalrJ  rA   c                ó€  — | j         5  | j                             |¦  «        }|€ct          |t          ¦  «        sJ ‚|€t          |¦  «        }t                               t          |¦  «        }||_	        |r||_
        || j        |<   n|r||k    rt          d|›d|› �¦  «        ‚|cd d d ¦  «         S # 1 swxY w Y   d S )Nz#Can't replace canonical symbol for z with new int value )Ú_lockr©  rQ   r0   rT   ÚhashrÄ   Ú__new__r¨  r•   rv   rF   )ry   r•   rá  rª  rÀ   s        r7   r®  zsymbol.__new__   s0  € ð ŒYð 	ð 	Ø”+—/’/ $Ñ'Ô'ˆCØˆ{Ý! $­Ñ,Ô,Ð,Ð,Ð,ØÐ$Ý $ T¡
¤
�IÝ—k’k¥&¨)Ñ4Ô4�Ø�”Øð &Ø"%�C”Kð %(�”˜DÑ!Ð!àð  ¨cÒ!1Ð!1Ý#ð:¸dð :ð :Ø.7ð:ð :ñô ð ð ð-	ð 	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ð 	ð 	s   ˆBB3Â3B7Â:B7c                ó>   — t           | j        dt          | ¦  «        ffS )NrS   )r¨  r•   rÄ   rc   s    r7   Ú
__reduce__zsymbol.__reduce__¾  s   € Ý˜œ	 3­¨D©	¬	Ð2Ð2Ð2r9   c                ó    — t          | ¦  «        S rM   r  rc   s    r7   Ú__str__zsymbol.__str__Á  s   € Ý�D‰zŒzÐr9   c                ó   — d| j         ›d�S )Nzsymbol(rƒ  ©r•   rc   s    r7   Ú__repr__zsymbol.__repr__Ä  s   € Ø'˜œÐ'Ð'Ð'Ð'r9   )NN)r•   rT   rá  rŠ   rª  rJ  rA   r¨  )rs   rt   ru   rv   r:   r©  rc  rd  r¬  r®  r°  r²  rµ  rx   r9   r7   r¨  r¨  Œ  s™   € € € € € € ðð ð €I€I�Ià!#€GÐ#Ð#Ð#Ñ#ØˆIŒNÑÔ€Eð
 "Ø#'ð	ð ð ð ð ð<3ð 3ð 3ðð ð ð(ð (ð (ð (ð (r9   r¨  c                  ó   — e Zd Zdd„Zdd„ZdS )Ú_IntFlagMetaÚ	classnamerT   r±   úTuple[Type[Any], ...]Údict_ró   r�  r   rA   r_   c                ó¢  — g x| _         }|                     ¦   «         D ]�\  }}t          j        d|¦  «        rŒt	          |t
          ¦  «        rt          ||¬¦  «        }n%|                     d¦  «        st          d¦  «        ‚Œgt          | ||¦  «         | 
                    |¦  «         ŒŽt          j        d„ |D ¦   «         ¦  «        | _        d S )Nz^__.*__$)rª  r¡  z#Expected integer values for IntFlagc                ó   — i | ]
}|j         |“ŒS rx   r´  )r�   rÀ   s     r7   ú
<dictcomp>z)_IntFlagMeta.__init__.<locals>.<dictcomp>ß  s   € Ð,Ð,Ð,˜sˆSŒX�sÐ,Ð,Ð,r9   )Ú_itemsrˆ  r“   Úmatchr0   rÄ   r¨  rµ  rF   rº  r«   r   ÚimmutabledictÚ__members__)	ry   r¸  r±   rº  r�  rˆ  rV  ÚvrÀ   s	            r7   rÿ   z_IntFlagMeta.__init__É  sÞ   € ð  ÐˆŒ
�UØ—K’K‘M”Mð 
	ð 
	‰DˆAˆqÝŒx˜ QÑ'Ô'ð ØÝ˜!�SÑ!Ô!ð Ý˜Q¨!Ð,Ñ,Ô,��Ø—\’\ #Ñ&Ô&ð ÝÐ EÑFÔFÐFàÝ�C˜˜CÑ Ô Ð Ø�LŠL˜ÑÔÐÐå&Ô4Ø,Ð, eÐ,Ñ,Ô,ñ
ô 
ˆŒˆˆr9   úIterator[symbol]c                ó    — t          d¦  «        ‚)Nz“iter not implemented to ensure compatibility with Python 3.11 IntFlag.  Please use __members__.  See https://github.com/python/cpython/issues/99304rë  rc   s    r7   Ú__iter__z_IntFlagMeta.__iter__â  s   € Ý!ð=ñ
ô 
ð 	
r9   N)
r¸  rT   r±   r¹  rº  ró   r�  r   rA   r_   )rA   rÃ  )rs   rt   ru   rÿ   rÅ  rx   r9   r7   r·  r·  È  s<   € € € € € ð
ð 
ð 
ð 
ð2
ð 
ð 
ð 
ð 
ð 
r9   r·  c                  ó   — e Zd ZdZdS )Ú_FastIntFlagzÆAn 'IntFlag' copycat that isn't slow when performing bitwise
    operations.

    the ``FastIntFlag`` class will return ``enum.IntFlag`` under TYPE_CHECKING
    and ``_FastIntFlag`` otherwise.

    NrÌ  rx   r9   r7   rÇ  rÇ  ê  s   € € € € € ðð ð ð r9   rÇ  )Ú	metaclass)ÚIntFlagÚ_EÚchoicesúDict[_E, List[Any]]Úresolve_symbol_namesúOptional[_E]c                ó´   — |                      ¦   «         D ]&\  }}| |u r|c S |r| |j        k    r|c S | |v r|c S Œ'| €dS t          j        d|› d| ›�¦  «        ‚)aO  Given a user parameter, parse the parameter into a chosen value
    from a list of choice objects, typically Enum values.

    The user argument can be a string name that matches the name of a
    symbol, or the symbol object itself, or any number of alternate choices
    such as True/False/ None etc.

    :param arg: the user argument.
    :param choices: dictionary of enum values to lists of possible
        entries for each.
    :param name: name of the argument.   Used in an :class:`.ArgumentError`
        that is raised if the parameter doesn't match any available argument.

    NzInvalid value for 'z': )rˆ  r•   r    rq  )rx  rË  r•   rÍ  Ú
enum_valueÚchoices         r7   Úparse_user_argument_for_enumrÒ  ÿ  sŸ   € ð( &Ÿmšm™oœoð ð Ñˆ
�FØ�*ÐÐØÐÐÐØ!ð 	 c¨Z¬_Ò&<Ð&<ØÐÐÐØ�Fˆ]ˆ]ØÐÐÐð ð €{Øˆtå
Ô
ÐB°$ÐBÐB¸3ÐBÐBÑ
CÔ
CÐCr9   rî  c                ó2   — t           | _         t           dz  a dS )zÞAssign a '_creation_order' sequence to the given instance.

    This allows multiple instances to be sorted in order of creation
    (typically within a single thread; the counter is not particularly
    threadsafe).

    r   N)Ú_creation_order)rî  s    r7   Úset_creation_orderrÕ  $  s   € õ  /€HÔÝ�qÑ€O€O€Or9   rk  c                óŒ   — 	  | |i |¤ŽS # t           $ r/ t          dt          j        ¦   «         dd…         z  ¦  «         Y dS w xY w)zXexecutes the given function, catches all exceptions and converts to
    a warning.

    z%s('%s') ignoredr   r   N)rD   Úwarnra   rb   )r2  r>  rk  s      r7   Úwarn_exceptionrØ  1  sc   € ð
7Øˆt�TÐ$˜VÐ$Ð$Ð$øÝð 7ð 7ð 7ÝÐ¥#¤,¡.¤.°°1°Ô"5Ñ5Ñ6Ô6Ð6Ð6Ð6Ð6ð7øøøs   ‚
 Š5AÁAé   c                ól   — 	 t          | ¦  «        |k    rd| d|…         z  S | S # t          $ r | cY S w xY w)Nz%s...r   )rÚ   rF   )rh   Úlen_s     r7   Úellipses_stringrÜ  <  sT   € ðÝˆu‰:Œ:˜ÒÐØ˜U 1 T 6œ]Ñ*Ð*àˆLøÝð ð ð Øˆˆˆðøøøs   ‚$ ¢$ ¤3²3c                  ó@   ‡ — e Zd ZU dZded<   dˆ fd
„Zdd„Zdd„Zˆ xZS )Ú_hash_limit_stringa/  A string subclass that can only be hashed on a maximum amount
    of unique values.

    This is used for warnings so that we can send out parameterized warnings
    without the __warningregistry__ of the module,  or the non-overridable
    "once" registry within warnings.py, overloading memory,


    rÄ   Ú_hashrh   rT   Únumr>  úSequence[Any]rA   c                ó´   •— ||z  d|z  z   }t          ¦   «                              | |¦  «        }t          d|t          |¦  «        |z  fz  ¦  «        |_        |S )Nz6 (this warning may be suppressed after %d occurrences)z%s_%d)r€  r®  r­  rß  )ry   rh   rà  r>  Úinterpolatedrd   r�   s         €r7   r®  z_hash_limit_string.__new__S  s_   ø€ ð  ™ØDÀsÑJñ
ˆõ ‰wŒw�Š˜s LÑ1Ô1ˆÝ˜' U­D°Ñ,>Ô,>ÀÑ,DÐ$EÑEÑFÔFˆŒ
Øˆr9   c                ó   — | j         S rM   )rß  rc   s    r7   Ú__hash__z_hash_limit_string.__hash__]  s
   € ØŒzÐr9   Úotherr   r›   c                óB   — t          | ¦  «        t          |¦  «        k    S rM   )r­  )rd   ræ  s     r7   Ú__eq__z_hash_limit_string.__eq__`  s   € Ý�D‰zŒz�T %™[œ[Ò(Ð(r9   )rh   rT   rà  rÄ   r>  rá  rA   rÞ  )rA   rÄ   )ræ  r   rA   r›   )	rs   rt   ru   rv   r:   r®  rå  rè  rƒ  r„  s   @r7   rÞ  rÞ  F  s|   ø€ € € € € € ðð ð €J€J�Jðð ð ð ð ð ðð ð ð ð)ð )ð )ð )ð )ð )ð )ð )r9   rÞ  Úmsgc                óˆ   — |r%t          t          j        | |¬¦  «        ¦  «         dS t          | t          j        ¦  «         dS )zdIssue a warning.

    If msg is a string, :class:`.exc.SAWarning` is used as
    the category.

    )rí   N)Ú_warnings_warnr    Ú	SAWarning)ré  rí   s     r7   r×  r×  d  sG   € ð ð +Ý•s”} S¨tÐ4Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5å�s�CœMÑ*Ô*Ð*Ð*Ð*r9   rá  c                ó`   — |rt          | d|¦  «        } t          | t          j        ¦  «         dS )z\Issue a warning with a parameterized string, limiting the number
    of registrations.

    é
   N)rÞ  rë  r    rì  )ré  r>  s     r7   Úwarn_limitedrï  q  s5   € ð
 ð 0Ý   b¨$Ñ/Ô/ˆÝ�3�œÑ&Ô&Ð&Ð&Ð&r9   z)Dict[CodeType, Tuple[str, Type[Warning]]]Ú_warning_tagsÚmessageÚcategoryúType[Warning]úCallable[[_F], _F]c                ó   ‡ ‡— ˆˆ fd„}|S )Nc                ó*   •— ‰‰ft           | j        <   | S rM   )rð  r  )rÂ   rò  rñ  s    €€r7   Úgoz#tag_method_for_warnings.<locals>.go�  s   ø€ Ø&-¨xÐ%8��b”kÑ"Øˆ	r9   rx   )rñ  rò  r÷  s   `` r7   Útag_method_for_warningsrø  ~  s)   øø€ ðð ð ð ð ð ð €Ir9   z&^(?:sqlalchemy\.(?!testing)|alembic\.)úUnion[str, Warning]úOptional[Type[Warning]]Ú
stacklevelc                óÔ  — 	 t          j        |¦  «        }dx}}|�~|s5t          j        t          |j                             dd¦  «        ¦  «        sd}|j        t          v r#d}t          |j                 \  }}|p|}| › d|› d�} |j	        }|s|dz  }n|r|rn|­~n# t          $ r d}Y n d}Y nxY w|�t          j        | ||dz   ¬	¦  «         d S t          j        | |dz   ¬	¦  «         d S )
NFrs   rÕ   Tz (rƒ  r   r   )rû  )ra   Ú	_getframer“   r¿  Ú_not_sa_patternÚ	f_globalsrQ   Úf_coderð  Úf_backr2   Úwarningsr×  )rñ  rò  rû  ÚframeÚstacklevel_foundÚwarning_tag_foundÚ_suffixÚ	_categorys           r7   rë  rë  ‹  s]  € ð%Ý”˜jÑ)Ô)ˆð 05Ð4ÐÐ,ØÐð $ð (­B¬HÝ ¤×!4Ò!4°ZÀÑ!DÔ!Dñ-ô -ð (ð
 $(Ð ð
 Œ|�}Ð,Ð,Ø$(Ð!Ý'4°U´\Ô'BÑ$�˜)Ø#Ð0 y�Ø$Ð2Ð2¨Ð2Ð2Ð2�à”LˆEà#ð Ø˜a‘�
�
Ø!ð Ð&7ð Øð3 Ðøøõ ð ð ð ð ˆ
ˆ
ˆ
ðð ˆ
ˆ
ˆ
øøøð< ÐÝŒ�g˜x°JÀ±NÐCÑCÔCÐCÐCÐCåŒ�g¨*°q©.Ð9Ñ9Ô9Ð9Ð9Ð9s   ‚B ÂB.Â)B.r  Úretry_on_exceptionúCallable[..., Optional[_T]]c                ó"   ‡ ‡‡— ‰ gŠdˆ ˆˆfd„}|S )zNDecorate the given function to be a no-op after it is called exactly
    once.rx  r   r�  rA   úOptional[_T]c                 ó†   •— ‰}‰r;‰                      ¦   «         }	  || i |¤ŽS #  ‰r‰                     d|¦  «         ‚ xY wd S )Nr   )r~   Úinsert)rx  r�  Ú	strong_fnÚonce_fnrÂ   Úoncer  s       €€€r7   r÷  zonly_once.<locals>.goÆ  sf   ø€ ð ˆ	Øð 	Ø—h’h‘j”jˆGðØ�w Ð* rÐ*Ð*Ð*øðØ%ð ,Ø—K’K  7Ñ+Ô+Ð+Øøøøàˆts   ›# £>)rx  r   r�  r   rA   r  rx   )rÂ   r  r÷  r  s   `` @r7   Ú	only_oncer  ¾  s=   øøø€ ð ˆ4€Dðð ð ð ð ð ð ð ð €Ir9   z%sqlalchemy/([a-z_]+/){0,2}[a-z_]+\.pyzunit(?:2|test2?/)ÚtbÚexclude_prefixúre.Pattern[str]Úexclude_suffixc                ó`  — d}t          | ¦  «        dz
  }||k    rA|                     | |         ¦  «        r&|dz  }||k    r|                     | |         ¦  «        °&||k    rA|                     | |         ¦  «        r&|dz  }||k    r|                     | |         ¦  «        °&| ||dz   …         S )at  Chop extraneous lines off beginning and end of a traceback.

    :param tb:
      a list of traceback lines as returned by ``traceback.format_stack()``

    :param exclude_prefix:
      a regular expression object matching lines to skip at beginning of
      ``tb``

    :param exclude_suffix:
      a regular expression object matching lines to skip at end of ``tb``
    r   r   )rÚ   Úsearch)r  r  r  r§   Úends        r7   Úchop_tracebackr  Ü  s½   € ð" €EÝ
ˆb‰'Œ'�A‰+€CØ
�3Š,ˆ,˜>×0Ò0°°E´Ñ;Ô;ˆ,Ø�‰
ˆð �3Š,ˆ,˜>×0Ò0°°E´Ñ;Ô;ˆ,à
�3Š,ˆ,˜>×0Ò0°°C´Ñ9Ô9ˆ,Øˆq‰ˆð �3Š,ˆ,˜>×0Ò0°°C´Ñ9Ô9ˆ,àˆe�c˜A‘gˆoÔÐr9   c                ó|   — d| z  }t          ¦   «                              ¦   «         }t          ||¦  «         |d         S )Nz&def set(obj, value):    obj.%s = valuer}   )r¹  Úcopyrõ   )Úattrnamerí   rî   s      r7   Ú
attrsetterr  ù  s4   € Ø3°hÑ>€DÝ
‰(Œ(�-Š-‰/Œ/€CÝˆˆs�O„O€OØˆuŒ:Ðr9   z^__.+__$c                  ó(   ‡ — e Zd ZdZdZdˆ fd„Zˆ xZS )Ú
TypingOnlyz“A mixin class that marks a class as 'typing only', meaning it has
    absolutely no methods, attributes, or runtime functionality whatsoever.

    rx   rA   r_   c                ó¶   •— t           | j        v r)d„ | j        D ¦   «         }|rt          d| › d|› d�¦  «        ‚t	          ¦   «                              ¦   «          d S )Nc                óF   — h | ]}t                                |¦  «        °|’ŒS rx   )Ú_dundersr¿  ©r�   r•   s     r7   ú	<setcomp>z/TypingOnly.__init_subclass__.<locals>.<setcomp>  s9   € ð ð ð ØµX·^²^ÀDÑ5IÔ5IðØðð ð r9   zClass z< directly inherits TypingOnly but has additional attributes r  )r  r+  rP   ÚAssertionErrorr€  Ú__init_subclass__)ry   Ú	remainingr�   s     €r7   r&  zTypingOnly.__init_subclass__  s�   ø€ Ý˜œÐ&Ð&ðð Ø!$¤ðñ ô ˆIð ð Ý$ð:˜Sð :ð :Ø-6ð:ð :ð :ñô ð õ 	‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r9   rr   )rs   rt   ru   rv   rw   r&  rƒ  r„  s   @r7   r  r    sN   ø€ € € € € ðð ð
 €Ið
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$r9   r  c                  óJ   ‡ — e Zd ZU dZded<   	 d
ˆ fd„Zedd	„¦   «         Zˆ xZS )ÚEnsureKWArga6  Apply translation of functions to accept \**kw arguments if they
    don't already.

    Used to ensure cross-compatibility with third party legacy code, for things
    like compiler visit methods that need to accept ``**kw`` arguments,
    but may have been copied from old code that didn't accept them.

    rT   Úensure_kwargrA   r_   c                ó2  •— | j         }| j        }|re|D ]b}t          j        ||¦  «        }|rI||         }t	          j        |¦  «        }|j        s&|                      |¦  «        }t          | ||¦  «         Œct          ¦   «          
                    ¦   «          d S rM   )r*  rP   r“   r¿  r   rÙ   r@  Ú
_wrap_w_kwrº  r€  r&  )	ry   Úfn_regÚclsdictr­  rZ   rÂ   ræ   Úwrappedr�   s	           €r7   r&  zEnsureKWArg.__init_subclass__+  s¥   ø€ ØÔ!ˆØ”,ˆØð 	3Øð 3ð 3�Ý”H˜V SÑ)Ô)�Øð 3Ø  œ�BÝ!Ô8¸Ñ<Ô<�DØœ:ð 3Ø"%§.¢.°Ñ"4Ô"4˜Ý  S¨'Ñ2Ô2Ð2øÝ‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r9   rÂ   rš   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )Nrx  r   r�  rA   c                 ó   •—  ‰| Ž S rM   rx   )rx  r�  rÂ   s     €r7   Úwrapz$EnsureKWArg._wrap_w_kw.<locals>.wrap;  s   ø€ Ø�2�s�8ˆOr9   )rx  r   r�  r   rA   r   r   )ry   rÂ   r2  s    ` r7   r,  zEnsureKWArg._wrap_w_kw9  s3   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ ˜d BÑ'Ô'Ð'r9   rr   )rÂ   rš   rA   rš   )	rs   rt   ru   rv   r:   r&  rý  r,  rƒ  r„  s   @r7   r)  r)    s|   ø€ € € € € € ðð ð ÐÐÑðð$ð $ð $ð $ð $ð $ð ð(ð (ð (ñ „[ð(ð (ð (ð (ð (r9   r)  c                ó0  — t          |d¦  «        rt          | |¦  «        S | }|j        j        |_        t          |d¦  «        r|j        |_        t          |j        d¦  «        r|j        j        r|j        j        |_        n|j        r|j        |_        |S )z‘Augment functools.update_wrapper() to work with objects with
    a ``__call__()`` method.

    :param fn:
      object with __call__ method

    rs   rt   rv   )rª   r   r�   rs   rt   r;  rv   )ÚwrapperrÂ   Ú_fs      r7   Úwrap_callabler6  A  s˜   € õ ˆr�:ÑÔð Ý˜g rÑ*Ô*Ð*àˆØ”lÔ+ˆŒÝ�2�|Ñ$Ô$ð 	*ØœMˆBŒMå�2”; 	Ñ*Ô*ð 	$¨r¬{Ô/Bð 	$ØœÔ,ˆBŒJˆJØŒZð 	$ØœˆBŒJàˆ	r9   c                óº  — d| vr|                       d¦  «        S d}g g}d}t          | ¦  «        }||k     r›| |         }|dk    rE|dk    r9||dz
  k     r0| |dz            dk    r!|d                              d¦  «         |dz  }nC|dz  }n=|dk    r|dk    r|                     g ¦  «         n|d                              |¦  «         |dz  }||k     °›d„ |D ¦   «         S )aÄ  Parse a dotted identifier with accommodation for quoted names.

    Includes support for SQL-style double quotes as a literal character.

    E.g.::

        >>> quoted_token_parser("name")
        ["name"]
        >>> quoted_token_parser("schema.name")
        ["schema", "name"]
        >>> quoted_token_parser('"Schema"."Name"')
        ['Schema', 'Name']
        >>> quoted_token_parser('"Schema"."Name""Foo"')
        ['Schema', 'Name""Foo']

    ú"r  r   r   rU  c                ó8   — g | ]}d                       |¦  «        ‘ŒS )rÕ   )r’   )r�   r  s     r7   rz  z'quoted_token_parser.<locals>.<listcomp>‚  s"   € Ð/Ð/Ð/˜uˆB�GŠG�E‰NŒNÐ/Ð/Ð/r9   )r  rÚ   r«   )rh   r˜  r  ÚidxÚlvÚchars         r7   Úquoted_token_parserr=  Y  s  € ð$ �%ÐÐØ�{Š{˜3ÑÔÐð €EØ!˜d€FØ
€CÝ	ˆU‰Œ€BØ
�Š(ˆ(Ø�SŒzˆØ�3Š;ˆ;Ø˜Šzˆz˜c B¨¡Fšl˜l¨u°S¸1±W¬~ÀÒ/DÐ/DØ�r”
×!Ò! #Ñ&Ô&Ð&Ø�q‘��à˜‘
��Ø�SŠ[ˆ[˜U ašZ˜ZØ�MŠM˜"ÑÔÐÐà�2ŒJ×Ò˜dÑ#Ô#Ð#Øˆq‰ˆð �Š(ˆ(ð 0Ð/¨Ð/Ñ/Ô/Ð/r9   Úparamsc                ó>   ‡ ‡— t          j        ‰ ¦  «        Š ˆ ˆfd„}|S )Nc                óv   •— | j         d ur| j         pd}|rt          |ˆfd„‰D ¦   «         ¦  «        }|| _         | S )NrÕ   c                ó   •— i | ]}|‰“ŒS rx   rx   )r�   ÚparamrC  s     €r7   r½  z8add_parameter_text.<locals>.decorate.<locals>.<dictcomp>‹  s   ø€ Ð)JÐ)JÐ)J¸%¨%°Ð)JÐ)JÐ)Jr9   )rv   Úinject_param_text)rÂ   rá  r>  rC  s     €€r7   rð   z$add_parameter_text.<locals>.decorateˆ  sT   ø€ ØŒj Ð$Ð3¨¬Ð9°rˆØð 	LÝ# CÐ)JÐ)JÐ)JÐ)JÀ6Ð)JÑ)JÔ)JÑKÔKˆCØˆŒ
Øˆ	r9   )r   r„  )r>  rC  rð   s   `` r7   Úadd_parameter_textrD  …  s9   øø€ ÝÔ! &Ñ)Ô)€Fðð ð ð ð ð ð €Or9   c                óè   — |                       dd¦  «        }t          |¦  «        dk    r| S |\  }}|                     d¦  «        s|dz   t          j        |¦  «        z   S t          j        | ¦  «        S )Nú
r   rŒ   )r  rÚ   rµ  ÚtextwrapÚdedent)rC  Ú
split_textÚ	firstliner'  s       r7   Ú_dedent_docstringrK  ’  su   € Ø—’˜D !Ñ$Ô$€JÝ
ˆ:�„˜!ÒÐØˆà)Ñˆ	�9Ø×Ò Ñ$Ô$ð %Ø˜4Ñ¥(¤/°)Ñ"<Ô"<Ñ<Ð<åŒ˜tÑ$Ô$Ð$r9   Úgiven_doctextÚ
injecttextÚposc                ó,  — t          | pd¦  «        }|                     d¦  «        }t          |¦  «        dk    r|                     d¦  «         t	          j        |¦  «                             d¦  «        }|d         r|                     dd¦  «         d„ t          |¦  «        D ¦   «         }|                     dd¦  «         |t          |t          |¦  «        dz
  ¦  «                 }|d|…         |z   ||d …         z   }d 	                    |¦  «        S )NrÕ   rF  r   r   c                ó@   — g | ]\  }}|                      ¦   «         °|‘ŒS rx   )rA  )r�   rà  Úlines      r7   rz  z)inject_docstring_text.<locals>.<listcomp>©  s)   € ÐHÐHÐH‘i�c˜4¸4¿:º:¹<¼<ÐHˆcÐHÐHÐHr9   )
rK  r  rÚ   r«   rG  rH  r  r†  Úminr’   )rL  rM  rN  ÚdoctextÚlinesÚinjectlinesÚblanksÚ
inject_poss           r7   Úinject_docstring_textrX  ž  s  € õ % ]Ð%8°bÑ9Ô9€GØ�MŠM˜$ÑÔ€EÝ
ˆ5�z„z�Q‚€Ø�Š�RÑÔÐÝ”/ *Ñ-Ô-×3Ò3°DÑ9Ô9€KØ�1„~ð "Ø×Ò˜1˜bÑ!Ô!Ð!àHÐH¥9¨UÑ#3Ô#3ÐHÑHÔH€FØ
‡M‚M�!�QÑÔÐà�˜C¥ V¡¤¨q¡Ñ1Ô1Ô2€Jà�!�J�,Ô +Ñ-°°j°k°kÔ0BÑB€EØ�9Š9�UÑÔÐr9   z(\s+):param (.+?):rS  Úinject_paramsúDict[str, str]c                óz  — t          j        |                      ¦   «         ¦  «        }g }d }|�rz|                     ¦   «         }t                               |¦  «        }|€¦|r£|                     d¦  «                             d¦  «        }||v rwdt          |                     d¦  «        ¦  «        z  dz   }|rBt          j        d|d         ¦  «        }	|	r%dt          |	                     d¦  «        ¦  «        z  }|||         z   }nŒ|r| 
                    d|dg¦  «         d }no|                     ¦   «         s| 
                    ||dg¦  «         d }n@|                     d¦  «        r+| 
                    ||                     ¦   «         g¦  «         �Œe|                     |¦  «         |�°zd                     |¦  «        S )	Nr   Ú*rŒ   r   z(\s+)\Sr   rF  z::)ÚcollectionsÚdequeÚ
splitlinesÚpopleftÚ
_param_regr¿  rú   ÚlstriprÚ   r“   r€   Úrstripr¶  r«   r’   )
rS  rY  ÚdoclinesrT  Ú	to_injectrQ  rZ   rB  ÚindentÚm2s
             r7   rC  rC  µ  sÃ  € ÝÔ  ×!3Ò!3Ñ!5Ô!5Ñ6Ô6€HØ€Eð €IØ
ñ Ø×ÒÑ!Ô!ˆå×Ò˜TÑ"Ô"ˆàÐØð >ØŸš ™
œ
×)Ò)¨#Ñ.Ô.�Ø˜MÐ)Ð)à ¥3 q§w¢w¨q¡z¤z¡?¤?Ñ2°SÑ8�Fð  ð <ÝœX j°(¸1´+Ñ>Ô>˜Øð <Ø%(­3¨r¯xªx¸©{¬{Ñ+;Ô+;Ñ%;˜Fà &¨°uÔ)=Ñ =�IøØð 
	Ø�LŠL˜$ 	¨4Ð0Ñ1Ô1Ð1ØˆIˆIØ—’‘”ð 	Ø�LŠL˜$ 	¨4Ð0Ñ1Ô1Ð1ØˆIˆIØ�]Š]˜4Ñ Ô ð 	ð �LŠL˜$ × 0Ò 0Ñ 2Ô 2Ð3Ñ4Ô4Ð4ÙØ�Š�TÑÔÐð? ñ ðB �9Š9�UÑÔÐr9   ré   c                ó*  — t          | ¦  «        dk    rdS t          | ¦  «        dk    }|r
| dd…         n| dd…         | dd…         z   } d„ | D ¦   «         }|rd                     |¦  «        S d                     |dd…         ¦  «        ›d|d         ›�S )	zŒTrims a list of strings from the middle and return a string of up to
    four elements. Strings greater than 11 characters will be truncatedr   NrH  rÐ   rU  c                óR   — g | ]$}t          |¦  «        d k    rd|dd …         z  n|‘Œ%S )é   z%s..N)rÚ   r#  s     r7   rz  z$repr_tuple_names.<locals>.<listcomp>ç  s8   € Ð
LÐ
LÐ
L¸d¥ T¡¤¨R¢ ˆ6�D˜˜"˜”IÑÐ°TÐ
LÐ
LÐ
Lr9   r‚  z, ..., )rÚ   r’   )ré   ÚflagÚress      r7   Úrepr_tuple_namesrm  à  s¨   € õ ˆ5�z„z�Q‚€ØˆtÝˆu‰:Œ:˜Š?€DØÐ;ˆE�!�A�#ŒJˆJ E¨!¨A¨#¤J°°r°s°s´Ñ$;€EØ
LÐ
LÀeÐ
LÑ
LÔ
L€CØð >Ø�yŠy˜‰~Œ~Ðà $§	¢	¨#¨a°¨c¬(Ñ 3Ô 3Ð 3Ð 3°S¸´W°WÐ=Ð=r9   c                ó:   — t           rdS | rt          d¦  «        ‚dS )NTzDcython extensions were expected to be installed, but are not presentF)r   ÚImportError)Úraise_s    r7   Úhas_compiled_extrq  î  s5   € Ýð ØˆtØ	ð Ýð"ñ
ô 
ð 	
ð
 ˆur9   c                  ó,   — e Zd Z ej        ¦   «         ZdS )Ú_MissingN)rs   rt   ru   ÚenumÚautoÚMissingrx   r9   r7   rs  rs  ú  s   € € € € € ØˆdŒi‰kŒk€G€G€Gr9   rs  )r3   r   r4   r+   rA   rB   )r3   r   rA   rB   )rS   r   rA   rT   )ry   rz   rA   r{   )r…   r   rA   rT   rM   )ry   rˆ   r‰   rŠ   rA   rT   )r—   r˜   r™   rš   rA   r›   )r¢   r£   rA   r¤   )r¯   r°   r±   rT   rA   r²   )rÂ   rÃ   r�   rÄ   rA   rÅ   )rÊ   rš   rA   rË   )rí   rò   rî   ró   rë   rT   rA   rš   )ry   r<   r!  r#  r"  r$  rA   r%  )ry   r<   r!  r#  r"  r›   rA   r#  )r2  rš   rA   r3  )FF)rÂ   rš   r6  r›   r7  r›   rA   r8  )T)rÂ   rE  rÒ   r›   rA   rF  )rx   rx   rx   rx   )r_  rˆ   r`  rT   ra  rT   rb  r°   rc  r°   rd  r°   re  r°   rA   rf  )rx   Nrx   )
r3   r   rq  rr  rs  rt  ru  r°   rA   rT   )NNr¯  N)NNNr(  )r3   r   rA   r›   )rC  rT   rA   rD  )rh   r   rA   rJ  )TN)r�  ró   r­  rT   rf   rˆ   rM  r›   rN  rO  rA   r_   )r3   r   ry   rˆ   rA   r¤   )
r3   r!   ry   rz   r>  r   r�  r   rA   r!   )rA   r\  )rf  r   r|  rg  rA   rg  )rx  r   rl  rm  r•   rT   rA   r   )F)
rx  r   rË  rÌ  r•   rT   rÍ  r›   rA   rÎ  rü  )r2  rš   r>  r   rk  r   rA   r   )rÙ  )ré  rT   rí   rŠ   rA   r_   )ré  rT   r>  rá  rA   r_   )rñ  rT   rò  ró  rA   rô  )Nr   )rñ  rù  rò  rú  rû  rÄ   rA   r_   )rÂ   r  r  r›   rA   r	  )r  r3  r  r  r  r  rA   r3  )r>  r   rC  rT   rA   rô  )rC  rT   rA   rT   )rL  rŠ   rM  rT   rN  rÄ   rA   rT   )rS  rT   rY  rZ  rA   rT   )ré   r3  rA   rŠ   )§rv   Ú
__future__r   r]  rt  Ú	functoolsr   rN   r¹   rÏ  r“   ra   rG  rc  rà   r   Útypingr   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r  rÕ   r   r   Ú_has_cyr   r   r    r!   r"   r$   r&   r'   r(   r)   Úpy314Úannotationlibr*   r+   r8   r<   rP   rç  r=   r@   rG   rK   Úpy310r[   r]   r„   r‡   r–   r¡   r®   rÁ   rÈ   rÉ   rñ   râ   rö   r÷   rù   r   r(  r5  rD  rÝ   r^  ri  rl  rp  r�  r’  r©  r®  rÃ  rÇ  rÛ  rÜ  rÞ  rÿ  r  r*  Únon_memoized_propertyÚpropertyÚro_memoized_propertyÚro_non_memoized_propertyr  r  Ú!HasMemoized_ro_memoized_attributer$  r,  rB  rI  rL  rQ  rW  r[  r`  rk  rr  rÓ  r}  r†  r—  r¢  rÄ   r¨  r·  rÇ  rÉ  ÚFastIntFlagÚEnumrÊ  rÒ  rÔ  rÕ  rØ  rÜ  rT   rÞ  r×  rï  rð  r:   rø  Úcompilerþ  rë  r  Ú_SQLA_REÚ_UNITTEST_REr  ÚNoneTyper  r"  r  r)  r6  r=  rD  rK  rX  ra  rC  rm  rq  rs  rv  Ú	MissingOrrx   r9   r7   ú<module>rŠ     s  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€WˆT�]„]€Øˆ� 4Ð(Ñ(Ô(€Ø€WˆT˜ # s (Ô+Ð,Ñ,Ô,€Ø€gˆeÐ3Ð4Ñ4Ô4€Ø€gˆeÐ@ÐAÑAÔA€Ø€gˆeÐ0Ð1Ñ1Ô1€Ø€gˆeÐ.Ð/Ñ/Ô/€ð 
„<ð c2ð 5Ð4Ð4Ð4Ð4Ð4Ø$Ð$Ð$Ð$Ð$Ð$ðð ð ð !œMÐ*;Ô<ÔDÐðð ð ñ$ð ð ð ñBHð Hð Hð Hð Hð „\ð 2ñ,ð ,ð ,ð ,ð ,ñ
2ð 2ð 2ð 2ñ"$ð $ð $ð $ð82ð 82ð 82ð 82ð 82ñ 82ô 82ð 82ñvð ð ð ñ6ð 6ð 6ð 6ð /3ñOñ Oð Oð Oð Oñ,ð ,ð ,ð ,ñ$ð ð ð ñMð Mð Mð Mñ ð ð ð ð €gˆeÐ/Ð0Ñ0Ô0€ñ
Y,ð Y,ð Y,ð Y,ñxð ð ð ð €gˆe�n„n€Ø€gˆe�n„n€ð(ð (ð (ð (ð (ñ (ô (ð (ðV
ð 
ð 
ð( 
ð  $Ø!ð	ð ñ ð ð ñ 
„ðð 
à-1ÀEðð ñ ð ð ñ 
„ðð .2ÀEð2ð 2ñ 2ð 2ð 2ð 2ñj2ð 2ð 2ð 2ð EJñ5;ñ 5;ð 5;ð 5;ð 5;ðr HLñr
ñ r
ð r
ð r
ð r
ñjð ð ð ðJ #%ØØ "Ø/1ññ ð ð ð ð26ð 6ð 6ð(	ð 	ð 	ð 02Ø8<Ø "ñ	KBñ KBð KBð KBð KBð\;ð ;ð ;ð ;ð ;ñ ;ô ;ð ;ð<#ð #ð #ðLð ð ð& 
Ø	Ø	Øñ@/ð @/ð @/ð @/ðFð ð ñSð Sð Sð Sðl €wˆvÐ9Ð:Ñ:Ô:€ð($ð ($ð ($ð ($ð ($˜G EœNñ ($ô ($ð ($ðV"ð "ð "ð "ð "Ð2°5Ô9ñ "ô "ð "ð"%ð %ð %ð %ð %Ð.¨uÔ5ñ %ô %ð %ð< ð Nð .ÐØ1Ðð
 $ÐØ'ÐÐð 0BÐAÐÐ,Ø7MÐMÐÐ4ñ'ð 'ð 'ð 'ð.J+ð J+ð J+ð J+ð J+ñ J+ô J+ð J+ðZ ð GØ(0Ð%Ð%à(3Ô(FÐ%ð*/ð */ð */ð */ð */ñ */ô */ð */ñ\	ð 	ð 	ð 	ñð ð ð ñð ð ð ð Ø%)ñ'ñ 'ð 'ð 'ð 'ñ4ð ð ð ñð ð ð ñð ð ð ð 37ñ ñ  ð  ð  ð  ñFð ð ð ð$Cð Cð Cð0ð ð ð ð �Hñ ô ð ð*ð ð ð ð �W˜R”[ñ ô ð ð"ð ð ð ð ˜ œñ ô ð ð4ð ð ð ð �7˜2”;ñ ô ð ð$9(ð 9(ð 9(ð 9(ð 9(ˆSñ 9(ô 9(ð 9(ðx
ð 
ð 
ð 
ð 
�4ñ 
ô 
ð 
ðDð ð ð ð ˜\ð ñ ô ð ð ð ØÐÐÐÐÐà€K€Kà€Kð €WˆT˜œÐ#Ñ#Ô#€ð "'ñ	Dñ Dð Dð Dð DðD €ñ
ð 
ð 
ð 
ñ7ð 7ð 7ð 7ñð ð ð ð)ð )ð )ð )ð )˜ñ )ô )ð )ñ<
+ñ 
+ð 
+ð 
+ð 
+ñ'ð 'ð 'ð 'ð <>€Ð =Ð =Ð =Ñ =ñð ð ð ð �"”*ÐFÑGÔG€ð
 )-Øñ0:ñ 0:ð 0:ð 0:ð 0:ñfð ð ð ð4 ˆ2Œ:Ð>Ñ?Ô?€ØˆrŒzÑ.Ñ/Ô/€ð
 '3Ø&.ðñ ñ ð ð ð4 ˆ4�‰:Œ:€ñð ð ð ˆ2Œ:‘jÑ!Ô!€ð$ð $ñ $ð $ñ $ñ $ô $ð $ð*&(ð &(ñ &(ð &(ñ &(ñ &(ô &(ð &(ñRð ð ñ0)0ð )0ð )0ñX
ñ 
ð 
ð 
ñ	%ñ 	%ð 	%ð 	%ññ ð ð ð( ˆRŒZÑ-Ñ.Ô.€
ñ(ñ (ð (ð (ñV>ñ >ð >ð >ñ	ñ 	ð 	ð 	ðð ñ ð ñ ˆtŒyñ ô ð ð Ô
€Ø�"�g˜hÔ.Ô/Ð/Ô0€	€	€	r9   