Ë
    ÑÕ°j¨V  ã                  óð  — d dl m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 ej                  rd d	lmZ d d
lmZ d dlmZ  ej(                  d«      Z ej(                  dej,                  dej.                  f   ¬«      Zdd„Z G d„ d«      Z G d„ dej6                  e   «      Z G d„ d«      Z G d„ d«      Z G d„ de«      Zd d„Z d!d„Z! G d„ dej6                  e   «      Z"y)"é    )ÚannotationsN)Ú
ContextVar©Úpartial)Úupdate_wrapper)Ú
attrgetteré   )ÚClosingIterator)ÚStartResponse)ÚWSGIApplication)ÚWSGIEnvironmentÚTÚF.)Úboundc                ó$   — | j                  «        y)zûRelease the data for the current context in a :class:`Local` or
    :class:`LocalStack` without using a :class:`LocalManager`.

    This should not be needed for modern use cases, and may be removed
    in the future.

    .. versionadded:: 0.6.1
    N)Ú__release_local__)Úlocals    úD/var/www/mission/venv/lib/python3.12/site-packages/werkzeug/local.pyÚrelease_localr      s   € ð 
×ÑÕó    c                  ó^   — e Zd ZdZdZddd„Zdd„Zddœ	 	 	 	 	 dd„Zdd„Zdd	„Z	dd
„Z
dd„Zy)ÚLocalaq  Create a namespace of context-local data. This wraps a
    :class:`ContextVar` containing a :class:`dict` value.

    This may incur a performance penalty compared to using individual
    context vars, as it has to copy data to avoid mutating the dict
    between nested contexts.

    :param context_var: The :class:`~contextvars.ContextVar` to use as
        storage for this local. If not given, one will be created.
        Context vars not created at the global scope may interfere with
        garbage collection.

    .. versionchanged:: 2.0
        Uses ``ContextVar`` instead of a custom storage implementation.
    )Ú	__storageNc                óf   — |€t        dt        | «      › d�«      }t        j                  | d|«       y )Nzwerkzeug.Local<ú	>.storageÚ_Local__storage)r   ÚidÚobjectÚ__setattr__©ÚselfÚcontext_vars     r   Ú__init__zLocal.__init__6   s4   € ØÐô
 % ´r¸$³x°jÀ	Ð%JÓKˆKä×Ñ˜4Ð!2°KÕ@r   c                óf   — t        | j                  j                  i «      j                  «       «      S ©N)Úiterr   ÚgetÚitems©r!   s    r   Ú__iter__zLocal.__iter__@   s%   € Ü�D—N‘N×&Ñ& rÓ*×0Ñ0Ó2Ó3Ð3r   ©Úunbound_messagec               ó   — t        | ||¬«      S )zþCreate a :class:`LocalProxy` that access an attribute on this
        local namespace.

        :param name: Proxy this attribute.
        :param unbound_message: The error message that the proxy will
            show if the attribute isn't set.
        r+   ©Ú
