§
    WøÁiBþ  ã                  óˆ	  — 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d3„Z4n�dd4„Z4�dd7„Z5 G d8„ d9¦  «        Z6�dd=„Z7�dd?„Z8	 �d�ddC„Z9�ddI„Z:�ddM„Z;�ddR„Z<�d dX„Z= e"dYdG¬&¦  «        Z>�d!d\„Z?d]„ Z@�d"dc„ZA e"dd¦  «        ZB e"de¦  «        ZC G df„ dg¦  «        ZDdh„ ZEedd%diœ�d#dp„¦   «         ZFeddqdiœ�d$dr„¦   «         ZFddqdiœ�d$ds„ZF�d%dv„ZG	 �d&�d'dz„ZH	 �d(�d)d~„ZI�d(d„ZJ	 	 	 	 �d*�d+d‰„ZKdŠ„ ZLd‹„ ZM	 	 	 �d,�d-d‘„ZN G d’„ d“¦  «        ZOd”„ ZPd•„ ZQ	 	 	 	 �d.d—„ZRd˜„ ZS�d/d™„ZT e"dšd›¬&¦  «        ZU G dœ„ d�ee-         ¦  «        ZV G dž„ dŸeVe-         ¦  «        ZW G d „ d¡eVe-         ¦  «        ZXe!r	eVZYeVZZe[Z\e[Z]neXxZYZ\eWxZZZ]�d0d¢„Z^ G d£„ d¤¦  «        Z_e!re[Z`ne_ja        Z` G d¥„ d¦¦  «        Zb�d1d§„Zc�d2dª„Zd�d3d­„Ze	 	 �d4�d5dµ„Zf�d6d¶„Zg�d7d¸„Zh�d8dº„Zi	 �d�d9d¾„Zj�d:dÃ„ZkdÄ„ Zl G dÅ„ dÆe[¦  «        Zm G dÇ„ dÈee,         ¦  «        Zn G dÉ„ dÊee,         ¦  «        Zo G dË„ dÌee,         ¦  «        Zp G dÍ„ dÎeq¦  «        Zr G dÏ„ dÐes¦  «        Zt G dÑ„ dÒet¬Ó¦  «        Zue!r	ddÔlmvZv evZwneuZw e"dÕejx        ¬&¦  «        Zy	 �d;�d<dÚ„Zzda{�d=dÜ„Z|�d>dÞ„Z}�d?dà„Z~ G dá„ dâe¦  «        Z€�d�d@dä„Z��dAdæ„Z‚i Zƒdçe„dè<   �dBdí„Z… e
j†        dî¦  «        Z‡	 	 �dC�dDdò„Zˆ�dEdö„Z‰ e
j†        d÷¦  «        ZŠ e
j†        dø¦  «        Z‹e‹eŠf�dFdý„ZŒ esd¦  «        Z�dþ„ ZŽ e
j†        dÿ¦  «        Z� G �d „ �d¦  «        Z� G �d„ �d¦  «        Z‘�d„ Z’�d„ Z“�dG�d„Z”�dH�d„Z•�dI�d„Z– e
j†        �d¦  «        Z—�dJ�d„Z˜�dK�d„Z™�d;�d„Zš G �d„ �dejx        ¦  «        Z›e›jœ        Zœe#e,e*e›jœ                 f         Z�dS (L  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]Úobjr   ÚreturnúMapping[str, Any]c                ó*   — t          j        | ¦  «        S ©N)ÚinspectÚget_annotations©r*   s    úe/var/www/html/jarvis.com/web/backend/venv/lib/python3.11/site-packages/sqlalchemy/util/langhelpers.pyr0   r0   A   s   € ÝÔ& sÑ+Ô+Ð+ó    c                óÂ   — t          | t          ¦  «        r| j                             dd ¦  «        }nt	          | dd ¦  «        }|€t
          j        S t          d|¦  «        S )NÚ__annotations__r,   )Ú
isinstanceÚtypeÚ__dict__ÚgetÚgetattrr   Ú
EMPTY_DICTr	   )r*   Úanns     r2   r0   r0   F   sa   € õ �c�4Ñ Ô ð 	8Ø”,×"Ò"Ð#4°dÑ;Ô;ˆCˆCå˜#Ð0°$Ñ7Ô7ˆCàˆ;ÝÔ*Ð*åÐ+¨SÑ1Ô1Ð1r3   ÚxÚstrc                óÊ   — |                       d¦  «        } t          j        ¦   «         }|                     | ¦  «         t	          t
          |                     ¦   «         ¦  «        S )Nzutf-8)Úencoder   Úmd5_not_for_securityÚupdater	   r>   Ú	hexdigest)r=   Úms     r2   Úmd5_hexrE   W   sH   € Ø	�Š�ÑÔ€AÝÔ#Ñ%Ô%€AØ‡H‚HˆQ�K„K€KÝ•�Q—[’[‘]”]Ñ#Ô#Ð#r3   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]]rH   r+   ÚNonec                ó6   — t          j        ¦   «         | _        d S r.   )ÚsysÚexc_inforH   ©Úselfs    r2   Ú	__enter__zsafe_reraise.__enter__ƒ   s   € Ýœ™œˆŒˆˆr3   Útype_úOptional[Type[BaseException]]ÚvalueúOptional[BaseException]Ú	tracebackúOptional[types.TracebackType]r   c                ó®   — | j         €J ‚|€+| j         \  }}}|€J ‚d | _         |                     |¦  «        ‚d | _         |€J ‚|                     |¦  «        ‚r.   )rH   Úwith_traceback)rN   rP   rR   rT   Úexc_typeÚ	exc_valueÚexc_tbs          r2   Ú__exit__zsafe_reraise.__exit__†   ss   € ð Œ~Ð)Ð)Ð)àˆ=Ø*.¬.Ñ'ˆH�i ØÐ(Ð(Ð(Ø!ˆDŒNØ×*Ò*¨6Ñ2Ô2Ð2à!ˆDŒNØÐ$Ð$Ð$Ø×&Ò& yÑ1Ô1Ð1r3   N©r+   rI   )rP   rQ   rR   rS   rT   rU   r+   r   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r5   rO   r[   © r3   r2   rG   rG   ^   sc   € € € € € € ðð ð0 €Iðð ð ñ ð(ð (ð (ð (ð2ð 2ð 2ð 2ð 2ð 2r3   rG   ÚclsúType[_T]úIterator[Type[_T]]c              #  óê   K  — t          ¦   «         }| g}|r]|                     ¦   «         } | |v rŒ|                     | ¦  «         |                     |                      ¦   «         ¦  «         | V — |°[d S d S r.   )ÚsetÚpopÚaddÚextendÚ__subclasses__)rc   ÚseenÚstacks      r2   Úwalk_subclassesrn   ™   s‹   è è € Ý‘U”U€DàˆE€EØ
