§
    %ê[f¬  ã                  óB   — d dl mZ ddlmZ d„ Z G d„ dee¦  «        ZdS )é    )Úannotationsé   )ÚUpdateDictMixinc                ó@   ‡ — 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                ó.   •— |                       ‰¦  «        S ©N)Ú
_get_value©ÚxÚkeys    €úO/var/www/piapp/venv/lib/python3.11/site-packages/werkzeug/datastructures/csp.pyú<lambda>zcsp_property.<locals>.<lambda>   ó   ø€ �!—,’,˜sÑ#Ô#€ ó    c                ó0   •— |                       ‰|¦  «        S r   )Ú
_set_value)r   Úvr   s     €r   r   zcsp_property.<locals>.<lambda>   s   ø€ �Q—\’\ # qÑ)Ô)€ r   c                ó.   •— |                       ‰¦  «        S r   )Ú
_del_valuer
   s    €r   r   zcsp_property.<locals>.<lambda>   r   r   zaccessor for )Úproperty)r   s   `r   Úcsp_propertyr      sF   ø€ õ
 Ø#Ð#Ð#Ð#Ø)Ð)Ð)Ð)Ø#Ð#Ð#Ð#Ø˜ÐÐñ	ô ð r   c                  ód  — e Zd ZdZ ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z	 ed¦  «        Z
 ed¦  «        Z ed	¦  «        Z ed
¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Z ed¦  «        Zd$d„Zd„ Zd„ Z d „ Z!d!„ Z"d"„ Z#d#„ Z$dS )%Ú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:`ContentSecuirtyPolicy` 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-uriz	child-srczconnect-srczdefault-srczfont-srczform-actionzframe-ancestorsz	frame-srczimg-srczmanifest-srcz	media-srcznavigate-toz
object-srczprefetch-srczplugin-typesz	report-toz
report-uriÚsandboxz
script-srczscript-src-attrzscript-src-elemz	style-srczstyle-src-attrzstyle-src-elemz
worker-src© Nc                ó`   — t                                | |pd¦  «         || _        |d u| _        d S )Nr   )ÚdictÚ__init__Ú	on_updateÚprovided)ÚselfÚvaluesr   s      r   r   zContentSecurityPolicy.__init__>   s1   € Ý�Š�d˜F˜L bÑ)Ô)Ð)Ø"ˆŒØ dÐ*ˆŒˆˆr   c                ó,   — |                       |¦  «        S )ú+Used internally by the accessor properties.)Úget©r!   r   s     r   r	   z ContentSecurityPolicy._get_valueC   s   € à�xŠx˜‰}Œ}Ðr   c                óD   — |€|                       |d¦  «         dS || |<   dS ©r$   N)Úpop)r!   r   Úvalues      r   r   z ContentSecurityPolicy._set_valueG   s.   € àˆ=Ø�HŠH�S˜$ÑÔÐÐÐàˆD�‰IˆIˆIr   c                ó   — || v r| |= dS dS r(   r   r&   s     r   r   z ContentSecurityPolicy._del_valueN   s   € à�$ˆ;ˆ;Ø�S�	�	�	ð ˆ;r   c                ó$   — ddl m}  || ¦  «        S )z6Convert the stored values into a cache control header.é   )Údump_csp_header)Úhttpr.   )r!   r.   s     r   Ú	to_headerzContentSecurityPolicy.to_headerS   s$   € à*Ð*Ð*Ð*Ð*Ð*àˆ˜tÑ$Ô$Ð$r   c                ó*   — |                       ¦   «         S r   )r0   )r!   s    r   Ú__str__zContentSecurityPolicy.__str__Y   s   € Ø�~Š~ÑÔÐr   c                ó´   — d                      d„ t          |                      ¦   «         ¦  «        D ¦   «         ¦  «        }dt          | ¦  «        j        › d|› d�S )Nú c              3  ó*   K  — | ]\  }}|› d |›�V — ŒdS )ú=Nr   )Ú.0Úkr   s      r   ú	<genexpr>z1ContentSecurityPolicy.__repr__.<locals>.<genexpr>]   s0   è è € ÐHÐH©4¨1¨a˜Q˜,˜, ˜,˜,ÐHÐHÐHÐHÐHÐHr   ú<ú>)ÚjoinÚsortedÚitemsÚtypeÚ__name__)r!   Úkv_strs     r   Ú__repr__zContentSecurityPolicy.__repr__\   sT   € Ø—’ÐHÐHµ6¸$¿*º*¹,¼,Ñ3GÔ3GÐHÑHÔHÑHÔHˆØ2•4˜‘:”:Ô&Ð2Ð2¨Ð2Ð2Ð2Ð2r   )r   N)%r@   Ú
__module__Ú__qualname__Ú__doc__r   Úbase_uriÚ	child_srcÚconnect_srcÚdefault_srcÚfont_srcÚform_actionÚframe_ancestorsÚ	frame_srcÚimg_srcÚmanifest_srcÚ	media_srcÚnavigate_toÚ
object_srcÚprefetch_srcÚplugin_typesÚ	report_toÚ
report_urir   Ú
script_srcÚscript_src_attrÚscript_src_elemÚ	style_srcÚstyle_src_attrÚstyle_src_elemÚ
worker_srcr   r	   r   r   r0   r2   rB   r   r   r   r   r      s
  € € € € € ðð ð  ˆ|˜JÑ'Ô'€HØ�˜[Ñ)Ô)€IØ�,˜}Ñ-Ô-€KØ�,˜}Ñ-Ô-€KØˆ|˜JÑ'Ô'€HØ�,˜}Ñ-Ô-€KØ"�lÐ#4Ñ5Ô5€OØ�˜[Ñ)Ô)€IØˆl˜9Ñ%Ô%€GØ�< Ñ/Ô/€LØ�˜[Ñ)Ô)€IØ�,˜}Ñ-Ô-€KØ�˜lÑ+Ô+€JØ�< Ñ/Ô/€LØ�< Ñ/Ô/€LØ�˜[Ñ)Ô)€IØ�˜lÑ+Ô+€JØˆl˜9Ñ%Ô%€GØ�˜lÑ+Ô+€JØ"�lÐ#4Ñ5Ô5€OØ"�lÐ#4Ñ5Ô5€OØ�˜[Ñ)Ô)€IØ!�\Ð"2Ñ3Ô3€NØ!�\Ð"2Ñ3Ô3€NØ�˜lÑ+Ô+€Jð+ð +ð +ð +ð
ð ð ðð ð ðð ð ð
%ð %ð %ð ð  ð  ð3ð 3ð 3ð 3ð 3r   r   N)Ú
__future__r   Úmixinsr   r   r   r   r   r   r   ú<module>r`      sx   ðØ "Ð "Ð "Ð "Ð "Ð "à #Ð #Ð #Ð #Ð #Ð #ð
ð 
ð 
ðK3ð K3ð K3ð K3ð K3˜O¨Tñ K3ô K3ð K3ð K3ð K3r   