LocalProxy©r!   Únamer,   s      r   Ú__call__zLocal.__call__C   s   € ô ˜$ °oÔFÐFr   c                ó:   — | j                   j                  i «       y r%   )r   Úsetr)   s    r   r   zLocal.__release_local__O   s   € Ø�‰×Ñ˜2Õr   c                ó`   — | j                   j                  i «      }||v r||   S t        |«      ‚r%   )r   r'   ÚAttributeError©r!   r1   Úvaluess      r   Ú__getattr__zLocal.__getattr__R   s2   € Ø—‘×#Ñ# BÓ'ˆà�6‰>Ø˜$‘<Ðä˜TÓ"Ð"r   c                ó–   — | j                   j                  i «      j                  «       }|||<   | j                   j                  |«       y r%   )r   r'   Úcopyr4   )r!   r1   Úvaluer8   s       r   r   zLocal.__setattr__Z   s:   € Ø—‘×#Ñ# BÓ'×,Ñ,Ó.ˆØˆˆt‰Ø�‰×Ñ˜6Õ"r   c                ó´   — | j                   j                  i «      }||v r/|j                  «       }||= | j                   j                  |«       y t	        |«      ‚r%   )r   r'   r;   r4   r6   r7   s      r   Ú__delattr__zLocal.__delattr___   sL   € Ø—‘×#Ñ# BÓ'ˆà�6‰>Ø—[‘[“]ˆFØ�t�Ø�N‰N×Ñ˜vÕ&ä  Ó&Ð&r   r%   )r"   z#ContextVar[dict[str, t.Any]] | NoneÚreturnÚNone)r?   zt.Iterator[tuple[str, t.Any]])r1   Ústrr,   ú
str | Noner?   úLocalProxy[t.Any]©r?   r@   )r1   rA   r?   út.Any)r1   rA   r<   rE   r?   r@   )r1   rA   r?   r@   )Ú__name__Ú
__module__Ú__qualname__Ú__doc__Ú	__slots__r#   r*   r2   r   r9   r   r>   © r   r   r   r   #   sS   „ ñð  €IôAó4ð ;?ñ
GØð
GØ-7ð
Gà	ó
Góó#ó#ô
'r   r   c                  ód   — e Zd ZdZdZddd„Zdd„Zdd„Zdd„Ze	dd„«       Z
	 ddd	œ	 	 	 	 	 dd
„Zy)Ú
LocalStackaŠ  Create a stack of context-local data. This wraps a
    :class:`ContextVar` containing a :class:`list` value.

    This may incur a performance penalty compared to using individual
    context vars, as it has to copy data to avoid mutating the list
    between nested contexts.

    :param context_var: The :class:`~contextvars.ContextVar` to use as
        storage for this local. If not given, one will be created.
        Context vars not created at the global scope may interfere with
        garbage collection.

    .. versionchanged:: 2.0
        Uses ``ContextVar`` instead of a custom storage implementation.

    .. versionadded:: 0.6.1
    )Ú_storageNc                óF   — |€t        dt        | «      › d�«      }|| _        y )Nzwerkzeug.LocalStack<r   )r   r   rN   r    s     r   r#   zLocalStack.__init__   s)   € ØÐô
 %Ð';¼B¸t»H¸:ÀYÐ%OÓPˆKà#ˆ�r   c                ó:   — | j                   j                  g «       y r%   )rN   r4   r)   s    r   r   zLocalStack.__release_local__‰   s   € Ø�‰×Ñ˜"Õr   c                ó°   — | j                   j                  g «      j                  «       }|j                  |«       | j                   j	                  |«       |S )z'Add a new item to the top of the stack.)rN   r'   r;   Úappendr4   )r!   ÚobjÚstacks      r   ÚpushzLocalStack.pushŒ   sB   € à—‘×!Ñ! "Ó%×*Ñ*Ó,ˆØ�‰�SÔØ�‰×Ñ˜%Ô Øˆr   c                ó    — | j                   j                  g «      }t        |«      dk(  ry|d   }| j                   j                  |dd «       |S )zjRemove the top item from the stack and return it. If the
        stack is empty, return ``None``.
        r   Néÿÿÿÿ)rN   r'   Úlenr4   )r!   rT   Úrvs      r   ÚpopzLocalStack.pop“   sL   € ð —‘×!Ñ! "Ó%ˆäˆu‹:˜Š?Øà�2‰YˆØ�‰×Ñ˜%  ˜*Ô%Øˆ	r   c                ó`   — | j                   j                  g «      }t        |«      dk(  ry|d   S )z[The topmost item on the stack.  If the stack is empty,
        `None` is returned.
        r   NrW   )rN   r'   rX   )r!   rT   s     r   ÚtopzLocalStack.top    s0   € ð
 —‘×!Ñ! "Ó%ˆäˆu‹:˜Š?Øà�R‰yÐr   r+   c               ó   — t        | ||¬«      S )a@  Create a :class:`LocalProxy` that accesses the top of this
        local stack.

        :param name: If given, the proxy access this attribute of the
            top item, rather than the item itself.
        :param unbound_message: The error message that the proxy will
            show if the stack is empty.
        r+   r.   r0   s      r   r2   zLocalStack.__call__¬   s   € ô ˜$ °oÔFÐFr   r%   )r"   zContextVar[list[T]] | Noner?   r@   rD   )rS   r   r?   zlist[T])r?   zT | None)r1   rB   r,   rB   r?   rC   )rF   rG   rH   rI   rJ   r#   r   rU   rZ   Úpropertyr\   r2   rK   r   r   rM   rM   j   se   „ ñð$ €Iô$óóóð ò	ó ð	ð "&ðGØHLñGØðGØ;EðGà	ôGr   rM   c                  óF   — e Zd ZdZdZ	 d		 	 	 d