ð Ø�iŠi‰kŒkˆØ�$ˆ;ˆ;Øà�HŠH�S‰MŒMˆMØ�Š�S×'Ò'Ñ)Ô)Ñ*Ô*Ð*Øˆ	ˆ	ˆ	ð ð ð ð ð ð r3   Úelementc                óz   — t          | t          ¦  «        r| S 	 t          | ¦  «        S # t          $ r d| z  cY S w xY w)Nzunprintable element %r)r6   r>   Ú	Exception)ro   s    r2   Ústring_or_unprintablerr   §   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 r.   )Úlower)Ú.0Úns     r2   ú	<genexpr>z(clsname_as_plain_name.<locals>.<genexpr>µ   s*   è è € ÐNÐN !�A—G’G‘I”IÐNÐNÐNÐNÐNÐNr3   z([A-Z][a-z]+|SQL))r]   ÚjoinÚreÚfindall)rc   rt   Únames      r2   Úclsname_as_plain_namer�   ±   s>   € ð Ð#�s”|€DØ�8Š8ÐNÐN¥r¤zÐ2FÈÑ'MÔ'MÐNÑNÔNÑNÔNÐNr3   Ú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.)r6   r7   Ú	__class__r]   r:   )r‚   r„   Úcurrent_clsÚmethod_nameÚcurrent_methods        r2   Úmethod_is_overriddenrŒ   ¸   sG   € õ �o¥tÑ,Ô,ð &Ø%Ô/ˆˆà%ˆà Ô)€Kå'.¨{¸KÑ'HÔ'H€Nà˜^Ò+Ð+r3   Ú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�   Úretr=   s      r2   Údecode_slicer™   Ê   sa   € ð €CØŒY˜œ #¤(Ð*ð ð ˆÝ�1�kÑ"Ô"ð 	Ø—’‘”ˆAØ�
Š
�1‰ŒˆˆÝ�‰:Œ:Ðr3   Ú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 r.   ©r>   )ÚiÚbases    €r2   ú<lambda>z!_unique_symbols.<locals>.<lambda>Ý   s   ø€ ˜$¥ Q¡¤™-€ r3   iè  z&exhausted namespace for symbol base %s)rg   Ú	itertoolsÚchainÚmapÚrangeri   Ú	NameError)rš   rœ   Úused_setÚpoolÚsymr¢   s        @r2   Ú_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r3   Ú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   Nrb   )r­   r{   Úbs      r2   Úmap_bitsr³   è   sW   è è € ð ð Ø�!��a‘‰LˆØˆb�‰eŒeˆˆˆØ	ˆQ‰ˆð ð ð ð ð ð r3   Ú_FnÚtargetúCallable[[_Fn], _Fn]c                ó0   ‡ — dˆ fd„}t          |‰ ¦  «        S )z'A signature-matching decorator factory.r­   r´   r+   c                óö  •— t          j        | ¦  «        s#t          j        | ¦  «        st          d¦  «        ‚t	          j        | ¦  «        }i }t          ||¦  «        }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  }t           j        | j                 }|                     t'          |¦  «        ¦  «         |                     |‰
|| d| j        i¦  «         t          t(          j        t-          ||| j	        ¦  «        ¦  «        }	t/          | d| ¦  «        j        |	_        | |	_        t5          |	| ¦  «        S )Nznot a decoratable functionz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)
r]   Ú__func__)r/   Ú
isfunctionÚismethodrq   r   Úinspect_getfullargspecÚ!_update_argspec_defaults_into_envr—   r	   r]   r¬   ÚdictrB   Úformat_argspec_plusÚiscoroutinefunctionÚreprrK   Úmodulesr^   ÚvarsÚtypesÚFunctionTypeÚ_exec_code_in_envr:   Ú__defaults__Ú__wrapped__r   )r­   ÚspecÚenvÚnamesÚ	targ_nameÚfn_nameÚmetadataÚcodeÚmodÚ	decoratedrµ   s             €r2   Údecoratezdecorator.<locals>.decorateù   s  ø€ ÝÔ! "Ñ%Ô%ð 	:­gÔ.>¸rÑ.BÔ.Bð 	:ÝÐ8Ñ9Ô9Ð9åÔ,¨RÑ0Ô0ˆØ ˆå0°°sÑ;Ô;ˆõ •$Ð(¨$¨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ðð ñ	ð õ Œk˜"œ-Ô(ˆØ�
Š
•4˜‘9”9ÑÔÐØ�
Š
�I˜v w°°JÀÄÐNÑOÔOÐOåÝÔÝ˜d C¨¬Ñ5Ô5ñ
ô 
ˆ	õ ")¨¨Z¸Ñ!<Ô!<Ô!Iˆ	Ôà "ˆ	ÔÝ˜i¨Ñ,Ô,Ð,r3   )r­   r´   r+   r´   r   )rµ   rÙ   s   ` r2   Ú	decoratorrÚ   ö   s4   ø€ ð?-ð ?-ð ?-ð ?-ð ?-ð ?-õB ˜( FÑ+Ô+Ð+r3   c                ó.  — | j         r�g }d}| j         D ]R}t          |¦  «        j        dvr%d|z  }|||<   |                     |¦  «         |dz  }Œ=|                     |¦  «         ŒSt	          | ¦  «        }t          |¦  «        |d<   t          j        |Ž S | S )zCgiven a FullArgSpec, convert defaults to be symbol names in an env.r   )ÚbuiltinsÚ__builtin__zx%dr   r¹   )Údefaultsr7   r^   r–   Úlistr—   r   ÚFullArgSpec)rÐ   rÑ   Únew_defaultsr¡   Úargr€   Úelems          r2   rÄ   rÄ   =  sµ   € ð „}ð ØˆØˆØ”=ð 	)ð 	)ˆCÝ�C‰yŒyÔ#Ð+FÐFÐFØ˜q‘y�Ø��D‘	Ø×#Ò# DÑ)Ô)Ð)Ø�Q‘��à×#Ò# CÑ(Ô(Ð(Ð(Ý�D‰zŒzˆÝ˜Ñ%Ô%ˆˆQ‰ÝÔ! 4Ð(Ð(àˆr3   rÖ   úUnion[str, types.CodeType]rÑ   úDict[str, Any]rÔ   c                ó2   — t          | |¦  «         ||         S r.   )Úexec)rÖ   rÑ   rÔ   s      r2   rÍ   rÍ   R  s   € õ 	ˆˆs�O„O€OØˆwŒ<Ðr3   Ú_PFÚ_TEc                  ó0   — e Zd Z	 ddd„Zd„ Zdd„Zdd„ZdS )ÚPluginLoaderNÚgroupr>   Úauto_fnúOptional[Callable[..., Any]]c                ó0   — || _         i | _        || _        d S r.   )rì   Úimplsrí   )rN   rì   rí   s      r2   Ú__init__zPluginLoader.__init__^  s   € ð ˆŒ
Ø%'ˆŒ
ØˆŒˆˆr3   c                ó8   — | j                              ¦   «          d S r.   )rð   ÚclearrM   s    r2   ró   zPluginLoader.cleare  s   € ØŒ
×ÒÑÔÐÐÐr3   r€   r+   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)rN   r€   ÚloaderÚimpls       r2   r÷   zPluginLoader.loadh  sØ   € Ø�4”:ÐÐØ#�4”:˜dÔ#Ñ%Ô%Ð%àŒ<ð 	 Ø—\’\ $Ñ'Ô'ˆFØð  Ø#)�”
˜4Ñ Ø�v‘x”x�åÔ1°$´*Ñ=Ô=ð 	#ð 	#ˆDØŒy˜DÒ Ð Ø#'¤9�”
˜4Ñ Ø—y’y‘{”{Ð"Ð"Ð"ð !õ Ô#Ð#Ø*.¬*¨*¨*°d°dÐ;ñ
ô 
ð 	
r3   Ú
modulepathÚobjnamerI   c                ó*   ‡‡— ˆˆfd„}|| j         |<   d S )Nc                 ó¢   •— t          ‰¦  «        } ‰                     d¦  «        dd …         D ]}t          | |¦  «        } Œt          | ‰¦  «        S )Nú.r   )Ú
__import__Úsplitr:   )r×   Útokenrû   rü   s     €€r2   r÷   z#PluginLoader.register.<locals>.load|  sW   ø€ Ý˜ZÑ(Ô(ˆCØ#×)Ò)¨#Ñ.Ô.¨q¨r¨rÔ2ð *ð *�Ý˜c 5Ñ)Ô)��Ý˜3 Ñ(Ô(Ð(r3   )rð   )rN   r€   rû   rü   r÷   s     `` r2   ÚregisterzPluginLoader.register{  s6   øø€ ð	)ð 	)ð 	)ð 	)ð 	)ð 	)ð  ˆŒ
�4ÑÐÐr3   r.   )rì   r>   rí   rî   )r€   r>   r+   r   )r€   r>   rû   r>   rü   r>   r+   rI   )r]   r^   r_   rñ   ró   r÷   r  rb   r3   r2   rë   rë   ]  sg   € € € € € àBFðð ð ð ð ðð ð ð
ð 
ð 
ð 
ð& ð  ð  ð  ð  ð  r3   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   )r/   ÚCO_VARKEYWORDSÚ__code__Úco_argcountrß   Úco_varnamesr†   Úco_flagsÚAttributeErrorr   rÃ   )r­   Úco_varkeywordsÚcoÚnargsrÐ   s        r2   Ú_inspect_func_argsr  …  sŸ   € ð
Ý Ô/ˆð Œ[ˆØ”ˆå�”   Ô'Ñ(Ô(Ý�”˜~Ñ-Ñ.Ô.ð
ð 	
øõ ð &ð &ð &õ
 Ô,¨RÑ0Ô0ˆØ�AŒw�˜T !œW™œÐ%Ð%Ð%Ð%ð&øøøs   ‚A Á;BÂB)Ú_setÚraiseerrr7   r  úOptional[Set[str]]r  úLiteral[True]úSet[str]c               ó   — d S r.   rb   ©rc   r  r  s      r2   Úget_cls_kwargsr  ™  s	   € ð ˆsr3   Fc               ó   — d S r.   rb   r  s      r2   r  r  ¢  s	   € ð ˜r3   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  rN   )rg   r8   r9   r6   rË   rÌ   r  r   r  rB   Ú	TypeErrorÚ	__bases__r  Údiscard)	rc   r  r  ÚtoplevelÚctrÚhas_initrÒ   Úhas_kwÚcs	            r2   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�ÑÔÐØ€Kr3   Ú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Ã   )r!  s    r2   Úget_func_kwargsr$  Ý  s   € õ Ô(¨Ñ.Ô.¨qÔ1Ð1r3   Ú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)r%  r&  rÀ   Ú__call__)r%  zCan't inspect callable: %s)r/   Ú	isbuiltinr  rÁ   r   rÃ   rà   ÚargsÚvarargsÚvarkwrÞ   Ú
kwonlyargsÚkwonlydefaultsr   rÂ   Ú__self__rÀ   ÚisclassÚget_callable_argspecrñ   r•   r)  )r­   r%  r&  rÐ   s       r2   r2  r2  è  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Ñ:Ô:Ð:r3   ú-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¹   rb   c                ó&   — dt          | ¦  «        z   S ©Nú=r    ©r=   s    r2   r£   z%format_argspec_plus.<locals>.<lambda>s  s   € ˜c¥C¨¡F¤F™l€ r3   )Úformatvaluec                ó&   — dt          | ¦  «        z   S r8  r    r:  s    r2   r£   z%format_argspec_plus.<locals>.<lambda>|  s   €  #­¨A©¬¡,€ r3   )Úgrouped_argsÚself_argÚ	apply_posÚapply_kwÚapply_pos_proxiedÚapply_kw_proxiedéÿÿÿÿ)	Úcallabler   rÃ   Úinspect_formatargspecÚlenr	   r   r   rÅ   )r­   r»   rÐ   r+  r?  r>  rA  Únum_defaultsÚ	name_argsÚdefaulted_valsr@  rB  s               r2   rÆ   rÆ      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ð
ñ 
ô 
ð 	
r3   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::

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

    z(self)rN   z()r¾   rº   z(self, *args, **kwargs)zself, *args, **kwargsz(*args, **kwargs)z*args, **kwargs)r>  r=  r?  r@  rA  rB  )Úobjectrñ   rÆ   r  rÅ   )Úmethodr»   r=  r+  Úproxieds        r2   Úformat_argspec_initrN  •  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rb   Ú
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 r.   rb   )rc   s    r2   rÙ   z&create_proxy_methods.<locals>.decorateÇ  s   € Øˆ
r3   rb   )rO  rP  rQ  rR  rS  rT  rU  rÙ   s           r2   Úcreate_proxy_methodsrY  ´  s   € ð&ð ð ð €Or3   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)zúinspect.getargspec with considerations for typical __init__ methods

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

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

    rN   Nr+  Úkwargs)r   rÃ   r  rK  rñ   )rL  s    r2   Úgetargspec_initr\  Í  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.

    )r6   rË   Ú
MethodTyper0  rÀ   )Úfunc_or_clss    r2   Úunbound_method_to_callabler`  ß  s2   € õ �+�uÔ/Ñ0Ô0ð ¸Ô9Mð ØÔ#Ð#àÐr3   Ú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 rb   rb   )rz   râ   Úmissings     €r2   ú
<listcomp>z generic_repr.<locals>.<listcomp>  s   ø€ ÐIÐIÐI¨�c˜7�^ÐIÐIÐIr3   c                ó   — g | ]	\  }}||f‘Œ
S rb   rb   )rz   râ   Údefaults      r2   ri  z generic_repr.<locals>.<listcomp>  s0   € ð ð ð á(˜C ð ˜g˜ðð ð r3   c              3  óT   •K  — | ]"}t          t          ‰|d ¦  «        ¦  «        V — Œ#d S r.   )rÈ   r:   )rz   râ   r*   s     €r2   r|   zgeneric_repr.<locals>.<genexpr>  s7   øè è € ÐDÐD°C•$•w˜s C¨Ñ.Ô.Ñ/Ô/ÐDÐDÐDÐDÐDÐDr3   c                ó,   — g | ]}t          |¦  «        ‘ŒS rb   ©rÈ   )rz   Úvals     r2   ri  z generic_repr.<locals>.<listcomp>!  s   € Ð@Ð@Ð@ S•t˜C‘y”yÐ@Ð@Ð@r3   r9  ú(ú, ú))r   Úto_listrK  ÚOrderedDictÚ	enumerater   rÃ   rñ   rÞ   rF  r,  rj   r+  rB   Úzipr  r•   r:   Úitemsr–   rq   rˆ   r]   r}   )r*   ra  rc  re  Úpos_argsÚkw_argsÚvargsr¡   ÚinsprÐ   Údefault_lenÚoutputrâ   Údefvalro  rh  s   `              @r2   Úgeneric_reprr  ë  sh  øø€ ð ÐØ�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€   r[  Ú__weakref__c                ó,   — | j         | j        | j        dœS )N©rµ   r€   r[  r„  rM   s    r2   Ú__getstate__z$portable_instancemethod.__getstate__A  s    € à”kØ”IØ”kð
ð 
ð 	
r3   c                óp   — |d         | _         |d         | _        |                     dd¦  «        | _        d S )Nrµ   r€   r[  rb   )rµ   r€   r9   r[  )rN   Ústates     r2   Ú__setstate__z$portable_instancemethod.__setstate__H  s1   € Ø˜H”oˆŒØ˜&”MˆŒ	Ø—i’i ¨"Ñ-Ô-ˆŒˆˆr3   rb   c                óD   — |j         | _        |j        | _        || _        d S r.   )r0  rµ   r]   r€   r[  )rN   Úmethr[  s      r2   rñ   z portable_instancemethod.__init__M  s   € Ø”mˆŒØ”MˆŒ	ØˆŒˆˆr3   c                óv   — |                      | j        ¦  «          t          | j        | j        ¦  «        |i |¤ŽS r.   )rB   r[  r:   rµ   r€   )rN   râ   Úkws      r2   r)  z portable_instancemethod.__call__R  s9   € Ø
�	Š	�$”+ÑÔÐØ.�w�t”{ D¤IÑ.Ô.°Ð:°rÐ:Ð:Ð:r3   N)rb   )	r]   r^   r_   r`   ra   r…  rˆ  rñ   r)  rb   r3   r2   r�  r�  9  sf   € € € € € ðð ð
 :€Ið
ð 
ð 
ð.ð .ð .ð
ð ð ð ð
;ð ;ð ;ð ;ð ;r3   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 r.   rb   ©rz   Ú_Úhiers     €r2   r|   z"class_hierarchy.<locals>.<genexpr>f  s'   øè è € Ð9Ð9�q¨1°D¨=¨=�¨=¨=¨=¨=Ð9Ð9r3   rÜ   rk   c                ó   •— g | ]}|‰v¯|‘Œ	S rb   rb   r�  s     €r2   ri  z#class_hierarchy.<locals>.<listcomp>o  s.   ø€ ð 
ð 
ð 
àð
 ˜ˆ}ˆ}ð ð ˆ}ˆ}r3   )rß   Ú__mro__rh   r  r–   ri   r^   r•   Ú
issubclassr7   rk   )rc   Úprocessr   rœ   r²   Úsr‘  s         @r2   Úclass_hierarchyr—  W  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ð+ ð õ, �‰:Œ:Ðr3   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“  r8   )rc   ÚkeysÚkeyr   s       r2   Úiterate_attributesrœ  }  sl   è è € õ ˆs‰8Œ8€DØð ð ˆØ”ð 	ð 	ˆAØ�a”jÐ Ð Ø˜AœJ sœOÐ,Ð,Ð,Ð,Ø�ð !øðð r3   ú
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)ra   Ú__del__Ú__getattribute__Ú__metaclass__r…  rˆ  c                ó�   •— g | ]B}|                      d ¦  «        r+|                     d ¦  «        rt          ‰|¦  «        s|‰v¯@|‘ŒCS )r¿   )Ú
startswithÚendswithr•   )rz   rD   Úinto_clsÚskips     €€r2   ri  z0monkeypatch_proxied_specials.<locals>.<listcomp>£  sl   ø€ ð 	
ð 	
ð 	
àà—’˜TÑ"Ô"ð		
ð
 —J’J˜tÑ$Ô$ð	
õ   ¨!Ñ,Ô,ð	
ð ˜T�M�Mð ð "�M�Mr3   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Ã   rE  r  Úlocalsrç   rÎ   Úsetattr)r¥  Úfrom_clsr¦  Úonlyr€   Úfrom_instanceÚdundersrL  Úmaybe_fnr­   rÐ   Úfn_argsÚd_argsÚpyrÑ   s   ` `            r2   Ú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     r2   Úmethods_equivalentrµ  Ð  s0   € õ �5˜* eÑ,Ô,µØˆz˜5ñ1ô 1ð ð r3   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£  )rz   rD   s     r2   ri  z as_interface.<locals>.<listcomp>ÿ  s)   € ÐMÐMÐM a¸1¿<º<ÈÑ;LÔ;LÐM ÐMÐMÐMr3   zany ofzall ofz does not implement z: rq  c                  ó   — e Zd ZdZdS )ú(as_interface.<locals>.AnonymousInterfacezA callable-holding shell.N©r]   r^   r_   r`   rb   r3   r2   ÚAnonymousInterfacer¹    s   € € € € € Ø'Ð'Ð'Ð'r3   r»  Ú	Anonymousz%r: unknown in this interfacer9  z is not callablez,dictionary does not contain required keys %s)r  r6   r7   rg   r™  ÚoperatorÚgeÚgtÚintersectionrÅ   r}   r]   Údictlike_iteritemsrD  r¨  Ústaticmethodri   )r*   rc   rS  ÚrequiredÚ	interfaceÚimplementedÚcompliesÚ	qualifierr»  ÚfoundrL  rú   s               r2   Ú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Ñ$Ñ
%Ô
%ñ	&ñô ð r3   Ú_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]Úfgetru   r`   r>   r]   NÚdocc                óH   — || _         |p|j        | _        |j        | _        d S r.   ©rÎ  r`   r]   ©rN   rÎ  rÏ  s      r2   rñ   zgeneric_fn_descriptor.__init__@  s$   € ØˆŒ	ØÐ*˜dœlˆŒØœˆŒˆˆr3   rN   rÊ  r*   rI   rc   r   r+   c                ó   — d S r.   rb   ©rN   r*   rc   s      r2   Ú__get__zgeneric_fn_descriptor.__get__E  s   € Ø:=¸#r3   rK  r"   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  zgeneric_fn_descriptor.__get__H  s   € Ø7:°sr3   úUnion[_GFD, _T_co]c                ó   — t          ¦   «         ‚r.   ©ÚNotImplementedErrorrÔ  s      r2   rÕ  zgeneric_fn_descriptor.__get__K  ó   € Ý!Ñ#Ô#Ð#r3   ÚinstancerR   c                ó   — d S r.   rb   ©rN   rÜ  rR   s      r2   Ú__set__zgeneric_fn_descriptor.__set__P  ó   € € € r3   c                ó   — d S r.   rb   )rN   rÜ  s     r2   Ú
__delete__z generic_fn_descriptor.__delete__R  rà  r3   c                ó   — t          ¦   «         ‚r.   rÙ  ©rN   r*   s     r2   Ú_resetzgeneric_fn_descriptor._resetT  rÛ  r3   r€   c                ó   — t          ¦   «         ‚r.   rÙ  ©rc   r*   r€   s      r2   Úresetzgeneric_fn_descriptor.resetW  s   € å!Ñ#Ô#Ð#r3   r.   )rÎ  rÍ  rÏ  ru   )rN   rÊ  r*   rI   rc   r   r+   rÊ  )r*   rK  rc   r   r+   r"   )rN   rÊ  r*   r   rc   r   r+   r×  ©rÜ  r   rR   r   r+   rI   ©rÜ  r   r+   rI   )r*   r   r+   rI   )r*   r   r€   r>   r+   rI   )r]   r^   r_   r`   r5   rñ   r   rÕ  r   rß  râ  rå  Úclassmethodrè  rb   r3   r2   rÌ  rÌ  1  sô   € € € € € € ðð ð ÐÐÑØÐÐÑØ€M€M�Mð&ð &ð &ð &ð &ð
 Ø=Ð=Ð=ñ „XØ=àØ:Ð:Ð:ñ „XØ:ð$ð $ð $ð $ð ð 9àAÐAÐAÐAà8Ð8Ð8Ð8ð$ð $ð $ð $ð ð$ð $ð $ñ „[ð$ð $ð $r3   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 r.   ©rÎ  rÔ  s      r2   rÕ  z_non_memoized_property.__get__g  s   € Øˆ{Ø�Ø—9’9˜S‘>”>Ð!r3   N)r]   r^   r_   r`   r   rÕ  rb   r3   r2   rí  rí  \  sA   € € € € € ðð ð ð "ð	"ð 	"ð 	"ð 	"ð 	"ð"ð "r3   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 r.   )rÎ  r8   r]   ©rN   r*   rc   Úresults       r2   rÕ  z_memoized_property.__get__r  s.   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØˆMr3   c                óF   — t                                || j        ¦  «         d S r.   )rñ  rè  r]   rä  s     r2   rå  z_memoized_property._resetx  s    € Ý× Ò   d¤mÑ4Ô4Ð4Ð4Ð4r3   c                ó<   — |j                              |d ¦  «         d S r.   )r8   rh   rç  s      r2   rè  z_memoized_property.reset{  s    € àŒ×Ò˜˜tÑ$Ô$Ð$Ð$Ð$r3   N)	r]   r^   r_   r`   r   rÕ  rå  rë  rè  rb   r3   r2   rñ  rñ  m  s[   € € € € € Ø<Ð<àð ð	ð 	ð 	ð5ð 5ð 5ð ð%ð %ñ „[ð%ð %ð %r3   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 r.   rb   ©ÚarŒ  rô  s     €r2   Úmemoz6memoized_instancemethod.<locals>.oneshot.<locals>.memo¨  s   ø€ ØˆMr3   )r]   r`   r8   ©rN   r+  rŒ  rü  rô  r­   s       @€r2   Úoneshotz(memoized_instancemethod.<locals>.oneshot¥  sc   øø€ Ø��DÐ&˜4Ð&Ð&Ð& 2Ð&Ð&ˆð	ð 	ð 	ð 	ð 	ð œˆŒØ”zˆŒØ%)ˆŒ�b”kÑ"Øˆr3   r   )r­   rþ  s   ` r2   Úmemoized_instancemethodrÿ  œ  s.   ø€ ð	ð 	ð 	ð 	ð 	õ ˜' 2Ñ&Ô&Ð&r3   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.

    rb   zFrozenSet[str]Ú_memoized_keysr+   rI   c                óP   — | j         D ]}| j                             |d ¦  «         Œd S r.   )r  r8   rh   ©rN   rã   s     r2   Ú_reset_memoizationszHasMemoized._reset_memoizationsÀ  s9   € ØÔ'ð 	*ð 	*ˆDØŒM×Ò˜d DÑ)Ô)Ð)Ð)ð	*ð 	*r3   c                ó0   — | j         D ]}|| j        vsJ ‚Œd S r.   )r  r8   r  s     r2   Ú_assert_no_memoizationsz#HasMemoized._assert_no_memoizationsÄ  s4   € ØÔ'ð 	-ð 	-ˆDØ˜tœ}Ð,Ð,Ð,Ð,Ð,ð	-ð 	-r3   r›  r>   rR   r   c                ó<   — || j         |<   | xj        |hz  c_        d S r.   )r8   r  )rN   r›  rR   s      r2   Ú_set_memoized_attributez#HasMemoized._set_memoized_attributeÈ  s*   € Ø"ˆŒ�cÑØÐÔ ˜uÑ$ÐÔÐÐr3   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Î  ru   r`   r>   r]   NrÏ  c                óH   — || _         |p|j        | _        |j        | _        d S r.   rÑ  rÒ  s      r2   rñ   z'HasMemoized.memoized_attribute.__init__×  s$   € ØˆDŒIØÐ. $¤,ˆDŒLØ œMˆDŒMˆMˆMr3   rN   r'   r*   rI   rc   r   r+   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  z&HasMemoized.memoized_attribute.__get__Ü  s   € Ø<?¸Cr3   r!   c                ó   — d S r.   rb   rÔ  s      r2   rÕ  z&HasMemoized.memoized_attribute.__get__ß  s   € Ø58°Sr3   c                ó‚   — |€| S |                       |¦  «        x|j        | j        <   }|xj        | j        hz  c_        |S r.   )rÎ  r8   r]   r  ró  s       r2   rÕ  z&HasMemoized.memoized_attribute.__get__â  sF   € Øˆ{Ø�Ø37·9²9¸S±>´>ÐAˆCŒL˜œÑ'¨&ØÐÔ 4¤= /Ñ1ÐÔØˆMr3   r.   )rÎ  r  rÏ  ru   )rN   r'   r*   rI   rc   r   r+   r'   )r*   r   rc   r   r+   r!   )r]   r^   r_   r`   r5   rñ   r   rÕ  rb   r3   r2   Úmemoized_attributer  Ì  s™   € € € € € € ð	ð 	ð 	 ÐÐÑØÐÐÑØˆˆ‰ð	*ð 	*ð 	*ð 	*ð 	*ð
 
