Ë
    ÑÕ°jè  ã                  óX   — d dl mZ d dlmZ d dlZddlmZ dd„Z	 G d„ dee
e
f   «      Zy)	é    )ÚannotationsNé   )ÚCallbackDictc                ó8   ‡ — t        ˆ fd„ˆ fd„ˆ fd„d‰ ›�«      S )z”Return a new property object for a content security policy header.
    Useful if you want to add support for a csp extension in a
    subclass.
    c                ó&   •— | j                  ‰«      S ©N)Ú
_get_value©ÚxÚkeys    €úQ/var/www/mission/venv/lib/python3.12/site-packages/werkzeug/datastructures/csp.pyú<lambda>zcsp_property.<locals>.<lambda>   ó   ø€ �!—,‘,˜sÓ#€ ó    c                ó(   •— | j                  ‰|«      S r   )Ú
_set_value)r   Úvr   s     €r   r   zcsp_property.<locals>.<lambda>   s   ø€ �Q—\‘\ # qÓ)€ r   c                ó&   •— | j                  ‰«      S r   )Ú
_del_valuer
   s    €r   r   zcsp_property.<locals>.<lambda>   r   r   zaccessor for )Úproperty)r   s   `r   Úcsp_propertyr   	   s%   ø€ ô
 Û#Û)Û#Ø
˜�wÐó	ð r   c                  óð  ‡ — e Zd ZU dZ ed«      Zded<    ed«      Zded<    ed«      Zded<    ed	«      Z	ded
<    ed«      Z
ded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded<    ed«      Zded <    ed!«      Zded"<    ed#«      Zded$<    ed%«      Zded%<    ed&«      Zded'<    ed(«      Zded)<    ed*«      Zded+<    ed,«      Zded-<    ed.«      Zded/<    ed0«      Zded1<    ed2«      Zded3<   	 	 d;	 	 	 	 	 d<ˆ fd4„Zd=d5„Z d>d6„Z!d?d7„Z"d@d8„Z#d@d9„Z$d@d:„Z%ˆ xZ&S )AÚContentSecurityPolicyaV  Subclass of a dict that stores values for a Content Security Policy
    header. It has accessors for all the level 3 policies.

    Because the csp directives in the HTTP header use dashes the
    python descriptors use underscores for that.

    To get a header of the :class:`ContentSecurityPolicy` object again
    you can convert the object into a string or call the
    :meth:`to_header` method.  If you plan to subclass it and add your
    own items have a look at the sourcecode for that class.

    .. versionadded:: 1.0.0
       Support for Content Security Policy headers was added.

    zbase-uriú
str | NoneÚbase_uriz	child-srcÚ	child_srczconnect-srcÚconnect_srczdefault-srcÚdefault_srczfont-srcÚfont_srczform-actionÚform_actionzframe-ancestorsÚframe_ancestorsz	frame-srcÚ	frame_srczimg-srcÚimg_srczmanifest-srcÚmanifest_srcz	media-srcÚ	media_srcznavigate-toÚnavigate_toz
object-srcÚ
object_srczprefetch-srcÚprefetch_srczplugin-typesÚplugin_typesz	report-toÚ	report_toz
report-uriÚ
report_uriÚsandboxz
script-srcÚ
script_srczscript-src-attrÚscript_src_attrzscript-src-elemÚscript_src_elemz	style-srcÚ	style_srczstyle-src-attrÚstyle_src_attrzstyle-src-elemÚstyle_src_elemz
worker-srcÚ
worker_srcc                ó8   •— t         ‰| �  ||«       |d u| _        y r   )ÚsuperÚ__init__Úprovided)ÚselfÚvaluesÚ	on_updateÚ	__class__s      €r   r6   zContentSecurityPolicy.__init__A   s    ø€ ô
 	‰Ñ˜ Ô+Ø dÐ*ˆ�r   c                ó$   — | j                  |«      S )ú+Used internally by the accessor properties.)Úget©r8   r   s     r   r	   z ContentSecurityPolicy._get_valueI   s   € à�x‰x˜‹}Ðr   c                ó8   — |€| j                  |d«       y|| |<   y©r=   N)Úpop)r8   r   Úvalues      r   r   z ContentSecurityPolicy._set_valueM   s   € àˆ=Ø�H‰H�S˜$ÕàˆD�ŠIr   c                ó   — || v r| |= yyrA   © r?   s     r   r   z ContentSecurityPolicy._del_valueT   s   € à�$‰;Ø�S‘	ð r   c                ó   — ddl m}  || «      S )z6Convert the stored values into a cache control header.é   )Údump_csp_header)ÚhttprH   )r8   rH   s     r   Ú	to_headerzContentSecurityPolicy.to_headerY   s   € å*á˜tÓ$Ð$r   c                ó"   — | j                  «       S r   )rJ   )r8   s    r   Ú__str__zContentSecurityPolicy.__str___   s   € Ø�~‰~ÓÐr   c                ó˜   — dj                  d„ t        | j                  «       «      D «       «      }dt        | «      j                  › d|› d�S )Nú c              3  ó0   K  — | ]  \  }}|› d |›�–— Œ y­w)ú=NrE   )Ú.0Úkr   s      r   ú	<genexpr>z1ContentSecurityPolicy.__repr__.<locals>.<genexpr>c   s   è ø€ ÒH©4¨1¨a˜Q˜C˜q  œ,ÑHùs   ‚ú<ú>)ÚjoinÚsortedÚitemsÚtypeÚ__name__)r8   Úkv_strs     r   Ú__repr__zContentSecurityPolicy.__repr__b   sA   € Ø—‘ÑH´6¸$¿*¹*»,Ó3GÔHÓHˆØ”4˜“:×&Ñ&Ð' q¨¨°Ð2Ð2r   )rE   N)r9   z>cabc.Mapping[str, str] | cabc.Iterable[tuple[str, str]] | Noner:   z3cabc.Callable[[ContentSecurityPolicy], None] | NoneÚreturnÚNone)r   Ústrr]   r   )r   r_   rC   r   r]   r^   )r   r_   r]   r^   )r]   r_   )'rZ   Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r6   r	   r   r   rJ   rL   r\   Ú__classcell__)r;   s   @r   r   r      sÐ  ø… ññ  (¨
Ó3€HˆjÓ3Ù(¨Ó5€IˆzÓ5Ù*¨=Ó9€K�Ó9Ù*¨=Ó9€K�Ó9Ù'¨
Ó3€HˆjÓ3Ù*¨=Ó9€K�Ó9Ù".Ð/@Ó"A€O�ZÓAÙ(¨Ó5€IˆzÓ5Ù& yÓ1€GˆZÓ1Ù+¨NÓ;€L�*Ó;Ù(¨Ó5€IˆzÓ5Ù*¨=Ó9€K�Ó9Ù)¨,Ó7€J�
Ó7Ù+¨NÓ;€L�*Ó;Ù+¨NÓ;€L�*Ó;Ù(¨Ó5€IˆzÓ5Ù)¨,Ó7€J�
Ó7Ù& yÓ1€GˆZÓ1Ù)¨,Ó7€J�
Ó7Ù".Ð/@Ó"A€O�ZÓAÙ".Ð/@Ó"A€O�ZÓAÙ(¨Ó5€IˆzÓ5Ù!-Ð.>Ó!?€N�JÓ?Ù!-Ð.>Ó!?€N�JÓ?Ù)¨,Ó7€J�
Ó7ð RTØIMð+àNð+ð Gð+ð 
õ	+óóóó
%ó ÷3r   r   )r   r_   r]   zt.Any)Ú
__future__r   Úcollections.abcÚabcÚcabcÚtypingÚtÚ
structuresr   r   r_   r   rE   r   r   ú<module>rl      s-   ðÝ "å Û å $ó
ôN3˜L¨¨c¨Ñ2õ N3r   