d„Zdd„Zdd„Zdd„Zdd„Z	y)ÚLocalManagera  Manage releasing the data for the current context in one or more
    :class:`Local` and :class:`LocalStack` objects.

    This should not be needed for modern use cases, and may be removed
    in the future.

    :param locals: A local or list of locals to manage.

    .. versionchanged:: 2.1
        The ``ident_func`` was removed.

    .. versionchanged:: 0.7
        The ``ident_func`` parameter was added.

    .. versionchanged:: 0.6.1
        The :func:`release_local` function can be used instead of a
        manager.
    )ÚlocalsNc                ój   — |€g | _         y t        |t        «      r	|g| _         y t        |«      | _         y r%   )ra   Ú
isinstancer   Úlist)r!   ra   s     r   r#   zLocalManager.__init__Ð   s.   € ð
 ˆ>ØˆD�KÜ˜¤Ô&Ø!˜(ˆD�Kä˜v›,ˆD�Kr   c                ó<   — | j                   D ]  }t        |«       Œ y)z†Release the data in the locals for this context. Call this at
        the end of each request or use :meth:`make_middleware`.
        N)ra   r   )r!   r   s     r   ÚcleanupzLocalManager.cleanupÜ   s   € ð —[‘[ò 	!ˆEÜ˜%Õ ñ	!r   c                ó$   ‡ ‡— 	 	 	 	 	 	 dˆˆ fd„}|S )z…Wrap a WSGI application so that local data is released
        automatically after the response has been sent for a request.
        c                ó>   •— t         ‰| |«      ‰j                  «      S r%   )r
   rf   )ÚenvironÚstart_responseÚappr!   s     €€r   Úapplicationz1LocalManager.make_middleware.<locals>.applicationè   s   ø€ ô #¡3 w°Ó#?ÀÇÁÓNÐNr   )ri   r   rj   r   r?   zt.Iterable[bytes]rK   )r!   rk   rl   s   `` r   Úmake_middlewarezLocalManager.make_middlewareã   s,   ù€ ð
	OØ$ð	OØ6Cð	Oàö	Oð
 Ðr   c                ó8   — t        | j                  |«      |«      S )zòLike :meth:`make_middleware` but used as a decorator on the
        WSGI application function.

        .. code-block:: python

            @manager.middleware
            def application(environ, start_response):
                ...
        )r   rm   )r!   Úfuncs     r   Ú