Ø?Ð?Ð?ñ 
ŒØ?à	Ø8Ð8Ð8ñ 
ŒØ8ð	ð 	ð 	ð 	ð 	r3   r  r­   r$   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )zMDecorate a method memoize its return value.

        :meta private:

        rN   r   r+  rŒ  r+   c                ó¦   •‡—  ‰| g|¢R i |¤ŽŠˆfd„}‰j         |_         ‰j        |_        || j        ‰j         <   | xj        ‰j         hz  c_        ‰S )Nc                 ó   •— ‰S r.   rb   rú  s     €r2   rü  zBHasMemoized.memoized_instancemethod.<locals>.oneshot.<locals>.memoô  s   ø€ Ø�r3   )r]   r`   r8   r  rý  s       @€r2   rþ  z4HasMemoized.memoized_instancemethod.<locals>.oneshotñ  s{   øø€ Ø�R˜Ð*˜tÐ*Ð*Ð* rÐ*Ð*ˆFðð ð ð ð ð œKˆDŒMØœ:ˆDŒLØ)-ˆDŒM˜"œ+Ñ&ØÐÔ B¤K =Ñ0ÐÔØˆMr3   )rN   r   r+  r   rŒ  r   r+   r   r   )rc   r­   rþ  s    ` r2   rÿ  z#HasMemoized.memoized_instancemethodé  s3   ø€ ð
	ð 
	ð 
	ð 
	ð 
	ð 
	õ ˜g rÑ*Ô*Ð*r3   Nr\   )r›  r>   rR   r   r+   rI   ©r­   r$   r+   r$   )r]   r^   r_   r`   r   ra   Ú	frozensetr  r5   r  r  r	  Úmemoized_propertyr!   r  rë  rÿ  rb   r3   r2   r  r  ³  sÔ   € € € € € € ðð ð
 ð ð ˆ	à%. Y¡[¤[€NÐ0Ð0Ð0Ñ0ð*ð *ð *ð *ð-ð -ð -ð -ð%ð %ð %ð %ðð ð ð ð Ð.¨rÔ2ñ ô ð ð: ð+ð +ð +ñ „[ð+ð +ð +r3   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__.

    rb   c                ó    — t          |¦  «        ‚r.   )r
  )rN   r›  s     r2   Ú_fallback_getattrzMemoizedSlots._fallback_getattr  s   € Ý˜SÑ!Ô!Ð!r3   r›  r>   r+   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 r.   rb   rú  s     €r2   rü  z8MemoizedSlots.__getattr__.<locals>.oneshot.<locals>.memo%  s   ø€ Ø!�Mr3   )r]   r`   r¨  )r+  rŒ  rü  rô  r­   r›  rN   s      @€€€r2   rþ  z*MemoizedSlots.__getattr__.<locals>.oneshot"  sY   øø€ Ø˜˜T˜ R˜˜�ð"ð "ð "ð "ð "ð !#¤�”Ø!œz�”Ý˜˜c 4Ñ(Ô(Ð(Ø�r3   )r£  r
  r•   rˆ   r:   r¨  r`   r  )rN   r›  rR   rþ  r­   s   ``  @r2   Ú__getattr__zMemoizedSlots.__getattr__  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à×)Ò)¨#Ñ.Ô.Ð.r3   N)r›  r>   r+   r   )r]   r^   r_   r`   ra   r  r!  rb   r3   r2   r  r    sH   € € € € € ðð ð €Ið"ð "ð "ð/ð /ð /ð /ð /ð /r3   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)r6   r>   Ústripry   Ú
