Ë
    ÑÕ°jO#  ã                  óÚ  — 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 ej                  rd dlZ ej                   d«      Z ej                   d«      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j2                  eef   «      Z G d„ deeef   «      Z G d„ d«      Zdd„Z G d„ deeef   «      Zy)é    )ÚannotationsN©Úupdate_wrapper)Úrepeaté   )Ú_missingÚKÚVÚTÚF.)Úboundc                óD   — t        t        | «      j                  ›d�«      ‚)Nz objects are immutable)Ú	TypeErrorÚtypeÚ__name__©Úselfs    úT/var/www/mission/venv/lib/python3.12/site-packages/werkzeug/datastructures/mixins.pyÚ_immutable_errorr      s    € Ü
”t˜D“z×*Ñ*Ð-Ð-CÐDÓ
EÐEó    c                  óŒ   — e Zd ZU dZdZded<   dd„Zdd„Zdd„Zdd„Z	dd	„Z
dd
„Zdd„Zdd„Zdd„Zdd„Zddd„Zdd„Zddd„Zy)ÚImmutableListMixinzOMakes a :class:`list` immutable.

    .. versionadded:: 0.5

    :private:
    Nú
int | NoneÚ_hash_cachec                ól   — | j                   �| j                   S t        t        | «      «      x}| _         |S ©N)r   ÚhashÚtuple©r   Úrvs     r   Ú__hash__zImmutableListMixin.__hash__!   s5   € Ø×ÑÐ'Ø×#Ñ#Ð#Ü $¤U¨4£[Ó 1Ð1ˆˆTÔØˆ	r   c                ó0   — t        | «      t        | «      ffS r   )r   Úlist©r   Úprotocols     r   Ú__reduce_ex__z ImmutableListMixin.__reduce_ex__'   ó   € Ü�D‹zœD ›J˜=Ð(Ð(r   c                ó   — t        | «       y r   ©r   ©r   Úkeys     r   Ú__delitem__zImmutableListMixin.__delitem__*   ó
   € Ü˜Õr   c                ó   — t        | «       y r   r)   ©r   Úothers     r   Ú__iadd__zImmutableListMixin.__iadd__-   r-   r   c                ó   — t        | «       y r   r)   r/   s     r   Ú__imul__zImmutableListMixin.__imul__0   r-   r   c                ó   — t        | «       y r   r)   ©r   r+   Úvalues      r   Ú__setitem__zImmutableListMixin.__setitem__3   r-   r   c                ó   — t        | «       y r   r)   ©r   Úitems     r   ÚappendzImmutableListMixin.append6   r-   r   c                ó   — t        | «       y r   r)   r9   s     r   ÚremovezImmutableListMixin.remove9   r-   r   c                ó   — t        | «       y r   r)   )r   Úiterables     r   ÚextendzImmutableListMixin.extend<   r-   r   c                ó   — t        | «       y r   r)   ©r   Úposr6   s      r   ÚinsertzImmutableListMixin.insert?   r-   r   c                ó   — t        | «       y r   r)   )r   Úindexs     r   ÚpopzImmutableListMixin.popB   r-   r   c                ó   — t        | «       y r   r)   r   s    r   ÚreversezImmutableListMixin.reverseE   r-   r   c                ó   — t        | «       y r   r)   )r   r+   rI   s      r   ÚsortzImmutableListMixin.sortH   r-   r   ©ÚreturnÚint©r%   zt.SupportsIndexrM   út.Any©r+   rP   rM   ú