middlewarezLocalManager.middlewareï   s   € ô ˜d×2Ñ2°4Ó8¸$Ó?Ð?r   c                ó`   — dt        | «      j                  › dt        | j                  «      › d�S )Nú<z storages: ú>)ÚtyperF   rX   ra   r)   s    r   Ú__repr__zLocalManager.__repr__û   s,   € Ø”4˜“:×&Ñ&Ð' {´3°t·{±{Ó3CÐ2DÀAÐFÐFr   r%   )ra   zJNone | (Local | LocalStack[t.Any] | t.Iterable[Local | LocalStack[t.Any]])r?   r@   rD   )rk   r   r?   r   )ro   r   r?   r   ©r?   rA   )
rF   rG   rH   rI   rJ   r#   rf   rm   rp   ru   rK   r   r   r`   r`   º   sE   „ ñð& €Ið
 QUð
'ðNð
'ð 
ó	
'ó!ó
ó
@ôGr   r`   c                  ój   — e Zd ZdZdZ	 	 	 	 d		 	 	 	 	 	 	 	 	 d
d„Zdd„Zddd„Zdd„Z	 	 	 	 	 	 	 	 dd„Z	y)Ú_ProxyLookupa”  Descriptor that handles proxied attribute lookup for
    :class:`LocalProxy`.

    :param f: The built-in function this attribute is accessed through.
        Instead of looking up the special method, the function call
        is redone on the object.
    :param fallback: Return this function if the proxy is unbound
        instead of raising a :exc:`RuntimeError`.
    :param is_attr: This proxied name is an attribute, not a function.
        Call the fallback immediately to get the value.
    :param class_value: Value to return when accessed from the
        ``LocalProxy`` class directly. Used for ``__doc__`` so building
        docs still works.
    )Úbind_fÚfallbackÚis_attrÚclass_valuer1   Nc                ó’   ‡— t        ‰d«      r	 	 	 	 	 	 dˆfd„}n‰�	 	 	 	 	 	 dˆfd„}nd }|| _        || _        || _        || _        y )NÚ__get__c                ó:   •— ‰j                  |t        |«      «      S r%   ©r~   rt   ©ÚinstancerS   Úfs     €r   ry   z%_ProxyLookup.__init__.<locals>.bind_f  s   ø€ ð —y‘y ¤d¨3£iÓ0Ð0r   c                ó   •— t        ‰|«      S r%   r   r�   s     €r   ry   z%_ProxyLookup.__init__.<locals>.bind_f%  s   ø€ ô ˜q #“Ð&r   ©r‚   rC   rS   rE   r?   zt.Callable[..., t.Any])Úhasattrry   rz   r|   r{   )r!   rƒ   rz   r|   r{   ry   s    `    r   r#   z_ProxyLookup.__init__  st   ø€ ô �1�iÔ ð1Ø+ð1Ø27ð1à'ö1ð
 ˆ]ð'Ø+ð'Ø27ð'à'ö'ð ˆFàˆŒØ ˆŒØ&ˆÔØˆ�r   c                ó   — || _         y r%   ©r1   )r!   Úownerr1   s      r   Ú__set_name__z_ProxyLookup.__set_name__3  s	   € Øˆ�	r   c                ób  — |€| j                   �| j                   S | S 	 |j                  «       }| j                  �| j                  ||«      S t        || j                  «      S # t        $ rC | j                  €‚ | j                  j	                  ||«      }| j
                  r	 |«       cY S |cY S w xY wr%   )	r|   Ú_get_current_objectÚRuntimeErrorrz   r~   r{   ry   Úgetattrr1   )r!   r‚   r‰   rS   rz   s        r   r~   z_ProxyLookup.__get__6  s°   € ØÐØ×ÑÐ+Ø×'Ñ'Ð'àˆKð	Ø×.Ñ.Ó0ˆCð �;‰;Ð"Ø—;‘;˜x¨Ó-Ð-ä�s˜DŸI™IÓ&Ð&øô! ò 	Ø�}‰}Ð$Øà—}‘}×,Ñ,¨X°uÓ=ˆHà�|Š|ñ  “zÒ!àŠOð	ús   žA" Á"AB.Â)B.Â-B.c                ó    — d| j                   › �S )Nzproxy rˆ   r)   s    r   ru   z_ProxyLookup.__repr__Q  s   € Ø˜Ÿ	™	�{Ð#Ð#r   c                óD   —  | j                  |t        |«      «      |i |¤ŽS )zíSupport calling unbound methods from the class. For example,
        this happens with ``copy.copy``, which does
        ``type(x).__copy__(x)``. ``type(x)`` can't be proxied, so it
        returns the proxy type and descriptor.
        r€   )r!   r‚   ÚargsÚkwargss       r   r2   z_ProxyLookup.__call__T  s%   € ð 6ˆt�|‰|˜H¤d¨8£nÓ5°tÐF¸vÑFÐFr   )NNNF)
rƒ   út.Callable[..., t.Any] | Nonerz   ú-t.Callable[[LocalProxy[t.Any]], t.Any] | Noner|   zt.Any | Noner{   Úboolr?   r@   )r‰   rC   r1   rA   r?   r@   r%   )r‚   rC   r‰   ztype | Noner?   rE   rv   )r‚   rC   r‘   rE   r’   rE   r?   rE   )
rF   rG   rH   rI   rJ   r#   rŠ   r~   ru   r2   rK   r   r   rx   rx   ÿ   s�   „ ñð I€Ið ,0ØBFØ$(Øð à(ð ð @ð ð "ð	 ð
 ð ð 
ó óDô'ó6$ðGØ)ðGØ27ðGØCHðGà	ôGr   rx   c                  ó8   ‡ — e Zd ZdZdZ	 	 d	 	 	 	 	 dˆ fd„Zˆ xZS )Ú	_ProxyIOpz…Look up an augmented assignment method on a proxied object. The
    method is wrapped to return the proxy instead of the object.
    rK   c                óB   •‡— t         ‰| �  ‰|«       dˆfd„}|| _        y )Nc                óJ   •‡ — dˆˆ fd„}|j                  |t        |«      «      S )Nc                ó   •—  ‰| |«       ‰S r%   rK   )r!   Úotherrƒ   r‚   s     €€r   Úi_opz0_ProxyIOp.__init__.<locals>.bind_f.<locals>.i_opn  s   ø€ Ù�$˜”Ø�r   )r!   rE   r›   rE   r?   rC   r€   )r‚   rS   rœ   rƒ   s   `  €r   ry   z"_ProxyIOp.__init__.<locals>.bind_fm  s   ù€ ö ð —<‘< ¤T¨#£YÓ/Ð/r   r…   )Úsuperr#   ry   )r!   rƒ   rz   ry   Ú	__class__s    `  €r   r#   z_ProxyIOp.__init__f  s"   ù€ ô
 	‰Ñ˜˜HÔ%õ	0ð ˆ�r   )NN)rƒ   r“   rz   r”   r?   r@   )rF   rG   rH   rI   rJ   r#   Ú__classcell__)rž   s   @r   r—   r—   _  s>   ø„ ñð €Ið ,0ØBFðà(ðð @ðð 