ValueErrorr†   r1   s    r2   Úasboolr0  4  sp   € Ý�#•sÑÔð CØ�iŠi‰kŒk×ÒÑ!Ô!ˆØÐ6Ð6Ð6Ø�4ØÐ9Ð9Ð9Ø�5åÐ;¸cÑAÑBÔBÐBÝ�‰9Œ9Ðr3   Ú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.

    r*   r>   r+   úUnion[str, bool]c                ó.   •— | ‰v r| S t          | ¦  «        S r.   )r0  )r*   r1  s    €r2   Úbool_or_valuez"bool_or_str.<locals>.bool_or_valueF  s   ø€ Ø�$ˆ;ˆ;ØˆJå˜#‘;”;Ðr3   )r*   r>   r+   r4  rb   )r1  r6  s   ` r2   Úbool_or_strr7  @  s)   ø€ ðð ð ð ð ð ð Ðr3   rR   úOptional[int]c                ó(   — | €| S t          | ¦  «        S )zCoerce to integer.)r¯   )rR   s    r2   Úasintr:  O  s   € ð €}ØˆÝˆu‰:Œ:Ðr3   rŒ  r›  rP   Ú
flexi_boolÚdestúOptional[Dict[str, Any]]rI   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)r6   r7   r†   r0  )rŒ  r›  rP   r;  r<  s        r2   Úcoerce_kw_typer?  W  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ð 	ˆ	àÐð 	ˆ	r3   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 r.   ©r8   ©rz   Úkr*   s     €r2   r|   z"constructor_key.<locals>.<genexpr>w  sC   øè è € ð ð Ø!"¨q°C´LÐ/@Ð/@ˆˆCŒL˜ŒOÐÐ/@Ð/@Ð/@Ð/@ðð r3   )r  r—   )r*   rc   rÒ   s   `  r2   Úconstructor_keyrE  q  sS   ø€ õ
 ˜3ÑÔ€EØˆ6•Eð ð ð ð Ø&+ðñ ô ñ ô ñ ð r3   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 r.   rB  rC  s     €r2   r|   z#constructor_copy.<locals>.<genexpr>„  sC   øè è € ð ð Ø!"¸aÀ3Ä<Ð>OÐ>OˆˆCŒL˜ŒOÐÐ>OÐ>OÐ>OÐ>Oðð r3   )r  rB   Ú
difference)r*   rc   r+  rŒ  rÒ   s   `    r2   Úconstructor_copyrI  |  ss   ø€ õ ˜3ÑÔ€EØ‡I‚Ið ð ð ð Ø&+×&6Ò&6°rÑ&:Ô&:ðñ ô ñ ô ð ð ˆ3�Ð˜ÐÐÐr3   ú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 r.   )Únext)ÚcounterÚlocks   €€r2   Ú_nextzcounter.<locals>._next‘  sv   ø€ Øð 	!ð 	!Ý˜‘=”=ð	!ð 	!ð 	!ð 	!ñ 	!ô 	!ð 	!ð 	!ð 	!ð 	!ð 	!ð 	!øøøð 	!ð 	!ð 	!ð 	!ð 	!ð 	!s   „  $§$)Ú	threadingÚLockr¤   Úcount)rP  rN  rO  s    @@r2   rN  rN  Š  sG   øø€ õ Œ>ÑÔ€DÝŒo˜aÑ Ô €Gð!ð !ð !ð !ð !ð !ð €Lr3   Úspecimenrk  ú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–   ri   rg   )r•   rW  r”  rg   r6   r7   rß   rÅ   )rT  rk  Úisas      r2   Úduck_type_collectionrY  ˜  só   € õ ˆx˜Ñ(Ô(ð )àÔ Ð,µØÔ!¥3ñ2
ô 2
Ð,õ ˆJàÔ(Ð(å" 8­TÑ2Ô2Ð
B�*ˆ*½
€CØ
€sˆ8•TÑÔð ÝˆØ	ˆˆX•sÑ	Ô	ð Ýˆ
Ø	ˆˆX•tÑ	Ô	ð Ýˆåˆx˜Ñ"Ô"ð ÝˆÝ	�˜5Ñ	!Ô	!ð Ýˆ
Ý	�˜5Ñ	!Ô	!ð Ýˆàˆr3   râ   Ú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'Nrb   )rz   rû  s     r2   r|   z"assert_arg_type.<locals>.<genexpr>Ä  s&   è è € Ð$AÐ$A°A V¨a¡ZÐ$AÐ$AÐ$AÐ$AÐ$AÐ$Ar3   z, got 'ú'z' is expected to be of type 'z', got ')r6   r—   r    ÚArgumentErrorr}   r7   )râ   rZ  r€   s      r2   Úassert_arg_typer`  »  s¹   € õ �#�wÑÔð Øˆ
å�g�uÑ%Ô%ð 		ÝÔ#Ð#à�4�4˜ŸšÐ$AÐ$A¸Ð$AÑ$AÔ$AÑAÔAÐAÐAÅ4ÈÁ9Ä9À9À9ðNñô ð õ
 Ô#Ð#à�4�4˜˜˜¥$ s¡)¤) ) )ð-ñô ð r3   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.rw  Ú__getitem__r9   NzObject '%r' is not dict-likeÚiterkeysc               3  ó`   •K  — ‰                      ¦   «         D ]} ‰€J ‚|  ‰| ¦  «        fV — Œd S r.   )rc  )r›  ÚdictlikeÚgetters    €€r2   Úiteratorz$dictlike_iteritems.<locals>.iteratorÙ  sT   øè è € Ø×(Ò(Ñ*Ô*ð 'ð '�ØÐ)Ð)Ð)Ø˜6˜6 #™;œ;Ð&Ð&Ð&Ð&Ð&ð'ð 'r3   rš  c              3  ó2   •K  — | ]}| ‰|¦  «        fV — Œd S r.   rb   )rz   r›  rf  s     €r2   r|   z%dictlike_iteritems.<locals>.<genexpr>à  s0   øè è € ÐBÐB¨3�S˜&˜& ™+œ+Ð&ÐBÐBÐBÐBÐBÐBr3   )r•   rß   rw  r:   r  Úiterrš  )re  rg  rf  s   ` @r2   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ÐBr3   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Î  râ   r   rŒ  c                óZ   •—  t          ¦   «         j        |g|¢R i |¤Ž |j        | _        d S r.   )Úsuperrñ   r`   )rN   rÎ  râ   rŒ  rˆ   s       €r2   rñ   zclassproperty.__init__ò  s7   ø€ Ø�‰ŒÔ˜Ð* Ð*Ð*Ð* rÐ*Ð*Ð*Ø”|ˆŒˆˆr3   Nr*   rc   úOptional[type]r+   c                ó,   — |                       |¦  «        S r.   rï  rÔ  s      r2   rÕ  zclassproperty.__get__ö  s   € Ø�yŠy˜‰~Œ~Ðr3   )rÎ  rl  râ   r   rŒ  r   r.   )r*   r   rc   ro  r+   r   )r]   r^   r_   r`   r5   rñ   rÕ  Ú__classcell__©rˆ   s   @r2   rk  rk  å  sp   ø€ € € € € € ðð ð ÐÐÑð$ð $ð $ð $ð $ð $ðð ð ð ð ð ð ð ð r3   rk  c                  ó&   — e Zd Zdd„Zdd	„Zdd„ZdS )Úhybridpropertyr!  r  c                ó"   — || _         || _        d S r.   )r!  Úclslevel©rN   r!  s     r2   rñ   zhybridproperty.__init__û  s   € ØˆŒ	ØˆŒˆˆr3   rÜ  r   Úownerr+   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S r.   ©rv  r!  ©rN   rÜ  rx  Úclsvals       r2   rÕ  zhybridproperty.__get__ÿ  ó0   € ØÐØ—]’] 5Ñ)Ô)ˆFØˆMà—9’9˜XÑ&Ô&Ð&r3   r…   úhybridproperty[_T]c                ó   — || _         | S r.   ©rv  rw  s     r2   Ú
classlevelzhybridproperty.classlevel  ó   € ØˆŒØˆr3   N©r!  r  ©rÜ  r   rx  r   r+   r!   )r!  r…   r+   r~  )r]   r^   r_   rñ   rÕ  r�  rb   r3   r2   rt  rt  ú  sP   € € € € € ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð r3   rt  c                  ó6   — e Zd Zdd„Zdd	„Zdd„Zdd„Zdd„ZdS )Úrw_hybridpropertyr!  r  c                ó0   — || _         || _        d | _        d S r.   )r!  rv  Úsetfnrw  s     r2   rñ   zrw_hybridproperty.__init__  s   € ØˆŒ	ØˆŒØ37ˆŒ
ˆ
ˆ
r3   rÜ  r   rx  r+   r!   c                ó^   — |€|                       |¦  «        }|S |                      |¦  «        S r.   rz  r{  s       r2   rÕ  zrw_hybridproperty.__get__  r}  r3   rR   rI   c                óD   — | j         €J ‚|                       ||¦  «         d S r.   ©rˆ  rÞ  s      r2   rß  zrw_hybridproperty.__set__  s*   € ØŒzÐ%Ð%Ð%Ø�
Š
�8˜UÑ#Ô#Ð#Ð#Ð#r3   r…   úrw_hybridproperty[_T]c                ó   — || _         | S r.   r‹  rw  s     r2   Úsetterzrw_hybridproperty.setter  s   € ØˆŒ
Øˆr3   c                ó   — || _         | S r.   r€  rw  s     r2   r�  zrw_hybridproperty.classlevel   r‚  r3   Nrƒ  r„  ré  )r!  r…   r+   rŒ  )r]   r^   r_   rñ   rÕ  rß  rŽ  r�  rb   r3   r2   r†  r†    sx   € € € € € ð8ð 8ð 8ð 8ð
'ð 'ð 'ð 'ð$ð $ð $ð $ðð ð ð ðð ð ð ð ð r3   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.r!  r  c                ó0   — |x| _         | _        || _        d S r.   )r!  rÀ   rv  rw  s     r2   rñ   zhybridmethod.__init__(  s   € Ø$(Ð(ˆŒ	�D”MØˆŒˆˆr3   rÜ  r   rx  r+   c                ó|   — |€ | j                              ||j        ¦  «        S | j                             ||¦  «        S r.   )rv  rÕ  rˆ   r!  )rN   rÜ  rx  s      r2   rÕ  zhybridmethod.__get__,  s:   € ØÐØ”=×(Ò(¨°´Ñ@Ô@Ð@à”9×$Ò$ X¨uÑ5Ô5Ð5r3   r…   úhybridmethod[_T]c                ó   — || _         | S r.   r€  rw  s     r2   r�  zhybridmethod.classlevel2  r‚  r3   Nrƒ  )rÜ  r   rx  r   r+   r  )r!  r…   r+   r”  )r]   r^   r_   r`   rñ   rÕ  r�  rb   r3   r2   r‘  r‘  %  sV   € € € € € Ø9Ð9ðð ð ð ð6ð 6ð 6ð 6ðð ð ð ð ð r3   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.

    r>   r€   zDict[str, symbol]ÚsymbolsNrÏ  ru   Ú	canonicalr8  r+   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˜  r9   r6   r>   Úhashr¯   Ú__new__r—  r€   r`   r  )rc   r€   rÏ  r™  r«   s        r2   r�  zsymbol.__new__K  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 )Nr=   )r—  r€   r¯   rM   s    r2   Ú