t.NoReturn©r0   rP   rM   rR   ©r+   rP   r6   rP   rM   rR   )r:   rP   rM   rR   )r?   rP   rM   rR   ©rC   rP   r6   rP   rM   rR   )éÿÿÿÿ)rF   rP   rM   rR   ©r   rP   rM   rR   )NF)r+   rP   rI   rP   rM   rR   )r   Ú
__module__Ú__qualname__Ú__doc__r   Ú__annotations__r!   r&   r,   r1   r3   r7   r;   r=   r@   rD   rG   rI   rK   © r   r   r   r      sT   … ñð #€K�Ó"óó)óóóóóóóóôóõr   r   c                  ó  ‡ — e Zd ZU dZdZded<   eej                  	 	 	 	 	 	 dd„«       «       Z	eej                  dd„«       «       Z	e	 d	 	 	 	 	 dˆ fd„«       Z	dd„Z
dd	„Zdd
„Zddd„Zdd„Zdd„Zddd„Zdd„Zdd„Zdd„Zdd„Zˆ xZS ) ÚImmutableDictMixinzŽMakes a :class:`dict` immutable.

    .. versionchanged:: 3.1
        Disallow ``|=`` operator.

    .. versionadded:: 0.5

    :private:
    Nr   r   c                 ó   — y r   r\   ©ÚclsÚkeysr6   s      r   ÚfromkeyszImmutableDictMixin.fromkeysY   s   € ð /2r   c                 ó   — y r   r\   r`   s      r   rc   zImmutableDictMixin.fromkeys^   s   € àUXr   c                ón   •— t         ‰| �  | «      }|j                  t        |t	        |«      «      «       |S r   )ÚsuperÚ__new__Ú__init__Úzipr   )ra   rb   r6   ÚinstanceÚ	__class__s       €r   rc   zImmutableDictMixin.fromkeysa   s1   ø€ ô ‘7‘? 3Ó'ˆØ×Ñœ#˜d¤F¨5£MÓ2Ô3Øˆr   c                ó0   — t        | «      t        | «      ffS r   )r   Údictr$   s     r   r&   z ImmutableDictMixin.__reduce_ex__i   r'   r   c                ó"   — | j                  «       S r   ©Úitemsr   s    r   Ú_iter_hashitemsz"ImmutableDictMixin._iter_hashitemsl   s   € Ø�z‰z‹|Ðr   c                óˆ   — | j                   �| j                   S t        t        | j                  «       «      «      x}| _         |S r   )r   r   Ú	frozensetrq   r   s     r   r!   zImmutableDictMixin.__hash__o   s?   € Ø×ÑÐ'Ø×#Ñ#Ð#Ü $¤Y¨t×/CÑ/CÓ/EÓ%FÓ GÐGˆˆTÔØˆ	r   c                ó   — t        | «       y r   r)   ©r   r+   Údefaults      r   Ú
setdefaultzImmutableDictMixin.setdefaultu   r-   r   c               ó   — t        | «       y r   r)   ©r   ÚargÚkwargss      r   ÚupdatezImmutableDictMixin.updatex   r-   r   c                ó   — t        | «       y r   r)   r/   s     r   Ú__ior__zImmutableDictMixin.__ior__{   r-   r   c                ó   — t        | «       y r   r)   ru   s      r   rG   zImmutableDictMixin.pop~   r-   r   c                ó   — t        | «       y r   r)   r   s    r   ÚpopitemzImmutableDictMixin.popitem�   r-   r   c                ó   — t        | «       y r   r)   r5   s      r   r7   zImmutableDictMixin.__setitem__„   r-   r   c                ó   — t        | «       y r   r)   r*   s     r   r,   zImmutableDictMixin.__delitem__‡   r-   r   c                ó   — t        | «       y r   r)   r   s    r   ÚclearzImmutableDictMixin.clearŠ   r-   r   )rb   úcabc.Iterable[K]r6   ÚNonerM   z#ImmutableDictMixin[K, t.Any | None])rb   r†   r6   r
   rM   zImmutableDictMixin[K, V]r   )rb   r†   r6   úV | NonerM   z>ImmutableDictMixin[K, t.Any | None] | ImmutableDictMixin[K, V]rO   ©rM   zt.Iterable[t.Any]rL   ©r+   rP   rv   rP   rM   rR   ©rz   rP   r{   rP   rM   rR   rS   ©rM   rR   rT   rQ   )r   rX   rY   rZ   r   r[   ÚclassmethodÚtÚoverloadrc   r&   rq   r!   rw   r|   r~   rG   r�   r7   r,   r…   Ú__classcell__©rk   s   @r   r^   r^   L   sÊ   ø… ñð #€K�Ó"àØ‡Z�Zð2Ø#ð2Ø,0ð2à	,ò2ó ó ð2ð Ø‡Z�ZÚXó ó àXØà7;ðØ#ðØ,4ðà	Gôó ðó)óóôóóôóóó÷r   r^   c                  óJ   — e Zd ZdZd
d„Zdd„Zdd„Zdd„Zdd„Zdd„Z	ddd	„Z
y)ÚImmutableMultiDictMixinzTMakes a :class:`MultiDict` immutable.

    .. versionadded:: 0.5

    :private:
    c                óP   — t        | «      t        | j                  d¬«      «      ffS ©NT)Úmulti)r   r#   rp   r$   s     r   r&   z%ImmutableMultiDictMixin.__reduce_ex__–   s$   € Ü�D‹zœD §¡°$ Ó!7Ó8Ð:Ð:Ð:r   c                ó&   — | j                  d¬«      S r•   ro   r   s    r   rq   z'ImmutableMultiDictMixin._iter_hashitems™   s   € Ø�z‰z ˆzÓ%Ð%r   c                ó   — t        | «       y r   r)   r5   s      r   ÚaddzImmutableMultiDictMixin.addœ   r-   r   c                ó   — t        | «       y r   r)   r   s    r   Úpopitemlistz#ImmutableMultiDictMixin.popitemlistŸ   r-   r   c                ó   — t        | «       y r   r)   r*   s     r   ÚpoplistzImmutableMultiDictMixin.poplist¢   r-   r   c                ó   — t        | «       y r   r)   )r   r+   Únew_lists      r   ÚsetlistzImmutableMultiDictMixin.setlist¥   r-   r   Nc                ó   — t        | «       y r   r)   )r   r+   Údefault_lists      r   Úsetlistdefaultz&ImmutableMultiDictMixin.setlistdefault¨   r-   r   rO   r‰   rT   rŒ   rQ   )r+   rP   rŸ   rP   rM   rR   r   )r+   rP   r¢   rP   rM   rR   )r   rX   rY   rZ   r&   rq   r™   r›   r�   r    r£   r\   r   r   r“   r“   Ž   s*   „ ñó;ó&óóóóõr   r“   c                  óŽ   — e Zd ZdZdd„Zdd„Zdd„Zdd„Zdd„Zdd„Z	dd„Z
dd	„Zdd
„Zdd„Zdd„Zdefdd„Zdd„Zdd„Zdd„Zy)ÚImmutableHeadersMixina  Makes a :class:`Headers` immutable.  We do not mark them as
    hashable though since the only usecase for this datastructure
    in Werkzeug is a view on a mutable structure.

    .. versionchanged:: 3.1
        Disallow ``|=`` operator.

    .. versionadded:: 0.5

    :private:
    c                ó   — t        | «       y r   r)   )r   r+   r{   s      r   r,   z!ImmutableHeadersMixin.__delitem__¹   r-   r   c                ó   — t        | «       y r   r)   r5   s      r   r7   z!ImmutableHeadersMixin.__setitem__¼   r-   r   c               ó   — t        | «       y r   r)   ©r   r+   r6   r{   s       r   ÚsetzImmutableHeadersMixin.set¿   r-   r   c                ó   — t        | «       y r   r)   )r   r+   Úvaluess      r   r    zImmutableHeadersMixin.setlistÂ   r-   r   c               ó   — t        | «       y r   r)   r©   s       r   r™   zImmutableHeadersMixin.addÅ   r-   r   c               ó   — t        | «       y r   r)   r©   s       r   Ú
add_headerz ImmutableHeadersMixin.add_headerÈ   r-   r   c                ó   — t        | «       y r   r)   r*   s     r   r=   zImmutableHeadersMixin.removeË   r-   r   c               ó   — t        | «       y r   r)   ry   s      r   r@   zImmutableHeadersMixin.extendÎ   r-   r   c               ó   — t        | «       y r   r)   ry   s      r   r|   zImmutableHeadersMixin.updateÑ   r-   r   c                ó   — t        | «       y r   r)   r/   s     r   r~   zImmutableHeadersMixin.__ior__Ô   r-   r   c                ó   — t        | «       y r   r)   rB   s      r   rD   zImmutableHeadersMixin.insert×   r-   r   Nc                ó   — t        | «       y r   r)   ru   s      r   rG   zImmutableHeadersMixin.popÚ   r-   r   c                ó   — t        | «       y r   r)   r   s    r   r�   zImmutableHeadersMixin.popitemÝ   r-   r   c                ó   — t        | «       y r   r)   ru   s      r   rw   z ImmutableHeadersMixin.setdefaultà   r-   r   c                ó   — t        | «       y r   r)   ru   s      r   r£   z$ImmutableHeadersMixin.setlistdefaultã   r-   r   )r+   rP   r{   rP   rM   rR   rT   )r+   rP   r6   rP   r{   rP   rM   rR   )r+   rP   r¬   rP   rM   rR   rQ   r‹   rS   rU   rŠ   rŒ   )r   rX   rY   rZ   r,   r7   rª   r    r™   r¯   r=   r@   r|   r~   rD   r   rG   r�   rw   r£   r\   r   r   r¥   r¥   ¬   sY   „ ñ
óóóóóóóóóóóð  $°hô óóôr   r¥   c                ó8   ‡ — 	 	 	 	 	 	 	 	 dˆ fd„}t        |‰ «      S )Nc               óZ   •—  ‰| g|¢­i |¤Ž}| j                   �| j                  | «       |S r   )Ú	on_update)r   Úargsr{   r    Úfs       €r   Úwrapperz_always_update.<locals>.wrapperè   s4   ø€ ñ ˆtÐ%�dÒ%˜fÑ%ˆà�>‰>Ð%Ø�N‰N˜4Ô àˆ	r   )r   zUpdateDictMixin[t.Any, t.Any]r¼   rP   r{   rP   rM   rP   r   )r½   r¾   s   ` r   Ú_always_updater¿   ç   s7   ø€ ðØ+ðØ7<ðØHMðà	õô ˜' 1Ó%Ð%r   c                  ó`  ‡ — e Zd ZU dZdZded<   ddˆ fd„Zej                  dd„«       Z	ej                  dd„«       Z	ej                  dd„«       Z	e
f	 	 	 	 	 	 	 dˆ fd	„Z	edˆ fd
„«       Zedˆ fd„«       Zedˆ fd„«       Zedˆ fd„«       Ze	 d	 	 	 	 	 dˆ fd„«       Ze	 	 	 	 dˆ fd„«       Zˆ xZS )ÚUpdateDictMixinz¢Makes dicts call `self.on_update` on modifications.

    .. versionchanged:: 3.1
        Implement ``|=`` operator.

    .. versionadded:: 0.5

    :private:
    Nz%cabc.Callable[[te.Self], None] | Noner»   c                ón   •— || v}t         ‰| �  ||«      }|r| j                  �| j                  | «       |S r   )rf   rw   r»   ©r   r+   rv   Úmodifiedr    rk   s        €r   rw   zUpdateDictMixin.setdefault  s:   ø€ Ø˜d�?ˆÜ‰WÑ  WÓ-ˆÙ˜Ÿ™Ð2Ø�N‰N˜4Ô Øˆ	r   c                 ó   — y r   r\   r*   s     r   rG   zUpdateDictMixin.pop	  s   € Ø),r   c                 ó   — y r   r\   ru   s      r   rG   zUpdateDictMixin.pop  ó   € Ø58r   c                 ó   — y r   r\   ru   s      r   rG   zUpdateDictMixin.pop  rÇ   r   c                óž   •— || v }|t         u rt        ‰| �	  |«      }nt        ‰| �	  ||«      }|r| j                  �| j                  | «       |S r   )r   rf   rG   r»   rÃ   s        €r   rG   zUpdateDictMixin.pop  sQ   ø€ ð
 ˜$�;ˆØ”hÑÜ™™ CÓ(‰Bä‘‘˜S 'Ó*ˆBÙ˜Ÿ™Ð2Ø�N‰N˜4Ô Øˆ	r   c                ó&   •— t         ‰| �  ||«       y r   )rf   r7   )r   r+   r6   rk   s      €r   r7   zUpdateDictMixin.__setitem__  s   ø€ ä‰Ñ˜C Õ'r   c                ó$   •— t         ‰| �  |«       y r   )rf   r,   )r   r+   rk   s     €r   r,   zUpdateDictMixin.__delitem__!  s   ø€ ä‰Ñ˜CÕ r   c                ó"   •— t         ‰| �  «        y r   )rf   r…   ©r   rk   s    €r   r…   zUpdateDictMixin.clear%  s   ø€ ä‰‰�r   c                ó    •— t         ‰| �  «       S r   )rf   r�   rÍ   s    €r   r�   zUpdateDictMixin.popitem)  s   ø€ ä‰w‰Ó Ð r   c               óJ   •— |€t        ‰| �  di |¤Ž y t        ‰| �  |fi |¤Ž y )Nr\   )rf   r|   )r   rz   r{   rk   s      €r   r|   zUpdateDictMixin.update-  s*   ø€ ð ˆ;Ü‰G‰NÑ$˜VÓ$ä‰G‰N˜3Ñ) &Ó)r   c                ó"   •— t         ‰| �  |«      S r   )rf   r~   )r   r0   rk   s     €r   r~   zUpdateDictMixin.__ior__9  s   ø€ ô ‰w‰˜uÓ%Ð%r   r   )r   úte.Selfr+   r	   rv   rˆ   rM   r
   )r   rÑ   r+   r	   rM   r
   )r   rÑ   r+   r	   rv   r
   rM   r
   )r   rÑ   r+   r	   rv   r   rM   r   )r   rÑ   r+   r	   rv   úV | TrM   rÒ   )r+   r	   r6   r
   rM   r‡   )r+   r	   rM   r‡   )rM   r‡   )rM   ztuple[K, V])rz   z6cabc.Mapping[K, V] | cabc.Iterable[tuple[K, V]] | Noner{   r
   rM   r‡   )r0   z/cabc.Mapping[K, V] | cabc.Iterable[tuple[K, V]]rM   rÑ   )r   rX   rY   rZ   r»   r[   rw   rŽ   r�   rG   r   r¿   r7   r,   r…   r�   r|   r~   r�   r‘   s   @r   rÁ   rÁ   õ   s+  ø… ñð 8<€IÐ4Ó;öð ‡Z�ZÚ,ó Ø,Ø‡Z�ZÚ8ó Ø8Ø‡Z�ZÚ8ó Ø8ð "ðØðàðð ðð 
õ	ð ô(ó ð(ð ô!ó ð!ð ôó ðð ô!ó ð!ð ð GKð	*àCð	*ð ð		*ð
 
ô	*ó ð	*ð ð&ØDð&à	ô&ó ô&r   rÁ   rW   )r½   r   rM   r   ) Ú
__future__r   Úcollections.abcÚabcÚcabcÚtypingrŽ   Ú	functoolsr   Ú	itertoolsr   Ú	_internalr   ÚTYPE_CHECKINGÚtyping_extensionsÚteÚTypeVarr	   r
   r   ÚCallableÚAnyr   r   r   ÚGenericr^   r“   r¥   r¿   rm   rÁ   r\   r   r   ú<module>râ      s×   ðÝ "å Û Ý $Ý å  à‡?‚?Û"à€A‡I�IˆcƒN€Ø€A‡I�IˆcƒN€Ø€A‡I�IˆcƒN€Ø€A‡I�Iˆc˜Ÿ™ s¨A¯E©E zÑ2Ô3€óF÷2ñ 2ôj?˜Ÿ™ 1 a 4™ô ?ôDÐ0°°A°Ñ6ô ÷<8ñ 8óv&ôH&�d˜1˜a˜4‘jõ H&r   