÷	ñ r   r—   c                óD   ‡ — dˆ fd„}t        j                  t        |«      S )z5Swap the argument order to turn an l-op into an r-op.c                ó   •—  ‰|| «      S r%   rK   )rS   r›   Úops     €r   Úr_opz_l_to_r_op.<locals>.r_opz  s   ø€ Ù�%˜‹~Ðr   )rS   rE   r›   rE   r?   rE   )ÚtÚcastr   )r¢   r£   s   ` r   Ú
_l_to_r_opr¦   w  s   ø€ õô �6‰6”!�T‹?Ðr   c                ó   — | S r%   rK   )Úos    r   Ú	_identityr©   €  s   € Ø€Hr   c                  ó`  — e Zd ZU dZdZded<   	 	 dddœ	 	 	 	 	 	 	 dd„Z eed„ d	¬
«      Z ed„ d	¬«      Z ee	d„ ¬«      Z
 ee«      Z ee«      Z e«       Z eej"                  «      Z eej&                  «      Z eej*                  «      Z eej.                  «      Z eej2                  «      Z eej6                  «      Z ee«      Z eed„ ¬«      Z  ee!«      Z" ee#«      Z$ ee%«      Z& ee'd„ ¬«      Z( ed„ d	¬«      Z) ed„ «      Z* ed„ «      Z+ ed„ «      Z, ee-«      Z. eej^                  «      Z0 eejb                  «      Z2 eejf                  «      Z4 eejj                  «      Z6 ee7«      Z8 ee9«      Z: ee;«      Z< eejz                  «      Z> eej~                  «      Z@ eej‚                  «      ZB eej†                  «      ZD eejŠ                  «      ZF eejŽ                  «      ZH eej’                  «      ZJ eej–                  «      ZL eeM«      ZN eeO«      ZP eej¢                  «      ZR eej¦                  «      ZT eejª                  «      ZV eej®                  «      ZX eej²                  «      ZZ e e[ej~                  «      «      Z\ e e[ej‚                  «      «      Z] e e[ej†                  «      «      Z^ e e[ejŠ                  «      «      Z_ e e[ejŽ                  «      «      Z` e e[ej’                  «      «      Za e e[ej–                  «      «      Zb e e[eM«      «      Zc e e[eO«      «      Zd e e[ej¢                  «      «      Ze e e[ej¦                  «      «      Zf e e[ejª                  «      «      Zg e e[ej®                  «      «      Zh e e[ej²                  «      «      Zi ejejÖ                  «      Zl ejejÚ                  «      Zn ejejÞ                  «      Zp ejejâ                  «      Zr ejejæ                  «      Zt ejejê                  «      Zv ejejî                  «      Zx ejejò                  «      Zz ejejö                  «      Z| ejejú                  «      Z~ ejejþ                  «      Z€ eje�j                  «      Z‚ eje�j                  «      Z„ ee�j
                  «      Z† ee�j                  «      Zˆ ee‰«      ZŠ ee�j                  «      ZŒ ee�«      ZŽ ee�«      Z� ee‘«      Z’ ee�j&                  «      Z” ee•«      Z– ee—�j0                  «      Z™ ee—�j4                  «      Z› ee—�j8                  «      Z� e«       Zž e«       ZŸ e«       Z  e«       Z¡ e«       Z¢ e«       Z£ e«       Z¤ ee¥�jJ                  «      Z¦ ee¥�jN                  «      Z¨y)r/   as	  A proxy to the object bound to a context-local object. All
    operations on the proxy are forwarded to the bound object. If no
    object is bound, a ``RuntimeError`` is raised.

    :param local: The context-local object that provides the proxied
        object.
    :param name: Proxy this attribute from the proxied object.
    :param unbound_message: The error message to show if the
        context-local object is unbound.

    Proxy a :class:`~contextvars.ContextVar` to make it easier to
    access. Pass a name to proxy that attribute.

    .. code-block:: python

        _request_var = ContextVar("request")
        request = LocalProxy(_request_var)
        session = LocalProxy(_request_var, "session")

    Proxy an attribute on a :class:`Local` namespace by calling the
    local with the attribute name:

    .. code-block:: python

        data = Local()
        user = data("user")

    Proxy the top item on a :class:`LocalStack` by calling the local.
    Pass a name to proxy that attribute.

    .. code-block::

        app_stack = LocalStack()
        current_app = app_stack()
        g = app_stack("g")

    Pass a function to proxy the return value from that function. This
    was previously used to access attributes of local objects before
    that was supported directly.

    .. code-block:: python

        session = LocalProxy(lambda: request.session)

    ``__repr__`` and ``__class__`` are proxied, so ``repr(x)`` and
    ``isinstance(x, cls)`` will look like the proxied object. Use
    ``issubclass(type(x), LocalProxy)`` to check if an object is a
    proxy.

    .. code-block:: python

        repr(user)  # <User admin>
        isinstance(user, User)  # True
        issubclass(type(user), LocalProxy)  # True

    .. versionchanged:: 2.2.2
        ``__wrapped__`` is set when wrapping an object, not only when
        wrapping a function, to prevent doctest from failing.

    .. versionchanged:: 2.2
        Can proxy a ``ContextVar`` or ``LocalStack`` directly.

    .. versionchanged:: 2.2
        The ``name`` parameter can be used with any proxied object, not
        only ``Local``.

    .. versionchanged:: 2.2
        Added the ``unbound_message`` parameter.

    .. versionchanged:: 2.0
        Updated proxied attributes and methods to reflect the current
        data model.

    .. versionchanged:: 0.6.1
        The class can be instantiated with a callable.
    )Ú	__wrappedrŒ   zt.Callable[[], T]rŒ   Nr+   c               óœ  ‡‡‡— |€t         Šnt        |«      Š‰€dŠt        ‰t        «      r|€t	        d«      ‚dˆˆˆfd„}n]t        ‰t
        «      r	dˆˆˆfd„}nDt        ‰t        «      r	dˆˆˆfd„}n+t        ‰«      rdˆˆfd„}nt	        dt        ‰«      › d�«      ‚t        j                  | d	‰«       t        j                  | d