__reduce__zsymbol.__reduce__i  s   € Ý˜œ	 3­¨D©	¬	Ð2Ð2Ð2r3   c                ó    — t          | ¦  «        S r.   rn  rM   s    r2   Ú__str__zsymbol.__str__l  s   € Ý�D‰zŒzÐr3   c                ó   — d| j         ›d�S )Nzsymbol(rr  ©r€   rM   s    r2   Ú__repr__zsymbol.__repr__o  s   € Ø'˜œÐ'Ð'Ð'Ð'r3   )NN)r€   r>   rÏ  ru   r™  r8  r+   r—  )r]   r^   r_   r`   r5   r˜  rQ  rR  r›  r�  rŸ  r¡  r¤  rb   r3   r2   r—  r—  7  s™   € € € € € € ðð ð €I€I�Ià!#€GÐ#Ð#Ð#Ñ#ØˆIŒNÑÔ€Eð
 "Ø#'ð	ð ð ð ð ð<3ð 3ð 3ðð ð ð(ð (ð (ð (ð (r3   r—  c                  ó   — e Zd Zdd„Zdd„ZdS )Ú_IntFlagMetaÚ	classnamer>   rœ   úTuple[Type[Any], ...]Údict_rå   rŒ  r   r+   rI   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 rb   r£  )rz   r«   s     r2   ú
<dictcomp>z)_IntFlagMeta.__init__.<locals>.<dictcomp>Š  s   € Ð,Ð,Ð,˜sˆSŒX�sÐ,Ð,Ð,r3   )Ú_itemsrw  r~   Úmatchr6   r¯   r—  r£  r  r¨  r–   r   ÚimmutabledictÚ__members__)	rc   r§  rœ   r©  rŒ  rw  rD  Úvr«   s	            r2   rñ   z_IntFlagMeta.__init__t  sÞ   € ð  ÐˆŒ
�UØ—K’K‘M”Mð 
	ð 
	‰DˆAˆqÝŒx˜ QÑ'Ô'ð ØÝ˜!�SÑ!Ô!ð Ý˜Q¨!Ð,Ñ,Ô,��Ø—\’\ #Ñ&Ô&ð ÝÐ EÑFÔFÐFàÝ�C˜˜CÑ Ô Ð Ø�LŠL˜ÑÔÐÐå&Ô4Ø,Ð, eÐ,Ñ,Ô,ñ
ô 
ˆŒˆˆr3   ú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Ù  rM   s    r2   Ú__iter__z_IntFlagMeta.__iter__�  s   € Ý!ð=ñ
ô 
ð 	
r3   N)
r§  r>   rœ   r¨  r©  rå   rŒ  r   r+   rI   )r+   r²  )r]   r^   r_   rñ   r´  rb   r3   r2   r¦  r¦  s  s<   € € € € € ð
ð 
ð 
ð 
ð2
ð 
ð 
ð 
ð 
ð 
r3   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º  rb   r3   r2   r¶  r¶  •  s   € € € € € ðð ð ð r3   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': )rw  r€   r    r_  )râ   rº  r€   r¼  Ú
enum_valueÚchoices         r2   Úparse_user_argument_for_enumrÁ  ª  sŸ   € ð( &Ÿmšm™oœoð ð Ñˆ
�FØ�*ÐÐØÐÐÐØ!ð 	 c¨Z¬_Ò&<Ð&<ØÐÐÐØ�Fˆ]ˆ]ØÐÐÐð ð €{Øˆtå
Ô
ÐB°$ÐBÐB¸3ÐBÐBÑ
CÔ
CÐCr3   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    r2   Úset_creation_orderrÄ  Ï  s   € õ  /€HÔÝ�qÑ€O€O€Or3   r[  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)rq   ÚwarnrK   rL   )r!  r+  r[  s      r2   Úwarn_exceptionrÇ  Ü  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   )rF  r  )rR   Úlen_s     r2   Ú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¯   Ú_hashrR   r>   Únumr+  úSequence[Any]r+   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)rn  r�  rœ  rÎ  )rc   rR   rÏ  r+  ÚinterpolatedrN   rˆ   s         €r2   r�  z_hash_limit_string.__new__þ  s_   ø€ ð  ™ØDÀsÑJñ
ˆõ ‰wŒw�Š˜s LÑ1Ô1ˆÝ˜' U­D°Ñ,>Ô,>ÀÑ,DÐ$EÑEÑFÔFˆŒ
Øˆr3   c                ó   — | j         S r.   )rÎ  rM   s    r2   Ú__hash__z_hash_limit_string.__hash__  s
   € ØŒzÐr3   Úotherr   r†   c                óB   — t          | ¦  «        t          |¦  «        k    S r.   )rœ  )rN   rÕ  s     r2   Ú__eq__z_hash_limit_string.__eq__  s   € Ý�D‰zŒz�T %™[œ[Ò(Ð(r3   )rR   r>   rÏ  r¯   r+  rÐ  r+   rÍ  )r+   r¯   )rÕ  r   r+   r†   )	r]   r^   r_   r`   r5   r�  rÔ  r×  rq  rr  s   @r2   rÍ  rÍ  ñ  s|   ø€ € € € € € ðð ð €J€J�Jðð ð ð ð ð ðð ð ð ð)ð )ð )ð )ð )ð )ð )ð )r3   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     r2   rÆ  rÆ    sG   € ð ð +Ý•s”} S¨tÐ4Ñ4Ô4Ñ5Ô5Ð5Ð5Ð5å�s�CœMÑ*Ô*Ð*Ð*Ð*r3   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     r2   Úwarn_limitedrÞ    s5   € ð
 ð 0Ý   b¨$Ñ/Ô/ˆÝ�3�œÑ&Ô&Ð&Ð&Ð&r3   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 r.   )rß  r  )r­   rá  rà  s    €€r2   Úgoz#tag_method_for_warnings.<locals>.go,  s   ø€ Ø&-¨xÐ%8��b”kÑ"Øˆ	r3   rb   )rà  rá  ræ  s   `` r2   Útag_method_for_warningsrç  )  s)   øø€ ðð ð ð ð ð ð €Ir3   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 )
NFr]   r¾   Tz (rr  r   r   )rê  )rK   Ú	_getframer~   r®  Ú_not_sa_patternÚ	f_globalsr9   Úf_coderß  Úf_backr/  ÚwarningsrÆ  )rà  rá  rê  ÚframeÚstacklevel_foundÚwarning_tag_foundÚ_suffixÚ	_categorys           r2   rÚ  rÚ  6  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.râ   r   rŒ  r+   úOptional[_T]c                 ó†   •— ‰}‰r;‰                      ¦   «         }	  || i |¤ŽS #  ‰r‰                     d|¦  «         ‚ xY wd S )Nr   )rh   Úinsert)râ   rŒ  Ú	strong_fnÚonce_fnr­   Úoncer÷  s       €€€r2   ræ  zonly_once.<locals>.goq  sf   ø€ ð ˆ	Øð 	Ø—h’h‘j”jˆGðØ�w Ð* rÐ*Ð*Ð*øðØ%ð ,Ø—K’K  7Ñ+Ô+Ð+Øøøøàˆts   ›# £>)râ   r   rŒ  r   r+   rú  rb   )r­   r÷  ræ  rÿ  s   `` @r2   Ú	only_oncer   i  s=   øøø€ ð ˆ4€Dðð ð ð ð ð ð ð ð €Ir3   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   )rF  Úsearch)r  r  r  r’   Úends        r2   Ú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ÔÐr3   c                ó|   — d| z  }t          ¦   «                              ¦   «         }t          ||¦  «         |d         S )Nz&def set(obj, value):    obj.%s = valuerg   )r§  Úcopyrç   )ÚattrnamerÖ   rÑ   s      r2   Ú
attrsetterr  ¤  s4   € Ø3°hÑ>€DÝ
‰(Œ(�-Š-‰/Œ/€CÝˆˆs�O„O€OØˆuŒ:Ðr3   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.

    rb   r+   rI   c                ó¶   •— t           | j        v r)d„ | j        D ¦   «         }|rt          d| › d|› d�¦  «        ‚t	          ¦   «                              ¦   «          d S )Nc                óF   — h | ]}t                                |¦  «        °|’ŒS rb   )Ú_dundersr®  ©rz   r€   s     r2   ú	<setcomp>z/TypingOnly.__init_subclass__.<locals>.<setcomp>¸  s9   € ð ð ð ØµX·^²^ÀDÑ5IÔ5IðØðð ð r3   zClass z< directly inherits TypingOnly but has additional attributes rÿ   )r  r  r8   ÚAssertionErrorrn  Ú__init_subclass__)rc   Ú	remainingrˆ   s     €r2   r  zTypingOnly.__init_subclass__¶  s�   ø€ Ý˜œÐ&Ð&ðð Ø!$¤ðñ ô ˆIð ð Ý$ð:˜Sð :ð :Ø-6ð:ð :ð :ñô ð õ 	‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r3   r\   )r]   r^   r_   r`   ra   r  rq  rr  s   @r2   r  r  ®  sN   ø€ € € € € ðð ð
 €Ið
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$ð 
$r3   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.

    r>   Úensure_kwargr+   rI   c                ó2  •— | j         }| j        }|re|D ]b}t          j        ||¦  «        }|rI||         }t	          j        |¦  «        }|j        s&|                      |¦  «        }t          | ||¦  «         Œct          ¦   «          
                    ¦   «          d S r.   )r  r8   r~   r®  r   rÃ   r-  Ú