|«       y )Nzobject is not boundz2'name' is required when proxying a 'Local' object.c                 óH   •— 	  ‰ ‰«      S # t         $ r t        ‰«      d ‚w xY wr%   )r6   r�   )Úget_namer   r,   s   €€€r   rŒ   z0LocalProxy.__init__.<locals>._get_current_objectñ  s1   ø€ ðBÙ# E›?Ð*øÜ%ò BÜ& Ó7¸TÐAðBús   ƒ ‹!c                 óF   •— ‰j                   } | €t        ‰«      ‚ ‰| «      S r%   )r\   r�   ©rS   r®   r   r,   s    €€€r   rŒ   z0LocalProxy.__init__.<locals>._get_current_objectù  s&   ø€ Ø—i‘i�à�;Ü& Ó7Ð7á “}Ð$r   c                 óh   •— 	 ‰j                  «       }  ‰| «      S # t        $ r t        ‰«      d ‚w xY wr%   )r'   ÚLookupErrorr�   r°   s    €€€r   rŒ   z0LocalProxy.__init__.<locals>._get_current_object  s@   ø€ ðBØŸ)™)›+�Cñ   “}Ð$øô #ò BÜ& Ó7¸TÐAðBús   ƒ ›1c                 ó   •—  ‰  ‰«       «      S r%   rK   )r®   r   s   €€r   rŒ   z0LocalProxy.__init__.<locals>._get_current_object  s   ø€ Ù¡£Ó(Ð(r   zDon't know how to proxy 'z'.Ú_LocalProxy__wrappedrŒ   )r?   r   )r©   r   rc   r   Ú	TypeErrorrM   r   Úcallablert   r   r   )r!   r   r1   r,   rŒ   r®   s    ` ` @r   r#   zLocalProxy.__init__Þ  sÇ   ú€ ð ˆ<Ü ‰Hä! $Ó'ˆHàÐ"Ø3ˆOä�eœUÔ#Øˆ|ÜÐ TÓUÐU÷Bð Bô ˜œzÔ*÷%ð %ô ˜œzÔ*÷%ð %ô �eŒ_÷)ô Ð7¼¸U»°}ÀBÐGÓHÐHä×Ñ˜4Ð!7¸Ô?Ü×Ñ˜4Ð!6Ð8KÕLr   c                ó,   — t        | «      j                  S r%   )rt   rI   r)   s    r   ú<lambda>zLocalProxy.<lambda>  s   € ´4¸³:×3EÑ3E€ r   T)r|   rz   r{   c                ó   — | j                   S r%   )r´   r)   s    r   r¸   zLocalProxy.<lambda>  s   € ˜d×7Ñ7€ r   )rz   r{   c                ó4   — dt        | «      j                  › d�S )Nrr   z	 unbound>)rt   rF   r)   s    r   r¸   zLocalProxy.<lambda>  s   €  a¬¨T«
×(;Ñ(;Ð'<¸IÐ$F€ r   )rz   c                 ó   — y)NFrK   r)   s    r   r¸   zLocalProxy.<lambda>+  s   � r   c                ó   — g S r%   rK   r)   s    r   r¸   zLocalProxy.<lambda>0  s   € °b€ r   c                ó   — t        | «      S r%   )rt   r)   s    r   r¸   zLocalProxy.<lambda>;  s
   € ´4¸³:€ r   c                ó   — t        || «      S r%   )rc   ©r!   r›   s     r   r¸   zLocalProxy.<lambda><  ó   € ¼ÀEÈ4Ó9P€ r   c                ó   — t        || «      S r%   )Ú