_wrap_w_kwr¨  rn  r  )	rc   Úfn_regÚclsdictr›  rD   r­   rÐ   Úwrappedrˆ   s	           €r2   r  zEnsureKWArg.__init_subclass__Ö  s¥   ø€ ØÔ!ˆØ”,ˆØð 	3Øð 3ð 3�Ý”H˜V SÑ)Ô)�Øð 3Ø  œ�BÝ!Ô8¸Ñ<Ô<�DØœ:ð 3Ø"%§.¢.°Ñ"4Ô"4˜Ý  S¨'Ñ2Ô2Ð2øÝ‰Œ×!Ò!Ñ#Ô#Ð#Ð#Ð#r3   r­   r…   c                ó0   ‡— dˆfd„}t          |‰¦  «        S )Nrâ   r   rŒ  r+   c                 ó   •—  ‰| Ž S r.   rb   )râ   rŒ  r­   s     €r2   Úwrapz$EnsureKWArg._wrap_w_kw.<locals>.wrapæ  s   ø€ Ø�2�s�8ˆOr3   )râ   r   rŒ  r   r+   r   r   )rc   r­   r!  s    ` r2   r  zEnsureKWArg._wrap_w_kwä  s3   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ ˜d BÑ'Ô'Ð'r3   r\   )r­   r…   r+   r…   )	r]   r^   r_   r`   r5   r  rë  r  rq  rr  s   @r2   r  r  Ã  s|   ø€ € € € € € ðð ð ÐÐÑðð$ð $ð $ð $ð $ð $ð ð(ð (ð (ñ „[ð(ð (ð (ð (ð (r3   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

    r]   r^   r`   )r•   r   rˆ   r]   r^   r)  r`   )Úwrapperr­   Ú_fs      r2   Úwrap_callabler%  ì  s˜   € õ ˆr�:ÑÔð Ý˜g rÑ*Ô*Ð*àˆØ”lÔ+ˆŒÝ�2�|Ñ$Ô$ð 	*ØœMˆBŒMå�2”; 	Ñ*Ô*ð 	$¨r¬{Ô/Bð 	$ØœÔ,ˆBŒJˆJØŒZð 	$ØœˆBŒJàˆ	r3   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   rC  c                ó8   — g | ]}d                       |¦  «        ‘ŒS )r¾   )r}   )rz   r  s     r2   ri  z'quoted_token_parser.<locals>.<listcomp>-  s"   € Ð/Ð/Ð/˜uˆB�GŠG�E‰NŒNÐ/Ð/Ð/r3   )r  rF  r–   )rR   r‡  rô  ÚidxÚlvÚchars         r2   Úquoted_token_parserr,    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Ð/¨Ð/Ñ/Ô/Ð/r3   Ú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 rb   rb   )rz   Úparamr1  s     €r2   r¬  z8add_parameter_text.<locals>.decorate.<locals>.<dictcomp>6  s   ø€ Ð)JÐ)JÐ)J¸%¨%°Ð)JÐ)JÐ)Jr3   )r`   Úinject_param_text)r­   rÏ  r-  r1  s     €€r2   rÙ   z$add_parameter_text.<locals>.decorate3  sT   ø€ ØŒj Ð$Ð3¨¬Ð9°rˆØð 	LÝ# CÐ)JÐ)JÐ)JÐ)JÀ6Ð)JÑ)JÔ)JÑKÔKˆCØˆŒ
Øˆ	r3   )r   rs  )r-  r1  rÙ   s   `` r2   Úadd_parameter_textr3  0  s9   øø€ ÝÔ! &Ñ)Ô)€Fðð ð ð ð ð ð €Or3   c                óè   — |                       dd¦  «        }t          |¦  «        dk    r| S |\  }}|                     d¦  «        s|dz   t          j        |¦  «        z   S t          j        | ¦  «        S )Nú
r   rw   )r  rF  r£  ÚtextwrapÚdedent)r1  Ú
split_textÚ	firstliner  s       r2   Ú_dedent_docstringr:  =  su   € Ø—’˜D !Ñ$Ô$€JÝ
ˆ:�„˜!ÒÐØˆà)Ñˆ	�9Ø×Ò Ñ$Ô$ð %Ø˜4Ñ¥(¤/°)Ñ"<Ô"<Ñ<Ð<åŒ˜tÑ$Ô$Ð$r3   Ú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¾   r5  r   r   c                ó@   — g | ]\  }}|                      ¦   «         °|‘ŒS rb   )r.  )rz   rÏ  Úlines      r2   ri  z)inject_docstring_text.<locals>.<listcomp>T  s)   € ÐHÐHÐH‘i�c˜4¸4¿:º:¹<¼<ÐHˆcÐHÐHÐHr3   )
r:  r  rF  r–   r6  r7  rü  ru  Úminr}   )r;  r<  r=  ÚdoctextÚlinesÚinjectlinesÚblanksÚ
inject_poss           r2   Úinject_docstring_textrG  I  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ÑÔÐr3   z(\s+):param (.+?):rB  Ú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   Ú*rw   r   z(\s+)\Sr   r5  z::)ÚcollectionsÚdequeÚ
splitlinesÚpopleftÚ
_param_regr®  rì   ÚlstriprF  r~   rj   Úrstripr¤  r–   r}   )
rB  rH  ÚdoclinesrC  Ú	to_injectr@  rD   r1  ÚindentÚm2s
             r2   r2  r2  `  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ÑÔÐr3   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   Nr6  r¹   rC  c                óR   — g | ]$}t          |¦  «        d k    rd|dd …         z  n|‘Œ%S )é   z%s..N)rF  r  s     r2   ri  z$repr_tuple_names.<locals>.<listcomp>’  s8   € Ð
LÐ
LÐ
L¸d¥ T¡¤¨R¢ ˆ6�D˜˜"˜”IÑÐ°TÐ
LÐ
LÐ
Lr3   rq  z, ..., )rF  r}   )rÒ   ÚflagÚress      r2   Úrepr_tuple_namesr\  ‹  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Ð=Ð=r3   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    r2   Úhas_compiled_extr`  ™  s5   € Ýð ØˆtØ	ð Ýð"ñ
ô 
ð 	
ð
 ˆur3   c                  ó,   — e Zd Z ej        ¦   «         ZdS )Ú_MissingN)r]   r^   r_   ÚenumÚautoÚMissingrb   r3   r2   rb  rb  ¥  s   € € € € € ØˆdŒi‰kŒk€G€G€Gr3   rb  )r*   r   r+   r,   )r=   r   r+   r>   )rc   rd   r+   re   )ro   r   r+   r>   r.   )rc   rs   rt   ru   r+   r>   )r‚   rƒ   r„   r…   r+   r†   )r�   rŽ   r+   r�   )rš   r›   rœ   r>   r+   r�   )r­   r®   r{   r¯   r+   r°   )rµ   r…   r+   r¶   )rÖ   rä   rÑ   rå   rÔ   r>   r+   r…   )rc   r7   r  r  r  r  r+   r  )rc   r7   r  r  r  r†   r+   r  )r!  r…   r+   r"  )FF)r­   r…   r%  r†   r&  r†   r+   r'  )T)r­   r3  r»   r†   r+   r4  )rb   rb   rb   rb   )rO  rs   rP  r>   rQ  r>   rR  r›   rS  r›   rT  r›   rU  r›   r+   rV  )rb   Nrb   )
r*   r   ra  rb  rc  rd  re  r›   r+   r>   )NNr�  N)NNNr  )r*   r   r+   r†   )r1  r>   r+   r2  )rR   r   r+   r8  )TN)rŒ  rå   r›  r>   rP   rs   r;  r†   r<  r=  r+   rI   )r*   r   rc   rs   r+   r�   )
r*   r!   rc   rd   r+  r   rŒ  r   r+   r!   )r+   rJ  )rT  r   rk  rU  r+   rU  )râ   r   rZ  r[  r€   r>   r+   r   )F)
râ   r   rº  r»  r€   r>   r¼  r†   r+   r½  rê  )r!  r…   r+  r   r[  r   r+   r   )rÈ  )rØ  r>   rÖ   ru   r+   rI   )rØ  r>   r+  rÐ  r+   rI   )rà  r>   rá  râ  r+   rã  )Nr   )rà  rè  rá  ré  rê  r¯   r+   rI   )r­   r  r÷  r†   r+   rø  )r  r"  r  r  r  r  r+   r"  )r-  r   r1  r>   r+   rã  )r1  r>   r+   r>   )r;  ru   r<  r>   r=  r¯   r+   r>   )rB  r>   rH  rI  r+   r>   )rÒ   r"  r+   ru   )žr`   Ú
__future__r   rL  rc  Ú	functoolsr   r/   r¤   r½  r~   rK   r6  rQ  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)   Úpy310r0   rE   rG   rn   rr   r�   rŒ   r™   r¬   r³   r´   rÚ   rÄ   rÍ   rè   ré   rë   r  r  r$  r2  rÆ   rN  rY  r\  r`  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  r0  r7  r:  r?  rE  rI  rN  rY  r`  rÁ  rk  rt  r†  r‘  r¯   r—  r7   r¦  r¶  r¸  ÚFastIntFlagÚEnumr¹  rÁ  rÃ  rÄ  rÇ  rË  r>   rÍ  rÆ  rÞ  rß  r5   rç  Úcompilerí  rÚ  r   Ú_SQLA_REÚ_UNITTEST_REr  ÚNoneTyper  r  r  r  r%  r,  r3  r:  rG  rP  r2  r\  r`  rb  re  Ú	MissingOrrb   r3   r2   ú<module>rw     sy  ððð ð ð #Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø €€€Ø Ð Ð Ð Ø €€€Ø 	€	€	€	Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ø €€€Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø  Ð  Ð  Ð  Ð  Ð  Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø €€€à Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð Ø $Ð $Ð $Ð $Ð $Ð $Ø Ð Ð Ð Ð Ð Ø Ð Ð Ð Ð Ð à€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Ð.Ð/Ñ/Ô/€ð 
„<ð 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€ñ
D,ð D,ð D,ð D,ðNð ð ñ*ð ð ð ð €gˆe�n„n€Ø€gˆe�n„n€ð% ð % ð % ð % ð % ñ % ô % ð % ðP
ð 
ð 
ð( 
ð  $Ø!ð	ð ñ ð ð ñ 
„ðð 
à-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ð ð ð ðF #%ØØ "Ø/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€	€	€	r3   