issubclassr¿   s     r   r¸   zLocalProxy.<lambda>=  rÀ   r   c                ó   —  | |i |¤ŽS r%   rK   )r!   r‘   r’   s      r   r¸   zLocalProxy.<lambda>?  s   € ¹$ÀÐ:OÈÑ:O€ r   r%   )r   z9ContextVar[T] | Local | LocalStack[T] | t.Callable[[], T]r1   rB   r,   rB   r?   r@   )©rF   rG   rH   rI   rJ   Ú__annotations__r#   rx   Ú__wrapped__Úreprru   rA   Ú__str__ÚbytesÚ	__bytes__Ú
__format__ÚoperatorÚltÚ__lt__ÚleÚ__le__ÚeqÚ__eq__ÚneÚ__ne__ÚgtÚ__gt__ÚgeÚ__ge__ÚhashÚ__hash__r•   Ú__bool__rŽ   r9   Úsetattrr   Údelattrr>   ÚdirÚ__dir__rž   Ú__instancecheck__Ú__subclasscheck__r2   rX   Ú__len__Úlength_hintÚ__length_hint__ÚgetitemÚ__getitem__ÚsetitemÚ__setitem__ÚdelitemÚ__delitem__r&   r*   ÚnextÚ__next__ÚreversedÚ__reversed__ÚcontainsÚ__contains__ÚaddÚ__add__ÚsubÚ__sub__ÚmulÚ__mul__ÚmatmulÚ
__matmul__ÚtruedivÚ__truediv__ÚfloordivÚ__floordiv__ÚmodÚ__mod__ÚdivmodÚ
__divmod__ÚpowÚ__pow__ÚlshiftÚ
__lshift__ÚrshiftÚ
__rshift__Úand_Ú__and__ÚxorÚ__xor__Úor_Ú__or__r¦   Ú__radd__Ú__rsub__Ú__rmul__Ú__rmatmul__Ú__rtruediv__Ú__rfloordiv__Ú__rmod__Ú__rdivmod__Ú__rpow__Ú__rlshift__Ú__rrshift__Ú__rand__Ú__rxor__Ú__ror__r—   ÚiaddÚ__iadd__ÚisubÚ__isub__ÚimulÚ__imul__ÚimatmulÚ__imatmul__ÚitruedivÚ__itruediv__Ú	ifloordivÚ__ifloordiv__ÚimodÚ__imod__ÚipowÚ__ipow__ÚilshiftÚ__ilshift__ÚirshiftÚ__irshift__ÚiandÚ__iand__ÚixorÚ__ixor__ÚiorÚ__ior__ÚnegÚ__neg__ÚposÚ__pos__ÚabsÚ__abs__ÚinvertÚ
__invert__ÚcomplexÚ__complex__ÚintÚ__int__ÚfloatÚ	__float__ÚindexÚ	__index__ÚroundÚ	__round__ÚmathÚtruncÚ	__trunc__ÚfloorÚ	__floor__ÚceilÚ__ceil__Ú	__enter__Ú__exit__Ú	__await__Ú	__aiter__Ú	__anext__Ú
__aenter__Ú	__aexit__r;   Ú__copy__ÚdeepcopyÚ__deepcopy__rK   r   r   r/   r/   „  sV  … ñKðZ 5€Ià*Ó*ðð  ð6Mð
 '+ñ6MàHð6Mð ð6Mð
 $ð6Mð 
ó6Mñp ØÑ&EÈtô€Gñ Ù7Øô€Kñ
 ØÑFô€Hñ ˜3Ó€GÙ˜UÓ#€IÙ“€JÙ˜(Ÿ+™+Ó&€FÙ˜(Ÿ+™+Ó&€FÙ˜(Ÿ+™+Ó&€FÙ˜(Ÿ+™+Ó&€FÙ˜(Ÿ+™+Ó&€FÙ˜(Ÿ+™+Ó&€FÙ˜DÓ!€HÙ˜DÑ+=Ô>€HÙ˜wÓ'€Ká˜wÓ'€KÙ˜wÓ'€KÙ˜3©Ô9€Gñ Ñ&=ÀtÔL€IÙ$Ñ%PÓQÐÙ$Ñ%PÓQÐáÑOÓP€HÙ˜3Ó€GÙ" 8×#7Ñ#7Ó8€OÙ˜x×/Ñ/Ó0€KÙ˜x×/Ñ/Ó0€KÙ˜x×/Ñ/Ó0€Ká˜DÓ!€HÙ˜DÓ!€HÙ Ó)€LÙ × 1Ñ 1Ó2€LÙ˜8Ÿ<™<Ó(€GÙ˜8Ÿ<™<Ó(€GÙ˜8Ÿ<™<Ó(€GÙ˜hŸo™oÓ.€JÙ˜x×/Ñ/Ó0€KÙ × 1Ñ 1Ó2€LÙ˜8Ÿ<™<Ó(€GÙ˜fÓ%€JÙ˜3Ó€GÙ˜hŸo™oÓ.€JÙ˜hŸo™oÓ.€JÙ˜8Ÿ=™=Ó)€GÙ˜8Ÿ<™<Ó(€GÙ˜(Ÿ,™,Ó'€FÙ™J x§|¡|Ó4Ó5€HÙ™J x§|¡|Ó4Ó5€HÙ™J x§|¡|Ó4Ó5€HÙ™z¨(¯/©/Ó:Ó;€KÙ¡
¨8×+;Ñ+;Ó <Ó=€LÙ ¡¨H×,=Ñ,=Ó!>Ó?€MÙ™J x§|¡|Ó4Ó5€HÙ™z¨&Ó1Ó2€KÙ™J s›OÓ,€HÙ™z¨(¯/©/Ó:Ó;€KÙ™z¨(¯/©/Ó:Ó;€KÙ™J x§}¡}Ó5Ó6€HÙ™J x§|¡|Ó4Ó5€HÙ™: h§l¡lÓ3Ó4€GÙ˜Ÿ™Ó'€HÙ˜Ÿ™Ó'€HÙ˜Ÿ™Ó'€HÙ˜H×,Ñ,Ó-€KÙ˜X×.Ñ.Ó/€LÙ˜h×0Ñ0Ó1€MÙ˜Ÿ™Ó'€HÙ˜Ÿ™Ó'€HÙ˜H×,Ñ,Ó-€KÙ˜H×,Ñ,Ó-€KÙ˜Ÿ™Ó'€HÙ˜ŸšÓ'€HÙ˜ŸšÓ%€GÙ˜8Ÿ<š<Ó(€GÙ˜8Ÿ<š<Ó(€GÙ˜3Ó€GÙ˜hŸošoÓ.€JÙ˜wÓ'€KÙ˜3Ó€GÙ˜UÓ#€IÙ˜XŸ^š^Ó,€IÙ˜UÓ#€IÙ˜TŸZšZÓ(€IÙ˜TŸZšZÓ(€IÙ˜DŸIšIÓ&€HÙ“€IÙ‹~€HÙ“€IÙ“€IÙ“€IÙ“€JÙ“€IÙ˜DŸIšIÓ&€HÙ §¢Ó.�Lr   r/   )r   zLocal | LocalStack[t.Any]r?   r@   )r¢   r   r?   r   )r¨   r   r?   r   )#Ú
__future__r   r;   rF  rË   Útypingr¤   Úcontextvarsr   Ú	functoolsr   r   r   Úwsgir
   ÚTYPE_CHECKINGÚ_typeshed.wsgir   r   r   ÚTypeVarr   ÚCallableÚAnyr   r   r   ÚGenericrM   r`   rx   r—   r¦   r©   r/   rK   r   r   ú<module>rb     sÚ   ðÝ "ã Û Û Û Ý "Ý Ý $Ý å !à‡?‚?Ý,Ý.Ý.à€A‡I�IˆcƒN€Ø€A‡I�Iˆc˜Ÿ™ C¨¯© JÑ/Ô0€ó	÷D'ñ D'ôNMG�—‘˜1‘ô MG÷`BGñ BG÷J]Gñ ]Gô@�ô ó0óôC/�—‘˜1‘õ C/r   